llvm-project/clang/test/Parser
Richard Smith ee0ce302c5 Refactor constant evaluation of typeid(T) to track a symbolic type_info
object rather than tracking the originating expression.

This is groundwork for supporting polymorphic typeid expressions. (Note
that this somewhat regresses our support for DR1968, but it turns out
that that never actually worked anyway, at least in non-trivial cases.)

This reinstates r360974, reverted in r360988, with a fix for a
static_assert failure on 32-bit builds: force Type base class to have
8-byte alignment like the rest of Clang's AST nodes.

llvm-svn: 360995
2019-05-17 07:06:46 +00:00
..
CompoundStmtScope.c
DelayedTemplateParsing.cpp [MS] Push outermost class DeclContexts only in -fdelayed-template-parsing 2018-11-27 21:20:42 +00:00
MicrosoftExtensions.c [Parse] Let declarations follow labels in -fms-extensions mode 2016-08-01 16:39:29 +00:00
MicrosoftExtensions.cpp Refactor constant evaluation of typeid(T) to track a symbolic type_info 2019-05-17 07:06:46 +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 Parse: Don't assume tokens have a length 2015-03-19 00:10:23 +00:00
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 Make language option `GNUAsm` discoverable with `__has_extension` macro. 2019-05-13 22:11:10 +00:00
asm.cpp
atomic.c [parser] Push _Atomic locs through DeclaratorChunk. 2015-03-29 16:42:06 +00:00
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 Add support for attributes on @implementations in Objective-C 2019-04-11 17:55:30 +00:00
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_source_location.c Implement __builtin_LINE() et. al. to support source location capture. 2019-05-16 21:04:15 +00:00
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 new language mode for C2x; enable [[attribute]] support by default in C2x. 2019-05-14 12:09:55 +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 Fix REQUIRES lines on tests from r228735. Thanks Kristof for pointing out the missing commas 2015-02-11 19:45:13 +00:00
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 [hip] Fix ambiguity from `>>>` of CUDA. 2019-05-08 00:52:33 +00:00
cuda-kernel-call.cu [CUDA] Fixed parsing of optional template-argument-list. 2018-09-21 17:46:28 +00:00
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 Improve function / variable disambiguation. 2019-05-07 07:36:07 +00:00
cxx-ambig-init-templ.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
cxx-ambig-paren-expr-asan.cpp PR23057: fix use-after-free due to local token buffer in ParseCXXAmbiguousParenExpression, by Dmitry Polukhin 2016-02-04 04:22:09 +00:00
cxx-ambig-paren-expr.cpp Fix regression from r259622: the operand of an increment that is the operand of 2016-02-03 18:48:43 +00:00
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 Remember to decay arrays to pointers before checking whether the 2019-05-09 22:22:48 +00:00
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 [Concepts] Parsing of requires-clause in template-declaration 2015-06-25 00:23:39 +00:00
cxx-concepts-requires-clause.cpp [Concepts] Parsing of requires-clause in template-declaration 2015-06-25 00:23:39 +00:00
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 When we see something that looks like a constructor with a return type, only issue one error, not two. 2015-07-06 01:04:39 +00:00
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 Lit C++11 Compatibility Patch #8 2016-04-14 23:47:07 +00:00
cxx-in-c.c
cxx-invalid-for-range.cpp PR23057: Fix assertion `Val && "isa<> used on a null pointer"' on invalid for-range expression. 2016-02-02 17:33:09 +00:00
cxx-invalid-function-decl.cpp Fix infinite loop when ::new or ::delete are found in member initializer list, by Denis Zobnin 2016-01-20 05:25:51 +00:00
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 [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
cxx-stmt.cpp
cxx-template-argument.cpp Make tentative parsing to detect template-argument-lists less aggressive 2019-05-15 23:36:14 +00:00
cxx-template-decl.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
cxx-throw.cpp
cxx-typeid.cpp
cxx-typeof.cpp [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
cxx-undeclared-identifier.cpp
cxx-using-declaration.cpp
cxx-using-directive.cpp
cxx-variadic-func.cpp Revert "Improve declaration / expression disambiguation around ptr-operators, and use" 2015-02-23 22:36:28 +00:00
cxx0x-ambig.cpp Fix valid-for-expr ellipses eaten as invalid decl 2017-05-20 00:21:55 +00:00
cxx0x-attributes.cpp Introduce the _Clang scoped attribute token. 2018-11-09 17:19:45 +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 N3922: direct-list-initialization of an auto-typed variable no longer deduces a 2015-11-11 01:36:17 +00:00
cxx0x-literal-operators.cpp
cxx0x-member-initializers.cpp
cxx0x-override-control-keywords.cpp Remove obsolete FIXME. override on definitions is fine. 2015-03-03 03:31:15 +00:00
cxx0x-rvalue-reference.cpp
cxx1z-attributes.cpp Fix several accidental DOS line endings in source files 2016-01-03 15:55:40 +00:00
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 PR31978: Don't crash if CodeGen sees a top-level BindingDecl. 2018-10-26 03:21:20 +00:00
cxx1z-fold-expressions.cpp Parse a possible trailing postfix expression suffix after a fold expression 2018-07-27 21:55:12 +00:00
cxx1z-init-statement.cpp Refactor the way we handle diagnosing unused expression results. 2019-01-04 16:58:14 +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-init-statement.cpp [cxx2a] P0614R1: Support init-statements in range-based for loops. 2018-09-28 18:44:09 +00:00
cxx2a-inline-nested-namespace-definition.cpp [NFC] Fix formatting in inline nested namespace definition. 2018-11-12 19:29:26 +00:00
cxx2a-spaceship.cpp [c++20] P0515R3: Parsing support and basic AST construction for operator <=>. 2017-12-14 15:16:18 +00:00
cxx2a-template-lambdas.cpp [c++20] Implement P0428R2 - Familiar template syntax for generic lambdas 2019-05-04 10:49:46 +00:00
cxx11-base-spec-attributes.cpp
cxx11-brace-initializers.cpp Improve diagonstic for braced-init-list as operand to ?: expression. 2018-05-24 22:02:52 +00:00
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 When pretty-printing a C++11 literal operator, don't insert whitespace between 2015-10-08 00:17:59 +00:00
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 [C++] Interpret unknown identifier in parameter clause as unknown type 2019-05-05 12:15:17 +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-resulting-in-nullstmt-in-init-statement.cpp [clang][Parse] Diagnose useless null statements / empty init-statements 2018-11-20 18:59:05 +00:00
extra-semi-resulting-in-nullstmt.cpp [clang][Parse] Diagnose useless null statements / empty init-statements 2018-11-20 18:59:05 +00:00
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
gcc-for-loop-init-compatibility.c [Parse] Make -Wgcc-compat complain about for loop inits in C89 2018-06-28 21:36:00 +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
message-expr-alt-op.mm [Parser] Support alternative operator token keyword args in Objective-C++ 2018-08-21 16:47:04 +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 clang-cl: support __cdecl-on-struct anachronism 2016-03-21 16:08:49 +00:00
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 Don't crash on missing '{' after __except or __finally, PR22687. 2015-02-25 02:22:06 +00:00
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 Make language option `GNUAsm` discoverable with `__has_extension` macro. 2019-05-13 22:11:10 +00:00
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 class properties: add diagnostics for unimplemented class properties. 2016-04-12 23:01:55 +00:00
objc-cxx-keyword-identifiers.mm [ObjC] Error out when using forward-declared protocol in a @protocol 2018-08-17 22:18:08 +00:00
objc-diag-width.mm
objc-error-qualified-implementation.m Parsing, semantic analysis, and AST for Objective-C type parameters. 2015-07-07 03:57:15 +00:00
objc-forcollection-1.m
objc-forcollection-neg-2.m
objc-forcollection-neg.m
objc-foreach-syntax.m
objc-implementation-attrs.m Add support for attributes on @implementations in Objective-C 2019-04-11 17:55:30 +00:00
objc-init.m [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
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-static-assert.m Objective-C++11: Support static_assert() in @interface/@implementation ivar lists and method declarations 2019-03-14 14:18:56 +00:00
objc-static-assert.mm Fix test after r356148 2019-03-14 14:40:48 +00:00
objc-synthesized-recover.m
objc-try-catch-1.m Reapply "[Parse] Use CapturedStmt for @finally on MSVC" 2018-06-08 00:30:00 +00:00
objc-type-printing.m
objcbridge-related-attribute.m
objcxx-at.mm
objcxx-lambda-expressions-neg.mm [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
objcxx0x-lambda-expressions.mm N3922: direct-list-initialization of an auto-typed variable no longer deduces a 2015-11-11 01:36:17 +00:00
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 [Parser] Update CachedTokens while parsing ObjectiveC template argument list 2016-01-31 00:47:51 +00:00
objcxx11-user-defined-literal.mm
objcxx14-protocol-in-template.mm [Parser] Perform CachedTokens update dependent on token consumption 2016-02-05 19:36:39 +00:00
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] Restrict various keywords in OpenCL C++ mode 2018-05-09 13:16:17 +00:00
opencl-cxx-keywords.cl [OpenCL] Allow addr space spelling without __ prefix in C++. 2019-03-25 11:54:02 +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] Refine OpenCLImageAccessAttr to OpenCLAccessAttr 2016-02-26 03:13:03 +00:00
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] Restrict various keywords in OpenCL C++ mode 2018-05-09 13:16:17 +00:00
opencl-unroll-hint.cl [OpenCL] Generate metadata for opencl_unroll_hint attribute 2016-02-19 18:30:11 +00:00
parenthesis-balance.cpp
parmvardecl_conversion.c
parser_overflow.c
placeholder-recovery.m Add support for attributes on @implementations in Objective-C 2019-04-11 17:55:30 +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-context.cpp Add a __has_extension check for '#pragma clang attribute' as an external-declaration 2019-03-20 19:26:37 +00:00
pragma-attribute-declspec.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
pragma-attribute.cpp Add support for namespaces on #pragma clang attribute 2018-12-20 22:32:04 +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 Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
pragma-loop.cpp Add two new pragmas for controlling software pipelining optimizations. 2019-01-04 17:20:00 +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-pipeline.cpp Add two new pragmas for controlling software pipelining optimizations. 2019-01-04 17:20:00 +00:00
pragma-unroll-and-jam.cpp Add two new pragmas for controlling software pipelining optimizations. 2019-01-04 17:20:00 +00:00
pragma-unroll.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
pragma-visibility.c
pragma-visibility2.c
pragma-weak.c
promote_types_in_proto.c
recovery.c
recovery.cpp Revert "Improve declaration / expression disambiguation around ptr-operators, and use" 2015-02-23 22:36:28 +00:00
recovery.m
recursion-limits.cpp
selector-1.m
skip-function-bodies.h [libclang] Allow skipping function bodies in preamble only 2018-05-17 09:24:37 +00:00
skip-function-bodies.mm [libclang] Allow skipping function bodies in preamble only 2018-05-17 09:24:37 +00:00
statements.c
struct-recursion.c
switch-recovery.cpp Refactor the way we handle diagnosing unused expression results. 2019-01-04 16:58:14 +00:00
top-level-semi-cxx0x.cpp
traditional_arg_scope.c
typeof.c
types.c
using-template.cpp Consume unexpected "template" keywords after "using" 2019-05-01 23:33:49 +00:00
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 Windows ARM: ignore calling conventions as described on MSDN 2015-08-14 18:00:09 +00:00