llvm-project/clang/test/SemaTemplate
Richard Smith 4309b66710 Don't suppress instantiation of definitions for variables subject to explicit
instantiation declarations if they are usable from constant expressions.

We are permitted to instantiate in these cases, and required to do so in order
to have an initializer available for use within constant evaluation.

llvm-svn: 316136
2017-10-18 22:45:01 +00:00
..
ackermann.cpp
address-spaces.cpp
address_space-dependent.cpp [OpenCL] Add LangAS::opencl_private to represent private address space in AST 2017-10-13 03:37:48 +00:00
alias-church-numerals.cpp
alias-nested-nontag.cpp
alias-template-template-param.cpp
alias-templates.cpp Give more accurate descriptions of what kind of template we found in diagnostics. 2017-01-14 02:19:59 +00:00
alignas.cpp
ambiguous-ovl-print.cpp
anonymous-union.cpp PR6037 2015-01-19 01:44:02 +00:00
array-redeclaration.cpp [Sema] Don't diagnose an array type mismatch when the new or previous 2016-09-01 01:03:21 +00:00
array-to-pointer-decay.cpp
atomics.cpp
attributes.cpp
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 Add a note that points to the linkage specifier for the C++ linkage errors 2016-11-02 15:46:34 +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 Partial revert of r290511. 2017-01-17 02:14:37 +00:00
constexpr-instantiate.cpp Customize the SFINAE diagnostics for enable_if to provide the failed condition. 2017-07-05 20:20:14 +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 [Sema] Prevent InstantiateClass from checking unrelated exception specs. 2017-09-21 19:54:12 +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
cxx1z-decomposition.cpp P0217R3: template instantiation support for decomposition declarations. 2016-08-12 01:55:21 +00:00
cxx1z-fold-expressions.cpp Implement P0036R0: remove support for empty unary folds of +, *, |, &. 2016-03-04 21:27:21 +00:00
cxx1z-using-declaration.cpp PR31606: Generalize our tentative DR resolution for inheriting copy/move 2017-01-13 20:46:54 +00:00
cxx17-inline-variables.cpp Don't suppress instantiation of definitions for variables subject to explicit 2017-10-18 22:45:01 +00:00
deduction-crash.cpp Fix assertion failure if we can't deduce a template argument for a variable 2017-06-02 22:53:06 +00:00
deduction.cpp PR33318: Add missing full-expression checking to static_assert expression. 2017-06-06 01:34:24 +00:00
default-arguments-cxx0x.cpp [Sema] Prevent InstantiateClass from checking unrelated exception specs. 2017-09-21 19:54:12 +00:00
default-arguments.cpp When instantiating a friend function template, don't forget to inherit default template arguments from other declarations. 2017-05-10 00:01:13 +00:00
default-expr-arguments-2.cpp
default-expr-arguments-3.cpp Extend -ast-dump for CXXRecordDecl to dump the flags from the DefinitionData. 2017-09-22 00:11:15 +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
dependent-class-member-operator.cpp
dependent-expr.cpp
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
dependent-template-recover.cpp Improve error recovery for missing 'template' keyword in contexts where the 2017-06-07 00:29:44 +00:00
dependent-type-identity.cpp Fix crash if StmtProfile finds a type-dependent member access for which we have 2016-10-24 18:47:04 +00:00
derived.cpp [Sema] Be consistent about diagnostic wording: always use "cannot". 2015-08-15 15:23:14 +00:00
destructor-template.cpp Fix PR 33189: Clang assertion on template destructor declaration 2017-06-30 22:43:54 +00:00
elaborated-type-specifier.cpp
enum-argument.cpp
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
exception-spec-crash.cpp
explicit-instantiation.cpp Improve diagnosis of unknown template name. 2017-05-10 21:32:16 +00:00
explicit-specialization-member.cpp Don't mark a member as a member specialization until we know we're keeping the specialization. 2017-05-09 23:02:10 +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
extern-templates.cpp Don't suppress instantiation of definitions for variables subject to explicit 2017-10-18 22:45:01 +00:00
fibonacci.cpp
friend-template.cpp Revert "Address http://bugs.llvm.org/pr30994 so that a non-friend can properly replace a friend, and a visible friend can properly replace an invisible friend but not vice verse, and definitions are not replaced. This fixes the two FIXME in SemaTemplate/friend-template.cpp." 2017-04-17 20:57:40 +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
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 PR13403 (+duplicates): implement C++ DR1310 (http://wg21.link/cwg1310). 2017-01-19 21:00:13 +00:00
instantiate-anonymous-union.cpp
instantiate-array.cpp
instantiate-attr.cpp
instantiate-c99.cpp [Test] Make Lit tests C++11 compatible #9 2017-02-24 22:22:05 +00:00
instantiate-call.cpp
instantiate-case.cpp
instantiate-cast.cpp Lit C++11 Compatibility Patch #7 2016-04-13 20:00:45 +00:00
instantiate-clang.cpp
instantiate-complete.cpp
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
instantiate-declref.cpp
instantiate-deeply.cpp
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
instantiate-enum-2.cpp
instantiate-enum.cpp PR13403 (+duplicates): implement C++ DR1310 (http://wg21.link/cwg1310). 2017-01-19 21:00:13 +00:00
instantiate-exception-spec-cxx11.cpp DR1330: instantiate exception-specifications when "needed". We previously did 2016-10-18 23:39:12 +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 Lit C++11 Compatibility Patch #7 2016-04-13 20:00:45 +00:00
instantiate-expr-5.cpp
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
instantiate-friend-function.cpp Regression test for PR10856 2017-07-26 14:58:55 +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
instantiate-init.cpp PR23135: Don't instantiate constexpr functions referenced in unevaluated operands where possible. 2017-01-07 00:48:55 +00:00
instantiate-invalid.cpp
instantiate-local-class.cpp Only instantiate members of nested classes in local classes once, rather than once per enclosing class. 2017-01-04 23:45:01 +00:00
instantiate-member-class.cpp PR13403 (+duplicates): implement C++ DR1310 (http://wg21.link/cwg1310). 2017-01-19 21:00:13 +00:00
instantiate-member-expr.cpp
instantiate-member-initializers.cpp
instantiate-member-pointers.cpp
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
instantiate-objc-1.mm
instantiate-overload-candidates.cpp
instantiate-overloaded-arrow.cpp
instantiate-partial-spec.cpp
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 PR12298 et al: don't recursively instantiate a template specialization from 2016-08-31 02:15:21 +00:00
instantiate-sizeof.cpp Add missing triple to instantiate-sizeof.cpp test 2016-03-11 19:17:53 +00:00
instantiate-static-var.cpp Don't warn about runtime behavior problems in variable initializers that we 2017-09-23 18:27:11 +00:00
instantiate-subscript.cpp
instantiate-template-template-parm.cpp
instantiate-try-catch.cpp
instantiate-type.cpp
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
instantiation-default-1.cpp When producing a name of a partial specialization in a diagnostic, use the 2016-12-24 04:09:05 +00:00
instantiation-default-2.cpp
instantiation-default-3.cpp
instantiation-depth-defarg.cpp
instantiation-depth-default.cpp Disable clang/test/SemaTemplate/instantiation-depth-default.cpp temporarily for targeting mingw32. It crashes. Investigating. 2016-08-30 15:38:18 +00:00
instantiation-depth-exception-spec.cpp PR12298 et al: don't recursively instantiate a template specialization from 2016-08-31 02:15:21 +00:00
instantiation-depth-subst-2.cpp
instantiation-depth-subst.cpp
instantiation-depth.cpp PR12298 et al: don't recursively instantiate a template specialization from 2016-08-31 02:15:21 +00:00
instantiation-order.cpp
issue150.cpp
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 Print nested name specifiers for typedefs and type aliases 2017-03-10 15:04:58 +00:00
member-access-expr.cpp Lit C++11 Compatibility Patch #8 2016-04-14 23:47:07 +00:00
member-function-template.cpp
member-inclass-init-value-dependent.cpp
member-initializers.cpp
member-template-access-expr.cpp
metafun-apply.cpp
missing-class-keyword-crash.cpp
ms-class-specialization-class-scope.cpp When producing a name of a partial specialization in a diagnostic, use the 2016-12-24 04:09:05 +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 [ms] Allow more unqualified lookup of types in dependent base classes 2016-05-24 21:23:54 +00:00
ms-function-specialization-class-scope.cpp [-fms-extensions] Don't crash on explicit class-scope specializations & default arguments 2016-06-10 20:21:15 +00:00
ms-if-exists.cpp Normalize line endings 2014-03-02 18:46:05 +00:00
ms-lookup-template-base-classes.cpp Improve diagnosis of unknown template name. 2017-05-10 21:32:16 +00:00
ms-sizeof-missing-typename.cpp PR13403 (+duplicates): implement C++ DR1310 (http://wg21.link/cwg1310). 2017-01-19 21:00:13 +00:00
nested-incomplete-class.cpp
nested-linkage.cpp
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
operator-function-id-template.cpp
operator-template.cpp
overload-candidates.cpp Fix test case in pre-C++11 mode; address Aaron Ballman's code review. 2017-07-05 21:12:37 +00:00
overload-uneval.cpp
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-order.cpp Revert r295277 to fix buildbot. 2017-02-16 04:22:56 +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
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 Lit C++11 Compatibility Patch #8 2016-04-14 23:47:07 +00:00
recursive-template-instantiation.cpp
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 PR0091R3: Implement parsing support for using templates as types. 2017-01-26 20:40:47 +00:00
temp_arg_enum_printing.cpp Make output of -ast-print a valid C++ code. 2016-11-10 08:49:37 +00:00
temp_arg_nontype.cpp Revert r295277 to fix buildbot. 2017-02-16 04:22:56 +00:00
temp_arg_nontype_cxx1z.cpp Revert r295277 to fix buildbot. 2017-02-16 04:22:56 +00:00
temp_arg_nontype_cxx11.cpp Replace remaining user-visible mentions of C++1z with C++17. 2017-08-13 22:26:53 +00:00
temp_arg_template.cpp PR10147: When substituting a template template argument, substitute in the most 2017-08-29 22:14:43 +00:00
temp_arg_template_cxx1z.cpp PR32185: Revert r291512 and add a testcase for PR32185. 2017-04-13 21:37:24 +00:00
temp_arg_type.cpp [c++1z] Support deducing B in noexcept(B). 2017-06-07 21:46:22 +00:00
temp_class_order.cpp
temp_class_spec.cpp
temp_class_spec_blocks.cpp
temp_class_spec_neg.cpp DR1315: a non-type template argument in a partial specialization is permitted 2016-12-28 02:37:25 +00:00
temp_explicit.cpp [Test] Make Lit tests C++11 compatible #9 2017-02-24 22:22:05 +00:00
temp_explicit_cxx0x.cpp
temp_func_order.cpp
template-class-traits.cpp
template-decl-fail.cpp
template-id-expr.cpp Recently a change was made to this test in r294639 which fails when the 2017-02-24 01:25:02 +00:00
template-id-printing.cpp
typename-specifier-2.cpp
typename-specifier-3.cpp PR0091R3: Implement parsing support for using templates as types. 2017-01-26 20:40:47 +00:00
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 Print nested name specifiers for typedefs and type aliases 2017-03-10 15:04:58 +00:00
typo-dependent-name.cpp
typo-template-name.cpp When we see a '<' operator, check whether it's a probable typo for a template-id. 2017-05-10 02:30:28 +00:00
undefined-template.cpp -Wunused-func-template: do not warn on non-template function declarations that 2017-01-28 01:50:33 +00:00
unresolved-construct.cpp
unused-variables.cpp
value-dependent-null-pointer-constant.cpp [Test] Make Lit tests C++11 compatible #9 2017-02-24 22:22:05 +00:00
virtual-member-functions.cpp [Lit Test] Make tests C++11 compatible - Microsoft diagnostics 2017-02-06 19:32:38 +00:00