summaryrefslogtreecommitdiffstats
path: root/include/clang-c
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2016-06-15 11:19:39 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2016-06-15 11:19:39 +0000
commit0253605771b8bd9d414aba74fe2742c730d6fd1a (patch)
tree9f1f4daca071856ea8ee6557143d4f31aa230da2 /include/clang-c
parent2c5cc518e88b851359b952e36c5e479a752642b2 (diff)
[MSVC] Late parsing of in-class defined member functions in template
classes. MSVC actively uses unqualified lookup in dependent bases, lookup at the instantiation point (non-dependent names may be resolved on things declared later) etc. and all this stuff is the main cause of incompatibility between clang and MSVC. Clang tries to emulate MSVC behavior but it may fail in many cases. clang could store lexed tokens for member functions definitions within ClassTemplateDecl for later parsing during template instantiation. It will allow resolving many possible issues with lookup in dependent base classes and removing many already existing MSVC-specific hacks/workarounds from the clang code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272774 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang-c')
-rw-r--r--include/clang-c/Index.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h
index 89612b9c93..5fb1b2c5c0 100644
--- a/include/clang-c/Index.h
+++ b/include/clang-c/Index.h
@@ -2305,7 +2305,11 @@ enum CXCursorKind {
*/
CXCursor_OMPTargetUpdateDirective = 265,
- CXCursor_LastStmt = CXCursor_OMPTargetUpdateDirective,
+ /** \brief A MS-specific late parsed compound statement.
+ */
+ CXCursor_MSLateParsedCompoundStmt = 266,
+
+ CXCursor_LastStmt = CXCursor_MSLateParsedCompoundStmt,
/**
* \brief Cursor that represents the translation unit itself.