llvm-project/clang/lib/Sema
David Majnemer 61c39a1ccd Sema: Properly support Microsoft-mode template arguments
Summary:
There were two things known to be wrong with our implementation of MSVC
mode template arguments:

- We didn't properly handle __uuidof/CXXUuidofExpr and skipped all type
  checking completely.
- We didn't allow for MSVC's extension of allowing certain constant
  "foldable" expressions from showing up in template arguments.
  They allow various casts dereference and address-of operations.
  We can make it more general as we find further peculiarities but this
  is the known extent.

Reviewers: rsmith, doug.gregor, rjmccall

Reviewed By: doug.gregor

CC: cfe-commits, rnk

Differential Revision: http://llvm-reviews.chandlerc.com/D1444

llvm-svn: 189087
2013-08-23 05:39:39 +00:00
..
AnalysisBasedWarnings.cpp Update to consumed analysis. 2013-08-22 20:44:47 +00:00
AttributeList.cpp Basic support for Microsoft property declarations and 2013-04-16 07:28:30 +00:00
CMakeLists.txt Re-commit r183466 with a fix to make the TypeLoc casting machinery work 2013-06-07 20:31:48 +00:00
CodeCompleteConsumer.cpp Allow the computation of the base priority for a declaration code completion result to consider the completion context 2013-01-31 04:52:16 +00:00
DeclSpec.cpp "bool" should be a context-sensitive keyword in Altivec mode. 2013-07-03 20:54:09 +00:00
DelayedDiagnostic.cpp objective-C: when diagnosing deprecated/unavailable usage of 2012-09-21 20:46:37 +00:00
IdentifierResolver.cpp Delete dead code. 2013-06-19 02:07:51 +00:00
JumpDiagnostics.cpp Fix a couple of bugs where jump diagnostics would not notice that a variable 2013-06-03 01:05:37 +00:00
Makefile
MultiplexExternalSemaSource.cpp Add hooks to ExternalSemaSource for after-the-fact diagnosis of 2013-08-12 22:11:14 +00:00
Scope.cpp Reapply r151638 and r151641. 2012-02-29 10:24:19 +00:00
ScopeInfo.cpp Sema for Captured Statements 2013-04-16 19:37:38 +00:00
Sema.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
SemaAccess.cpp OpenMP: basic support for #pragma omp parallel 2013-07-19 03:13:43 +00:00
SemaAttr.cpp Omit llvm:: before StringRef and SmallString. We have using directive in include/clang/Basic/LLVM.h. 2013-08-10 13:29:01 +00:00
SemaCXXScopeSpec.cpp Refactor all diagnosing of TypoCorrections through a common function, in 2013-08-17 00:46:16 +00:00
SemaCast.cpp Properly track l-paren of a CXXFucntionalCastExpr. 2013-08-15 22:02:56 +00:00
SemaChecking.cpp Split isFromMainFile into two functions. 2013-08-22 00:27:10 +00:00
SemaCodeComplete.cpp Omit llvm:: before ArrayRef, as we have using llvm::ArrayRef in include/clang/Basic/LLVM.h. 2013-08-09 18:02:13 +00:00
SemaConsumer.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
SemaDecl.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
SemaDeclAttr.cpp Updated the consumed analysis warnings to use a more standardized diagnostic. 2013-08-21 22:07:20 +00:00
SemaDeclCXX.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
SemaDeclObjC.cpp Refactor all diagnosing of TypoCorrections through a common function, in 2013-08-17 00:46:16 +00:00
SemaExceptionSpec.cpp Make IgnoreParens() look through ChooseExprs. 2013-07-20 00:40:58 +00:00
SemaExpr.cpp Split isFromMainFile into two functions. 2013-08-22 00:27:10 +00:00
SemaExprCXX.cpp Properly track l-paren of a CXXFucntionalCastExpr. 2013-08-15 22:02:56 +00:00
SemaExprMember.cpp Refactor all diagnosing of TypoCorrections through a common function, in 2013-08-17 00:46:16 +00:00
SemaExprObjC.cpp Omit llvm:: before makeArrayRef. We have using directive in this file. 2013-08-19 07:57:02 +00:00
SemaFixItUtils.cpp s/CPlusPlus0x/CPlusPlus11/g 2013-01-02 11:42:31 +00:00
SemaInit.cpp Handle init lists and _Atomic fields. 2013-08-19 22:12:56 +00:00
SemaLambda.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
SemaLookup.cpp During typo correction, check for an exact match in an unimported module. If we 2013-08-20 20:35:18 +00:00
SemaObjCProperty.cpp Fix recovery for missing * in objc property. 2013-07-09 01:38:07 +00:00
SemaOpenMP.cpp Refactor all diagnosing of TypoCorrections through a common function, in 2013-08-17 00:46:16 +00:00
SemaOverload.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
SemaPseudoObject.cpp Make IgnoreParens() look through ChooseExprs. 2013-07-20 00:40:58 +00:00
SemaStmt.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
SemaStmtAsm.cpp [ms-inline asm] Don't diagnose an empty lookup for inline assmebly. This happen 2013-05-24 18:32:55 +00:00
SemaStmtAttr.cpp PR15300: Support C++11 attributes on base-specifiers. We don't support any such 2013-02-19 23:47:15 +00:00
SemaTemplate.cpp Sema: Properly support Microsoft-mode template arguments 2013-08-23 05:39:39 +00:00
SemaTemplateDeduction.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
SemaTemplateInstantiate.cpp Refactor for clarity and simplicity. 2013-08-22 00:59:14 +00:00
SemaTemplateInstantiateDecl.cpp Remove SequenceNumber from class/variable template partial specializations. 2013-08-22 23:27:37 +00:00
SemaTemplateVariadic.cpp Refactor all diagnosing of TypoCorrections through a common function, in 2013-08-17 00:46:16 +00:00
SemaType.cpp Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
TargetAttributesSema.cpp Replacing err_attribute_argument_not_int with err_attribute_not_type_attr 2013-07-30 14:10:17 +00:00
TargetAttributesSema.h Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here. 2012-12-20 19:22:21 +00:00
TreeTransform.h Revert "Implement a rudimentary form of generic lambdas." 2013-08-22 12:12:24 +00:00
TypeLocBuilder.cpp Add missing file from r183563 (the recommit of 183466). 2013-06-07 20:33:10 +00:00
TypeLocBuilder.h Re-commit r183466 with a fix to make the TypeLoc casting machinery work 2013-06-07 20:31:48 +00:00