hanchenye-llvm-project/clang/tools
Argyrios Kyrtzidis 09c9e811de [preprocessor] Split the MacroInfo class into two separate concepts, MacroInfo class
for the data specific to a macro definition (e.g. what the tokens are), and
MacroDirective class which encapsulates the changes to the "macro namespace"
(e.g. the location where the macro name became active, the location where it was undefined, etc.)

(A MacroDirective always points to a MacroInfo object.)

Usually a macro definition (MacroInfo) is where a macro name becomes active (MacroDirective) but
splitting the concepts allows us to better model the effect of modules to the macro namespace
(also as a bonus it allows better modeling of push_macro/pop_macro #pragmas).
Modules can have their own macro history, separate from the local (current translation unit)
macro history; MacroDirectives will be used to model the macro history (changes to macro namespace).

For example, if "@import A;" imports macro FOO, there will be a new local MacroDirective created
to indicate that "FOO" became active at the import location. Module "A" itself will contain another
MacroDirective in its macro history (at the point of the definition of FOO) and both MacroDirectives
will point to the same MacroInfo object.

Introducing the separation of macro concepts is the first part towards better modeling of module macros.

llvm-svn: 175585
2013-02-20 00:54:57 +00:00
..
arcmt-test these now depend on the bitcode reader too. 2013-01-19 18:28:24 +00:00
c-arcmt-test libclang: Update comment about USEDLIBS in c-*-test/Makefile. 2013-01-22 04:11:33 +00:00
c-index-test libclang: add clang_getTypeSpelling(CXType CT) 2013-02-15 21:15:49 +00:00
clang-check these now depend on the bitcode reader too. 2013-01-19 18:28:24 +00:00
diag-build Add new tool 'diag-build' for showing enabled warnings in a project. 2012-06-18 21:31:37 +00:00
diagtool Nuke SetUpBuildDumpLog. 2013-01-20 01:58:28 +00:00
driver Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h. 2013-02-08 22:30:41 +00:00
libclang [preprocessor] Split the MacroInfo class into two separate concepts, MacroInfo class 2013-02-20 00:54:57 +00:00
scan-build Teach ccc-analyze to pass on -iquote with no spaces between it an the argument. 2013-02-14 00:32:25 +00:00
scan-view Further harden checking that scan-view isn't serving up pages outside 2012-10-12 22:56:38 +00:00
CMakeLists.txt [CMake] clang/tools/extra may be included by LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR. 2012-10-10 13:46:18 +00:00
Makefile [c-index-test] When building with BUILD_CLANG_ONLY=YES, include c-index-test. 2012-11-06 19:14:25 +00:00