651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/test/SemaTemplate/ms-if-exists.cpp
|
9d24a8be93b28488dbfb9bbe8aa6fe35b21a5b0c |
|
13-Dec-2011 |
Francois Pichet <pichet2000@gmail.com> |
Implement the Microsoft __if_exists/if_not_exists extension in initializer-list. Necessary to parse Microsoft ATL code. Example: int array[] = { 0, __if_exists(CLASS::Type) {2, } 3 }; will declare an array of 2 or 3 elements depending on if CLASS::Type exists or not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/ms-if-exists.cpp
|
65019acfc46ffb191fac4e781ac0c4b8d0c8434e |
|
25-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Check for unexpanded parameter packs in the name that guards a Microsoft __if_exists/__if_not_exists statement. Also note that we weren't traversing DeclarationNameInfo *at all* within the RecursiveASTVisitor, which would be rather fatal for variadic templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/ms-if-exists.cpp
|
ba0513de93d2fab6db5ab30b6927209fcc883078 |
|
25-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for dependent Microsoft __if_exists/__if_not_exists statements. As noted in the documentation for the AST node, the semantics of __if_exists/__if_not_exists are somewhat different from the way Visual C++ implements them, because our parsed-template representation can't accommodate VC++ semantics without serious contortions. Hopefully this implementation is "good enough". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/ms-if-exists.cpp
|
3896fc5d4daaf003e451e797e37de57dd8cf9cd5 |
|
25-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Rework Microsoft __if_exists/__if_not_exists parsing and semantic analysis to separate dependent names from non-dependent names. For dependent names, we'll behave differently from Visual C++: - For __if_exists/__if_not_exists at class scope, we'll just warn and then ignore them. - For __if_exists/__if_not_exists in statements, we'll treat the inner statement as a compound statement, which we only instantiate in templates where the dependent name (after instantiation) exists. This behavior is different from VC++, but it's as close as we can get without encroaching ridiculousness. The latter part (dependent statements) is not yet implemented. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/ms-if-exists.cpp
|