llvm-project/clang/lib/Analysis
Richard Smith c67fdd4eb9 AST representation for user-defined literals, plus just enough of semantic
analysis to make the AST representation testable. They are represented by a
new UserDefinedLiteral AST node, which is a sugared CallExpr. All semantic
properties, including full CodeGen support, are achieved for free by this
representation.

UserDefinedLiterals can never be dependent, so no custom instantiation
behavior is required. They are mangled as if they were direct calls to the
underlying literal operator. This matches g++'s apparent behavior (but not its
actual mangling, which is broken for literal-operator-ids).

User-defined *string* literals are now fully-operational, but the semantic
analysis is quite hacky and needs more work. No other forms of user-defined
literal are created yet, but the AST support for them is present.

This patch committed after midnight because we had already hit the quota for
new kinds of literal yesterday.

llvm-svn: 152211
2012-03-07 08:35:16 +00:00
..
AnalysisDeclContext.cpp Move llvm/ADT/SaveAndRestore.h -> llvm/Support/SaveAndRestore.h. 2012-03-01 19:45:56 +00:00
CFG.cpp AST representation for user-defined literals, plus just enough of semantic 2012-03-07 08:35:16 +00:00
CFGReachabilityAnalysis.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
CFGStmtMap.cpp Constify the result of CFGStmt::getStmt(). 2011-08-23 23:05:04 +00:00
CMakeLists.txt Update the CMake build for r146959's new files. 2011-12-20 08:42:15 +00:00
CocoaConventions.cpp More dead code removal (using -Wunreachable-code) 2012-01-20 21:50:17 +00:00
Dominators.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
FormatString.cpp Warn about non-standard format strings (pr12017) 2012-02-22 10:17:01 +00:00
FormatStringParsing.h Support the 'a' length modifier in scanf format strings as a C90 2011-12-15 10:25:47 +00:00
LiveVariables.cpp Enhance AnalysisDeclContext::getReferencedBlockVars() to understand PseudoObjExprs. It turns out 2011-12-22 01:30:46 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
PostOrderCFGView.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
PrintfFormatString.cpp Format string analysis: give 'q' its own enumerator. 2012-02-16 16:34:54 +00:00
ProgramPoint.cpp ProgramPoint cleanup after the previous commit r141408 (remove the copy constructor, mark withTag const). 2011-10-07 21:01:38 +00:00
PseudoConstantAnalysis.cpp Cleanup various declarations of 'Stmt*' to be 'Stmt *', etc. in libAnalyzer and libStaticAnalyzer[*]. It was highly inconsistent, and very ugly to look at. 2011-08-12 23:37:29 +00:00
ReachableCode.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
ScanfFormatString.cpp Format string analysis: give 'q' its own enumerator. 2012-02-16 16:34:54 +00:00
ThreadSafety.cpp Thread safety analysis: expand set of expressions that can be used to denote locks. 2012-03-02 23:36:05 +00:00
UninitializedValues.cpp Move llvm/ADT/SaveAndRestore.h -> llvm/Support/SaveAndRestore.h. 2012-03-01 19:45:56 +00:00