llvm-project/clang/test/SemaTemplate
Hubert Tong 35ecc7fe49 [clang][Sema] Fix PR47676: Handle dependent AltiVec C-style cast
Fix premature decision in the presence of type-dependent expression
operands on whether AltiVec vector initializations from single
expressions are "splat" operations.

Verify that the instantiation is able to determine the correct cast
semantics for both the scalar type and the vector type case.

Note that, because the change only affects the single-expression
case (and the target type is an AltiVec-style vector type), the
replacement of a parenthesized list with a parenthesized expression
does not change the semantics of the program in a program-observable
manner.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D88526
2020-10-01 15:57:01 -04:00
..
ackermann.cpp
address-spaces.cpp
address_space-dependent.cpp [OpenCL] Add global_device and global_host address spaces 2020-07-29 17:24:53 +03:00
alias-church-numerals.cpp
alias-nested-nontag.cpp
alias-template-nondependent.cpp PR46377: Fix dependence calculation for function types and typedef 2020-07-28 13:23:13 -07:00
alias-template-template-param.cpp
alias-templates.cpp When performing a substitution into a dependent alias template, mark the 2020-06-23 14:43:04 -07:00
alignas.cpp PR35028: Retain duplicate alignas attributes in template instantiation. 2018-01-04 01:02:18 +00:00
ambiguous-ovl-print.cpp
anonymous-union.cpp
argument-dependent-lookup.cpp [NFC] Explicitly add -std=c++14 option to tests that rely on the C++14 default 2019-02-05 12:05:53 +00:00
array-redeclaration.cpp Don't assert if we find a dependently-typed variable in the 2020-06-16 19:41:13 -07:00
array-to-pointer-decay.cpp
atomics.cpp
attributes.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
canonical-expr-type-0x.cpp
canonical-expr-type.cpp
class-template-ctor-initializer.cpp
class-template-decl.cpp PR46729: Reject explicit and partial specializations with C linkage. 2020-07-29 17:44:32 -07:00
class-template-id-2.cpp
class-template-id.cpp
class-template-spec.cpp Implement C++ DR727, which permits explicit specializations at class scope. 2018-03-16 13:36:56 +00:00
concepts.cpp PR47025, PR47043: Diagnose unexpanded parameter packs in concept 2020-08-07 18:19:39 -07:00
constexpr-instantiate.cpp Customize the SFINAE diagnostics for enable_if to provide the failed condition. 2017-07-05 20:20:14 +00:00
constraints.cpp PR45589: Properly decompose overloaded `&&` and `||` operators in 2020-05-12 13:45:45 -07:00
constructor-template.cpp
copy-ctor-assign.cpp
crash-8204126.cpp
crash-10438657.cpp
crash-unparsed-exception.cpp [Sema] Prevent InstantiateClass from checking unrelated exception specs. 2017-09-21 19:54:12 +00:00
crash.cpp
ctad.cpp PR41427: This has apparently been fixed already, just add a regression 2019-04-24 23:45:56 +00:00
current-instantiation.cpp
cxx1z-decomposition.cpp
cxx1z-fold-expressions.cpp PR30738: Implement two-phase name lookup for fold-expressions. 2020-08-06 16:56:39 -07:00
cxx1z-using-declaration.cpp When diagnosing an ambiguity, only note the candidates that contribute 2019-10-24 14:58:29 -07:00
cxx2a-constraint-caching.cpp [Concepts] Deprecate -fconcepts-ts, enable Concepts under -std=c++2a 2020-01-24 00:48:59 +02:00
cxx2a-constraint-exprs.cpp [Concepts] Transform constraints of non-template functions to ConstantEvaluated 2020-01-25 23:00:24 +02:00
cxx17-inline-variables.cpp In C++17, when instantiating an out-of-line definition of an inline static data 2018-01-10 23:08:26 +00:00
deduction-crash.cpp [Sema] Fix an assert-on-invalid by avoiding function template specialisation 2017-10-27 18:13:31 +00:00
deduction-guide.cpp When performing a substitution into a dependent alias template, mark the 2020-06-23 14:43:04 -07:00
deduction.cpp Fix merging of two arity-only pack deductions. 2020-07-14 10:02:07 -07:00
default-arguments-cxx0x.cpp PR46648: Do not eagerly instantiate default arguments for a generic 2020-07-09 17:24:20 -07:00
default-arguments.cpp Mark declarations as referenced by a default argument in a 2019-06-11 23:51:46 +00:00
default-expr-arguments-2.cpp Re-commit r321223, which adds a printing policy to the ASTDumper. 2017-12-21 21:42:42 +00:00
default-expr-arguments-3.cpp Re-commit r321223, which adds a printing policy to the ASTDumper. 2017-12-21 21:42:42 +00:00
default-expr-arguments.cpp
defaulted.cpp Fix rejects-valid when referencing an implicit operator== from within a 2020-06-22 20:19:20 -07:00
delegating-constructors.cpp
dependent-base-classes.cpp Form invalid template-id annotations when parsing a construct that is 2020-03-27 20:27:42 -07:00
dependent-base-member-init.cpp
dependent-class-member-operator.cpp
dependent-expr.cpp PR46648: Do not eagerly instantiate default arguments for a generic 2020-07-09 17:24:20 -07:00
dependent-names-no-std.cpp
dependent-names.cpp [AST][RecoveryAST] Preserve the type by default for recovery expression. 2020-08-24 14:28:28 +02:00
dependent-sized_array.cpp
dependent-template-recover.cpp Make tentative parsing to detect template-argument-lists less aggressive 2019-05-15 23:36:14 +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
dependent-typos-recovery.cpp [Parser] Avoid spurious 'missing template' error in presence of typos. 2020-03-19 16:15:27 +01:00
derived.cpp
destructor-template.cpp [Sema] Fixes a crash with a templated destructor 2019-11-07 21:22:27 +01:00
elaborated-type-specifier.cpp
enum-argument.cpp Fix type-dependency of bitfields in templates 2020-02-12 13:31:41 -08:00
enum-bool.cpp
enum-forward.cpp
example-typelist.cpp
exception-spec-crash.cpp P1286R2: Remove restriction that the exception specification of a 2019-05-06 05:04:56 +00:00
explicit-instantiation.cpp Switch to gnu++14 as the default dialect. 2017-12-09 12:09:54 +00:00
explicit-specialization-member.cpp CWG issue 727: Fix numerous bugs in support for class-scope explicit 2019-05-03 23:51:38 +00:00
ext-vector-type.cpp
ext_ms_template_spec.cpp Implement C++ DR727, which permits explicit specializations at class scope. 2018-03-16 13:36:56 +00:00
extension-sfinae.cpp
extern-templates.cpp [Sema][C++] Propagate conversion kind to specialize the diagnostics 2020-02-25 16:05:37 +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 PR37556: Don't diagnose conflicts between instantiated unqualified 2020-08-24 23:26:15 -07:00
fun-template-def.cpp
function-pointer-qualifier.cpp [Sema] Do not match function type with const T in template argument deduction 2018-05-03 01:43:23 +00:00
function-template-specialization-noreturn.cpp
function-template-specialization.cpp Implement C++ DR727, which permits explicit specializations at class scope. 2018-03-16 13:36:56 +00:00
implicit-instantiation-1.cpp
inject-templated-friend-post.cpp
inject-templated-friend.cpp
injected-class-name.cpp PR13403 (+duplicates): implement C++ DR1310 (http://wg21.link/cwg1310). 2017-01-19 21:00:13 +00:00
instantiate-abbreviated-template.cpp [Concepts] Add null check for TemplateTypeParmType::getDecl() in GetContainedInventedTypeParmVisitor 2020-03-06 19:32:10 +02:00
instantiate-after-fatal-cxx17.cpp [c++17] Fix assertion on synthesizing deduction guides after a fatal error. 2018-05-14 22:49:44 +00:00
instantiate-anonymous-union.cpp
instantiate-array.cpp
instantiate-attr.cpp
instantiate-c99.cpp [c++20] Implement semantic restrictions for C++20 designated 2019-08-30 22:52:55 +00:00
instantiate-call.cpp
instantiate-case.cpp
instantiate-cast.cpp [Diagnostics] Improve some error messages related to bad use of dynamic_cast 2019-11-04 16:26:43 +01:00
instantiate-clang.cpp
instantiate-complete.cpp
instantiate-decl-dtor.cpp
instantiate-decl-init.cpp
instantiate-declref-ice.cpp
instantiate-declref.cpp
instantiate-deeply.cpp
instantiate-default-assignment-operator.cpp
instantiate-dependent-nested-name.cpp
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-expanded-type-constraint.cpp [Concepts] Deprecate -fconcepts-ts, enable Concepts under -std=c++2a 2020-01-24 00:48:59 +02:00
instantiate-explicitly-after-fatal.cpp
instantiate-expr-1.cpp
instantiate-expr-2.cpp
instantiate-expr-3.cpp [AST][RecoveryExpr] Preserve the AST for invalid conditions. 2020-07-20 14:58:36 +02:00
instantiate-expr-4.cpp Check for qualified function types after substituting into the operand 2019-10-03 18:55:23 +00:00
instantiate-expr-5.cpp
instantiate-expr-6.cpp
instantiate-expr-basic.cpp
instantiate-field.cpp
instantiate-friend-class.cpp
instantiate-friend-function.cpp PR43400: Add test that we can instantiate a friend function that is 2019-10-27 12:41:53 -07:00
instantiate-function-1.cpp
instantiate-function-1.mm
instantiate-function-2.cpp Implement P1766R1: diagnose giving non-C-compatible classes a typedef name for linkage purposes. 2020-02-07 11:47:37 -08:00
instantiate-function-params.cpp [AST][RecoveryExpr] Build recovery expressions by default for C++. 2020-06-12 15:21:38 +02:00
instantiate-incomplete-typo-suggested-error-limit.cpp Fixes an assertion while instantiating a template with an incomplete typo-corrected type. 2019-09-07 20:14:09 +00:00
instantiate-init.cpp [AST][RecoveryExpr] Build recovery expressions by default for C++. 2020-06-12 15:21:38 +02:00
instantiate-invalid.cpp
instantiate-local-class.cpp [clang] Convert a default argument expression to the parameter type... 2020-06-11 13:18:45 +01:00
instantiate-member-class.cpp [Sema][C++] Propagate conversion kind to specialize the diagnostics 2020-02-25 16:05:37 +00:00
instantiate-member-expr.cpp [AST] Print a<b<c>> without extra spaces in C++11 or later. 2020-03-26 09:53:54 +01:00
instantiate-member-initializers.cpp
instantiate-member-pointers.cpp
instantiate-member-template.cpp
instantiate-method.cpp Implement C++ DR727, which permits explicit specializations at class scope. 2018-03-16 13:36:56 +00:00
instantiate-non-dependent-types.cpp
instantiate-non-type-template-parameter.cpp
instantiate-objc-1.mm
instantiate-overload-candidates.cpp
instantiate-overloaded-arrow.cpp
instantiate-partial-spec.cpp
instantiate-requires-clause.cpp [Concepts] Add missing CXXThisScope to function template constraint substitution 2020-02-05 01:10:35 +02:00
instantiate-requires-expr.cpp [Concepts] Fix incorrect DeclContext for transformed RequiresExprBodyDecl 2020-03-10 23:17:00 +02:00
instantiate-scope.cpp
instantiate-self.cpp Explain why the array bound is non-constant in VLA diagnostics. 2020-08-19 15:45:51 -07:00
instantiate-sizeof.cpp
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-argument.cpp [Concepts] Correctly form initial parameter mapping for parameter packs, support substitution into SubstNonTypeTemplateParmExpr 2020-01-31 15:59:42 +02:00
instantiate-template-template-parm.cpp
instantiate-try-catch.cpp
instantiate-type.cpp
instantiate-typedef.cpp
instantiate-typeof.cpp
instantiate-using-decl.cpp
instantiate-var-template.cpp
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 Update line number after previous patch added an additional unsupported 2019-12-12 14:45:05 -08:00
instantiation-depth-exception-spec.cpp
instantiation-depth-subst-2.cpp
instantiation-depth-subst.cpp
instantiation-depth.cpp
instantiation-order.cpp
issue150.cpp
lambda-capture-pack.cpp Add regression test for PR41576 (which is already fixed in trunk, 2019-06-25 18:42:53 +00:00
late-parsing-eager-instantiation.cpp [Diagnostics] Try to improve warning message for -Wreturn-type 2019-11-09 17:54:58 +01:00
lookup-dependent-bases.cpp
matrix-type.cpp [Matrix] Check non-dependent elt type before creating DepSizedMatrix. 2020-05-12 16:46:37 +01: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 Don't form a 'context-independent expr' reference to a member during 2020-07-27 19:38:22 -07:00
member-function-template.cpp
member-inclass-init-value-dependent.cpp
member-initializers.cpp
member-specialization.cpp Fix crash if an in-class explicit function specialization has explicit 2018-12-04 22:26:32 +00:00
member-template-access-expr.cpp
metafun-apply.cpp Improve diagnostics and error recovery for template name lookup. 2018-05-11 02:43:08 +00:00
missing-class-keyword-crash.cpp
missing-typename.cpp [MS] Fix for Bug 8446, template instantiation without a 'typename' keyword 2019-02-26 02:22:17 +00:00
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
ms-delayed-default-template-args.cpp Improve error recovery from missing '>' in template argument list. 2020-03-27 18:59:01 -07:00
ms-function-specialization-class-scope.cpp Implement C++ DR727, which permits explicit specializations at class scope. 2018-03-16 13:36:56 +00:00
ms-if-exists.cpp
ms-lookup-template-base-classes.cpp [Concepts] Fix incorrect control flow when TryAnnotateTypeConstraint annotates an invalid template-id 2020-03-17 01:49:42 +02:00
ms-sizeof-missing-typename.cpp PR13403 (+duplicates): implement C++ DR1310 (http://wg21.link/cwg1310). 2017-01-19 21:00:13 +00:00
nested-deduction-guides.cpp When instantiating a deduction guide, transform its name. 2017-12-21 19:43:39 +00:00
nested-incomplete-class.cpp
nested-linkage.cpp
nested-name-spec-template.cpp PR45294: Fix handling of assumed template names looked up in the lexical 2020-03-27 21:07:06 -07:00
nested-template.cpp Fix a couple of places where we assumed that non-type template parameters are always rvalues. 2018-02-14 02:07:53 +00:00
non-integral-switch-cond.cpp Reapply "Fix crash on switch conditions of non-integer types in templates" 2019-12-03 15:27:19 -08:00
nss-recovery.cpp [AST][RecoveryExpr] Avoid spurious 'missing typename' diagnostic when the NNS contains errors. 2020-06-30 16:18:32 +02:00
operator-function-id-template.cpp
operator-template.cpp CWG2445: For function template partial ordering, take reversal of 2020-02-10 06:07:48 -08:00
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
pack-deduction.cpp Always deduce the lengths of contained parameter packs when deducing a 2020-01-06 17:24:29 -08:00
partial-order.cpp Revert r295277 to fix buildbot. 2017-02-16 04:22:56 +00:00
partial-spec-instantiate.cpp [Sema] Fix assertion when constructor is disabled with partially specialized template. 2018-05-16 18:28:58 +00:00
pr47676.cpp [clang][Sema] Fix PR47676: Handle dependent AltiVec C-style cast 2020-10-01 15:57:01 -04:00
pragma-ms_struct.cpp
qualified-id.cpp
qualified-names-diag.cpp
rdar9173693.cpp Remove redundant CXXScopeSpec from TemplateIdAnnotation. 2020-01-17 15:47:21 -08:00
recovery-crash.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
recovery-tree-transform-crash.cpp [AST][RecoveryExpr] Fix the missing type when rebuilding RecoveryExpr in TreeTransform. 2020-08-07 11:15:19 +02:00
recovery-tree-transform.cpp [AST] Add RecoveryExpr to retain expressions on semantic errors 2020-03-24 09:20:37 +01:00
recursive-template-instantiation.cpp
resolve-single-template-id.cpp Fix crash and rejects-valid when a later template parameter or default 2019-06-20 19:49:13 +00:00
self-comparison.cpp
sizeof-pack.cpp [c++20] P0780R2: Support pack-expansion of init-captures. 2019-05-21 20:10:50 +00:00
stack-exhaustion.cpp Fix check-all with -DLLVM_USE_SANITIZER=Address 2020-07-10 01:47:51 -07:00
stmt-expr.cpp Fix crash when trying to pack-expand a GNU statement expression. 2018-02-03 00:44:57 +00:00
subst-into-subst.cpp Teach TreeTransform to substitute into resolved TemplateArguments. 2020-03-19 12:43:11 -07:00
temp-param-subst-linear.cpp When substituting previously-checked template arguments into a template 2018-03-08 01:07:33 +00:00
temp.cpp Fix implementation of [temp.local]p4. 2019-02-15 21:53:07 +00:00
temp_arg.cpp Improve recovery from invalid template-ids. 2020-03-27 17:11:04 -07:00
temp_arg_enum_printing.cpp [AST] Incorrectly qualified unscoped enumeration as template actual parameter. 2017-12-21 21:47:22 +00:00
temp_arg_enum_printing_more.cpp [AST] Incorrectly qualified unscoped enumeration as template actual parameter. 2017-12-21 21:47:22 +00:00
temp_arg_nontype.cpp The type of a reference to a non-type template parameter pack should 2020-06-18 17:52:13 -07:00
temp_arg_nontype_cxx1z.cpp PR46637: Fix handling of placeholder types in trailing-return-types. 2020-07-28 15:54:10 -07:00
temp_arg_nontype_cxx11.cpp PR42513: Enter the proper DeclContext before substituting into an 2019-08-24 02:30:00 +00:00
temp_arg_nontype_cxx20.cpp [c++20] For P1907R1: Add checking for structural types for non-type 2020-09-20 20:20:52 -07:00
temp_arg_pack.cpp PR39231: fix null dereference when diagnosing deduction failure due to 2018-10-09 18:49:22 +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 Implement C++ DR727, which permits explicit specializations at class scope. 2018-03-16 13:36:56 +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 PR46231: Promote diagnostic for 'template<...>;' from ExtWarn to Error. 2020-07-29 12:35:18 -07:00
template-id-expr.cpp Improve diagnostics and error recovery for template name lookup. 2018-05-11 02:43:08 +00:00
template-id-printing.cpp
typename-specifier-2.cpp
typename-specifier-3.cpp PR12884: Add test (bug is already fixed). 2018-11-28 05:15:46 +00:00
typename-specifier-4.cpp
typename-specifier.cpp Print nested name specifiers for typedefs and type aliases 2017-03-10 15:04:58 +00:00
typo-dependent-name.cpp [NFC] Explicitly add -std=c++14 option to tests that rely on the C++14 default 2019-02-05 12:05:53 +00:00
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
typo-variadic.cpp [SemaTemplate] Fix uncorrected typos after pack expansion 2019-07-16 10:30:21 +00:00
undeclared-template.cpp PR45207: Fix crash if constrained-type-specifier annotation forms a 2020-03-17 13:18:23 -07:00
undefined-template.cpp Suppress undefined-template warnings when the pattern is declared in a system header. 2018-01-02 19:10:12 +00:00
unresolved-construct.cpp
unused-variables.cpp
using-decl.cpp Always rebuild a DeclRefExpr if its FoundDecl would change. 2019-09-26 22:28:32 +00:00
value-dependent-bitfield-cond.cpp Fix type-dependency of bitfields in templates 2020-02-12 13:31:41 -08:00
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
warn-thread-safety-analysis.cpp Fix some handling of AST nodes with diagnostics. 2018-03-28 04:16:13 +00:00