Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/clang/lib/AST/TemplateBase.cpp b/clang/lib/AST/TemplateBase.cpp
- index 6a3d2b30e46..35ed69ccf9f 100644
- --- a/clang/lib/AST/TemplateBase.cpp
- +++ b/clang/lib/AST/TemplateBase.cpp
- @@ -70,13 +70,45 @@ static void printIntegral(const TemplateArgument &TemplArg,
- if (T->isBooleanType() && !Policy.MSVCFormatting) {
- Out << (Val.getBoolValue() ? "true" : "false");
- + } else if (T->isBooleanType()) {
- + Out << Val;
- } else if (T->isCharType()) {
- const char Ch = Val.getZExtValue();
- Out << ((Ch == '\'') ? "'\\" : "'");
- Out.write_escaped(StringRef(&Ch, 1), /*UseHexEscapes=*/ true);
- Out << "'";
- + } else if (auto *DT = T->getContainedDeducedType()) {
- + if (DT->isDeduced()) {
- + Out << Val;
- + }
- } else {
- - Out << Val;
- + if (auto *BT = T->getAs<BuiltinType>()) {
- + switch (BT->getKind()) {
- + case BuiltinType::ULongLong:
- + Out << Val << "ULL";
- + break;
- + case BuiltinType::LongLong:
- + Out << Val << "LL";
- + break;
- + case BuiltinType::ULong:
- + Out << Val << "UL";
- + break;
- + case BuiltinType::Long:
- + Out << Val << "L";
- + break;
- + case BuiltinType::UInt:
- + Out << Val << "U";
- + break;
- + case BuiltinType::Int:
- + Out << Val;
- + break;
- + default:
- + Out << "(" << T->getCanonicalTypeInternal().getAsString(Policy) << ")"
- + << Val;
- + break;
- + }
- + } else
- + Out << Val;
- }
- }
- diff --git a/clang/test/CXX/dcl.decl/dcl.decomp/p3.cpp b/clang/test/CXX/dcl.decl/dcl.decomp/p3.cpp
- index ce5eefc6bfd..3512da5a855 100644
- --- a/clang/test/CXX/dcl.decl/dcl.decomp/p3.cpp
- +++ b/clang/test/CXX/dcl.decl/dcl.decomp/p3.cpp
- @@ -45,13 +45,13 @@ void no_tuple_element_1() {
- namespace std { template<size_t, typename> struct tuple_element; } // expected-note 2{{here}}
- void no_tuple_element_2() {
- - auto [a0, a1, a2] = A(); // expected-error {{implicit instantiation of undefined template 'std::tuple_element<0, A>'}} expected-note {{in implicit}}
- + auto [a0, a1, a2] = A(); // expected-error {{implicit instantiation of undefined template 'std::tuple_element<0UL, A>'}} expected-note {{in implicit}}
- }
- template<> struct std::tuple_element<0, A> { typedef float type; };
- void no_tuple_element_3() {
- - auto [a0, a1, a2] = A(); // expected-error {{implicit instantiation of undefined template 'std::tuple_element<1, A>'}} expected-note {{in implicit}}
- + auto [a0, a1, a2] = A(); // expected-error {{implicit instantiation of undefined template 'std::tuple_element<1UL, A>'}} expected-note {{in implicit}}
- }
- template<> struct std::tuple_element<1, A> { typedef float &type; };
- diff --git a/clang/test/CXX/lex/lex.literal/lex.ext/p12.cpp b/clang/test/CXX/lex/lex.literal/lex.ext/p12.cpp
- index 34a2f5c6782..9fb51b8c9eb 100644
- --- a/clang/test/CXX/lex/lex.literal/lex.ext/p12.cpp
- +++ b/clang/test/CXX/lex/lex.literal/lex.ext/p12.cpp
- @@ -8,7 +8,7 @@ struct check<char16_t, 34, 1090, 1077, 1089, 1090, 32, 55296, 56320>{};
- template<>
- struct check<char32_t, 34, 1090, 1077, 1089, 1090, 32, 65536>{};
- template<typename T, T... str> int operator""_x() { // #1 expected-warning {{string literal operator templates are a GNU extension}}
- - check<T, str...> chars; // expected-error {{implicit instantiation of undefined template 'check<char, 't', 'e', 's', 't'>'}} expected-error {{implicit instantiation of undefined template 'check<char32_t, 34, 1090, 1077, 1089, 1090, 95, 65536>'}}
- + check<T, str...> chars; // expected-error {{implicit instantiation of undefined template 'check<char, 't', 'e', 's', 't'>'}} expected-error {{implicit instantiation of undefined template 'check<char32_t, (char32_t)34, (char32_t)1090, (char32_t)1077, (char32_t)1089, (char32_t)1090, (char32_t)95, (char32_t)65536>'}}
- return 1;
- }
- void *operator""_x(const char*); // #2
- @@ -18,4 +18,4 @@ int c = u8R"("ัะตัั ๐)"_x; // ok, calls #1
- int d = "test"_x; // expected-note {{in instantiation of function template specialization 'operator""_x<char, 't', 'e', 's', 't'>' requested here}}
- int e = uR"("ัะตัั ๐)"_x;
- int f = UR"("ัะตัั ๐)"_x;
- -int g = UR"("ัะตัั_๐)"_x; // expected-note {{in instantiation of function template specialization 'operator""_x<char32_t, 34, 1090, 1077, 1089, 1090, 95, 65536>' requested here}}
- +int g = UR"("ัะตัั_๐)"_x; // expected-note {{in instantiation of function template specialization 'operator""_x<char32_t, (char32_t)34, (char32_t)1090, (char32_t)1077, (char32_t)1089, (char32_t)1090, (char32_t)95, (char32_t)65536>' requested here}}
- diff --git a/clang/test/CodeGenCXX/debug-info-template.cpp b/clang/test/CodeGenCXX/debug-info-template.cpp
- index a07222ace15..4997e868734 100644
- --- a/clang/test/CodeGenCXX/debug-info-template.cpp
- +++ b/clang/test/CodeGenCXX/debug-info-template.cpp
- @@ -1,6 +1,6 @@
- // RUN: %clang -S -emit-llvm -target x86_64-unknown_unknown -g %s -o - -std=c++11 | FileCheck %s
- -// CHECK: @tci = dso_local global %"struct.TC<unsigned int, 2, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>::nested" zeroinitializer, align 1, !dbg [[TCI:![0-9]+]]
- +// CHECK: @tci = dso_local global %"struct.TC<unsigned int, 2U, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>::nested" zeroinitializer, align 1, !dbg [[TCI:![0-9]+]]
- // CHECK: @tcn = dso_local global %struct.TC zeroinitializer, align 1, !dbg [[TCN:![0-9]+]]
- // CHECK: @nn = dso_local global %struct.NN zeroinitializer, align 1, !dbg [[NN:![0-9]+]]
- @@ -31,7 +31,7 @@ void func();
- // CHECK: ![[TCNESTED]] ={{.*}}!DICompositeType(tag: DW_TAG_structure_type, name: "nested",
- // CHECK-SAME: scope: ![[TC:[0-9]+]],
- -// CHECK: ![[TC]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "TC<unsigned int, 2, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>"
- +// CHECK: ![[TC]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "TC<unsigned int, 2U, &glb, &foo::e, &foo::f, &foo::g, 1, 2, 3>"
- // CHECK-SAME: templateParams: [[TCARGS:![0-9]*]]
- TC
- // CHECK: [[TCARGS]] = !{[[TCARG1:![0-9]*]], [[TCARG2:![0-9]*]], [[TCARG3:![0-9]*]], [[TCARG4:![0-9]*]], [[TCARG5:![0-9]*]], [[TCARG6:![0-9]*]], [[TCARG7:![0-9]*]]}
- diff --git a/clang/test/Index/print-type.cpp b/clang/test/Index/print-type.cpp
- index abe8d45c41d..b5566888027 100644
- --- a/clang/test/Index/print-type.cpp
- +++ b/clang/test/Index/print-type.cpp
- @@ -132,7 +132,7 @@ inline namespace InlineNS {}
- // CHECK: TypedefDecl=OtherType:26:18 (Definition) [type=outer::inner::Bar::OtherType] [typekind=Typedef] [canonicaltype=double] [canonicaltypekind=Double] [isPOD=1]
- // CHECK: TypedefDecl=ArrayType:27:15 (Definition) [type=outer::inner::Bar::ArrayType] [typekind=Typedef] [canonicaltype=int [5]] [canonicaltypekind=ConstantArray] [isPOD=1]
- // CHECK: IntegerLiteral= [type=int] [typekind=Int] [isPOD=1]
- -// CHECK: FieldDecl=baz:28:20 (Definition) [type=Baz<int, 1, Foo>] [typekind=Unexposed] [templateargs/3= [type=int] [typekind=Int]] [canonicaltype=outer::Baz<int, 1, Foo>] [canonicaltypekind=Record] [canonicaltemplateargs/3= [type=int] [typekind=Int]] [isPOD=1]
- +// CHECK: FieldDecl=baz:28:20 (Definition) [type=Baz<int, 1, Foo>] [typekind=Unexposed] [templateargs/3= [type=int] [typekind=Int]] [canonicaltype=outer::Baz<int, 1U, Foo>] [canonicaltypekind=Record] [canonicaltemplateargs/3= [type=int] [typekind=Int]] [isPOD=1]
- // CHECK: TemplateRef=Baz:9:8 [type=] [typekind=Invalid] [isPOD=0]
- // CHECK: IntegerLiteral= [type=int] [typekind=Int] [isPOD=1]
- // CHECK: TemplateRef=Foo:4:8 [type=] [typekind=Invalid] [isPOD=0]
- diff --git a/clang/test/Misc/integer-literal-printing.cpp b/clang/test/Misc/integer-literal-printing.cpp
- index 74bd8d09a92..dc0806a8756 100644
- --- a/clang/test/Misc/integer-literal-printing.cpp
- +++ b/clang/test/Misc/integer-literal-printing.cpp
- @@ -2,10 +2,10 @@
- // PR11179
- template <short T> class Type1 {};
- -template <short T> void Function1(Type1<T>& x) {} // expected-note{{candidate function [with T = -42] not viable: expects an l-value for 1st argument}}
- +template <short T> void Function1(Type1<T>& x) {} // expected-note{{candidate function [with T = (short)-42] not viable: expects an l-value for 1st argument}}
- template <unsigned short T> class Type2 {};
- -template <unsigned short T> void Function2(Type2<T>& x) {} // expected-note{{candidate function [with T = 42] not viable: expects an l-value for 1st argument}}
- +template <unsigned short T> void Function2(Type2<T>& x) {} // expected-note{{candidate function [with T = (unsigned short)42] not viable: expects an l-value for 1st argument}}
- enum class boolTy : bool {
- b = 0,
- diff --git a/clang/test/Modules/lsv-debuginfo.cpp b/clang/test/Modules/lsv-debuginfo.cpp
- index 30d3c2583fb..d4c646146b3 100644
- --- a/clang/test/Modules/lsv-debuginfo.cpp
- +++ b/clang/test/Modules/lsv-debuginfo.cpp
- @@ -26,14 +26,14 @@
- // CHECK: @__clang_ast =
- // This type isn't anchored anywhere, expect a full definition.
- -// CHECK: !DICompositeType({{.*}}, name: "AlignedCharArray<4, 16>",
- +// CHECK: !DICompositeType({{.*}}, name: "AlignedCharArray<4U, 16U>",
- // CHECK-SAME: elements:
- // C
- // CHECK: @__clang_ast =
- // Here, too.
- -// CHECK: !DICompositeType({{.*}}, name: "AlignedCharArray<4, 16>",
- +// CHECK: !DICompositeType({{.*}}, name: "AlignedCharArray<4U, 16U>",
- // CHECK-SAME: elements:
- #include <B/B.h>
- diff --git a/clang/test/SemaCXX/builtin-align-cxx.cpp b/clang/test/SemaCXX/builtin-align-cxx.cpp
- index 190f352c26d..1e822b36cfe 100644
- --- a/clang/test/SemaCXX/builtin-align-cxx.cpp
- +++ b/clang/test/SemaCXX/builtin-align-cxx.cpp
- @@ -31,10 +31,10 @@ void test_templated_arguments() {
- void test() {
- test_templated_arguments<int, 32>(); // fine
- test_templated_arguments<struct fwddecl, 16>();
- - // expected-note@-1{{in instantiation of function template specialization 'test_templated_arguments<fwddecl, 16, 16>'}}
- + // expected-note@-1{{in instantiation of function template specialization 'test_templated_arguments<fwddecl, 16L, 16L>'}}
- // expected-note@-2{{forward declaration of 'fwddecl'}}
- test_templated_arguments<int, 7>(); // invalid alignment value
- - // expected-note@-1{{in instantiation of function template specialization 'test_templated_arguments<int, 7, 16>'}}
- + // expected-note@-1{{in instantiation of function template specialization 'test_templated_arguments<int, 7L, 16L>'}}
- }
- template <typename T>
- diff --git a/clang/test/SemaCXX/cxx11-ast-print.cpp b/clang/test/SemaCXX/cxx11-ast-print.cpp
- index 17dcbcb3f7b..56d263fbcf4 100644
- --- a/clang/test/SemaCXX/cxx11-ast-print.cpp
- +++ b/clang/test/SemaCXX/cxx11-ast-print.cpp
- @@ -40,7 +40,7 @@ const char *p9 = 0x42e3F_fritz;
- const char *p10 = 3.300e+15_fritz;
- template <class C, C...> const char *operator"" _suffix();
- -// CHECK: const char *PR23120 = operator""_suffix<char32_t, 66615>();
- +// CHECK: const char *PR23120 = operator""_suffix<char32_t, (char32_t)66615>();
- const char *PR23120 = U"๐ท"_suffix;
- // PR28885
- diff --git a/clang/test/SemaCXX/cxx11-call-to-deleted-constructor.cpp b/clang/test/SemaCXX/cxx11-call-to-deleted-constructor.cpp
- index dd043452816..65ccdca9620 100644
- --- a/clang/test/SemaCXX/cxx11-call-to-deleted-constructor.cpp
- +++ b/clang/test/SemaCXX/cxx11-call-to-deleted-constructor.cpp
- @@ -34,7 +34,7 @@ void getLaplacianClosedForm()
- {
- Matrix<double> winI(0, 3);
- RGBFValue* inputPreL;
- - winI = { inputPreL->at() }; // expected-error {{call to deleted constructor of 'cva::Matrix<double, 0, 0> &&'}}
- + winI = { inputPreL->at() }; // expected-error {{call to deleted constructor of 'cva::Matrix<double, 0U, 0U> &&'}}
- }
- }
- diff --git a/clang/test/SemaCXX/invalid-instantiated-field-decl.cpp b/clang/test/SemaCXX/invalid-instantiated-field-decl.cpp
- index 8b26489d94d..901d6ba71ca 100644
- --- a/clang/test/SemaCXX/invalid-instantiated-field-decl.cpp
- +++ b/clang/test/SemaCXX/invalid-instantiated-field-decl.cpp
- @@ -31,5 +31,5 @@ class CallSite; // expected-note {{forward declaration of 'CallSite'}}
- class InlineFunctionInfo {
- public:
- explicit InlineFunctionInfo() {}
- - SmallVector<CallSite, 2> DevirtualizedCalls; // expected-note {{in instantiation of template class 'SmallVector<CallSite, 2>' requested}}
- + SmallVector<CallSite, 2> DevirtualizedCalls; // expected-note {{in instantiation of template class 'SmallVector<CallSite, 2U>' requested}}
- };
- diff --git a/clang/test/SemaCXX/matrix-type-operators.cpp b/clang/test/SemaCXX/matrix-type-operators.cpp
- index 153f89a2136..d458c15540e 100644
- --- a/clang/test/SemaCXX/matrix-type-operators.cpp
- +++ b/clang/test/SemaCXX/matrix-type-operators.cpp
- @@ -12,13 +12,13 @@ struct MyMatrix {
- template <typename EltTy0, unsigned R0, unsigned C0, typename EltTy1, unsigned R1, unsigned C1, typename EltTy2, unsigned R2, unsigned C2>
- typename MyMatrix<EltTy2, R2, C2>::matrix_t add(MyMatrix<EltTy0, R0, C0> &A, MyMatrix<EltTy1, R1, C1> &B) {
- char *v1 = A.value + B.value;
- - // expected-error@-1 {{cannot initialize a variable of type 'char *' with an rvalue of type 'MyMatrix<unsigned int, 2, 2>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))')}}
- - // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2, 2>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))'))}}
- - // expected-error@-3 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2, 2>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))'))}}
- + // expected-error@-1 {{cannot initialize a variable of type 'char *' with an rvalue of type 'MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))')}}
- + // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2U, 2U>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))'))}}
- + // expected-error@-3 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))'))}}
- return A.value + B.value;
- - // expected-error@-1 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2, 2>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))'))}}
- - // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2, 2>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))'))}}
- + // expected-error@-1 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2U, 2U>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))'))}}
- + // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))'))}}
- }
- void test_add_template(unsigned *Ptr1, float *Ptr2) {
- @@ -28,25 +28,25 @@ void test_add_template(unsigned *Ptr1, float *Ptr2) {
- Mat1.value = *((decltype(Mat1)::matrix_t *)Ptr1);
- unsigned v1 = add<unsigned, 2, 2, unsigned, 2, 2, unsigned, 2, 2>(Mat1, Mat1);
- // expected-error@-1 {{cannot initialize a variable of type 'unsigned int' with an rvalue of type 'typename MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))')}}
- - // expected-note@-2 {{in instantiation of function template specialization 'add<unsigned int, 2, 2, unsigned int, 2, 2, unsigned int, 2, 2>' requested here}}
- + // expected-note@-2 {{in instantiation of function template specialization 'add<unsigned int, 2U, 2U, unsigned int, 2U, 2U, unsigned int, 2U, 2U>' requested here}}
- Mat1.value = add<unsigned, 2, 2, unsigned, 3, 3, unsigned, 2, 2>(Mat1, Mat2);
- - // expected-note@-1 {{in instantiation of function template specialization 'add<unsigned int, 2, 2, unsigned int, 3, 3, unsigned int, 2, 2>' requested here}}
- + // expected-note@-1 {{in instantiation of function template specialization 'add<unsigned int, 2U, 2U, unsigned int, 3U, 3U, unsigned int, 2U, 2U>' requested here}}
- Mat1.value = add<unsigned, 3, 3, float, 2, 2, unsigned, 2, 2>(Mat2, Mat3);
- - // expected-note@-1 {{in instantiation of function template specialization 'add<unsigned int, 3, 3, float, 2, 2, unsigned int, 2, 2>' requested here}}
- + // expected-note@-1 {{in instantiation of function template specialization 'add<unsigned int, 3U, 3U, float, 2U, 2U, unsigned int, 2U, 2U>' requested here}}
- }
- template <typename EltTy0, unsigned R0, unsigned C0, typename EltTy1, unsigned R1, unsigned C1, typename EltTy2, unsigned R2, unsigned C2>
- typename MyMatrix<EltTy2, R2, C2>::matrix_t subtract(MyMatrix<EltTy0, R0, C0> &A, MyMatrix<EltTy1, R1, C1> &B) {
- char *v1 = A.value - B.value;
- - // expected-error@-1 {{cannot initialize a variable of type 'char *' with an rvalue of type 'MyMatrix<unsigned int, 2, 2>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))')}}
- - // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2, 2>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))')}}
- - // expected-error@-3 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2, 2>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))')}}
- + // expected-error@-1 {{cannot initialize a variable of type 'char *' with an rvalue of type 'MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))')}}
- + // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2U, 2U>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))')}}
- + // expected-error@-3 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))')}}
- return A.value - B.value;
- - // expected-error@-1 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2, 2>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))')}}
- - // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2, 2>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3, 3>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))')}}
- + // expected-error@-1 {{invalid operands to binary expression ('MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))') and 'MyMatrix<float, 2U, 2U>::matrix_t' (aka 'float __attribute__((matrix_type(2, 2)))')}}
- + // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))') and 'MyMatrix<unsigned int, 3U, 3U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(3, 3)))')}}
- }
- void test_subtract_template(unsigned *Ptr1, float *Ptr2) {
- @@ -56,13 +56,13 @@ void test_subtract_template(unsigned *Ptr1, float *Ptr2) {
- Mat1.value = *((decltype(Mat1)::matrix_t *)Ptr1);
- unsigned v1 = subtract<unsigned, 2, 2, unsigned, 2, 2, unsigned, 2, 2>(Mat1, Mat1);
- // expected-error@-1 {{cannot initialize a variable of type 'unsigned int' with an rvalue of type 'typename MyMatrix<unsigned int, 2U, 2U>::matrix_t' (aka 'unsigned int __attribute__((matrix_type(2, 2)))')}}
- - // expected-note@-2 {{in instantiation of function template specialization 'subtract<unsigned int, 2, 2, unsigned int, 2, 2, unsigned int, 2, 2>' requested here}}
- + // expected-note@-2 {{in instantiation of function template specialization 'subtract<unsigned int, 2U, 2U, unsigned int, 2U, 2U, unsigned int, 2U, 2U>' requested here}}
- Mat1.value = subtract<unsigned, 2, 2, unsigned, 3, 3, unsigned, 2, 2>(Mat1, Mat2);
- - // expected-note@-1 {{in instantiation of function template specialization 'subtract<unsigned int, 2, 2, unsigned int, 3, 3, unsigned int, 2, 2>' requested here}}
- + // expected-note@-1 {{in instantiation of function template specialization 'subtract<unsigned int, 2U, 2U, unsigned int, 3U, 3U, unsigned int, 2U, 2U>' requested here}}
- Mat1.value = subtract<unsigned, 3, 3, float, 2, 2, unsigned, 2, 2>(Mat2, Mat3);
- - // expected-note@-1 {{in instantiation of function template specialization 'subtract<unsigned int, 3, 3, float, 2, 2, unsigned int, 2, 2>' requested here}}
- + // expected-note@-1 {{in instantiation of function template specialization 'subtract<unsigned int, 3U, 3U, float, 2U, 2U, unsigned int, 2U, 2U>' requested here}}
- }
- struct UserT {};
- @@ -77,17 +77,17 @@ struct StructWithC {
- void test_DoubleWrapper(MyMatrix<double, 10, 9> &m, StructWithC &c) {
- m.value = m.value + c;
- // expected-error@-1 {{no viable conversion from 'StructWithC' to 'double'}}
- - // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<double, 10, 9>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))') and 'StructWithC')}}
- + // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<double, 10U, 9U>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))') and 'StructWithC')}}
- m.value = c + m.value;
- // expected-error@-1 {{no viable conversion from 'StructWithC' to 'double'}}
- - // expected-error@-2 {{invalid operands to binary expression ('StructWithC' and 'MyMatrix<double, 10, 9>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))'))}}
- + // expected-error@-2 {{invalid operands to binary expression ('StructWithC' and 'MyMatrix<double, 10U, 9U>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))'))}}
- m.value = m.value - c;
- // expected-error@-1 {{no viable conversion from 'StructWithC' to 'double'}}
- - // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<double, 10, 9>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))') and 'StructWithC')}}
- + // expected-error@-2 {{invalid operands to binary expression ('MyMatrix<double, 10U, 9U>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))') and 'StructWithC')}}
- m.value = c - m.value;
- // expected-error@-1 {{no viable conversion from 'StructWithC' to 'double'}}
- - // expected-error@-2 {{invalid operands to binary expression ('StructWithC' and 'MyMatrix<double, 10, 9>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))'))}}
- + // expected-error@-2 {{invalid operands to binary expression ('StructWithC' and 'MyMatrix<double, 10U, 9U>::matrix_t' (aka 'double __attribute__((matrix_type(10, 9)))'))}}
- }
- diff --git a/clang/test/SemaCXX/vector.cpp b/clang/test/SemaCXX/vector.cpp
- index 724ccece0c4..d263c1e05fd 100644
- --- a/clang/test/SemaCXX/vector.cpp
- +++ b/clang/test/SemaCXX/vector.cpp
- @@ -351,20 +351,20 @@ void Init() {
- const TemplateVectorType<float, 32>::type Works = {};
- const TemplateVectorType<int, 32>::type Works2 = {};
- // expected-error@#1 {{invalid vector element type 'bool'}}
- - // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<bool, 32>' requested here}}
- + // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<bool, 32ULL>' requested here}}
- const TemplateVectorType<bool, 32>::type NoBool = {};
- // expected-error@#1 {{invalid vector element type 'int __attribute__((ext_vector_type(4)))' (vector of 4 'int' values)}}
- - // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int __attribute__((ext_vector_type(4))), 32>' requested here}}
- + // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int __attribute__((ext_vector_type(4))), 32ULL>' requested here}}
- const TemplateVectorType<vi4, 32>::type NoComplex = {};
- // expected-error@#1 {{vector size not an integral multiple of component size}}
- - // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 33>' requested here}}
- + // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 33ULL>' requested here}}
- const TemplateVectorType<int, 33>::type BadSize = {};
- const TemplateVectorType<int, 3200>::type Large = {};
- // expected-error@#1 {{vector size too large}}
- - // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 68719476736>' requested here}}
- + // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 68719476736ULL>' requested here}}
- const TemplateVectorType<int, 0x1000000000>::type TooLarge = {};
- // expected-error@#1 {{zero vector size}}
- - // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 0>' requested here}}
- + // expected-note@+1 {{in instantiation of template class 'Templates::TemplateVectorType<int, 0ULL>' requested here}}
- const TemplateVectorType<int, 0>::type Zero = {};
- // expected-error@#2 {{vector size too large}}
- diff --git a/clang/test/SemaTemplate/address_space-dependent.cpp b/clang/test/SemaTemplate/address_space-dependent.cpp
- index bab6ca5d7b3..dff49cf5b1f 100644
- --- a/clang/test/SemaTemplate/address_space-dependent.cpp
- +++ b/clang/test/SemaTemplate/address_space-dependent.cpp
- @@ -84,8 +84,8 @@ template <unsigned A> int __attribute__((address_space(A))) *same_template();
- template <unsigned B> int __attribute__((address_space(B))) *same_template();
- void test_same_template() { (void) same_template<0>(); }
- -template <unsigned A> int __attribute__((address_space(A))) *different_template(); // expected-note {{candidate function [with A = 0]}}
- -template <unsigned B> int __attribute__((address_space(B+1))) *different_template(); // expected-note {{candidate function [with B = 0]}}
- +template <unsigned A> int __attribute__((address_space(A))) *different_template(); // expected-note {{candidate function [with A = 0U]}}
- +template <unsigned B> int __attribute__((address_space(B+1))) *different_template(); // expected-note {{candidate function [with B = 0U]}}
- void test_different_template() { (void) different_template<0>(); } // expected-error {{call to 'different_template' is ambiguous}}
- template <typename T> struct partial_spec_deduce_as;
- @@ -102,7 +102,7 @@ int main() {
- HasASTemplateFields<1> HASTF;
- neg<-1>(); // expected-note {{in instantiation of function template specialization 'neg<-1>' requested here}}
- correct<0x7FFFF3>();
- - tooBig<8388650>(); // expected-note {{in instantiation of function template specialization 'tooBig<8388650>' requested here}}
- + tooBig<8388650>(); // expected-note {{in instantiation of function template specialization 'tooBig<8388650L>' requested here}}
- __attribute__((address_space(1))) char *x;
- __attribute__((address_space(2))) char *y;
- diff --git a/clang/test/SemaTemplate/delegating-constructors.cpp b/clang/test/SemaTemplate/delegating-constructors.cpp
- index 852b89d809f..db3939d9b0e 100644
- --- a/clang/test/SemaTemplate/delegating-constructors.cpp
- +++ b/clang/test/SemaTemplate/delegating-constructors.cpp
- @@ -9,7 +9,7 @@ namespace PR10457 {
- public:
- template <unsigned N>
- string(const char (&str)[N])
- - : string(str) {} // expected-error{{constructor for 'string<6>' creates a delegation cycle}}
- + : string(str) {} // expected-error{{constructor for 'string<6U>' creates a delegation cycle}}
- };
- void f() {
- diff --git a/clang/test/SemaTemplate/dependent-names.cpp b/clang/test/SemaTemplate/dependent-names.cpp
- index a8de159a1d4..b32e2caa17a 100644
- --- a/clang/test/SemaTemplate/dependent-names.cpp
- +++ b/clang/test/SemaTemplate/dependent-names.cpp
- @@ -338,7 +338,7 @@ template < unsigned > struct X {
- struct Y: Y<dim> { }; // expected-error{{circular inheritance between 'Y<dim>' and 'Y<dim>'}}
- };
- typedef X<3> X3;
- -X3::Y<>::iterator it; // expected-error {{no type named 'iterator' in 'PR11421::X<3>::Y<3>'}}
- +X3::Y<>::iterator it; // expected-error {{no type named 'iterator' in 'PR11421::X<3U>::Y<3U>'}}
- }
- namespace rdar12629723 {
- diff --git a/clang/test/SemaTemplate/matrix-type.cpp b/clang/test/SemaTemplate/matrix-type.cpp
- index 0ced57c71aa..8d0c5bae801 100644
- --- a/clang/test/SemaTemplate/matrix-type.cpp
- +++ b/clang/test/SemaTemplate/matrix-type.cpp
- @@ -17,7 +17,7 @@ void matrix_template_3() {
- void instantiate_template_3() {
- matrix_template_3<1, 10>();
- - matrix_template_3<0, 10>(); // expected-note{{in instantiation of function template specialization 'matrix_template_3<0, 10>' requested here}}
- + matrix_template_3<0, 10>(); // expected-note{{in instantiation of function template specialization 'matrix_template_3<0U, 10U>' requested here}}
- }
- template <int Rows, unsigned Cols>
- @@ -27,7 +27,7 @@ void matrix_template_4() {
- void instantiate_template_4() {
- matrix_template_4<2, 10>();
- - matrix_template_4<-3, 10>(); // expected-note{{in instantiation of function template specialization 'matrix_template_4<-3, 10>' requested here}}
- + matrix_template_4<-3, 10>(); // expected-note{{in instantiation of function template specialization 'matrix_template_4<-3, 10U>' requested here}}
- }
- template <class T, unsigned long R, unsigned long C>
- @@ -35,11 +35,11 @@ using matrix = T __attribute__((matrix_type(R, C)));
- template <class T, unsigned long R>
- void use_matrix(matrix<T, R, 10> &m) {}
- -// expected-note@-1 {{candidate function [with T = float, R = 10]}}
- +// expected-note@-1 {{candidate function [with T = float, R = 10UL]}}
- template <class T, unsigned long C>
- void use_matrix(matrix<T, 10, C> &m) {}
- -// expected-note@-1 {{candidate function [with T = float, C = 10]}}
- +// expected-note@-1 {{candidate function [with T = float, C = 10UL]}}
- void test_ambigous_deduction1() {
- matrix<float, 10, 10> m;
- @@ -64,17 +64,17 @@ matrix<float, R + 1, C + 2> use_matrix_2(matrix<int, R, C> &m) {}
- template <unsigned long R, unsigned long C>
- void use_matrix_2(matrix<int, R + 2, C / 2> &m1, matrix<float, R, C> &m2) {}
- -// expected-note@-1 {{candidate function [with R = 3, C = 11] not viable: no known conversion from 'matrix<int, 5, 6>' (aka 'int __attribute__((matrix_type(5, 6)))') to 'matrix<int, 3UL + 2, 11UL / 2> &' (aka 'int __attribute__((matrix_type(5, 5)))&') for 1st argument}}
- -// expected-note@-2 {{candidate template ignored: deduced type 'matrix<float, 3UL, 4UL>' of 2nd parameter does not match adjusted type 'matrix<int, 3, 4>' of argument [with R = 3, C = 4]}}
- +// expected-note@-1 {{candidate function [with R = 3UL, C = 11UL] not viable: no known conversion from 'matrix<int, 5, 6>' (aka 'int __attribute__((matrix_type(5, 6)))') to 'matrix<int, 3UL + 2, 11UL / 2> &' (aka 'int __attribute__((matrix_type(5, 5)))&') for 1st argument}}
- +// expected-note@-2 {{candidate template ignored: deduced type 'matrix<float, 3UL, 4UL>' of 2nd parameter does not match adjusted type 'matrix<int, 3, 4>' of argument [with R = 3UL, C = 4UL]}}
- template <typename T, unsigned long R, unsigned long C>
- void use_matrix_2(matrix<T, R + C, C> &m1, matrix<T, R, C - R> &m2) {}
- // expected-note@-1 {{candidate template ignored: deduced conflicting types for parameter 'T' ('int' vs. 'float')}}
- -// expected-note@-2 {{candidate template ignored: deduced type 'matrix<[...], 3UL + 4UL, 4UL>' of 1st parameter does not match adjusted type 'matrix<[...], 3, 4>' of argument [with T = int, R = 3, C = 4]}}
- +// expected-note@-2 {{candidate template ignored: deduced type 'matrix<[...], 3UL + 4UL, 4UL>' of 1st parameter does not match adjusted type 'matrix<[...], 3, 4>' of argument [with T = int, R = 3UL, C = 4UL]}}
- template <typename T, unsigned long R>
- void use_matrix_3(matrix<T, R - 2, R> &m) {}
- -// expected-note@-1 {{candidate template ignored: deduced type 'matrix<[...], 5UL - 2, 5UL>' of 1st parameter does not match adjusted type 'matrix<[...], 5, 5>' of argument [with T = unsigned int, R = 5]}}
- +// expected-note@-1 {{candidate template ignored: deduced type 'matrix<[...], 5UL - 2, 5UL>' of 1st parameter does not match adjusted type 'matrix<[...], 5, 5>' of argument [with T = unsigned int, R = 5UL]}}
- void test_use_matrix_2() {
- matrix<int, 5, 6> m1;
- diff --git a/clang/test/SemaTemplate/temp_arg_nontype.cpp b/clang/test/SemaTemplate/temp_arg_nontype.cpp
- index 245b9a60269..b22245e9605 100644
- --- a/clang/test/SemaTemplate/temp_arg_nontype.cpp
- +++ b/clang/test/SemaTemplate/temp_arg_nontype.cpp
- @@ -270,6 +270,24 @@ namespace PR9227 {
- void test_char_possibly_negative() { enable_if_char<'\x02'>::type i; } // expected-error{{enable_if_char<'\x02'>'; did you mean 'enable_if_char<'a'>::type'?}}
- void test_char_single_quote() { enable_if_char<'\''>::type i; } // expected-error{{enable_if_char<'\''>'; did you mean 'enable_if_char<'a'>::type'?}}
- void test_char_backslash() { enable_if_char<'\\'>::type i; } // expected-error{{enable_if_char<'\\'>'; did you mean 'enable_if_char<'a'>::type'?}}
- +
- + template <int N> struct enable_if_int {};
- + template <> struct enable_if_int<1> { typedef int type; }; // expected-note{{'enable_if_int<1>::type' declared here}}
- + void test_int() { enable_if_int<2>::type i; } // expected-error{{enable_if_int<2>'; did you mean 'enable_if_int<1>::type'?}}
- +
- + template <unsigned int N> struct enable_if_unsigned_int {};
- + template <> struct enable_if_unsigned_int<1> { typedef int type; }; // expected-note{{'enable_if_unsigned_int<1>::type' declared here}}
- + void test_unsigned_int() { enable_if_unsigned_int<2>::type i; } // expected-error{{enable_if_unsigned_int<2U>'; did you mean 'enable_if_unsigned_int<1>::type'?}}
- +
- +
- + template <unsigned long long N> struct enable_if_unsigned_long_long {};
- + template <> struct enable_if_unsigned_long_long<1> { typedef int type; }; // expected-note{{'enable_if_unsigned_long_long<1>::type' declared here}}
- + void test_unsigned_long_long() { enable_if_unsigned_long_long<2>::type i; } // expected-error{{enable_if_unsigned_long_long<2ULL>'; did you mean 'enable_if_unsigned_long_long<1>::type'?}}
- +
- + template <long long N> struct enable_if_long_long {};
- + template <> struct enable_if_long_long<1> { typedef int type; }; // expected-note{{'enable_if_long_long<1>::type' declared here}}
- + void test_long_long() { enable_if_long_long<2>::type i; } // expected-error{{enable_if_long_long<2LL>'; did you mean 'enable_if_long_long<1>::type'?}}
- +
- }
- namespace PR10579 {
Add Comment
Please, Sign In to add comment