hanchenye-llvm-project/clang/test/Preprocessor
Ilya Biryukov b455fc429f [Preprocessor] Always discard body of #define if we failed to parse it
Summary:
Preivously we would only discard it if we failed to parse parameter lists.
If we do not consume the body, parser sees tokens inside directive. In
turn, this leads to spurious diagnostics and a crash in TokenBuffer, see
the added tests.

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65517

llvm-svn: 367530
2019-08-01 09:10:37 +00:00
..
Inputs [Preprocessor] Fix crash emitting note with framework location for "file not found" error. 2019-05-27 19:15:30 +00:00
Weverything_pragma.c Fix tests after r363749 2019-06-18 23:40:17 +00:00
_Pragma-dependency.c Replace tok::angle_string_literal with new tok::header_name. 2019-03-19 22:09:55 +00:00
_Pragma-dependency2.c
_Pragma-in-macro-arg.c
_Pragma-in-macro-arg.cpp Remove use of lookahead from _Pragma handling and from all other 2019-04-11 21:18:22 +00:00
_Pragma-location.c
_Pragma-physloc.c
_Pragma.c
aarch64-target-features.c [AArch64] Disable __ARM_FEATURE_SVE without ACLE. 2019-07-30 10:14:39 +00:00
annotate_in_macro_arg.c
arm-acle-6.4.c [ARM] Prevent DSP and SIM32 being set for v6m 2018-09-28 10:18:02 +00:00
arm-acle-6.5.c [ARM] Fix bugs introduced by the fp64/d32 rework. 2019-06-07 12:42:54 +00:00
arm-pic-predefines.c [ARM] Add pre-defined macros for ROPI and RWPI 2019-02-18 12:39:47 +00:00
arm-target-features.c [TargetParser][ARM] Account dependencies when processing target features 2019-07-14 20:31:15 +00:00
assembler-with-cpp.c
bigoutput.c
bpf-predefined-macros.c [BPF] do not generate predefined macro bpf 2019-04-26 15:35:51 +00:00
builtin_line.c
c17.c Add language standard aliases for -std=c18, -std=gnu18, and -std=iso9899:2018. 2018-10-18 17:42:41 +00:00
c90.c
c99-6_10_3_3_p4.c
c99-6_10_3_4_p5.c
c99-6_10_3_4_p6.c
c99-6_10_3_4_p7.c
c99-6_10_3_4_p9.c
clang_headers.c
comment_save.c
comment_save_if.c
comment_save_macro.c
cuda-approx-transcendentals.cu
cuda-macos-includes.cu
cuda-preprocess.cu
cuda-types.cu [CUDA] Fix grep pattern in cuda-types.cu 2019-06-10 22:28:20 +00:00
cxx_and.cpp
cxx_bitand.cpp
cxx_bitor.cpp
cxx_compl.cpp
cxx_not.cpp
cxx_not_eq.cpp
cxx_oper_keyword.cpp
cxx_oper_keyword_ms_compat.cpp
cxx_oper_spelling.cpp
cxx_or.cpp
cxx_true.cpp
cxx_xor.cpp
dependencies-and-pp.c
directive-invalid.c
disabled-cond-diags.c
disabled-cond-diags2.c
dump-macros-spacing.c
dump-macros-undef.c
dump-options.c
dump_import.h
dump_import.m
dump_include.c
dump_include.h
dump_macros.c
dumptokens_phyloc.c
elfiamcu-predefines.c
empty_file_to_include.h Diagnose likely typos in #include directives. 2018-09-13 21:10:08 +00:00
expr_comma.c
expr_define_expansion.c
expr_invalid_tok.c
expr_liveness.c
expr_multichar.c
expr_usual_conversions.c
extension-warning.c
feature_tests.c Make __has_builtin work with __builtin_LINE and friends. 2019-05-29 03:15:36 +00:00
file_name_macro.c Reland "[Clang][PP] Add the __FILE_NAME__ builtin macro" 2019-05-16 21:13:49 +00:00
file_to_include.h
first-line-indent.c
function_macro_file.c
function_macro_file.h
has_attribute.c
has_attribute.cpp Implement P1771 2019-07-25 15:10:56 +00:00
has_c_attribute.c Correct line endings that got mixed up in r320088; NFC. 2017-12-07 23:10:09 +00:00
has_include.c Factor out repeated code parsing and concatenating header-names from 2019-03-19 01:51:19 +00:00
hash_line.c
hash_space.c
header_is_main_file.c
header_lookup1.c
headermap-rel.c [hmaptool] Turn %hmaptool into a proper substitution 2018-06-22 09:46:40 +00:00
headermap-rel2.c [hmaptool] Turn %hmaptool into a proper substitution 2018-06-22 09:46:40 +00:00
hexagon-predefines.c [Hexagon] Add support for Hexagon V66 2018-12-05 21:38:35 +00:00
if_warning.c
ifdef-recover.c
ignore-pragmas.c Revert 320391: Certain targets are failing, pulling back to diagnose. 2017-12-11 18:14:51 +00:00
import_self.c
include-cycle.c [Preprocessor] Stop entering included files after hitting a fatal error. 2018-07-25 19:16:26 +00:00
include-directive1.c
include-directive2.c
include-directive3.c
include-header-missing-in-framework-with-headermap.c [Preprocessor] Fix crash emitting note with framework location for "file not found" error. 2019-05-27 19:15:30 +00:00
include-header-missing-in-framework.c [Preprocessor] Add a note with framework location for "file not found" error. 2019-02-05 22:34:55 +00:00
include-leading-nonalpha-no-suggest.c Add testcases for r342667. 2018-09-20 17:22:43 +00:00
include-likely-typo.c [MSVC Compat] Fix typo correction for inclusion directives. 2019-01-15 20:08:23 +00:00
include-macros.c
include-next.c Improve the diagnostic for #include_next occurring in a file not found 2019-03-21 20:42:13 +00:00
include-nonalpha-no-crash.c [Preprocessor] Fix a crash when handling non-alpha include header. 2018-10-01 14:38:43 +00:00
indent_macro.c Fixed tests where grep was not matching the linefeed 2019-05-10 20:11:36 +00:00
init-v7k-compat.c
init.c [clang, test] Fix Clang :: Headers/max_align.c on 64-bit SPARC 2019-07-23 16:24:00 +00:00
invalid-__has_warning1.c
invalid-__has_warning2.c
is_target.c Commit missing tests for r320734 2017-12-14 19:22:41 +00:00
is_target_arm.c Commit missing tests for r320734 2017-12-14 19:22:41 +00:00
is_target_arm64.c __is_target_arch: Check the arch and subarch instead of the arch name 2017-12-15 19:58:38 +00:00
is_target_environment_version.c __is_target_environment: Check the environment after parsing it 2017-12-15 20:07:53 +00:00
is_target_os_darwin.c Commit missing tests for r320734 2017-12-14 19:22:41 +00:00
is_target_unknown.c Commit missing tests for r320734 2017-12-14 19:22:41 +00:00
iwithprefix.c
line-directive-output.c
line-directive.c
macho-embedded-predefines.c
macro-multiline.c Use backslash escape, replacing xargs -0 in test macro-multiline.c 2018-01-04 22:58:30 +00:00
macro-reserved-cxx11.cpp
macro-reserved-ms.c
macro-reserved.c
macro-reserved.cpp
macro_arg_directive.c Print a note to the called macro when diagnosing err_embedded_directive 2019-02-14 04:13:17 +00:00
macro_arg_directive.h
macro_arg_empty.c
macro_arg_keyword.c
macro_arg_slocentry_merge.c
macro_arg_slocentry_merge.h
macro_backslash.c
macro_disable.c
macro_expand.c
macro_expand_empty.c
macro_expandloc.c
macro_fn.c
macro_fn_comma_swallow.c
macro_fn_comma_swallow2.c
macro_fn_disable_expand.c
macro_fn_lparen_scan.c
macro_fn_lparen_scan2.c
macro_fn_placemarker.c
macro_fn_preexpand.c
macro_fn_varargs_iso.c
macro_fn_varargs_named.c Fixed tests where grep was not matching the linefeed 2019-05-10 20:11:36 +00:00
macro_misc.c
macro_not_define.c Fixed tests where grep was not matching the linefeed 2019-05-10 20:11:36 +00:00
macro_paste_bad.c
macro_paste_bcpl_comment.c
macro_paste_c_block_comment.c
macro_paste_commaext.c Fix typos in clang 2018-04-06 15:14:32 +00:00
macro_paste_empty.c
macro_paste_hard.c
macro_paste_hashhash.c
macro_paste_identifier_error.c
macro_paste_msextensions.c
macro_paste_none.c
macro_paste_simple.c
macro_paste_spacing.c
macro_paste_spacing2.c
macro_raw_string.cpp Stringizing raw string literals containing newline 2017-12-06 17:00:53 +00:00
macro_redefined.c
macro_rescan.c
macro_rescan2.c
macro_rescan_varargs.c
macro_rparen_scan.c Fixed tests where grep was not matching the linefeed 2019-05-10 20:11:36 +00:00
macro_rparen_scan2.c
macro_space.c
macro_undef.c
macro_vaopt_check.cpp [c++2a] Implement P0306 __VA_OPT__ (Comma omission and comma deletion) 2017-10-15 01:26:26 +00:00
macro_vaopt_expand.cpp [c++20] Implement tweaked __VA_OPT__ rules from P1042R1: 2019-05-04 06:46:18 +00:00
macro_vaopt_p1042r1.cpp [c++20] Implement tweaked __VA_OPT__ rules from P1042R1: 2019-05-04 06:46:18 +00:00
macro_variadic.cl [OpenCL] Allow variadic macros as Clang feature. 2019-03-26 11:22:37 +00:00
macro_with_initializer_list.cpp
mi_opt.c
mi_opt.h
mi_opt2.c
mi_opt2.h
microsoft-ext.c
microsoft-header-search.c
microsoft-import.c
missing-include-range-check.h
missing-system-header.c
missing-system-header.h
mmx.c
non_fragile_feature.m
non_fragile_feature1.m
nonportable-include-with-hmap.c [hmaptool] Turn %hmaptool into a proper substitution 2018-06-22 09:46:40 +00:00
objc-pp.m
openmp-macro-expansion.c
optimize.c
output_paste_avoid.cpp
overflow.c
pic.c
pp-modules.c
pp-modules.h
pp-record.c
pp-record.h
pr2086.c
pr2086.h
pr13851.c
pr19649-signed-wchar_t.c
pr19649-unsigned-wchar_t.c Driver: hoist the `wchar_t` handling to the driver 2017-10-06 23:09:55 +00:00
pragma-captured.c
pragma-comment-linux.c Support `#pragma comment(lib, "name")` in the frontend for ELF 2018-02-07 01:46:46 +00:00
pragma-pushpop-macro.c
pragma.c Fix combining pragma __debug dump & parser_crash with -E 2018-11-15 03:04:21 +00:00
pragma_assume_nonnull.c [Preprocessor] Preserve #pragma clang assume_nonnull in preprocessed output 2017-09-27 23:29:37 +00:00
pragma_diagnostic.c Fix tests after r363749 2019-06-18 23:40:17 +00:00
pragma_diagnostic_output.c
pragma_diagnostic_sections.cpp
pragma_microsoft.c Replace lit feature keyword 'non-ms-sdk' with 'ms-sdk'; eliminate 2019-05-10 13:40:17 +00:00
pragma_microsoft.cpp
pragma_module.c
pragma_poison.c
pragma_ps4.c
pragma_sysheader.c
pragma_sysheader.h
pragma_unknown.c Preserve unknown STDC pragma through preprocessor 2018-01-05 22:45:03 +00:00
predefined-arch-macros.c [SystemZ] Add support for new cpu architecture - arch13 2019-07-12 18:14:51 +00:00
predefined-exceptions.m
predefined-macros.c [OpenCL] Rename lang mode flag for C++ mode 2019-07-25 11:04:29 +00:00
predefined-nullability.c
predefined-win-macros.c [X86] Correct the value of MaxAtomicInlineWidth for pre-586 cpus 2019-03-21 20:36:08 +00:00
print-assembler.s Don't print end-of-directive tokens in -E output 2017-10-16 23:07:15 +00:00
print-pragma-microsoft.c
print_line_count.c
print_line_empty_file.c
print_line_include.c
print_line_include.h
print_line_track.c
pushable-diagnostics.c Fix tests after r363749 2019-06-18 23:40:17 +00:00
riscv-target-features.c [RISCV] Hard float ABI support 2019-07-18 18:29:59 +00:00
skipping_unclean.c
stdint.c By popular demand, switch in64_t on NetBSD/AArch64 and NetBSD/PowerPC64 2018-07-17 12:33:19 +00:00
stringize_misc.c
stringize_skipped.c [Preprocessor] Always discard body of #define if we failed to parse it 2019-08-01 09:10:37 +00:00
stringize_space.c
sycl-macro.cpp [SYCL] Add clang front-end option to enable SYCL device compilation flow. 2019-02-25 11:48:48 +00:00
sysroot-prefix.c
traditional-cpp.c
ucn-allowed-chars.c
ucn-pp-identifier.c
undef-error.c
unterminated.c
user_defined_system_framework.c
utf8-allowed-chars.c
warn-disabled-macro-expansion.c
warn-macro-unused.c
warn-macro-unused.h
warning_tests.c
wasm-target-features.c [WebAssembly] Add multivalue and tail-call target features 2019-05-23 17:26:47 +00:00
wchar_t.c Clang :: Sema/wchar.c has long been failing on Solaris: 2019-06-17 20:21:25 +00:00
woa-defaults.c Basic: correct `__WINT_TYPE__` on Windows 2018-09-19 16:18:55 +00:00
woa-wchar_t.c
x86_asm_flag_output.c [X86] Add clang support for X86 flag output parameters. 2019-02-14 19:27:25 +00:00
x86_seg_fs_gs.c Support __seg_fs and __seg_gs on x86 2019-07-14 18:33:51 +00:00
x86_target_features.c [X86] Add ENQCMD instructions 2019-06-06 08:28:42 +00:00