Author: hans
Date: Fri Dec 13 12:34:23 2013
New Revision: 197252

URL: http://llvm.org/viewvc/llvm-project?rev=197252&view=rev
Log:
Tighten test regexes checking for __attribute__((thiscall)) on function types.

The tests were perhaps made too relaxed in r197164 when we switched to the new
MinGW ABI. This makes sure we check explicitly for an optional thiscall
attribute and nothing else.

We should still look into whether we should print these attributes at all in
these cases.

Modified:
    cfe/trunk/test/CXX/class.access/p6.cpp
    cfe/trunk/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp
    cfe/trunk/test/CXX/expr/expr.const/p3-0x.cpp
    cfe/trunk/test/CXX/expr/expr.mptr.oper/p5.cpp
    cfe/trunk/test/CXX/expr/expr.mptr.oper/p6-0x.cpp
    cfe/trunk/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
    cfe/trunk/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp
    cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp
    cfe/trunk/test/SemaCXX/const-cast.cpp
    cfe/trunk/test/SemaCXX/cstyle-cast.cpp
    cfe/trunk/test/SemaCXX/functional-cast.cpp
    cfe/trunk/test/SemaCXX/reinterpret-cast.cpp
    cfe/trunk/test/SemaCXX/static-cast.cpp
    cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp
    cfe/trunk/test/SemaTemplate/instantiate-method.cpp
    cfe/trunk/test/SemaTemplate/temp_arg_nontype.cpp

Modified: cfe/trunk/test/CXX/class.access/p6.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/class.access/p6.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/CXX/class.access/p6.cpp (original)
+++ cfe/trunk/test/CXX/class.access/p6.cpp Fri Dec 13 12:34:23 2013
@@ -177,7 +177,7 @@ namespace test8 {
   };
 
   void test(A &a) {
-    if (a) return; // expected-error-re {{'operator void *(class 
test8::A::*)(void) {{.*}}const' is a private member of 'test8::A'}}
+    if (a) return; // expected-error-re {{'operator void *(class 
test8::A::*)(void){{( __attribute__\(\(thiscall\)\))?}} const' is a private 
member of 'test8::A'}}
   }
 }
 

Modified: cfe/trunk/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp (original)
+++ cfe/trunk/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp Fri Dec 13 
12:34:23 2013
@@ -73,7 +73,7 @@ template <typename T> T gt(T t) { return
 struct S {
   template<typename T> constexpr T f(); // expected-warning {{C++1y}}
   template <typename T>
-  T g() const; // expected-note-re {{candidate template ignored: could not 
match 'T () {{.*}}const' against 'char (){{.*}}'}}
+  T g() const; // expected-note-re {{candidate template ignored: could not 
match 'T (){{( __attribute__\(\(thiscall\)\))?}} const' against 'char (){{( 
__attribute__\(\(thiscall\)\))?}}'}}
 };
 
 // explicit specialization can differ in constepxr

Modified: cfe/trunk/test/CXX/expr/expr.const/p3-0x.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.const/p3-0x.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/CXX/expr/expr.const/p3-0x.cpp (original)
+++ cfe/trunk/test/CXX/expr/expr.const/p3-0x.cpp Fri Dec 13 12:34:23 2013
@@ -97,7 +97,7 @@ template <bool B> int f() { return B; }
 template int f<&S::operator int>(); // expected-error {{does not refer to a 
function template}}
 template int f<(bool)&S::operator int>();
 
-int n = Val<bool, &S::operator int>::value; // expected-error-re {{conversion 
from 'int (S::*)() {{.*}}const' to 'bool' is not allowed in a converted 
constant expression}}
+int n = Val<bool, &S::operator int>::value; // expected-error-re {{conversion 
from 'int (S::*)(){{( __attribute__\(\(thiscall\)\))?}} const' to 'bool' is not 
allowed in a converted constant expression}}
 
 namespace NonConstLValue {
   struct S {

Modified: cfe/trunk/test/CXX/expr/expr.mptr.oper/p5.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.mptr.oper/p5.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/CXX/expr/expr.mptr.oper/p5.cpp (original)
+++ cfe/trunk/test/CXX/expr/expr.mptr.oper/p5.cpp Fri Dec 13 12:34:23 2013
@@ -24,19 +24,19 @@ void test_object_cvquals(void (X0::*pm)(
   (p->*pmv)();
   (p->*pmcv)();
 
-  (pc->*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{.*}}' drops 'const' qualifier}}
+  (pc->*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}}' drops 'const' qualifier}}
   (pc->*pmc)();
-  (pc->*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}volatile' drops 'const' qualifier}}
+  (pc->*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} volatile' drops 'const' 
qualifier}}
   (pc->*pmcv)();
 
-  (pv->*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{.*}}' drops 'volatile' qualifier}}
-  (pv->*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}const' drops 'volatile' qualifier}}
+  (pv->*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}}' drops 'volatile' qualifier}}
+  (pv->*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} const' drops 'volatile' 
qualifier}}
   (pv->*pmv)();
   (pv->*pmcv)();
 
-  (pcv->*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{.*}}' drops 'const volatile' qualifiers}}
-  (pcv->*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}const' drops 'volatile' qualifier}}
-  (pcv->*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}volatile' drops 'const' qualifier}}
+  (pcv->*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}}' drops 'const volatile' 
qualifiers}}
+  (pcv->*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} const' drops 'volatile' 
qualifier}}
+  (pcv->*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} volatile' drops 'const' 
qualifier}}
   (pcv->*pmcv)();
 
   (o.*pm)();
@@ -44,18 +44,18 @@ void test_object_cvquals(void (X0::*pm)(
   (o.*pmv)();
   (o.*pmcv)();
 
-  (oc.*pm)(); // expected-error-re{{call to pointer to member function of type 
'void (){{.*}}' drops 'const' qualifier}}
+  (oc.*pm)(); // expected-error-re{{call to pointer to member function of type 
'void (){{( __attribute__\(\(thiscall\)\))?}}' drops 'const' qualifier}}
   (oc.*pmc)();
-  (oc.*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}volatile' drops 'const' qualifier}}
+  (oc.*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} volatile' drops 'const' 
qualifier}}
   (oc.*pmcv)();
 
-  (ov.*pm)(); // expected-error-re{{call to pointer to member function of type 
'void (){{.*}}' drops 'volatile' qualifier}}
-  (ov.*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}const' drops 'volatile' qualifier}}
+  (ov.*pm)(); // expected-error-re{{call to pointer to member function of type 
'void (){{( __attribute__\(\(thiscall\)\))?}}' drops 'volatile' qualifier}}
+  (ov.*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} const' drops 'volatile' 
qualifier}}
   (ov.*pmv)();
   (ov.*pmcv)();
 
-  (ocv.*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{.*}}' drops 'const volatile' qualifiers}}
-  (ocv.*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}const' drops 'volatile' qualifier}}
-  (ocv.*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void () {{.*}}volatile' drops 'const' qualifier}}
+  (ocv.*pm)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}}' drops 'const volatile' 
qualifiers}}
+  (ocv.*pmc)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} const' drops 'volatile' 
qualifier}}
+  (ocv.*pmv)(); // expected-error-re{{call to pointer to member function of 
type 'void (){{( __attribute__\(\(thiscall\)\))?}} volatile' drops 'const' 
qualifier}}
   (ocv.*pmcv)();
 }

Modified: cfe/trunk/test/CXX/expr/expr.mptr.oper/p6-0x.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.mptr.oper/p6-0x.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/CXX/expr/expr.mptr.oper/p6-0x.cpp (original)
+++ cfe/trunk/test/CXX/expr/expr.mptr.oper/p6-0x.cpp Fri Dec 13 12:34:23 2013
@@ -22,13 +22,13 @@ void test(X *xp, int (X::*pmf)(int), int
 
   // Lvalue ref-qualifier.
   (lvalue<X>().*l_pmf)(17);
-  (xvalue<X>().*l_pmf)(17); // expected-error-re{{pointer-to-member function 
type 'int (X::*)(int) {{.*}}&' can only be called on an lvalue}}
-  (prvalue<X>().*l_pmf)(17); // expected-error-re{{pointer-to-member function 
type 'int (X::*)(int) {{.*}}&' can only be called on an lvalue}}
+  (xvalue<X>().*l_pmf)(17); // expected-error-re{{pointer-to-member function 
type 'int (X::*)(int){{( __attribute__\(\(thiscall\)\))?}} &' can only be 
called on an lvalue}}
+  (prvalue<X>().*l_pmf)(17); // expected-error-re{{pointer-to-member function 
type 'int (X::*)(int){{( __attribute__\(\(thiscall\)\))?}} &' can only be 
called on an lvalue}}
   (xp->*l_pmf)(17);
 
   // Rvalue ref-qualifier.
-  (lvalue<X>().*r_pmf)(17); // expected-error-re{{pointer-to-member function 
type 'int (X::*)(int) {{.*}}&&' can only be called on an rvalue}}
+  (lvalue<X>().*r_pmf)(17); // expected-error-re{{pointer-to-member function 
type 'int (X::*)(int){{( __attribute__\(\(thiscall\)\))?}} &&' can only be 
called on an rvalue}}
   (xvalue<X>().*r_pmf)(17);
   (prvalue<X>().*r_pmf)(17);
-  (xp->*r_pmf)(17);  // expected-error-re{{pointer-to-member function type 
'int (X::*)(int) {{.*}}&&' can only be called on an rvalue}}
+  (xp->*r_pmf)(17);  // expected-error-re{{pointer-to-member function type 
'int (X::*)(int){{( __attribute__\(\(thiscall\)\))?}} &&' can only be called on 
an rvalue}}
 }

Modified: cfe/trunk/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp (original)
+++ cfe/trunk/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp Fri Dec 13 12:34:23 
2013
@@ -7,7 +7,7 @@ namespace test0 {
     template<typename T> void g(T);
 
     void test() {
-      foo(&g<int>); // expected-error-re {{can't form member pointer of type 
'void (test0::A::*)(int){{.*}}' without '&' and class name}}
+      foo(&g<int>); // expected-error-re {{can't form member pointer of type 
'void (test0::A::*)(int){{( __attribute__\(\(thiscall\)\))?}}' without '&' and 
class name}}
     }
   };
 }

Modified: cfe/trunk/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp (original)
+++ cfe/trunk/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp Fri Dec 13 
12:34:23 2013
@@ -184,7 +184,7 @@ namespace pointer_to_member_function {
   template<int (Y::*)(int)> struct X0 {}; // expected-note{{template parameter 
is declared here}}
   X0<&Y::f> x0a;
   X0<&Y::g> x0b;
-  X0<&Y::h> x0c; // expected-error-re{{non-type template argument of type 
'float (pointer_to_member_function::Y::*)(float){{.*}}' cannot be converted to 
a value of type 'int (pointer_to_member_function::Y::*)(int){{.*}}'}}
+  X0<&Y::h> x0c; // expected-error-re{{non-type template argument of type 
'float (pointer_to_member_function::Y::*)(float){{( 
__attribute__\(\(thiscall\)\))?}}' cannot be converted to a value of type 'int 
(pointer_to_member_function::Y::*)(int){{( __attribute__\(\(thiscall\)\))?}}'}}
 }
 
 //     -- For a non-type template-parameter of type pointer to data member,

Modified: cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp (original)
+++ cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp Fri Dec 13 12:34:23 
2013
@@ -220,20 +220,20 @@ namespace test1 {
 
   void QualifierTest() {
     void (Qualifiers::*X)();
-    X = &Qualifiers::C; // expected-error-re {{assigning to 'void 
(test1::Qualifiers::*)(){{.*}}' from incompatible type 'void 
(test1::Qualifiers::*)() {{.*}}const': different qualifiers (none vs const)}}
-    X = &Qualifiers::V; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{.*}}' from incompatible type 'void 
(test1::Qualifiers::*)() {{.*}}volatile': different qualifiers (none vs 
volatile)}}
-    X = &Qualifiers::R; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{.*}}' from incompatible type 'void 
(test1::Qualifiers::*)() {{.*}}restrict': different qualifiers (none vs 
restrict)}}
-    X = &Qualifiers::CV; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{.*}}' from incompatible type 'void 
(test1::Qualifiers::*)() {{.*}}const volatile': different qualifiers (none vs 
const and volatile)}}
-    X = &Qualifiers::CR; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{.*}}' from incompatible type 'void 
(test1::Qualifiers::*)() {{.*}}const restrict': different qualifiers (none vs 
const and restrict)}}
-    X = &Qualifiers::VR; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{.*}}' from incompatible type 'void 
(test1::Qualifiers::*)() {{.*}}volatile restrict': different qualifiers (none 
vs volatile and restrict)}}
-    X = &Qualifiers::CVR; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{.*}}' from incompatible type 'void 
(test1::Qualifiers::*)() {{.*}}const volatile restrict': different qualifiers 
(none vs const, volatile, and restrict)}}
+    X = &Qualifiers::C; // expected-error-re {{assigning to 'void 
(test1::Qualifiers::*)(){{( __attribute__\(\(thiscall\)\))?}}' from 
incompatible type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}} const': different qualifiers (none vs const)}}
+    X = &Qualifiers::V; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{( __attribute__\(\(thiscall\)\))?}}' from 
incompatible type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}} volatile': different qualifiers (none vs 
volatile)}}
+    X = &Qualifiers::R; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{( __attribute__\(\(thiscall\)\))?}}' from 
incompatible type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}} restrict': different qualifiers (none vs 
restrict)}}
+    X = &Qualifiers::CV; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{( __attribute__\(\(thiscall\)\))?}}' from 
incompatible type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}} const volatile': different qualifiers (none 
vs const and volatile)}}
+    X = &Qualifiers::CR; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{( __attribute__\(\(thiscall\)\))?}}' from 
incompatible type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}} const restrict': different qualifiers (none 
vs const and restrict)}}
+    X = &Qualifiers::VR; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{( __attribute__\(\(thiscall\)\))?}}' from 
incompatible type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}} volatile restrict': different qualifiers 
(none vs volatile and restrict)}}
+    X = &Qualifiers::CVR; // expected-error-re{{assigning to 'void 
(test1::Qualifiers::*)(){{( __attribute__\(\(thiscall\)\))?}}' from 
incompatible type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}} const volatile restrict': different 
qualifiers (none vs const, volatile, and restrict)}}
   }
 
   struct Dummy {
     void N() {};
   };
 
-  void (Qualifiers::*X)() = &Dummy::N; // expected-error-re{{cannot initialize 
a variable of type 'void (test1::Qualifiers::*)(){{.*}}' with an rvalue of type 
'void (test1::Dummy::*)(){{.*}}': different classes ('test1::Qualifiers' vs 
'test1::Dummy')}}
+  void (Qualifiers::*X)() = &Dummy::N; // expected-error-re{{cannot initialize 
a variable of type 'void (test1::Qualifiers::*)(){{( 
__attribute__\(\(thiscall\)\))?}}' with an rvalue of type 'void 
(test1::Dummy::*)(){{( __attribute__\(\(thiscall\)\))?}}': different classes 
('test1::Qualifiers' vs 'test1::Dummy')}}
 }
 
 template <typename T> class PR16561 {

Modified: cfe/trunk/test/SemaCXX/const-cast.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/const-cast.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/const-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/const-cast.cpp Fri Dec 13 12:34:23 2013
@@ -60,7 +60,7 @@ short *bad_const_cast_test(char const *v
   // Function pointers.
   f fp2 = const_cast<f>(fp1); // expected-error {{const_cast to 'f' (aka 'int 
(*)(int)'), which is not a reference, pointer-to-object, or 
pointer-to-data-member}}
   void (A::*mfn)() = 0;
-  (void)const_cast<void (A::*)()>(mfn); // expected-error-re {{const_cast to 
'void (A::*)(){{.*}}', which is not a reference, pointer-to-object, or 
pointer-to-data-member}}
+  (void)const_cast<void (A::*)()>(mfn); // expected-error-re {{const_cast to 
'void (A::*)(){{( __attribute__\(\(thiscall\)\))?}}', which is not a reference, 
pointer-to-object, or pointer-to-data-member}}
   (void)const_cast<int&&>(0); // expected-error {{const_cast from rvalue to 
reference type 'int &&'}} expected-warning {{C++11}}
   return **var3;
 }

Modified: cfe/trunk/test/SemaCXX/cstyle-cast.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cstyle-cast.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/cstyle-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/cstyle-cast.cpp Fri Dec 13 12:34:23 2013
@@ -227,6 +227,6 @@ void memptrs()
   void (structure::*psf)() = 0;
   (void)(int (structure::*)())(psf);
 
-  (void)(void (structure::*)())(psi); // expected-error-re {{C-style cast from 
'const int structure::*' to 'void (structure::*)(){{.*}}' is not allowed}}
-  (void)(int structure::*)(psf); // expected-error-re {{C-style cast from 
'void (structure::*)(){{.*}}' to 'int structure::*' is not allowed}}
+  (void)(void (structure::*)())(psi); // expected-error-re {{C-style cast from 
'const int structure::*' to 'void (structure::*)(){{( 
__attribute__\(\(thiscall\)\))?}}' is not allowed}}
+  (void)(int structure::*)(psf); // expected-error-re {{C-style cast from 
'void (structure::*)(){{( __attribute__\(\(thiscall\)\))?}}' to 'int 
structure::*' is not allowed}}
 }

Modified: cfe/trunk/test/SemaCXX/functional-cast.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/functional-cast.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/functional-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/functional-cast.cpp Fri Dec 13 12:34:23 2013
@@ -305,8 +305,8 @@ void memptrs()
   (void)structureimfp(psf);
 
   typedef void (structure::*structurevmfp)();
-  (void)structurevmfp(psi); // expected-error-re {{functional-style cast from 
'const int structure::*' to 'structurevmfp' (aka 'void (structure::*)(){{.*}}') 
is not allowed}}
-  (void)structureimp(psf); // expected-error-re {{functional-style cast from 
'void (structure::*)(){{.*}}' to 'structureimp' (aka 'int structure::*') is not 
allowed}}
+  (void)structurevmfp(psi); // expected-error-re {{functional-style cast from 
'const int structure::*' to 'structurevmfp' (aka 'void (structure::*)(){{( 
__attribute__\(\(thiscall\)\))?}}') is not allowed}}
+  (void)structureimp(psf); // expected-error-re {{functional-style cast from 
'void (structure::*)(){{( __attribute__\(\(thiscall\)\))?}}' to 'structureimp' 
(aka 'int structure::*') is not allowed}}
 }
 
 // ---------------- misc ------------------

Modified: cfe/trunk/test/SemaCXX/reinterpret-cast.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/reinterpret-cast.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/reinterpret-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/reinterpret-cast.cpp Fri Dec 13 12:34:23 2013
@@ -96,12 +96,12 @@ void memptrs()
   void (structure::*psf)() = 0;
   (void)reinterpret_cast<int (structure::*)()>(psf);
 
-  (void)reinterpret_cast<void (structure::*)()>(psi); // expected-error-re 
{{reinterpret_cast from 'const int structure::*' to 'void 
(structure::*)(){{.*}}' is not allowed}}
-  (void)reinterpret_cast<int structure::*>(psf); // expected-error-re 
{{reinterpret_cast from 'void (structure::*)(){{.*}}' to 'int structure::*' is 
not allowed}}
+  (void)reinterpret_cast<void (structure::*)()>(psi); // expected-error-re 
{{reinterpret_cast from 'const int structure::*' to 'void (structure::*)(){{( 
__attribute__\(\(thiscall\)\))?}}' is not allowed}}
+  (void)reinterpret_cast<int structure::*>(psf); // expected-error-re 
{{reinterpret_cast from 'void (structure::*)(){{( 
__attribute__\(\(thiscall\)\))?}}' to 'int structure::*' is not allowed}}
 
   // Cannot cast from integers to member pointers, not even the null pointer
   // literal.
-  (void)reinterpret_cast<void (structure::*)()>(0); // expected-error-re 
{{reinterpret_cast from 'int' to 'void (structure::*)(){{.*}}' is not allowed}}
+  (void)reinterpret_cast<void (structure::*)()>(0); // expected-error-re 
{{reinterpret_cast from 'int' to 'void (structure::*)(){{( 
__attribute__\(\(thiscall\)\))?}}' is not allowed}}
   (void)reinterpret_cast<int structure::*>(0); // expected-error 
{{reinterpret_cast from 'int' to 'int structure::*' is not allowed}}
 }
 

Modified: cfe/trunk/test/SemaCXX/static-cast.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/static-cast.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/static-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/static-cast.cpp Fri Dec 13 12:34:23 2013
@@ -192,6 +192,6 @@ namespace PR6072 {
     (void)static_cast<void (A::*)()>(&B::f);
     (void)static_cast<void (B::*)()>(&B::f);
     (void)static_cast<void (C::*)()>(&B::f);
-    (void)static_cast<void (D::*)()>(&B::f); // expected-error-re{{address of 
overloaded function 'f' cannot be static_cast to type 'void 
(PR6072::D::*)(){{.*}}'}}
+    (void)static_cast<void (D::*)()>(&B::f); // expected-error-re{{address of 
overloaded function 'f' cannot be static_cast to type 'void (PR6072::D::*)(){{( 
__attribute__\(\(thiscall\)\))?}}'}}
   }
 }

Modified: cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp (original)
+++ cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp Fri Dec 13 12:34:23 
2013
@@ -16,7 +16,7 @@ struct X0 {
   } 
   T* f0(T*, T*) { return T(); } // expected-warning{{expression which 
evaluates to zero treated as a null pointer constant of type 'int *'}}
 
-  template <typename U> T f0(T, U) { return T(); } // expected-note-re 
{{candidate template ignored: could not match 'int (int, U){{.*}}' against 'int 
(int) {{.*}}const'}} \
+  template <typename U> T f0(T, U) { return T(); } // expected-note-re 
{{candidate template ignored: could not match 'int (int, U){{( 
__attribute__\(\(thiscall\)\))?}}' against 'int (int){{( 
__attribute__\(\(thiscall\)\))?}} const'}} \
                                                    // expected-note 
{{candidate template ignored: could not match 'int' against 'int *'}}
 };
 

Modified: cfe/trunk/test/SemaTemplate/instantiate-method.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/instantiate-method.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/instantiate-method.cpp (original)
+++ cfe/trunk/test/SemaTemplate/instantiate-method.cpp Fri Dec 13 12:34:23 2013
@@ -178,7 +178,7 @@ namespace PR7022 {
 namespace SameSignatureAfterInstantiation {
   template<typename T> struct S {
     void f(T *); // expected-note {{previous}}
-    void f(const T*); // expected-error-re {{multiple overloads of 'f' 
instantiate to the same signature 'void (const int *){{.*}}'}}
+    void f(const T*); // expected-error-re {{multiple overloads of 'f' 
instantiate to the same signature 'void (const int *){{( 
__attribute__\(\(thiscall\)\))?}}'}}
   };
   S<const int> s; // expected-note {{instantiation}}
 }

Modified: cfe/trunk/test/SemaTemplate/temp_arg_nontype.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/temp_arg_nontype.cpp?rev=197252&r1=197251&r2=197252&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/temp_arg_nontype.cpp (original)
+++ cfe/trunk/test/SemaTemplate/temp_arg_nontype.cpp Fri Dec 13 12:34:23 2013
@@ -82,7 +82,7 @@ struct Z {
 template<int (Z::*pmf)(int)> struct A6; // expected-note{{template parameter 
is declared here}}
 A6<&Z::foo> *a17_1;
 A6<&Z::bar> *a17_2;
-A6<&Z::baz> *a17_3; // expected-error-re{{non-type template argument of type 
'double (Z::*)(double){{.*}}' cannot be converted to a value of type 'int 
(Z::*)(int){{.*}}'}}
+A6<&Z::baz> *a17_3; // expected-error-re{{non-type template argument of type 
'double (Z::*)(double){{( __attribute__\(\(thiscall\)\))?}}' cannot be 
converted to a value of type 'int (Z::*)(int){{( 
__attribute__\(\(thiscall\)\))?}}'}}
 
 
 template<int Z::*pm> struct A7;  // expected-note{{template parameter is 
declared here}}


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to