hanchenye-llvm-project/clang/test/Parser
Richard Smith b5f8171a1b PR37189 Fix incorrect end source location and spelling for a split '>>' token.
When a '>>' token is split into two '>' tokens (in C++11 onwards), or (as an
extension) when we do the same for other tokens starting with a '>', we can't
just use a location pointing to the first '>' as the location of the split
token, because that would result in our miscomputing the length and spelling
for the token. As a consequence, for example, a refactoring replacing 'A<X>'
with something else would sometimes replace one character too many, and
similarly diagnostics highlighting a template-id source range would highlight
one character too many.

Fix this by creating an expansion range covering the first character of the
'>>' token, whose spelling is '>'. For this to work, we generalize the
expansion range of a macro FileID to be either a token range (the common case)
or a character range (used in this new case).

llvm-svn: 331155
2018-04-30 05:25:48 +00:00
..
CompoundStmtScope.c
DelayedTemplateParsing.cpp
MicrosoftExtensions.c [Parse] Let declarations follow labels in -fms-extensions mode 2016-08-01 16:39:29 +00:00
MicrosoftExtensions.cpp [MS] Accept __unaligned as a qualifier on member function pointers 2018-03-07 23:26:02 +00:00
MicrosoftExtensionsInlineAsm.c
PR11000.cpp
PR21872.cpp
access-spec-attrs.cpp
altivec-csk-bool.c Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
altivec.c Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
annotation-token-in-lexed-body.cpp
argument_qualified.c
argument_redef.c
argument_scope.c
arm-windows-calling-convention-handling.c [AArch64] Ignore stdcall and similar on aarch64/windows 2017-08-07 20:52:04 +00:00
asm-constraints-pr7869.c
asm.c
asm.cpp
atomic.c
attr-availability.c
attr-external-source-symbol-cxx11.cpp Introduce an 'external_source_symbol' attribute that describes the origin 2017-03-01 18:06:25 +00:00
attr-external-source-symbol.m Introduce an 'external_source_symbol' attribute that describes the origin 2017-03-01 18:06:25 +00:00
attributes.c
attributes.mm
backtrack-crash.cpp
backtrack-off-by-one.cpp PR0091R3: Implement parsing support for using templates as types. 2017-01-26 20:40:47 +00:00
bad-control.c
block-block-storageclass.c
block-pointer-decl.c
bracket-crash.cpp
brackets.c Fix typos in clang 2018-04-06 15:14:32 +00:00
brackets.cpp Fix typos in clang 2018-04-06 15:14:32 +00:00
builtin_classify_type.c
builtin_types_compatible.c Make __builtin_types_compatible_p more like GCC's 2017-10-16 22:58:37 +00:00
c-namespace.c
c1x-alignas.c
c1x-generic-selection.c
c2x-attributes.c Add a fixit for attributes incorrectly placed prior to 'struct/class/enum' keyword. 2017-12-25 22:23:20 +00:00
c2x-attributes.m Add -f[no-]double-square-bracket-attributes as new driver options to control use of [[]] attributes in all language modes. This is the initial implementation of WG14 N2165, which is a proposal to add [[]] attributes to C2x, but also allows you to enable these attributes in C++98, or disable them in C++11 or later. 2017-10-15 15:01:42 +00:00
c11-noreturn.c
captured-statements.c
char-literal-printing.c
check-objc2-syntax-1.m
check-syntax-1.m
check_cast.c
colon-colon-parentheses.cpp Remove special error recovery for ::(id) 2016-12-09 21:10:43 +00:00
completely-empty-header-file.h
compound_literal.c
control-scope.c
crash-report.c
cuda-force-host-device-templates.cu [CUDA] Rework tests now that we emit deferred diagnostics during sema. Test-only change. 2016-10-19 00:06:49 +00:00
cuda-force-host-device.cu [CUDA] Add #pragma clang force_cuda_host_device_{begin,end} pragmas. 2016-10-08 22:15:58 +00:00
cuda-kernel-call-c++11.cu
cuda-kernel-call.cu
cxx-altivec.cpp Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
cxx-ambig-decl-expr-xfail.cpp
cxx-ambig-decl-expr.cpp Add missing direct-init / parameter-declaration-clause disambiguation when 2018-02-02 22:24:54 +00:00
cxx-ambig-init-templ.cpp
cxx-ambig-paren-expr-asan.cpp
cxx-ambig-paren-expr.cpp
cxx-attributes.cpp
cxx-bool.cpp Properly parse a postfix expression following a Boolean literal. Fixes PR34273. 2017-09-28 21:29:18 +00:00
cxx-casting.cpp Warn when a reference is bound to an empty l-value (dereferenced null pointer). 2016-05-14 17:44:14 +00:00
cxx-class-template-specialization.cpp
cxx-class.cpp
cxx-concept-declaration.cpp Revert rC330794 and some dependent tiny bug fixes 2018-04-26 00:42:40 +00:00
cxx-concepts-ambig-constraint-expr.cpp
cxx-concepts-requires-clause.cpp
cxx-condition.cpp
cxx-decl.cpp Parse A::template B as an identifier rather than as a template-id with no 2018-04-27 02:00:13 +00:00
cxx-default-args.cpp
cxx-default-delete.cpp
cxx-ext-delete-default.cpp
cxx-extern-c-array.cpp
cxx-extra-semi.cpp [Parser] (C++) Make -Wextra-semi slightly more useful 2018-03-14 19:31:34 +00:00
cxx-friend.cpp
cxx-in-c.c
cxx-invalid-for-range.cpp
cxx-invalid-function-decl.cpp
cxx-member-crash.cpp
cxx-member-init-missing-paren-crash.cpp
cxx-member-initializers.cpp
cxx-modules-interface.cppm [modules ts] Diagnose 'export' declarations outside of a module interface. 2017-04-24 23:12:30 +00:00
cxx-namespace-alias.cpp
cxx-reference.cpp
cxx-stmt.cpp
cxx-template-argument.cpp When a type-id is unexpectedly given a name, assume that the name is unrelated 2017-05-19 01:54:59 +00:00
cxx-template-decl.cpp Diagnose attempts to explicitly instantiate a template at class scope. Previously Clang would simply ignore the 'template' keyword in this case. 2017-02-09 22:14:25 +00:00
cxx-throw.cpp
cxx-typeid.cpp
cxx-typeof.cpp
cxx-undeclared-identifier.cpp
cxx-using-declaration.cpp
cxx-using-directive.cpp
cxx-variadic-func.cpp
cxx0x-ambig.cpp Fix valid-for-expr ellipses eaten as invalid decl 2017-05-20 00:21:55 +00:00
cxx0x-attributes.cpp Add a fixit for attributes incorrectly placed prior to 'struct/class/enum' keyword. 2017-12-25 22:23:20 +00:00
cxx0x-condition.cpp Add a "vexing parse" warning for ambiguity between a variable declaration and a 2017-09-29 23:57:25 +00:00
cxx0x-decl.cpp PR37189 Fix incorrect end source location and spelling for a split '>>' token. 2018-04-30 05:25:48 +00:00
cxx0x-for-range.cpp
cxx0x-in-cxx98.cpp
cxx0x-lambda-expressions.cpp
cxx0x-literal-operators.cpp
cxx0x-member-initializers.cpp
cxx0x-override-control-keywords.cpp
cxx0x-rvalue-reference.cpp
cxx1z-attributes.cpp
cxx1z-class-template-argument-deduction.cpp [C++17] Fix class template argument deduction for default constructors without an initializer 2018-03-24 04:32:11 +00:00
cxx1z-constexpr-lambdas.cpp Replace remaining user-visible mentions of C++1z with C++17. 2017-08-13 22:26:53 +00:00
cxx1z-coroutines.cpp [coroutines] Rename driver flag -fcoroutines to -fcoroutines-ts 2016-10-02 03:31:58 +00:00
cxx1z-decomposition.cpp Allow conditions to be decomposed with structured bindings 2017-12-07 07:03:15 +00:00
cxx1z-fold-expressions.cpp Fix usage of right shift operator in fold expressions 2017-10-31 20:29:22 +00:00
cxx1z-init-statement.cpp P0305R0: Semantic analysis and code generation for C++17 init-statement for 'if' and 'switch': 2016-07-14 00:11:03 +00:00
cxx1z-nested-namespace-definition.cpp Switch to gnu++14 as the default dialect. 2017-12-09 12:09:54 +00:00
cxx1z-using-declaration.cpp [c++1z] P0195R2: Support pack-expansion of using-declarations. 2016-12-20 21:35:28 +00:00
cxx2a-bitfield-init.cpp [c++2a] P0683R1: Permit default member initializers for bit-fields. 2017-08-28 00:28:14 +00:00
cxx2a-spaceship.cpp [c++20] P0515R3: Parsing support and basic AST construction for operator <=>. 2017-12-14 15:16:18 +00:00
cxx11-base-spec-attributes.cpp
cxx11-brace-initializers.cpp
cxx11-stmt-attributes.cpp Add #pragma clang fp 2017-04-04 21:18:36 +00:00
cxx11-templates.cpp
cxx11-type-specifier.cpp
cxx11-user-defined-literals.cpp
debugger-import-module.m
declarators.c
declspec-recovery.c Improve diagnostic reporting when using __declspec without enabling __declspec as a keyword. 2017-02-14 22:47:20 +00:00
declspec-supported.c Improve diagnostic reporting when using __declspec without enabling __declspec as a keyword. 2017-02-14 22:47:20 +00:00
decomposed-condition.cpp Fix codegen for structured binding binding in conditions 2018-03-17 21:01:27 +00:00
designator.c
diag-crash.c
editor-placeholder-recovery.cpp A '<' with a trigraph '#' is not a valid editor placeholder 2017-10-11 00:41:20 +00:00
empty-translation-unit.c
encode.m
enhanced-proto-1.m
eof.cpp Diagnose attempts to explicitly instantiate a template at class scope. Previously Clang would simply ignore the 'template' keyword in this case. 2017-02-09 22:14:25 +00:00
eof2.cpp
expressions.c
expressions.m
extension.c
extra-semi.cpp P0305R1: Parsing support for init-statements in 'if' and 'switch' statements. 2016-06-29 21:17:59 +00:00
for.cpp
function-decls.c
gcc-__final-compatibility.cpp [GCC] Support for __final specifier 2016-07-29 10:42:48 +00:00
goto.c
if-scope-c90.c
if-scope-c99.c
implicit-casts.c
knr_parameter_attributes.c
lambda-attr.cu [CUDA] Emit deferred diagnostics during Sema rather than during codegen. 2016-10-13 20:52:12 +00:00
method-def-in-class.m
method-prototype-1.m
missing-closing-rbrace.m
missing-end-2.m
missing-end-3.m
missing-end-4.m
missing-end.m
missing-selector-name.mm
ms-anachronism.c
ms-if-exists.c
ms-if-exists.cpp
ms-inline-asm-nested-braces.c
ms-inline-asm.c (clang part) Implement MASM-flavor intel syntax behavior for inline MS asm block. 2016-09-02 23:16:06 +00:00
ms-seh.c
ms-square-bracket-attributes.mm Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
namelookup-bug-1.c
namelookup-bug-2.c
namespace-alias-attr.cpp
namespaces.cpp
no-gnu-inline-asm.c
nullability.c Accept nullability qualifiers on array parameters. 2016-11-10 23:28:17 +00:00
objc-alias-printing.m
objc-at-directive-fixit.m [ObjC] Avoid a @try/@finally/@autoreleasepool fixit when parsing an expression 2016-12-01 12:14:38 +00:00
objc-at-implementation-eof-crash.m Add a missing '[' to the tests from r305719 2017-06-20 16:16:11 +00:00
objc-at-interface-eof-crash.m Add a missing '[' to the tests from r305719 2017-06-20 16:16:11 +00:00
objc-attr.m Allow the NS, CF, and ObjC attributes to be used with -fdouble-square-bracket-attributes. The syntactic locations for such attributes on ObjC constructs have been specifically chosen to follow the GNU attribute syntactic locations. 2018-02-12 13:38:25 +00:00
objc-available.m Warn about uses of `@available` that can't suppress the 2017-05-24 15:15:29 +00:00
objc-boxing.m
objc-category-neg-1.m
objc-class-property.m
objc-cxx-keyword-identifiers.mm [Parser][ObjC++] Improve diagnostics and recovery when C++ keywords are used 2017-04-11 15:01:53 +00:00
objc-default-ctor-init.mm Re-commit r321223, which adds a printing policy to the ASTDumper. 2017-12-21 21:42:42 +00:00
objc-diag-width.mm
objc-error-qualified-implementation.m
objc-forcollection-1.m
objc-forcollection-neg-2.m
objc-forcollection-neg.m
objc-foreach-syntax.m
objc-init.m
objc-interfaces.m
objc-messaging-1.m
objc-messaging-neg-1.m
objc-missing-impl.m
objc-property-syntax.m Fix the spelling of 'bitfield' in diagnostics to be consistently 'bit-field'. 2016-12-20 02:43:58 +00:00
objc-quirks.m
objc-recover.mm
objc-synthesized-recover.m
objc-try-catch-1.m
objc-type-printing.m
objcbridge-related-attribute.m
objcxx-at.mm
objcxx-lambda-expressions-neg.mm
objcxx0x-lambda-expressions.mm
objcxx11-attributes.mm
objcxx11-initialized-temps.mm
objcxx11-invalid-lambda.cpp [Parser] Fix TryParseLambdaIntroducer() error handling 2017-11-06 17:42:17 +00:00
objcxx11-messaging-and-lambda.mm [Parser] Fix look ahead after EOF while parsing objc message and lambdas 2016-05-31 18:46:31 +00:00
objcxx11-protocol-in-template.mm
objcxx11-user-defined-literal.mm
objcxx14-protocol-in-template.mm
offsetof.c
opencl-astype.cl [OpenCL] Add supported OpenCL extensions to target info. 2016-05-16 17:06:34 +00:00
opencl-atomics-cl20.cl [OpenCL] Extended diagnostics for atomic initialization 2017-04-05 12:47:10 +00:00
opencl-cl20.cl [OpenCL] Output OpenCL version in diagnostics. 2016-05-12 16:28:25 +00:00
opencl-cxx-virtual.cl [OpenCL] Reject virtual functions for OpenCL C++ 2018-04-23 11:23:47 +00:00
opencl-image-access.cl
opencl-kernel.cl
opencl-keywords.cl
opencl-pragma.cl Recommit r289979 [OpenCL] Allow disabling types and declarations associated with extensions 2016-12-18 05:18:55 +00:00
opencl-storage-class.cl [OpenCL] Add supported OpenCL extensions to target info. 2016-05-16 17:06:34 +00:00
opencl-unroll-hint.cl
parenthesis-balance.cpp
parmvardecl_conversion.c
parser_overflow.c
placeholder-recovery.m Add support for editor placeholders to Clang 2017-04-19 08:58:56 +00:00
pointer-arithmetic.c
pointer_promotion.c Factor out comparison handling for arithmetic types. 2018-01-08 21:12:04 +00:00
pragma-attribute-declspec.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
pragma-attribute.cpp Add #pragma clang attribute support to the availability attribute 2017-04-20 09:35:02 +00:00
pragma-fp-contract.c
pragma-fp.cpp Add #pragma clang fp 2017-04-04 21:18:36 +00:00
pragma-loop-safety.cpp Add loop pragma for Loop Distribution 2016-06-14 12:04:26 +00:00
pragma-loop.cpp Add loop pragma for Loop Distribution 2016-06-14 12:04:26 +00:00
pragma-optimize-diagnostics.cpp
pragma-options.c Recommit r308327 3rd time: Add a warning for missing 2017-07-28 14:41:21 +00:00
pragma-options.cpp Recommit r308327 3rd time: Add a warning for missing 2017-07-28 14:41:21 +00:00
pragma-pack.c Recommit r308327 3rd time: Add a warning for missing 2017-07-28 14:41:21 +00:00
pragma-unroll.cpp
pragma-visibility.c
pragma-visibility2.c
pragma-weak.c
promote_types_in_proto.c
recovery.c
recovery.cpp
recovery.m
recursion-limits.cpp
selector-1.m
skip-function-bodies.mm Expose cxx constructor and method properties through libclang and python bindings. 2016-04-27 12:48:25 +00:00
statements.c
struct-recursion.c
switch-recovery.cpp
top-level-semi-cxx0x.cpp
traditional_arg_scope.c
typeof.c
types.c
vector-cast-define.cl Reapplied r298976 [OpenCL] Added parsing for OpenCL vector types. 2017-03-29 12:09:39 +00:00
vsx.c Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
warn-cuda-compat.cu
warn-dangling-else.cpp
warn-semicolon-before-method-body.m
x64-windows-calling-convention-handling.c