hanchenye-llvm-project/clang/test/PCH
Stephan Tolksdorf e96f8b3774 Fix PR18806: Canonicalize the replacement type when deserializing a SubstTemplateTypeParmType
What's going on in the test case (without the patch applied) is this:

When the header is parsed, decltype(B()) is canonicalized to decltype(Y()),
because that was the first parsed equivalent decltype expression. Hence, the
TemplateSpecializationType for Id<decltype(B())> ends up with
SubstTemplateTypeParmType(T, decltype(Y())) as the AliasedType member.

When the PCH file is included and the AST reader reads Id<decltype(B())>, it
sees decltype(B()) before decltype(Y()). So, this time decltype(B()) ends up
being the canonical type for both decltypes, which leads to an assert violation
when the reader calls getSubstTemplateTypeParmType with the non-canonical
decltype(Y()) as the replacement type.

Reviewers: rsmith

Reviewed By: rsmith

CC: cfe-commits, aemerson

Differential Revision: http://llvm-reviews.chandlerc.com/D3073

llvm-svn: 204005
2014-03-15 10:23:27 +00:00
..
Inputs Objective-C: Implements gcc's -Wselector option 2013-05-30 21:48:58 +00:00
libroot/usr/include
__va_list_tag.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
arc.m Fix FileCheck --check-prefix lines. 2013-08-12 12:51:05 +00:00
asm.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
asm.h
attrs-PR8406.c
attrs.c
badpch.c Avoid crashing if a directory has no pch files. 2013-07-28 13:23:37 +00:00
blocks.c
blocks.h
builtins.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
builtins.h
captured-stmt.cpp Serialization for captured statements 2013-05-03 19:20:19 +00:00
case-insensitive-include.c [PCH] Remove the stat cache from the PCH file. 2012-10-31 20:59:50 +00:00
chain-categories.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
chain-categories2.m improve of note message and minor refactoring of my last 2013-05-15 15:27:35 +00:00
chain-class-extension.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
chain-conversion-lookup.cpp
chain-cxx.cpp Fix bitcode desynchronization when loading a PCH containing a class template 2013-05-23 01:49:11 +00:00
chain-decls.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
chain-empty-initial-namespace.cpp
chain-ext_vector.c
chain-external-defs.c
chain-friend-instantiation.cpp Fix bitcode desynchronization when loading a PCH containing a class template 2013-05-23 01:49:11 +00:00
chain-implicit-definition.cpp
chain-late-anonymous-namespace.cpp Fix 41 of the 61 tests which fail with modules enabled: we were computing and 2013-04-04 01:51:11 +00:00
chain-macro-override.c Rework the (de-)serialization of macros, as stored in 2012-10-09 23:05:51 +00:00
chain-macro.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
chain-pending-instantiations.cpp Switch to the new MingW ABI. 2013-12-12 16:07:11 +00:00
chain-predecl.h
chain-predecl.m
chain-remap-types.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
chain-selectors.m ObjectiveC. Improve on diagnostics per Jordan's feedback. 2014-01-15 00:59:25 +00:00
chain-staticvar-instantiation.cpp
chain-trivial.c
changed-files.c
check-deserializations.cpp Don't eagerly load all conversion operators when loading a class declaration 2013-08-30 04:46:40 +00:00
cmdline-include.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cmdline-include1.h
cmdline-include2.h
cocoa.m
crash-12631281.cpp Copy the decls returned by DeclContext::lookup_result to a 2012-11-13 05:07:23 +00:00
cuda-kernel-call.cu
cxx-alias-decl.cpp
cxx-alias-decl.h
cxx-chain-function-template.cpp
cxx-constexpr.cpp Fix 41 of the 61 tests which fail with modules enabled: we were computing and 2013-04-04 01:51:11 +00:00
cxx-exprs.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx-for-range.cpp
cxx-for-range.h DR1442: In a range-based for statement, namespace 'std' is not an associated 2012-10-18 17:56:02 +00:00
cxx-friends.cpp Lazily deserialize the "first' friend declaration when deserializing a class 2013-06-26 02:41:25 +00:00
cxx-friends.h Lazily deserialize the "first' friend declaration when deserializing a class 2013-06-26 02:41:25 +00:00
cxx-functions.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx-functions.h
cxx-implicit-moves.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx-member-init.cpp [PCH] Fix crash with valid code, related to anonymous field initializers. 2013-05-30 23:59:46 +00:00
cxx-method.cpp Store on the CXXRecordDecl whether the class has, or would have, a copy 2012-11-28 06:23:12 +00:00
cxx-ms-function-specialization-class-scope.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx-ms-function-specialization-class-scope.h
cxx-namespaces.cpp When setting the external visible declarations for a decl context, check 2013-06-24 01:46:41 +00:00
cxx-namespaces.h When setting the external visible declarations for a decl context, check 2013-06-24 01:46:41 +00:00
cxx-offsetof-base.cpp
cxx-offsetof-base.h
cxx-reference.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
cxx-reference.h
cxx-required-decls.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
cxx-required-decls.h
cxx-static_assert.cpp
cxx-templates.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
cxx-templates.h PCH: fix a crash caused by a circular deserialization dependency 2013-12-19 02:05:20 +00:00
cxx-trailing-return.cpp
cxx-traits.cpp Emit an extension warning when changing system header tokens 2013-12-03 06:13:01 +00:00
cxx-traits.h Make the -Wkeyword-compat diag message more accurate 2013-12-09 12:41:02 +00:00
cxx-typeid.cpp Default to use libc++ on OS X 10.9+ and iOS 7+. 2013-11-02 23:19:53 +00:00
cxx-typeid.h [PCH/test] Make test/PCH/cxx-typeid.cpp self-contained by including the relevant standard library declarations 2013-04-15 16:52:57 +00:00
cxx-using.cpp Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
cxx-using.h
cxx-variadic-templates.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx-variadic-templates.h
cxx0x-default-delete.cpp Finish implementing 'selected constructor' rules for triviality in C++11. In 2012-12-08 08:32:28 +00:00
cxx0x-delegating-ctors.cpp
cxx1y-decltype-auto.cpp Implement C++1y decltype(auto). 2013-04-26 16:15:35 +00:00
cxx1y-deduced-return-type.cpp C++1y deduced return types: when we deduce a return type for a function which 2013-05-11 05:45:24 +00:00
cxx1y-default-initializer.cpp Add another test I forgot to svn add. 2013-04-20 22:23:29 +00:00
cxx1y-init-captures.cpp Per latest drafting, switch to implementing init-captures as if by declaring 2013-09-28 04:02:39 +00:00
cxx1y-lambdas.mm Refactor out the circular reference to LambdaExpr in CXXRecordDecl. 2013-10-23 16:10:50 +00:00
cxx1y-variable-templates.cpp Implement restriction that a partial specialization must actually specialize 2013-09-24 04:49:23 +00:00
cxx11-constexpr.cpp Serialize the 'IsConstexpr' bit of VarDecls. Fixes <rdar://problem/12328814>. 2012-09-20 23:43:29 +00:00
cxx11-enum-template.cpp
cxx11-exception-spec.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx11-lambdas.mm Add compat/extension warnings for init captures. 2013-09-28 05:38:27 +00:00
cxx11-statement-attributes.cpp Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
cxx11-user-defined-literals.cpp
cxx_exprs.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx_exprs.h Fix abbreviation for CharacterLiteral in AST serialization. PR13806. 2012-09-14 00:51:36 +00:00
debug-info-limited-struct.c Test case for r18266 (serialization support for TagDecl:IsCompleteDefinitionRequired) 2013-07-15 21:33:26 +00:00
debug-info-limited-struct.h Test case for r18266 (serialization support for TagDecl:IsCompleteDefinitionRequired) 2013-07-15 21:33:26 +00:00
designated-init.c
designated-init.c.h
different-diagnostic-level.c Revert r194097: "With this patch -Wwrite-strings is still implemented with the terrible 2014-02-07 08:33:28 +00:00
empty-with-headers.c Our style for diagnostic messages is to not include a trailing dot. 2012-11-05 05:32:00 +00:00
enum.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
enum.h
exprs.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
exprs.h Add the intrinsic __builtin_convertvector 2013-09-18 03:29:45 +00:00
ext_vector.c
ext_vector.h
external-defs.c Replace 'grep foo | count 0' with 'not grep foo'. 2013-07-04 15:22:16 +00:00
external-defs.h
field-designator.c Remove duplicated -cc1 in tests 2013-12-08 18:06:52 +00:00
floating-literal.c Adjust clang for change to APFloat::toString. 2013-08-29 23:44:43 +00:00
format-strings.c
friend-template.cpp [PCH] Write out the ClassTemplateDecl::Common::InjectedClassNameType type 2012-11-06 00:35:02 +00:00
functions.c Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
functions.h
fuzzy-pch.c Teach the PCH validator to check the preprocessor options, especially 2012-10-24 23:41:50 +00:00
fuzzy-pch.h
headermap.h
headermap.m
headersearch.cpp [PCH] Change test/PCH/headersearch.cpp to use -emit-llvm-only instead of -emit-obj 2013-04-11 17:37:48 +00:00
irgen-rdar13114142.mm Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
line-directive.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
line-directive.h
local_static.cpp Fix PCH deserialization bug with local static symbols being treated as local extern. 2014-02-11 06:29:29 +00:00
local_static.h Fix PCH deserialization bug with local static symbols being treated as local extern. 2014-02-11 06:29:29 +00:00
macro-redef.c [PCH] Temporarily disable the "ambiguous macro" warning that is currently bogus with a PCH 2013-01-23 18:21:56 +00:00
macro-undef.cpp If a module A exports a macro M, and a module B imports that macro and #undef's 2014-03-01 00:08:04 +00:00
method-redecls.m
method_pool.h
method_pool.m Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
missing-file.cpp Looks like lit on Windows can't cope with parens here, and in any case, we shouldn't need them after r169441. 2012-12-05 22:59:28 +00:00
modified-header-crash.c clang/test: Suppress two tests on win32 for now, since, not sure, in r169829 to r169831. 2012-12-12 00:51:38 +00:00
modified-header-crash.h
modified-header-error.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
modified-module-dependency.m Tweak clang/test/PCH/modified-module-dependency.m for win32 hosts. 2014-01-17 07:04:17 +00:00
modified-module-dependency.module.map Improve the error message when a PCH dependency is modified 2014-01-17 00:19:09 +00:00
ms-if-exists.cpp
multiple-include-pch.c [frontend] Don't put a PCH/PTH filename into the set of includes in the preprocessor options; 2013-02-05 16:36:52 +00:00
multiple_decls.c
multiple_decls.h
namespaces.cpp
nonvisible-external-defs.c Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
nonvisible-external-defs.h
objc_container.h
objc_container.m Fix broken CHECK lines 2014-02-16 07:29:41 +00:00
objc_exprs.h
objc_exprs.m
objc_import.h When declaring an ObjC interface decl with a @compatibility_alias alias name, change the class name to the "real" one. 2013-06-18 21:26:33 +00:00
objc_import.m When declaring an ObjC interface decl with a @compatibility_alias alias name, change the class name to the "real" one. 2013-06-18 21:26:33 +00:00
objc_literals.m Adjust clang for change to APFloat::toString. 2013-08-29 23:44:43 +00:00
objc_literals.mm Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
objc_methods.h
objc_methods.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
objc_property.h
objc_property.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
objc_stmts.h
objc_stmts.m Implement AST dumper for Decls. 2012-12-20 02:09:13 +00:00
objcxx-ivar-class.h
objcxx-ivar-class.mm Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
ocl_types.cl Add OpenCL samplers as Clang builtin types and check sampler related restrictions. 2013-02-07 10:55:47 +00:00
ocl_types.h Add OpenCL samplers as Clang builtin types and check sampler related restrictions. 2013-02-07 10:55:47 +00:00
opencl-extensions.cl
pch-dir.c Fix FileCheck --check-prefix lines. 2013-08-12 12:51:05 +00:00
pch-dir.h If the precompiled header named by "-include" is actually a directory, 2012-10-23 06:18:24 +00:00
pch__VA_ARGS__.c
pch__VA_ARGS__.h
pchpch.c
pchpch1.h
pchpch2.h
pending-ids.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
pr4489.c
pr18806.cpp Fix PR18806: Canonicalize the replacement type when deserializing a SubstTemplateTypeParmType 2014-03-15 10:23:27 +00:00
pragma-diag-section.cpp Change the other -Wtautological-compare warnings to not trigger in template 2013-11-02 02:11:23 +00:00
pragma-diag.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
pragma-weak.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
pragma-weak.h
preamble.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
preprocess.c
preprocess.h
pth.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
pth.h
rdar8852495.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
rdar10830559.cpp Adds Microsoft compatiable C++ record layout code to clang. 2013-10-11 20:19:00 +00:00
reinclude.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
reinclude1.h
reinclude2.h
reloc.c Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
remap-file-from-pch.cpp Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
remap-file-from-pch.cpp.h
remap-file-from-pch.cpp.remap.h
replaced-decl.m
selector-warning.h
selector-warning.m
single-token-macro.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
source-manager-stack.c
stmts.c
stmts.h
struct.c
struct.h
subscripting-literals.m
target-options.c Serialize TargetOptions into an AST file, and make sure that we keep 2012-10-16 23:40:58 +00:00
target-options.h Serialize TargetOptions into an AST file, and make sure that we keep 2012-10-16 23:40:58 +00:00
tentative-defs.c Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
tentative-defs.h
thread-local.cpp Add triples to these tests since they're now using TLS, which isn't available on all targets. 2013-04-15 08:00:15 +00:00
thread-safety-attrs.cpp [PCH] Reading expressions from attributes should be done using ReadExpr(), 2012-11-15 01:31:39 +00:00
types.c
types.h
typo.cpp Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
typo.m Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
typo2.cpp
undefined-internal.c Preserve Sema::UndefinedInternals across PCH boundaries. Fixes 2013-01-26 00:35:08 +00:00
va_arg.c
va_arg.cpp
va_arg.h
variables.c
variables.h
verify_pch.m Fix test from r200979 on Windows 2014-02-07 19:39:50 +00:00
working-directory.cpp
working-directory.h