summaryrefslogtreecommitdiffstats
path: root/clang/test/Preprocessor/pragma_module.c
Commit message (Collapse)AuthorAgeFilesLines
* [test] Use %clang_cc1 instead of %clang -cc1Fangrui Song2019-09-271-3/+3
| | | | llvm-svn: 373043
* Permit keywords in module names in #pragma clang module *.Richard Smith2017-05-051-4/+5
| | | | | | | This is necessary to be able to build a libc++ module from preprocessed source (due to the submodule std.new). llvm-svn: 302312
* Add #pragma clang module begin/end pragmas and generate them when ↵Richard Smith2017-05-041-9/+49
| | | | | | | | | | | | | | preprocessing a module. These pragmas are intended to simulate the effect of entering or leaving a file with an associated module. This is not completely implemented yet: declarations between the pragmas will not be attributed to the correct module, but macro visibility is already functional. Modules named by #pragma clang module begin must already be known to clang (in some module map that's either loaded or on the search path). llvm-svn: 302098
* Add pragma to perform module import and use it in -E output.Richard Smith2017-04-291-0/+11
Many of our supported configurations support modules but do not have any first-class syntax to perform a module import. This leaves us with a problem: there is no way to represent the expansion of a #include that imports a module in the -E output for such languages. (We don't want to just leave it as a #include because that requires the consumer of the preprocessed source to have the same file system layout and include paths as the creator.) This patch adds a new pragma: #pragma clang module import MODULE.NAME.HERE that imports a module, and changes -E and -frewrite-includes to use it when rewriting a #include that maps to a module import. We don't make any attempt to use a native language syntax import if one exists, to get more consistent output. (If in the future, @import and #include have different semantics in some way, the pragma will track the #include semantics.) llvm-svn: 301725
OpenPOWER on IntegriCloud