hanchenye-llvm-project/clang/test/Preprocessor
Argyrios Kyrtzidis f1b64c6198 Correct handling of _Pragma macro inside a macro argument.
If we are pre-expanding a macro argument don't actually "activate"
the pragma at that point, activate the pragma whenever we encounter
it again in the token stream.
This ensures that we will activate it in the correct location
or that we will ignore it if it never enters the token stream, e.g:

     \#define EMPTY(x)
     \#define INACTIVE(x) EMPTY(x)
     INACTIVE(_Pragma("clang diagnostic ignored \"-Wconversion\""))

This also fixes the crash in rdar://11168596.

llvm-svn: 153959
2012-04-03 16:47:40 +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 Correct handling of _Pragma macro inside a macro argument. 2012-04-03 16:47:40 +00:00
_Pragma-location.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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 Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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
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 Accept __has_feature(__feature__) as a synonym for __has_feature(feature) (and 2012-02-25 10:41:10 +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 Fix an ABI problem with ptrdiff_t and intptr_t on PPC32 2012-03-02 20:54:36 +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 Per discussion on cfe-dev, remove '#error' and '#warning' from diagnostic text. 2012-02-02 00:16:13 +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 Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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 Switch test over to using -verify instead of using grep. PR11552. 2011-12-14 02:16:13 +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_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 Make our handling of MMX x SSE closer to what gcc does: 2011-11-27 20:00:43 +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 Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +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 rename -ccc-host-triple into -target 2012-01-20 22:01:23 +00:00
pp-record.c [preprocessor] Handle correctly inclusion directives that have macro expansions, e.g 2012-03-27 18:47:48 +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 attempt to fix windows testers, which generate #line by default. 2011-05-22 23:47:57 +00:00
pragma_sysheader.h
pragma_unknown.c Rename tok::eom to tok::eod. 2011-02-28 02:37:51 +00:00
predefined-arch-macros.c Generate tests for all of the x86 SIMD instruction feature set 2011-09-28 10:36:46 +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 Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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
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 Add test case for __has_warning. 2011-10-12 20:06:09 +00:00
x86_target_features.c rename -ccc-host-triple into -target 2012-01-20 22:01:23 +00:00