summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/diag-flags.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [modules] Fix incorrect diagnostic mapping computation when a module changesRichard Smith2018-02-091-11/+23
| | | | | | | | | | | | | | | diagnostic settings using _Pragma within a macro. The AST writer had previously been assuming that all diagnostic state transitions would occur within a FileID corresponding to a file. When a diagnostic state change occured within a macro, it was unable to form a location for that state change and would instead corrupt the diagnostic state of the "root" node (and thus that of the main compilation). Also introduce a "#pragma clang __debug diag_mapping" debugging utility that I added to track this issue down. llvm-svn: 324695
* Fix this test to use a construct that actually forces struct layout to ↵Richard Smith2017-06-271-1/+1
| | | | | | happen when testing -Wpadded. llvm-svn: 306349
* [modules] Round-trip -Werror flag through explicit module build.Richard Smith2017-05-031-8/+30
| | | | | | | | | | | | | | | The intent for an explicit module build is that the diagnostics produced within the module are those that were configured when the module was built, not those that are enabled within a user of the module. This includes diagnostics that don't actually show up until the module is used (for instance, diagnostics produced during template instantiation and weird cases like -Wpadded). We serialized and restored the diagnostic state for individual warning groups, but previously did not track the state for flags like -Werror and -Weverything, which are implemented as separate bits rather than as part of the diagnostics mapping information. llvm-svn: 301992
* clang/test/Modules/diag-flags.cpp: Appease targeting *-win32 with explicit ↵NAKAMURA Takumi2017-05-021-6/+6
| | | | | | | | | triple. Fixes r301846. MicrosoftRecordLayoutBuilder doesn't have ability of -Wpadded. FIXME: Would other diag be available here? llvm-svn: 301898
* Fix initial diagnostic state setup for an explicit module with no diagnostic ↵Richard Smith2017-05-011-0/+22
pragmas. If a file has no diagnostic pragmas, we build its diagnostic state lazily, but in this case we never set up the root state to be the diagnostic state in which the module was originally built, so the diagnostic flags for files in the module with no diagnostic pragmas were incorrectly based on the user of the module rather than the diagnostic state when the module was built. llvm-svn: 301846
OpenPOWER on IntegriCloud