llvm-project/clang/test/Preprocessor
Jordan Rose b13eb8dca5 Allow -verify directives to be filtered by preprocessing.
This is accomplished by making VerifyDiagnosticsConsumer a CommentHandler,
which then only reads the -verify directives that are actually in live
blocks of code. It also makes it simpler to handle -verify directives that
appear in header files, though we still have to manually reparse some files
depending on how they are generated.

This requires some test changes. In particular, all PCH tests now have their
-verify directives outside the "header" portion of the file, using the @line
syntax added in r159978. Other tests have been modified mostly to make it
clear what is being tested, and to prevent polluting the expected output with
the directives themselves.

Patch by Andy Gibbs! (with slight modifications)

The new Frontend/verify-* tests exercise the functionality of this commit,
as well as r159978, r159979, and r160053 (Andy's other -verify enhancements).

llvm-svn: 160068
2012-07-11 19:58:23 +00:00
..
Inputs/TestFramework.framework [Lex] Add support for 'user specified system frameworks' (see test case). 2012-04-05 17:10:06 +00:00
_Pragma-dependency.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
_Pragma-dependency2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
_Pragma-in-macro-arg.c [preprocessor] In Preprocessor::CachingLex() check whether there were more tokens 2012-04-04 02:57:01 +00:00
_Pragma-location.c [-E] Emit a rewritten _Pragma on its own line. 2012-06-15 23:33:51 +00:00
_Pragma-physloc.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
_Pragma.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
assembler-with-cpp.c fix rdar://8823139, a crash on a comment in a preprocessed .s file 2011-01-06 05:01:51 +00:00
builtin_line.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
c90.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
c99-6_10_3_3_p4.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
c99-6_10_3_4_p5.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
c99-6_10_3_4_p6.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
c99-6_10_3_4_p7.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
c99-6_10_3_4_p9.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
clang_headers.c This really seems like a boring set of fixes to our tests to make them more 2010-11-16 10:26:08 +00:00
comment_save.c [-E] Emit a rewritten _Pragma on its own line. 2012-06-15 23:33:51 +00:00
comment_save_if.c A couple fixes for preprocessor expressions: 2011-08-03 00:04:13 +00:00
comment_save_macro.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_and.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_bitand.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_bitor.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_compl.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_not.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_not_eq.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_oper_keyword.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_oper_keyword_ms_compat.cpp Move suport for redefining operator keywords from -fms-extensions to -fms-compatibility. 2012-03-01 00:13:46 +00:00
cxx_oper_spelling.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_or.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_true.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx_xor.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
dependencies-and-pp.c add support for -MQ flag to quote targets in dependency file, 2010-03-29 17:55:58 +00:00
directive-invalid.c fix rdar://7683173, rejecting an invalid conditional 2010-02-26 19:42:53 +00:00
disabled-cond-diags.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
disabled-cond-diags2.c Do not complain about junk on the end of a #endif in a skipped block. Such junk 2012-06-21 00:35:03 +00:00
dump-macros-spacing.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
dump-macros-undef.c Push location through the MacroUndefined PPCallback and use it to print #undefs in -dD mode. (PR7818) 2010-08-07 22:27:00 +00:00
dump-options.c Update tests to use %clang instead of 'clang', and forcibly disable use of ' 2009-12-15 22:01:24 +00:00
dump_macros.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
dumptokens_phyloc.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
expr_comma.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
expr_define_expansion.c A couple fixes for preprocessor expressions: 2011-08-03 00:04:13 +00:00
expr_invalid_tok.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
expr_liveness.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
expr_multichar.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
expr_usual_conversions.c convert to -verify mode. 2010-04-07 18:43:41 +00:00
extension-warning.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
feature_tests.c Provide, and document, a set of __c11_atomic_* intrinsics to implement C11's 2012-04-11 17:55:32 +00:00
file_to_include.h
function_macro_file.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
function_macro_file.h
has_attribute.c Merge __has_attribute tests. Patch by Jonathan Sauer! 2012-03-01 17:45:53 +00:00
has_include.c This really seems like a boring set of fixes to our tests to make them more 2010-11-16 10:26:08 +00:00
hash_line.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
hash_space.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
header_lookup1.c Change this test to reflect the state we are moving in. The Clang 2011-11-05 10:15:33 +00:00
if_warning.c Only ignore extra tokens after #else if we skip it, otherwise warn. Fixes rdar://9475098. 2011-05-21 04:26:04 +00:00
ifdef-recover.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
import_self.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
include-directive1.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
include-directive2.c test/Preprocessor/include-directive2.c: Get rid of using <float.h> to avoid #include_next on mingw. 2011-07-11 14:53:27 +00:00
include-directive3.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
include-macros.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
include-pth.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
indent_macro.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
init.c MIPS: Define __mips_dsp_rev / __mips_dspr2 / __mips_dsp macros 2012-07-05 20:16:22 +00:00
line-directive-output.c Improve line marker directive locations, patch by Jordy Rose 2010-04-14 04:28:50 +00:00
line-directive.c Allow -verify directives to be filtered by preprocessing. 2012-07-11 19:58:23 +00:00
macro-multiline.c Update tests to use %clang instead of 'clang', and forcibly disable use of ' 2009-12-15 22:01:24 +00:00
macro_arg_directive.c Don't allow #include (and its friends #import, #include_next and 2011-12-16 22:50:01 +00:00
macro_arg_directive.h Don't allow #include (and its friends #import, #include_next and 2011-12-16 22:50:01 +00:00
macro_arg_keyword.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_disable.c fix a case where macro expansion should be disabled, patch by 2010-03-26 17:49:16 +00:00
macro_expand.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_expandloc.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_expandloc2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_fn.c Minor improvements to some C99 variadic-macro-related diagnostics. 2012-06-22 23:59:08 +00:00
macro_fn_comma_swallow.c filecheckize test 2010-08-21 00:29:50 +00:00
macro_fn_disable_expand.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_fn_lparen_scan.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_fn_lparen_scan2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_fn_placemarker.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_fn_preexpand.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_fn_varargs_iso.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_fn_varargs_named.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_misc.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_not_define.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_paste_bad.c revert r133003 and fix the bug properly: the issue was that ## in a token 2011-06-14 18:19:37 +00:00
macro_paste_bcpl_comment.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_paste_c_block_comment.c Allow -verify directives to be filtered by preprocessing. 2012-07-11 19:58:23 +00:00
macro_paste_commaext.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_paste_empty.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_paste_hard.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_paste_hashhash.c When expanding macro arguments, treat '##' coming from an argument as a normal token. 2011-07-07 03:40:37 +00:00
macro_paste_identifier_error.c Fix issue where a token paste which forms a /* or // would discard the rest of 2012-06-13 19:02:56 +00:00
macro_paste_msextensions.c Add another terrible VC++ compatibility hack: allow users to 2010-07-17 16:24:30 +00:00
macro_paste_none.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_paste_simple.c revert r133003 and fix the bug properly: the issue was that ## in a token 2011-06-14 18:19:37 +00:00
macro_paste_spacing.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_paste_spacing2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_rescan.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_rescan2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_rescan_varargs.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_rparen_scan.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_rparen_scan2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_space.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
macro_undef.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
mi_opt.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
mi_opt.h
mi_opt2.c Fix PR6282: the include guard optimization cannot happen if the 2010-02-12 08:03:27 +00:00
mi_opt2.h Fix PR6282: the include guard optimization cannot happen if the 2010-02-12 08:03:27 +00:00
microsoft-import.c line endings 2012-03-19 18:47:12 +00:00
missing-system-header.c Change err_pp_file_not_found back to an Error; when it's a Warning, we suppress it in system headers. And it is not a good idea to suppress it in system headers. (This was originally changed in r134996 to implement -MG.) 2011-08-30 23:07:51 +00:00
missing-system-header.h Change err_pp_file_not_found back to an Error; when it's a Warning, we suppress it in system headers. And it is not a good idea to suppress it in system headers. (This was originally changed in r134996 to implement -MG.) 2011-08-30 23:07:51 +00:00
mmx.c Pass a target triple explicitly to check platform specific macros definitions. 2012-05-09 18:49:52 +00:00
non_fragile_feature.m Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +00:00
non_fragile_feature1.m Rename the GCC Objective-C runtime to gcc from gnu-fragile and the GNUstep 2012-07-03 20:49:52 +00:00
objc-pp.m tests: Use -ffreestanding when including stdint.h, to avoid platform dependencies. 2010-09-07 22:54:28 +00:00
optimize.c Set __OPTIMIZE_SIZE__ on -Os and -Oz. This matches gcc's behaviour on both OS X 2011-11-26 06:21:20 +00:00
output_paste_avoid.c make the token paste avoidance logic turn "..." into ".. ." instead of ". . ." 2010-04-14 03:57:19 +00:00
overflow.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
pic.c Teach Clang about PIE compilations. This is the first step of PR12380. 2012-04-08 16:40:35 +00:00
pp-record.c [preprocessor] Make sure that MacroExpands callbacks are always in source order. 2012-05-10 18:57:19 +00:00
pp-record.h [preprocessor] Handle correctly inclusion directives that have macro expansions, e.g 2012-03-27 18:47:48 +00:00
pr2086.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
pr2086.h
pragma-pushpop-macro.c fix a bunch of comment typos found by codespell. Patch by 2011-04-15 05:22:18 +00:00
pragma_diagnostic.c Now that GCC will have #pragma push/pop (in GCC 4.6), allow the 2010-08-30 15:15:34 +00:00
pragma_diagnostic_output.c Copy diagnostic pragmas to the preprocessed output, from Richard Osborne! 2011-06-22 19:41:48 +00:00
pragma_diagnostic_sections.cpp Diagnose uninitialized uses of a variable within its own initializer. 2011-03-27 09:46:56 +00:00
pragma_microsoft.c Adding support for #pragma include_alias in MS compatibility mode. This implements PR 10705. 2012-03-02 22:51:54 +00:00
pragma_poison.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
pragma_sysheader.c Fix tests that weren't actually verifying anything. 2012-04-15 22:09:44 +00:00
pragma_sysheader.h Fix #pragma GCC system_header by making it insert a virtual linemarker into 2009-06-15 05:02:34 +00:00
pragma_unknown.c Rename tok::eom to tok::eod. 2011-02-28 02:37:51 +00:00
predefined-arch-macros.c Wire up -mrdrnd for X86. 2012-07-07 09:39:18 +00:00
predefined-exceptions.m Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +00:00
predefined-macros.c Updated the test so that it checks for ms-compatibility in addition to ms-extensions. 2012-03-10 22:52:10 +00:00
print_line_count.c Update tests to use %clang instead of 'clang', and forcibly disable use of ' 2009-12-15 22:01:24 +00:00
print_line_empty_file.c Fix this test to use -cc1. 2010-09-17 02:47:35 +00:00
print_line_track.c fix PR7360: -P mode turns off line markers, but not blank space. 2010-06-12 16:20:56 +00:00
pushable-diagnostics.c Split out -Wconversion warnings about constant precision into their 2010-11-09 22:22:12 +00:00
skipping_unclean.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
stdint.c AAPCS compliance - 32-bit wchar_t should be unsigned for both aapcs and aapcs-linux. 2011-11-23 13:35:08 +00:00
stringize_misc.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
stringize_space.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
stringize_space2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
traditional-cpp.c Lexer: Add extremely limited support for -traditional-cpp, ignoring BCPL 2011-03-18 21:23:38 +00:00
undef-error.c Add pedantic warning -Wempty-translation-unit (C11 6.9p1). 2012-06-06 17:25:21 +00:00
unterminated.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
user_defined_system_framework.c [Lex] Add support for 'user specified system frameworks' (see test case). 2012-04-05 17:10:06 +00:00
warn-disabled-macro-expansion.c Added testcases for -Wdisabled-macro-expansion. 2012-01-03 20:13:03 +00:00
warn-macro-unused.c Reenable test. 2011-07-11 21:58:47 +00:00
warn-macro-unused.h Add missing header file for the test. 2011-07-11 21:58:44 +00:00
warning_tests.c Allow -verify directives to be filtered by preprocessing. 2012-07-11 19:58:23 +00:00
x86_target_features.c rename -ccc-host-triple into -target 2012-01-20 22:01:23 +00:00