teak-llvm/clang/test/Preprocessor
Jordan Rose ccf43ca05c Add pedantic warning -Wempty-translation-unit (C11 6.9p1).
In standard C since C89, a 'translation-unit' is syntactically defined to have
at least one "external-declaration", which is either a decl or a function
definition. In Clang the latter gives us a declaration as well.

The tricky bit about this warning is that our predefines can contain external
declarations (__builtin_va_list and the 128-bit integer types). Therefore our
AST parser now makes sure we have at least one declaration that doesn't come
from the predefines buffer.

Also, remove bogus warning about empty source files. This doesn't catch source
files that only contain comments, and never fired anyway because of our
predefines.

PR12665 and <rdar://problem/9165548>

llvm-svn: 158085
2012-06-06 17:25:21 +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-dependency2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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-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 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_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
comment_save.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_eq.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_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_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_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.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
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_hard_float macro additional to __mips_single_float 2012-06-05 13:06:56 +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_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_expandloc2.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_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_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_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_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_fn.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_spacing2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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_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_rescan.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_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_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
macro-multiline.c Update tests to use %clang instead of 'clang', and forcibly disable use of ' 2009-12-15 22:01:24 +00:00
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
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 Fix a nasty corner case that Neil noticed in PR1900, where we would 2008-01-07 19:50: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_feature1.m Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +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
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 Fix PR2086. 2008-02-25 19:03:15 +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_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_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
pragma-pushpop-macro.c fix a bunch of comment typos found by codespell. Patch by 2011-04-15 05:22:18 +00:00
predefined-arch-macros.c Add __POPCNT__ to test cases for corei7 and corei7-avx 2012-06-03 21:49:41 +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_space2.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
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 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