llvm-project/clang/test/SemaTemplate
Manman Ren c445d38776 Fix assertion failure on MaybeODRUseExprs.
In VisitNonTypeTemplateParamDecl, before SubstExpr with the default argument,
we should create a ConstantEvaluated ExpressionEvaluationContext. Without this,
it is possible to use a PotentiallyEvaluated ExpressionEvaluationContext; and
MaybeODRUseExprs will not be cleared when popping the context, causing
assertion failure.

This is similar to how we handle the context before SubstExpr with the
default argument, in SubstDefaultTemplateArgument.

Part of PR13986.
rdar://24480205

Differential Revision: http://reviews.llvm.org/D17576

llvm-svn: 261803
2016-02-24 23:05:43 +00:00
..
ackermann.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
address-spaces.cpp
alias-church-numerals.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
alias-nested-nontag.cpp PR17567: Improve diagnostic for a mistyped constructor name. If we see something 2013-10-15 00:00:26 +00:00
alias-template-template-param.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
alias-templates.cpp PR14858: Initial support for proper sizeof... handling within alias templates. 2015-09-23 21:41:42 +00:00
alignas.cpp Handle alignas(foo...) pack expansions. 2013-02-22 08:32:16 +00:00
ambiguous-ovl-print.cpp
anonymous-union.cpp PR6037 2015-01-19 01:44:02 +00:00
array-to-pointer-decay.cpp [analyzer] Fix a crash that occurs when processing an rvalue array. 2013-06-06 00:19:36 +00:00
atomics.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
attributes.cpp There is no such thing as __attribute__((align)); that's a __declspec attribute. Fixing these test cases to use the proper spelling for their syntax. 2014-01-13 21:30:03 +00:00
canonical-expr-type-0x.cpp
canonical-expr-type.cpp Preserve numeric literal suffixes during type canonicalization. 2014-11-20 03:37:32 +00:00
class-template-ctor-initializer.cpp [Lit Test] Updated 34 Lit tests to be C++11 compatible. 2015-11-17 20:25:05 +00:00
class-template-decl.cpp Test for diagnostic quality improvement in r256049. 2015-12-19 03:12:14 +00:00
class-template-id-2.cpp
class-template-id.cpp PR10405 - Desugar FunctionType and TemplateSpecializationType if any type that appears inside needs to be desugared. 2015-07-16 01:06:17 +00:00
class-template-spec.cpp PR16519, PR18009: When checking a partial specialization for uses of its own 2014-02-09 00:54:43 +00:00
constexpr-instantiate.cpp Tweak diagnostic wording for init list narrowing 2014-05-17 01:13:18 +00:00
constructor-template.cpp [Lit Test] Updated 34 Lit tests to be C++11 compatible. 2015-11-17 20:25:05 +00:00
copy-ctor-assign.cpp
crash-8204126.cpp
crash-10438657.cpp Ensure all TypoExprs are diagnosed by the tree transform. 2014-11-20 22:06:44 +00:00
crash-unparsed-exception.cpp [SemaTemplate] Detect instantiation of unparsed exceptions. 2015-07-25 01:19:32 +00:00
crash.cpp PR17730: Add test that we don't crash on this testcase. (The bug is already fixed.) 2014-10-28 17:00:19 +00:00
current-instantiation.cpp When rebuilding a DependentScopeDeclRefExpr, perform a lookup into the scope 2012-10-23 19:56:01 +00:00
cxx1z-fold-expressions.cpp Fix parsing of fold-expressions within a cast expression. We parse the 2014-11-11 03:28:50 +00:00
deduction-crash.cpp Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
deduction.cpp Implement [temp.deduct.type]p6: if the nested-name-specifier of a type is 2015-12-30 20:56:05 +00:00
default-arguments-cxx0x.cpp Fix assertion failure on MaybeODRUseExprs. 2016-02-24 23:05:43 +00:00
default-arguments.cpp Fix PR26134: When substituting into default template arguments, keep CurContext unchanged. 2016-01-19 03:58:55 +00:00
default-expr-arguments-2.cpp Implement AST dumper for Decls. 2012-12-20 02:09:13 +00:00
default-expr-arguments.cpp [Lit Test] Updated 34 Lit tests to be C++11 compatible. 2015-11-17 20:25:05 +00:00
delegating-constructors.cpp
dependent-base-classes.cpp
dependent-base-member-init.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
dependent-class-member-operator.cpp
dependent-expr.cpp PR18152: When computing the semantic form for an initializer list, keep track 2013-12-06 01:27:24 +00:00
dependent-names-no-std.cpp
dependent-names.cpp Weaken an assertion that isn't true for invalid input. 2015-01-30 01:48:49 +00:00
dependent-sized_array.cpp PR13788: Don't perform checks on the initializer of a dependently-typed 2012-11-09 23:03:14 +00:00
dependent-template-recover.cpp
dependent-type-identity.cpp Improve the error message for assigning to read-only variables. 2015-04-11 01:53:13 +00:00
derived.cpp [Sema] Be consistent about diagnostic wording: always use "cannot". 2015-08-15 15:23:14 +00:00
destructor-template.cpp Sema: Recover when a function template is in an extern "C" block 2015-01-15 07:04:38 +00:00
elaborated-type-specifier.cpp
enum-argument.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
enum-bool.cpp Use APSInt::isSameValue instead of operator== in a place where two APSInt's 2015-01-09 00:58:16 +00:00
enum-forward.cpp
example-typelist.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
exception-spec-crash.cpp Fix missed exception spec checks and crashes 2013-10-18 05:54:19 +00:00
explicit-instantiation.cpp Don't drop attributes when checking explicit specializations. 2014-12-19 23:52:45 +00:00
explicit-specialization-member.cpp Fix crash-on-invalid and name lookup when recovering from ~X::X() typo. 2015-01-15 00:48:52 +00:00
ext-vector-type.cpp
ext_ms_template_spec.cpp [MSVC] Explicit specializations can be declared in any namespace (fix for http://llvm.org/PR13738) 2015-03-20 07:21:46 +00:00
extension-sfinae.cpp Extra test for r194444. 2013-11-12 02:42:08 +00:00
extern-templates.cpp
fibonacci.cpp
friend-template.cpp Issue a diagnostic if we see a templated friend declaration that we do not 2013-11-08 18:59:56 +00:00
friend.cpp Use the most recent previous decl to check if inline is added after a definition 2015-04-08 00:04:47 +00:00
fun-template-def.cpp [Lit Test] Updated 34 Lit tests to be C++11 compatible. 2015-11-17 20:25:05 +00:00
function-template-specialization-noreturn.cpp Don't drop attributes when checking explicit specializations. 2014-12-19 23:52:45 +00:00
function-template-specialization.cpp FIXME fix: improving diagnostics for template arguments deduction of class templates and explicit specializations 2013-07-19 23:00:19 +00:00
implicit-instantiation-1.cpp
inject-templated-friend-post.cpp Sema: Implement DR317 2014-03-30 06:44:54 +00:00
inject-templated-friend.cpp Sema: Implement DR317 2014-03-30 06:44:54 +00:00
injected-class-name.cpp DR1909: Diagnose all invalid cases of a class member sharing its name with the class. 2015-07-06 01:45:27 +00:00
instantiate-anonymous-union.cpp
instantiate-array.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
instantiate-attr.cpp Add missing check to warning for packed attribute. PR14259. 2012-11-07 00:35:20 +00:00
instantiate-c99.cpp
instantiate-call.cpp
instantiate-case.cpp
instantiate-cast.cpp
instantiate-clang.cpp
instantiate-complete.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
instantiate-decl-dtor.cpp
instantiate-decl-init.cpp PR20346: fix aggregate initialization / template instantiation bug: 2014-07-17 23:12:06 +00:00
instantiate-declref-ice.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
instantiate-declref.cpp
instantiate-deeply.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
instantiate-default-assignment-operator.cpp Fix/Improve SourceRange of explicitly defaulted members 2014-06-20 08:44:22 +00:00
instantiate-dependent-nested-name.cpp Revert "Don't build invalid AST nodes during recovery" 2014-12-18 18:17:42 +00:00
instantiate-elab-type-specifier.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
instantiate-enum-2.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
instantiate-enum.cpp Do not add enums to prototype scope in C++ modes. 2014-02-22 03:05:49 +00:00
instantiate-exception-spec-cxx11.cpp Instantiate function declarations in instantiated functions. 2015-08-23 10:22:28 +00:00
instantiate-exception-spec.cpp Instantiate exception specifications when instantiating function types (other 2014-11-12 02:00:47 +00:00
instantiate-explicitly-after-fatal.cpp Fix crash-on-invalid bug in template instantiation. 2015-06-26 02:15:04 +00:00
instantiate-expr-1.cpp Fix tests Clang::Sema/statements.c and Clang::SemaTemplate/instantiate-expr-1.cpp when AArch64 is the default target. 2014-08-04 10:13:09 +00:00
instantiate-expr-2.cpp
instantiate-expr-3.cpp Support __builtin_ms_va_list. 2015-09-17 20:55:33 +00:00
instantiate-expr-4.cpp
instantiate-expr-5.cpp Fix crash-on-invalid: only use TransformAddressOfOperand when transforming the 2013-05-21 23:29:46 +00:00
instantiate-expr-6.cpp Revert r107690 (for PR7417) and add a testcase that it breaks. The approach of 2015-10-05 20:05:21 +00:00
instantiate-expr-basic.cpp
instantiate-field.cpp
instantiate-friend-class.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
instantiate-function-1.cpp
instantiate-function-1.mm
instantiate-function-2.cpp [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
instantiate-function-params.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiate-init.cpp Handle use of default member initializers before end of outermost class 2014-11-17 23:36:45 +00:00
instantiate-invalid.cpp
instantiate-local-class.cpp Correctly type-check the default arguments of local functions 2015-12-11 01:56:36 +00:00
instantiate-member-class.cpp Implement DR85: Redeclaration of member is forbidden 2013-06-11 03:51:23 +00:00
instantiate-member-expr.cpp Unrevert r166268, reverted in r166272, with a fix for the issue which Nick 2012-10-21 03:28:35 +00:00
instantiate-member-initializers.cpp Fix regression in r170489: when instantiating a direct initializer which is a 2012-12-21 08:13:35 +00:00
instantiate-member-pointers.cpp Sema: Enforce C++11 pointer-to-member template arguments should rules 2013-12-10 00:40:58 +00:00
instantiate-member-template.cpp
instantiate-method.cpp Sema: RecordDecl shouldn't have a FunctionDecl as a Decl 2015-01-09 07:36:13 +00:00
instantiate-non-dependent-types.cpp Update error message text. 2015-01-18 19:05:48 +00:00
instantiate-non-type-template-parameter.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
instantiate-objc-1.mm
instantiate-overload-candidates.cpp Implement DR61: Address of ambiguous bound methods should be disallowed 2013-06-11 03:56:29 +00:00
instantiate-overloaded-arrow.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
instantiate-partial-spec.cpp If a partial specialization of a member template is declared within a class 2013-09-26 03:49:48 +00:00
instantiate-scope.cpp Don't forget to substitute into the qualifier when instantiating the definition 2014-10-17 20:37:29 +00:00
instantiate-self.cpp
instantiate-sizeof.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
instantiate-static-var.cpp [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
instantiate-subscript.cpp
instantiate-template-template-parm.cpp
instantiate-try-catch.cpp
instantiate-type.cpp <rdar://problem/13094134> Don't try to wire up typedef names for invalid anonymous tag declarations encountered during template instantiation. 2013-03-08 22:15:15 +00:00
instantiate-typedef.cpp
instantiate-typeof.cpp [C++11] Support for capturing of variable length arrays in lambda expression. 2014-08-28 04:28:19 +00:00
instantiate-using-decl.cpp Re-land r250592 without rejecting field refs in unevaluated contexts 2015-10-20 21:04:13 +00:00
instantiate-var-template.cpp PR24483: Delete some dead/incorrect code that triggered assertions. 2015-08-20 20:45:25 +00:00
instantiation-backtrace.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiation-default-1.cpp
instantiation-default-2.cpp
instantiation-default-3.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
instantiation-depth-defarg.cpp PR13368: Halve the instantiation depth of this test again. Apparently, FreeBSD 2012-07-15 23:29:50 +00:00
instantiation-depth-exception-spec.cpp Fix bug which sometimes resulted in further diagnostics being produced after a 2012-09-22 00:53:56 +00:00
instantiation-depth-subst-2.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiation-depth-subst.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiation-depth.cpp Final piece of core issue 1330: delay computing the exception specification of 2012-07-27 04:22:15 +00:00
instantiation-order.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
issue150.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
lookup-dependent-bases.cpp Limit our MSVC compat hack for nested names from dependent bases 2014-08-14 23:34:52 +00:00
member-access-ambig.cpp PR41111, PR5925, PR13210: Teach tentative parsing to annotate identifiers and 2012-08-18 00:55:03 +00:00
member-access-expr.cpp
member-function-template.cpp
member-inclass-init-value-dependent.cpp
member-initializers.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
member-template-access-expr.cpp
metafun-apply.cpp
missing-class-keyword-crash.cpp
ms-class-specialization-class-scope.cpp PR18232: implement instantiation for class-scope explicit specializations of 2013-12-14 01:04:22 +00:00
ms-class-specialization-duplicate.cpp Permit duplicate explicit class instantiations if MSVCCompat is enabled 2014-05-09 09:52:13 +00:00
ms-delayed-default-template-args.cpp Delay lookup of simple default template arguments under -fms-compatibility 2014-06-06 22:36:36 +00:00
ms-function-specialization-class-scope.cpp Add a testcase and a FIXME for an accepts-invalid. 2013-12-13 22:28:48 +00:00
ms-if-exists.cpp Normalize line endings 2014-03-02 18:46:05 +00:00
ms-lookup-template-base-classes.cpp [modules] Don't try to use the definition of a class if 2015-12-18 22:19:11 +00:00
ms-sizeof-missing-typename.cpp Recover from missing 'typename' in sizeof(T::InnerType) 2014-06-12 23:03:48 +00:00
nested-incomplete-class.cpp
nested-linkage.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
nested-name-spec-template.cpp [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
nested-template.cpp Add test. 2013-06-20 20:56:57 +00:00
operator-function-id-template.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
operator-template.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
overload-candidates.cpp [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
overload-uneval.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
overloaded-functions.cpp When checking the template argument list, use a copy of that list for changes 2015-01-24 02:48:32 +00:00
pack-deduction.cpp PR14615: add (passing) tests for this already-fixed bug 2014-07-22 23:56:53 +00:00
partial-spec-instantiate.cpp [Lit Test] Updated 20 Lit tests to be C++11 compatible. 2015-12-10 01:07:17 +00:00
pragma-ms_struct.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
qualified-id.cpp
qualified-names-diag.cpp [Lit Test] Updated 34 Lit tests to be C++11 compatible. 2015-11-17 20:25:05 +00:00
rdar9173693.cpp Revert "Improve declaration / expression disambiguation around ptr-operators, and use" 2015-02-23 22:36:28 +00:00
recovery-crash.cpp [Sema] Avoid crashing during this-> insertion recovery 2015-09-30 17:30:48 +00:00
recursive-template-instantiation.cpp Improve 'failed template argument deduction' diagnostic for the case where we 2013-01-31 05:19:49 +00:00
resolve-single-template-id.cpp Move the warning about unused relational comparison from -Wunused-value to 2014-03-11 03:11:08 +00:00
self-comparison.cpp
temp.cpp
temp_arg.cpp Add quotation marks to template names in diagnostics. 2013-03-05 06:21:38 +00:00
temp_arg_enum_printing.cpp Pretty print support for template arg enum constants 2014-12-13 04:31:07 +00:00
temp_arg_nontype.cpp Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
temp_arg_nontype_cxx1z.cpp PR24921: checking explicitly-specified template arguments when matching a 2015-10-02 00:49:37 +00:00
temp_arg_nontype_cxx11.cpp Take the canonical type when forming a canonical template argument with 2014-07-24 02:27:39 +00:00
temp_arg_template.cpp Fix assert hit when tree-transforming template template parameter packs. 2016-01-11 11:39:00 +00:00
temp_arg_type.cpp Add quotation marks to template names in diagnostics. 2013-03-05 06:21:38 +00:00
temp_class_order.cpp
temp_class_spec.cpp
temp_class_spec_blocks.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
temp_class_spec_neg.cpp [Lit Test] Updated 26 Lit tests to be C++11 compatible. 2015-11-11 19:34:47 +00:00
temp_explicit.cpp
temp_explicit_cxx0x.cpp
temp_func_order.cpp
template-class-traits.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
template-decl-fail.cpp
template-id-expr.cpp
template-id-printing.cpp
typename-specifier-2.cpp
typename-specifier-3.cpp
typename-specifier-4.cpp [Lit Test] Updated 26 Lit tests to be C++11 compatible. 2015-11-11 19:34:47 +00:00
typename-specifier.cpp [Lit Test] Updated 26 Lit tests to be C++11 compatible. 2015-11-11 19:34:47 +00:00
typo-dependent-name.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
unresolved-construct.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
unused-variables.cpp
value-dependent-null-pointer-constant.cpp
virtual-member-functions.cpp Don't let virtual calls and dynamic casts call Sema::MarkVTableUsed(). 2015-01-26 06:23:36 +00:00