llvm-project/clang/test/Preprocessor
Olivier Goffart 90f981bc5b Keep the IdentifierInfo in the Token for alternative operator keyword
The goal of this commit is to fix clang-format so it does not merge tokens when
using the alternative spelling keywords. (eg: "not foo" should not become "notfoo")

The problem is that Preprocessor::HandleIdentifier used to drop the identifier info
from the token for these keyword. This means the first condition of
TokenAnnotator::spaceRequiredBefore is not met. We could add explicit check for
the spelling in that condition, but I think it is better to keep the IdentifierInfo
and handle the operator keyword explicitly when needed. That actually leads to simpler
code, and probably slightly more efficient as well.

Another side effect of this change is that __identifier(and) will now work as
one would expect, removing a FIXME from the MicrosoftExtensions.cpp test

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

llvm-svn: 308008
2017-07-14 09:23:40 +00:00
..
Inputs Preprocessor: Suppress -Wnonportable-include-path for header maps 2017-04-27 21:41:51 +00:00
Weverything_pragma.c Accept "-Weverything" in clang diagnistic pragmas 2016-02-13 01:44:05 +00:00
_Pragma-dependency.c
_Pragma-dependency2.c
_Pragma-in-macro-arg.c
_Pragma-location.c Add -fuse-line-directive flag to control usage of #line with -E 2015-02-26 00:17:25 +00:00
_Pragma-physloc.c
_Pragma.c Improved error recovery for _Pragma 2015-07-30 21:30:00 +00:00
aarch64-target-features.c [AArch64] Add support for handling the +sve target feature. 2017-07-13 15:36:01 +00:00
annotate_in_macro_arg.c Lex: Don't call getIdentifierInfo on annotation tokens 2015-03-18 07:53:20 +00:00
arm-acle-6.4.c Add support for armv7ve flag in clang (PR31358). 2017-02-09 23:30:10 +00:00
arm-acle-6.5.c Add support for armv7ve flag in clang (PR31358). 2017-02-09 23:30:10 +00:00
arm-target-features.c ARMV8-A archkind and target defines helper functions 2017-06-30 08:07:34 +00:00
assembler-with-cpp.c Lex: Don't restrict legal UCNs when preprocessing assembly 2013-10-21 05:02:28 +00:00
bigoutput.c Adding a test for PR25717. 2016-01-27 02:18:28 +00:00
builtin_line.c
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 [Clang] Remove unwanted --check-prefix=CHECK from unit tests. NFC. 2016-04-20 01:02:18 +00:00
cuda-approx-transcendentals.cu [CUDA] Updated CUDA tests that must run w/o CUDA installation. 2016-08-02 23:43:04 +00:00
cuda-macos-includes.cu [CUDA] Attempt to fix test failures in cuda-macos-includes.cu. 2016-11-18 01:11:32 +00:00
cuda-preprocess.cu [CUDA] Updated CUDA tests that must run w/o CUDA installation. 2016-08-02 23:43:04 +00:00
cuda-types.cu [CUDA] More correctly inherit primitive types from the host during device compilation. 2017-01-05 16:53:21 +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 Keep the IdentifierInfo in the Token for alternative operator keyword 2017-07-14 09:23:40 +00:00
cxx_oper_keyword_ms_compat.cpp Emit warning if define or undef reserved identifier or keyword. 2014-12-11 12:18:08 +00:00
cxx_oper_spelling.cpp
cxx_or.cpp
cxx_true.cpp Avoid false positive/negative test results from line directive interference.NFC. 2015-06-26 17:49:10 +00:00
cxx_xor.cpp
dependencies-and-pp.c Fix PR31644 introduced by r287138 and add a regression test. 2017-01-14 21:12:08 +00:00
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 [Preprocessor] Support for '-dI' flag 2016-11-17 22:45:31 +00:00
dump_import.m [Preprocessor] Support for '-dI' flag 2016-11-17 22:45:31 +00:00
dump_include.c [Preprocessor] Support for '-dI' flag 2016-11-17 22:45:31 +00:00
dump_include.h [Preprocessor] Support for '-dI' flag 2016-11-17 22:45:31 +00:00
dump_macros.c
dumptokens_phyloc.c
elfiamcu-predefines.c [x86] Correct setting of WIntType for MCU target 2016-02-04 11:54:45 +00:00
expr_comma.c
expr_define_expansion.c Add -Wexpansion-to-undefined: warn when using `defined` in a macro definition. 2016-01-19 15:15:31 +00:00
expr_invalid_tok.c Improve diagnostic for the case when a non-defined function-like macro is used 2016-04-16 00:07:09 +00:00
expr_liveness.c
expr_multichar.c
expr_usual_conversions.c
extension-warning.c
feature_tests.c Consolidate and improve the handling of built-in feature-like macros 2016-04-05 08:36:47 +00:00
file_to_include.h
first-line-indent.c
function_macro_file.c
function_macro_file.h
has_attribute.c Improve diagnostic for the case when a non-defined function-like macro is used 2016-04-16 00:07:09 +00:00
has_attribute.cpp Define __has_cpp_attribute(fallthrough) to a more reasonable value. (What year is it?!) 2016-03-08 00:40:32 +00:00
has_include.c [lex] Don't create a garbage token if parsing of __has_include fails. 2015-03-29 15:33:29 +00:00
hash_line.c Make Preprocessor::Lex non-recursive. 2013-09-19 00:41:32 +00:00
hash_space.c
header_is_main_file.c Do not print include_next/pragma once warnings when input is a header. 2016-10-27 14:17:10 +00:00
header_lookup1.c Move a bunch of tests to directly use the CC1 layer. This at least saves 2014-01-15 09:08:07 +00:00
headermap-rel.c [HeaderSearch] Fix issue where if a headermap entry maps the filename to a framework import (non-absolute path) 2014-03-11 06:21:28 +00:00
headermap-rel2.c test: Disable standard system includes in %clang_cc1 2014-10-03 22:18:49 +00:00
hexagon-predefines.c [Hexagon] Define architecture version macros for hexagonv55 2016-04-21 14:30:04 +00:00
if_warning.c
ifdef-recover.c Preprocessor: support defined() with operator names for MS compatibility 2014-05-21 06:13:51 +00:00
ignore-pragmas.c Revert "clang/test/Driver/crash-report.c: This requires rewriter for -frewrite-includes. [PR20321]" 2014-07-16 15:12:48 +00:00
import_self.c
include-directive1.c
include-directive2.c
include-directive3.c
include-macros.c
include-pth.c
indent_macro.c
init-v7k-compat.c ARMv7k: implement ABI changes for watchOS from standard iOS. 2015-10-30 16:30:45 +00:00
init.c NetBSD uses soft-float by default, unless the environment is EABIHF or 2017-07-11 15:50:48 +00:00
invalid-__has_warning1.c Consolidate and improve the handling of built-in feature-like macros 2016-04-05 08:36:47 +00:00
invalid-__has_warning2.c Consolidate and improve the handling of built-in feature-like macros 2016-04-05 08:36:47 +00:00
iwithprefix.c [multilib] Teach Clang's code about multilib by threading 2014-12-29 12:09:08 +00:00
line-directive-output.c Add test coverage for recent behavior change in GNU line marker pre-processing 2017-05-23 16:09:13 +00:00
line-directive.c Switch C compilations to C11 by default. 2014-10-20 23:26:58 +00:00
macho-embedded-predefines.c ARM: Correctly identify cortex-m4 as v7em. 2014-06-26 17:24:16 +00:00
macro-multiline.c Enable passing test on Windows + MSYS. 2015-08-16 19:02:49 +00:00
macro-reserved-cxx11.cpp [Tests] Add explicit -std=lang option to a number of tests. 2015-08-01 02:55:59 +00:00
macro-reserved-ms.c Fixed warnings on redefine keywords and reserved ids. 2014-12-18 11:14:21 +00:00
macro-reserved.c Fixed warnings on redefine keywords and reserved ids. 2014-12-18 11:14:21 +00:00
macro-reserved.cpp [Tests] Add explicit -std=lang option to a number of tests. 2015-08-01 02:55:59 +00:00
macro_arg_directive.c Lex: Don't let annotation tokens get into macro expansion 2014-12-28 07:42:49 +00:00
macro_arg_directive.h
macro_arg_empty.c Fix whitespace handling in empty macro arguments 2014-02-04 19:18:32 +00:00
macro_arg_keyword.c
macro_arg_slocentry_merge.c Stop printing macro backtraces that don't help diagnostics. 2015-08-12 18:24:59 +00:00
macro_arg_slocentry_merge.h
macro_backslash.c Handle -D arguments ending in a backslash. 2013-08-28 20:35:38 +00:00
macro_disable.c
macro_expand.c Fixed preprocessed output of the first token for pragmas. 2016-02-09 08:51:26 +00:00
macro_expand_empty.c If preprocessing results in a token with leading whitespace that was expanded 2014-02-24 20:50:36 +00:00
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
macro_misc.c
macro_not_define.c
macro_paste_bad.c Lex: Fix an invalid access into a SmallString 2014-10-25 11:40:40 +00:00
macro_paste_bcpl_comment.c
macro_paste_c_block_comment.c
macro_paste_commaext.c Fix whitespace before token-paste of an argument. 2017-05-04 21:31:17 +00:00
macro_paste_empty.c
macro_paste_hard.c
macro_paste_hashhash.c
macro_paste_identifier_error.c
macro_paste_msextensions.c Emit a -Wmicrosoft warning when pasting /##/ into a comment token in MS mode. 2015-12-29 23:06:17 +00:00
macro_paste_none.c
macro_paste_simple.c
macro_paste_spacing.c Fix whitespace handling in ## operator 2014-02-04 19:18:28 +00:00
macro_paste_spacing2.c
macro_redefined.c Put macro redefinition warnings under -Wmacro-redefined 2014-04-04 00:17:16 +00:00
macro_rescan.c
macro_rescan2.c
macro_rescan_varargs.c
macro_rparen_scan.c
macro_rparen_scan2.c
macro_space.c Fix whitespace handling in empty macro expansions 2014-02-04 19:18:35 +00:00
macro_undef.c
macro_variadic.cl
macro_with_initializer_list.cpp Add not to a command that is expected to fail. 2013-07-24 18:45:44 +00:00
mi_opt.c
mi_opt.h
mi_opt2.c
mi_opt2.h
microsoft-ext.c [MSVC Compat] Accept elided commas in macro function arguments 2016-01-22 19:26:44 +00:00
microsoft-header-search.c Rename -Wmsvc-include to -Wmicrosoft-include, now that -Wmicrosoft is split up. 2015-07-28 16:48:12 +00:00
microsoft-import.c
missing-include-range-check.h Include full filename range for missing includes 2016-10-25 10:13:10 +00:00
missing-system-header.c
missing-system-header.h
mmx.c
non_fragile_feature.m
non_fragile_feature1.m
nonportable-include-with-hmap.c Preprocessor: Suppress -Wnonportable-include-path for header maps 2017-04-27 21:41:51 +00:00
objc-pp.m
openmp-macro-expansion.c According to the OpenMP spec, all the preprocessor macros should be 2015-06-15 23:44:27 +00:00
optimize.c Don't pass -O0 to clang_cc1, it is the default. 2013-09-04 04:12:25 +00:00
output_paste_avoid.cpp
overflow.c
pic.c Restructure the propagation of -fPIC/-fPIE. 2016-06-23 15:07:32 +00:00
pp-modules.c Add pragma to perform module import and use it in -E output. 2017-04-29 00:34:47 +00:00
pp-modules.h
pp-record.c
pp-record.h
pr2086.c
pr2086.h
pr13851.c
pr19649-signed-wchar_t.c Commit patch for PR19649. Set the correct sign of wide character for literals based on underlying type of wchar_t. 2015-02-24 13:34:20 +00:00
pr19649-unsigned-wchar_t.c Commit patch for PR19649. Set the correct sign of wide character for literals based on underlying type of wchar_t. 2015-02-24 13:34:20 +00:00
pragma-captured.c
pragma-pushpop-macro.c
pragma_diagnostic.c Use the -Wunknown-warning-option group for the "unknown warning group" 2017-04-28 14:45:25 +00:00
pragma_diagnostic_output.c
pragma_diagnostic_sections.cpp
pragma_microsoft.c Add -Wignored-pragma-intrinsic flag 2016-09-21 20:19:21 +00:00
pragma_microsoft.cpp Accept #pragma warning(push, 0) without warning 2013-10-02 15:19:23 +00:00
pragma_module.c Permit keywords in module names in #pragma clang module *. 2017-05-05 22:34:07 +00:00
pragma_poison.c
pragma_ps4.c Adds a warning for unrecognized argument to #pragma comment() on PS4. 2015-03-23 20:41:42 +00:00
pragma_sysheader.c
pragma_sysheader.h
pragma_unknown.c
predefined-arch-macros.c [X86] Add RDRND feature to Goldmont. Add MOVBE to all Atom CPUs. 2017-06-30 18:14:04 +00:00
predefined-exceptions.m Frontend: Define __EXCEPTIONS if -fexceptions is passed 2014-10-27 20:02:19 +00:00
predefined-macros.c [COFF, ARM64] Add support for Windows ARM64 COFF format 2017-06-27 23:56:34 +00:00
predefined-nullability.c Add __nonnull/__nullable/__null_unspecified predefines for Darwin. 2015-06-24 22:02:16 +00:00
print-pragma-microsoft.c Expand macros in pragmas with -fms-extensions and -E 2014-02-20 22:59:51 +00:00
print_line_count.c
print_line_empty_file.c
print_line_include.c
print_line_include.h
print_line_track.c
pushable-diagnostics.c Accept "-Weverything" in clang diagnistic pragmas 2016-02-13 01:44:05 +00:00
skipping_unclean.c
stdint.c Headers: Make the type of SIZE_MAX the same as size_t 2017-04-27 21:49:45 +00:00
stringize_misc.c Diagnose missing macro argument following charize operator. 2016-04-01 19:02:20 +00:00
stringize_space.c Fix whitespace before token-paste of an argument. 2017-05-04 21:31:17 +00:00
sysroot-prefix.c Fix sysroot-prefix.c on Windows (/ vs \). 2016-05-06 21:17:32 +00:00
traditional-cpp.c Fix CHECK directives that weren't checking. 2015-08-31 21:48:52 +00:00
ucn-allowed-chars.c Fix the range for Malayam UCNs in C99. 2014-02-05 15:32:23 +00:00
ucn-pp-identifier.c Preprocessor: support defined() with operator names for MS compatibility 2014-05-21 06:13:51 +00:00
undef-error.c
unterminated.c
user_defined_system_framework.c
utf8-allowed-chars.c
warn-disabled-macro-expansion.c
warn-macro-unused.c Split isFromMainFile into two functions. 2013-08-22 00:27:10 +00:00
warn-macro-unused.h
warning_tests.c Consolidate and improve the handling of built-in feature-like macros 2016-04-05 08:36:47 +00:00
wasm-target-features.c [WebAssembly] Initial WebAssembly support in clang 2015-09-03 22:51:53 +00:00
woa-defaults.c Driver: add target definition for Windows on ARM 2014-04-04 20:31:19 +00:00
woa-wchar_t.c Target: fix wchar_t definition for Windows on ARM 2014-05-04 01:56:04 +00:00
x86_target_features.c [X86][LWP] Add __LWP__ macro tests 2017-05-08 17:25:48 +00:00