summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/Inputs/macros_top.h
Commit message (Collapse)AuthorAgeFilesLines
* [modules] Weaken an out-of-date assertion: an #undef can have no location if weRichard Smith2014-08-091-0/+1
| | | | | | | imported it from a module when performing finalization before writing out an AST file. llvm-svn: 215272
* Fix crash if a submodule overrides one of its own macros, and add support forRichard Smith2014-03-061-0/+2
| | | | | | | | submodule macro overriding within the same top-level module (necessary for the testcase to be remotely reasonable). Incidentally reduces the number of libc++ testsuite regressions with modules enabled from 7 to 6. llvm-svn: 203063
* If a module A exports a macro M, and a module B imports that macro and #undef'sRichard Smith2014-03-011-0/+6
| | | | | | | | | | | | | | it, importers of B should not see the macro. This is complicated by the fact that A's macro could also be visible through a different path. The rules (as hashed out on cfe-commits) are included as a documentation update in this change. With this, the number of regressions in libc++'s testsuite when modules are enabled drops from 47 to 7. Those remaining 7 are also macro-related, and are due to remaining bugs in this change (in particular, the handling of submodules is imperfect). llvm-svn: 202560
* [modules] If a submodule has re-definitions of the same macro, only the last ↵Argyrios Kyrtzidis2013-04-031-2/+2
| | | | | | | | definition will be used as the "exported" one. Fixes rdar://13562262 llvm-svn: 178622
* Track which particular submodule #undef's a macro, so that the actualDouglas Gregor2012-10-121-0/+3
| | | | | | #undef only occurs if that submodule is imported. llvm-svn: 165773
* Diagnose the expansion of ambiguous macro definitions. This can happenDouglas Gregor2012-10-111-0/+8
| | | | | | | only with modules, when two disjoint modules #define the same identifier to different token sequences. llvm-svn: 165746
* Rework the (de-)serialization of macros, as stored inDouglas Gregor2012-10-091-0/+5
MacroInfo*. Instead of simply dumping an offset into the current file, give each macro definition a proper ID with all of the standard modules-remapping facilities. Additionally, when a macro is modified in a subsequent AST file (e.g., #undef'ing a macro loaded from another module or from a precompiled header), provide a macro update record rather than rewriting the entire macro definition. This gives us greater consistency with the way we handle declarations, and ties together macro definitions much more cleanly. Note that we're still not actually deserializing macro history (we never were), but it's far easy to do properly now. llvm-svn: 165560
OpenPOWER on IntegriCloud