r197164 - Switch to the new MingW ABI.

Rafael Espindola rafael.espindola at gmail.com
Thu Dec 12 08:07:12 PST 2013


Author: rafael
Date: Thu Dec 12 10:07:11 2013
New Revision: 197164

URL: http://llvm.org/viewvc/llvm-project?rev=197164&view=rev
Log:
Switch to the new MingW ABI.

GCC 4.7 changed the MingW ABI. On the clang side this means that methods now
have the thiscall calling convention by default.

Added:
    cfe/trunk/test/CodeGenCXX/mingw-new-abi.cpp
Modified:
    cfe/trunk/docs/ReleaseNotes.rst
    cfe/trunk/lib/AST/ItaniumCXXABI.cpp
    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.prim/expr.prim.lambda/blocks.mm
    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/CodeGenCXX/c-linkage.cpp
    cfe/trunk/test/CodeGenCXX/copy-assign-synthesis-2.cpp
    cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp
    cfe/trunk/test/CodeGenCXX/noinline-template.cpp
    cfe/trunk/test/CodeGenCXX/pragma-weak.cpp
    cfe/trunk/test/CodeGenCXX/template-inner-struct-visibility-hidden.cpp
    cfe/trunk/test/CodeGenCXX/virt-dtor-gen.cpp
    cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp
    cfe/trunk/test/CodeGenCXX/visibility-hidden-extern-templates.cpp
    cfe/trunk/test/CodeGenCXX/volatile-1.cpp
    cfe/trunk/test/Index/print-type-cxx11.cpp
    cfe/trunk/test/Index/print-type.cpp
    cfe/trunk/test/PCH/chain-pending-instantiations.cpp
    cfe/trunk/test/PCH/cxx-templates.cpp
    cfe/trunk/test/PCH/objcxx-ivar-class.mm
    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/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/ReleaseNotes.rst?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/docs/ReleaseNotes.rst (original)
+++ cfe/trunk/docs/ReleaseNotes.rst Thu Dec 12 10:07:11 2013
@@ -47,6 +47,11 @@ sections with improvements to Clang's su
 Major New Features
 ------------------
 
+- Clang uses the new MingW ABI
+GCC 4.7 changed the mingw ABI. Clang 3.4 and older use the GCC 4.6
+ABI. Clang 3.5 and newer use the GCC 4.7 abi.
+
+
 Improvements to Clang's diagnostics
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 

Modified: cfe/trunk/lib/AST/ItaniumCXXABI.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ItaniumCXXABI.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ItaniumCXXABI.cpp (original)
+++ cfe/trunk/lib/AST/ItaniumCXXABI.cpp Thu Dec 12 10:07:11 2013
@@ -59,6 +59,10 @@ public:
   }
 
   CallingConv getDefaultMethodCallConv(bool isVariadic) const {
+    const llvm::Triple &T = Context.getTargetInfo().getTriple();
+    if (!isVariadic && T.getOS() == llvm::Triple::MinGW32 &&
+        T.getArch() == llvm::Triple::x86)
+      return CC_X86ThisCall;
     return CC_C;
   }
 

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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CXX/class.access/p6.cpp (original)
+++ cfe/trunk/test/CXX/class.access/p6.cpp Thu Dec 12 10:07:11 2013
@@ -177,7 +177,7 @@ namespace test8 {
   };
 
   void test(A &a) {
-    if (a) return; // expected-error {{'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) {{.*}}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=197164&r1=197163&r2=197164&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 Thu Dec 12 10:07:11 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 {{candidate template ignored: could not match 'T () const' against 'char ()'}}
+  T g() const; // expected-note-re {{candidate template ignored: could not match 'T () {{.*}}const' against 'char (){{.*}}'}}
 };
 
 // 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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CXX/expr/expr.const/p3-0x.cpp (original)
+++ cfe/trunk/test/CXX/expr/expr.const/p3-0x.cpp Thu Dec 12 10:07:11 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 {{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::*)() {{.*}}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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CXX/expr/expr.mptr.oper/p5.cpp (original)
+++ cfe/trunk/test/CXX/expr/expr.mptr.oper/p5.cpp Thu Dec 12 10:07:11 2013
@@ -24,19 +24,19 @@ void test_object_cvquals(void (X0::*pm)(
   (p->*pmv)();
   (p->*pmcv)();
 
-  (pc->*pm)(); // expected-error{{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 (){{.*}}' drops 'const' qualifier}}
   (pc->*pmc)();
-  (pc->*pmv)(); // expected-error{{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 () {{.*}}volatile' drops 'const' qualifier}}
   (pc->*pmcv)();
 
-  (pv->*pm)(); // expected-error{{call to pointer to member function of type 'void ()' drops 'volatile' qualifier}}
-  (pv->*pmc)(); // expected-error{{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 (){{.*}}' drops 'volatile' qualifier}}
+  (pv->*pmc)(); // expected-error-re{{call to pointer to member function of type 'void () {{.*}}const' drops 'volatile' qualifier}}
   (pv->*pmv)();
   (pv->*pmcv)();
 
-  (pcv->*pm)(); // expected-error{{call to pointer to member function of type 'void ()' drops 'const volatile' qualifiers}}
-  (pcv->*pmc)(); // expected-error{{call to pointer to member function of type 'void () const' drops 'volatile' qualifier}}
-  (pcv->*pmv)(); // expected-error{{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 (){{.*}}' 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->*pmcv)();
 
   (o.*pm)();
@@ -44,18 +44,18 @@ void test_object_cvquals(void (X0::*pm)(
   (o.*pmv)();
   (o.*pmcv)();
 
-  (oc.*pm)(); // expected-error{{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 (){{.*}}' drops 'const' qualifier}}
   (oc.*pmc)();
-  (oc.*pmv)(); // expected-error{{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 () {{.*}}volatile' drops 'const' qualifier}}
   (oc.*pmcv)();
 
-  (ov.*pm)(); // expected-error{{call to pointer to member function of type 'void ()' drops 'volatile' qualifier}}
-  (ov.*pmc)(); // expected-error{{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 (){{.*}}' drops 'volatile' qualifier}}
+  (ov.*pmc)(); // expected-error-re{{call to pointer to member function of type 'void () {{.*}}const' drops 'volatile' qualifier}}
   (ov.*pmv)();
   (ov.*pmcv)();
 
-  (ocv.*pm)(); // expected-error{{call to pointer to member function of type 'void ()' drops 'const volatile' qualifiers}}
-  (ocv.*pmc)(); // expected-error{{call to pointer to member function of type 'void () const' drops 'volatile' qualifier}}
-  (ocv.*pmv)(); // expected-error{{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 (){{.*}}' 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.*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=197164&r1=197163&r2=197164&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 Thu Dec 12 10:07:11 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{{pointer-to-member function type 'int (X::*)(int) &' can only be called on an lvalue}}
-  (prvalue<X>().*l_pmf)(17); // expected-error{{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) {{.*}}&' 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}}
   (xp->*l_pmf)(17);
 
   // Rvalue ref-qualifier.
-  (lvalue<X>().*r_pmf)(17); // expected-error{{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) {{.*}}&&' can only be called on an rvalue}}
   (xvalue<X>().*r_pmf)(17);
   (prvalue<X>().*r_pmf)(17);
-  (xp->*r_pmf)(17);  // expected-error{{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) {{.*}}&&' can only be called on an rvalue}}
 }

Modified: cfe/trunk/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.mm?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.mm (original)
+++ cfe/trunk/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.mm Thu Dec 12 10:07:11 2013
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -std=c++11 -fblocks %s -verify
+// RUN: %clang_cc1 -triple i686-pc-linux -std=c++11 -fblocks %s -verify
 
 void block_capture_errors() {
   __block int var; // expected-note 2{{'var' declared here}}

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=197164&r1=197163&r2=197164&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 Thu Dec 12 10:07:11 2013
@@ -7,7 +7,7 @@ namespace test0 {
     template<typename T> void g(T);
 
     void test() {
-      foo(&g<int>); // expected-error {{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){{.*}}' 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=197164&r1=197163&r2=197164&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 Thu Dec 12 10:07:11 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{{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){{.*}}' cannot be converted to a value of type 'int (pointer_to_member_function::Y::*)(int){{.*}}'}}
 }
 
 //     -- For a non-type template-parameter of type pointer to data member,

Modified: cfe/trunk/test/CodeGenCXX/c-linkage.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/c-linkage.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/c-linkage.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/c-linkage.cpp Thu Dec 12 10:07:11 2013
@@ -10,7 +10,7 @@ extern "C" {
   }
 }
 
-// CHECK-LABEL: define void @_ZN1N1X1fEv
+// CHECK-LABEL: define {{.*}}void @_ZN1N1X1fEv
 
 extern "C" {
   static void test2_f() {

Modified: cfe/trunk/test/CodeGenCXX/copy-assign-synthesis-2.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/copy-assign-synthesis-2.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/copy-assign-synthesis-2.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/copy-assign-synthesis-2.cpp Thu Dec 12 10:07:11 2013
@@ -1,4 +1,4 @@
 // RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
 struct A {};
 A& (A::*x)(const A&) = &A::operator=;
-// CHECK-LABEL: define linkonce_odr %struct.A* @_ZN1AaSERKS_
+// CHECK-LABEL: define linkonce_odr {{.*}}%struct.A* @_ZN1AaSERKS_

Modified: cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/microsoft-abi-default-cc.cpp Thu Dec 12 10:07:11 2013
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck -check-prefix GCABI %s
+// RUN: %clang_cc1 -triple i386-pc-linux -emit-llvm %s -o - | FileCheck -check-prefix GCABI %s
 // RUN: %clang_cc1 -emit-llvm %s -o - -DMS_ABI -cxx-abi microsoft -triple=i386-pc-win32 | FileCheck -check-prefix MSABI %s
 
 #ifdef MS_ABI

Added: cfe/trunk/test/CodeGenCXX/mingw-new-abi.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mingw-new-abi.cpp?rev=197164&view=auto
==============================================================================
--- cfe/trunk/test/CodeGenCXX/mingw-new-abi.cpp (added)
+++ cfe/trunk/test/CodeGenCXX/mingw-new-abi.cpp Thu Dec 12 10:07:11 2013
@@ -0,0 +1,13 @@
+// RUN: %clang_cc1 -emit-llvm -triple i386-pc-mingw32 %s -o - | FileCheck --check-prefix=MINGW %s
+// RUN: %clang_cc1 -emit-llvm -triple i386-pc-cygwin %s -o - | FileCheck --check-prefix=CYGWIN %s
+
+namespace test1 {
+  struct foo {
+    //  MINGW: declare x86_thiscallcc void @_ZN5test13foo1fEv
+    //  CYGWIN: declare void @_ZN5test13foo1fEv
+    void f();
+  };
+  void g(foo *x) {
+    x->f();
+  }
+}

Modified: cfe/trunk/test/CodeGenCXX/noinline-template.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/noinline-template.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/noinline-template.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/noinline-template.cpp Thu Dec 12 10:07:11 2013
@@ -3,7 +3,7 @@
 // This was a problem in Sema, but only shows up as noinline missing
 // in CodeGen.
 
-// CHECK: define linkonce_odr void @_ZN6VectorIiE13growStorageByEv(%struct.Vector* %this) [[NI:#[0-9]+]]
+// CHECK: define linkonce_odr {{.*}}void @_ZN6VectorIiE13growStorageByEv(%struct.Vector* %this) [[NI:#[0-9]+]]
 
 template <class Ty> struct Vector  {
   void growStorageBy();

Modified: cfe/trunk/test/CodeGenCXX/pragma-weak.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/pragma-weak.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/pragma-weak.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/pragma-weak.cpp Thu Dec 12 10:07:11 2013
@@ -10,7 +10,7 @@ int zex;
 #pragma weak foo
 struct S {  void foo(); };
 void S::foo() {}
-// CHECK-LABEL: define void @_ZN1S3fooEv(
+// CHECK-LABEL: define {{.*}}void @_ZN1S3fooEv(
 
 #pragma weak zed
 namespace bar {  void zed() {} }

Modified: cfe/trunk/test/CodeGenCXX/template-inner-struct-visibility-hidden.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/template-inner-struct-visibility-hidden.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/template-inner-struct-visibility-hidden.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/template-inner-struct-visibility-hidden.cpp Thu Dec 12 10:07:11 2013
@@ -2,8 +2,8 @@
 
 // Verify that symbols are hidden.
 // CHECK: @_ZN1CIiE5Inner6Inner26StaticE = weak_odr hidden global
-// CHECK-LABEL: define weak_odr hidden void @_ZN1CIiE5Inner1fEv
-// CHECK-LABEL: define weak_odr hidden void @_ZN1CIiE5Inner6Inner21gEv
+// CHECK-LABEL: define weak_odr hidden {{.*}}void @_ZN1CIiE5Inner1fEv
+// CHECK-LABEL: define weak_odr hidden {{.*}}void @_ZN1CIiE5Inner6Inner21gEv
 
 template<typename T>
 struct C {

Modified: cfe/trunk/test/CodeGenCXX/virt-dtor-gen.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/virt-dtor-gen.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/virt-dtor-gen.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/virt-dtor-gen.cpp Thu Dec 12 10:07:11 2013
@@ -7,4 +7,4 @@ class Foo {
 };
 Foo::~Foo() {}
 
-// CHECK-LABEL: define void @_ZN3FooD0Ev(%class.Foo* %this) unnamed_addr
+// CHECK-LABEL: define {{.*}}void @_ZN3FooD0Ev(%class.Foo* %this) unnamed_addr

Modified: cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/virtual-function-calls.cpp Thu Dec 12 10:07:11 2013
@@ -8,7 +8,7 @@ struct A {
 };
 
 void f(A *a) {
-  // CHECK: call void %
+  // CHECK: call {{.*}}void %
   a->f('c');
 }
 
@@ -45,7 +45,7 @@ namespace VirtualNoreturn {
   // CHECK: @_ZN15VirtualNoreturn1f
   void f(A *p) {
     p->f();
-    // CHECK: call void %{{[^#]*$}}
+    // CHECK: call {{.*}}void %{{[^#]*$}}
     // CHECK-NOT: unreachable
   }
 }

Modified: cfe/trunk/test/CodeGenCXX/visibility-hidden-extern-templates.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/visibility-hidden-extern-templates.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/visibility-hidden-extern-templates.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/visibility-hidden-extern-templates.cpp Thu Dec 12 10:07:11 2013
@@ -14,13 +14,13 @@ extern template struct X<char>;
 
 // <rdar://problem/8109763>
 void test_X(X<int> xi, X<char> xc) {
-  // CHECK-LABEL: define weak_odr hidden void @_ZN1XIiE1fEv
+  // CHECK-LABEL: define weak_odr hidden {{.*}}void @_ZN1XIiE1fEv
   xi.f();
-  // CHECK-LABEL: define weak_odr hidden void @_ZN1XIiE1gEv
+  // CHECK-LABEL: define weak_odr hidden {{.*}}void @_ZN1XIiE1gEv
   xi.g();
-  // CHECK: declare void @_ZN1XIcE1fEv
+  // CHECK: declare {{.*}}void @_ZN1XIcE1fEv
   xc.f();
-  // CHECK-LABEL: define available_externally void @_ZN1XIcE1gEv
+  // CHECK-LABEL: define available_externally {{.*}}void @_ZN1XIcE1gEv
   xc.g();
 }
 

Modified: cfe/trunk/test/CodeGenCXX/volatile-1.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/volatile-1.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/volatile-1.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/volatile-1.cpp Thu Dec 12 10:07:11 2013
@@ -248,11 +248,11 @@ void test() {
   // gcc.
 
   // Not a use.  gcc forgets to do the assignment.
-  // CHECK-NEXT: call
+  // CHECK-NEXT: call {{.*}}void
   ((a=a),a);
 
   // Not a use.  gcc gets this wrong, it doesn't emit the copy!  
-  // CHECK-NEXT: call
+  // CHECK-NEXT: call {{.*}}void
   (void)(a=a);
 
   // Not a use.  gcc got this wrong in 4.2 and omitted the side effects

Modified: cfe/trunk/test/Index/print-type-cxx11.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-type-cxx11.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/Index/print-type-cxx11.cpp (original)
+++ cfe/trunk/test/Index/print-type-cxx11.cpp Thu Dec 12 10:07:11 2013
@@ -4,5 +4,5 @@ struct RefQualifierTest {
 };
 
 // RUN: c-index-test -test-print-type -std=c++11 %s | FileCheck %s
-// CHECK: CXXMethod=f:2:8 (Definition) [type=void () &] [typekind=FunctionProto] lvalue-ref-qualifier [resulttype=void] [resulttypekind=Void] [isPOD=0]
-// CHECK: CXXMethod=f:3:8 (Definition) [type=void () &&] [typekind=FunctionProto] rvalue-ref-qualifier [resulttype=void] [resulttypekind=Void] [isPOD=0]
+// CHECK: CXXMethod=f:2:8 (Definition) [type=void () {{.*}}&] [typekind=FunctionProto] lvalue-ref-qualifier [resulttype=void] [resulttypekind=Void] [isPOD=0]
+// CHECK: CXXMethod=f:3:8 (Definition) [type=void () {{.*}}&&] [typekind=FunctionProto] rvalue-ref-qualifier [resulttype=void] [resulttypekind=Void] [isPOD=0]

Modified: cfe/trunk/test/Index/print-type.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-type.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/Index/print-type.cpp (original)
+++ cfe/trunk/test/Index/print-type.cpp Thu Dec 12 10:07:11 2013
@@ -47,14 +47,14 @@ int Blob::*member_pointer;
 // CHECK: TypeRef=T:3:19 [type=T] [typekind=Unexposed] [canonicaltype=type-parameter-0-0] [canonicaltypekind=Unexposed] [isPOD=0]
 // CHECK: Namespace=inner:8:11 (Definition) [type=] [typekind=Invalid] [isPOD=0]
 // CHECK: StructDecl=Bar:10:8 (Definition) [type=outer::inner::Bar] [typekind=Record] [isPOD=0]
-// CHECK: CXXConstructor=Bar:11:3 (Definition) [type=void (outer::Foo<bool> *)] [typekind=FunctionProto] [canonicaltype=void (outer::Foo<bool> *)] [canonicaltypekind=FunctionProto] [resulttype=void] [resulttypekind=Void] [args= [outer::Foo<bool> *] [Pointer]] [isPOD=0]
+// CHECK: CXXConstructor=Bar:11:3 (Definition) [type=void (outer::Foo<bool> *){{.*}}] [typekind=FunctionProto] [canonicaltype=void (outer::Foo<bool> *){{.*}}] [canonicaltypekind=FunctionProto] [resulttype=void] [resulttypekind=Void] [args= [outer::Foo<bool> *] [Pointer]] [isPOD=0]
 // CHECK: ParmDecl=foo:11:25 (Definition) [type=outer::Foo<bool> *] [typekind=Pointer] [canonicaltype=outer::Foo<bool> *] [canonicaltypekind=Pointer] [isPOD=1]
 // CHECK: NamespaceRef=outer:1:11 [type=] [typekind=Invalid] [isPOD=0]
 // CHECK: TemplateRef=Foo:4:8 [type=] [typekind=Invalid] [isPOD=0]
 // CHECK: CompoundStmt= [type=] [typekind=Invalid] [isPOD=0]
 // CHECK: TypedefDecl=FooType:13:15 (Definition) [type=FooType] [typekind=Typedef] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1]
 // CHECK: FieldDecl=p:14:8 (Definition) [type=int *] [typekind=Pointer] [isPOD=1]
-// CHECK: CXXMethod=f:15:8 (Definition) [type=int *(int *, char *, FooType)] [typekind=FunctionProto] [canonicaltype=int *(int *, char *, int)] [canonicaltypekind=FunctionProto] [resulttype=int *] [resulttypekind=Pointer] [args= [int *] [Pointer] [char *] [Pointer] [FooType] [Typedef]] [isPOD=0]
+// CHECK: CXXMethod=f:15:8 (Definition) [type=int *(int *, char *, FooType){{.*}}] [typekind=FunctionProto] [canonicaltype=int *(int *, char *, int){{.*}}] [canonicaltypekind=FunctionProto] [resulttype=int *] [resulttypekind=Pointer] [args= [int *] [Pointer] [char *] [Pointer] [FooType] [Typedef]] [isPOD=0]
 // CHECK: ParmDecl=p:15:15 (Definition) [type=int *] [typekind=Pointer] [isPOD=1]
 // CHECK: ParmDecl=x:15:24 (Definition) [type=char *] [typekind=Pointer] [isPOD=1]
 // CHECK: ParmDecl=z:15:35 (Definition) [type=FooType] [typekind=Typedef] [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1]

Modified: cfe/trunk/test/PCH/chain-pending-instantiations.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/chain-pending-instantiations.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/PCH/chain-pending-instantiations.cpp (original)
+++ cfe/trunk/test/PCH/chain-pending-instantiations.cpp Thu Dec 12 10:07:11 2013
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 %s -emit-llvm -o - -chain-include %s -chain-include %s | FileCheck %s
+// RUN: %clang_cc1 %s -emit-llvm -triple i686-pc-linux -o - -chain-include %s -chain-include %s | FileCheck %s
 // CHECK: define linkonce_odr %{{[^ ]+}} @_ZN1AI1BE3getEv
 #if !defined(PASS1)
 #define PASS1

Modified: cfe/trunk/test/PCH/cxx-templates.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/cxx-templates.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/PCH/cxx-templates.cpp (original)
+++ cfe/trunk/test/PCH/cxx-templates.cpp Thu Dec 12 10:07:11 2013
@@ -17,8 +17,8 @@
 // RUN: %clang_cc1 -std=c++11 -fcxx-exceptions -fdelayed-template-parsing -fexceptions -include-pch %t -verify %s -ast-dump  -o -
 // RUN: %clang_cc1 -std=c++11 -fcxx-exceptions -fdelayed-template-parsing -fexceptions -include-pch %t %s -emit-llvm -o - -DNO_ERRORS | FileCheck %s
 
-// CHECK: define weak_odr void @_ZN2S4IiE1mEv
-// CHECK: define linkonce_odr void @_ZN2S3IiE1mEv
+// CHECK: define weak_odr {{.*}}void @_ZN2S4IiE1mEv
+// CHECK: define linkonce_odr {{.*}}void @_ZN2S3IiE1mEv
 
 struct A {
   typedef int type;

Modified: cfe/trunk/test/PCH/objcxx-ivar-class.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/objcxx-ivar-class.mm?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/PCH/objcxx-ivar-class.mm (original)
+++ cfe/trunk/test/PCH/objcxx-ivar-class.mm Thu Dec 12 10:07:11 2013
@@ -9,7 +9,7 @@
 // CHECK: call {{.*}} @_ZN1SC1ERKS_
 
 // CHECK: [C setPosition:]
-// CHECK: call %struct.S* @_ZN1SaSERKS_
+// CHECK: call {{.*}} %struct.S* @_ZN1SaSERKS_
 
 // CHECK: [C .cxx_destruct]
 // CHECK: [C .cxx_construct]

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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp (original)
+++ cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp Thu Dec 12 10:07:11 2013
@@ -220,20 +220,20 @@ namespace test1 {
 
   void QualifierTest() {
     void (Qualifiers::*X)();
-    X = &Qualifiers::C; // expected-error {{assigning to 'void (test1::Qualifiers::*)()' from incompatible type 'void (test1::Qualifiers::*)() const': different qualifiers (none vs const)}}
-    X = &Qualifiers::V; // expected-error{{assigning to 'void (test1::Qualifiers::*)()' from incompatible type 'void (test1::Qualifiers::*)() volatile': different qualifiers (none vs volatile)}}
-    X = &Qualifiers::R; // expected-error{{assigning to 'void (test1::Qualifiers::*)()' from incompatible type 'void (test1::Qualifiers::*)() restrict': different qualifiers (none vs restrict)}}
-    X = &Qualifiers::CV; // expected-error{{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{{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{{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{{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::*)(){{.*}}' 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)}}
   }
 
   struct Dummy {
     void N() {};
   };
 
-  void (Qualifiers::*X)() = &Dummy::N; // expected-error{{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::*)(){{.*}}' with an rvalue of type 'void (test1::Dummy::*)(){{.*}}': 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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/const-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/const-cast.cpp Thu Dec 12 10:07:11 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 {{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::*)(){{.*}}', 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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/cstyle-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/cstyle-cast.cpp Thu Dec 12 10:07:11 2013
@@ -227,6 +227,6 @@ void memptrs()
   void (structure::*psf)() = 0;
   (void)(int (structure::*)())(psf);
 
-  (void)(void (structure::*)())(psi); // expected-error {{C-style cast from 'const int structure::*' to 'void (structure::*)()' is not allowed}}
-  (void)(int structure::*)(psf); // expected-error {{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::*)(){{.*}}' is not allowed}}
+  (void)(int structure::*)(psf); // expected-error-re {{C-style cast from 'void (structure::*)(){{.*}}' 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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/functional-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/functional-cast.cpp Thu Dec 12 10:07:11 2013
@@ -305,8 +305,8 @@ void memptrs()
   (void)structureimfp(psf);
 
   typedef void (structure::*structurevmfp)();
-  (void)structurevmfp(psi); // expected-error {{functional-style cast from 'const int structure::*' to 'structurevmfp' (aka 'void (structure::*)()') is not allowed}}
-  (void)structureimp(psf); // expected-error {{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::*)(){{.*}}') is not allowed}}
+  (void)structureimp(psf); // expected-error-re {{functional-style cast from 'void (structure::*)(){{.*}}' 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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/reinterpret-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/reinterpret-cast.cpp Thu Dec 12 10:07:11 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 {{reinterpret_cast from 'const int structure::*' to 'void (structure::*)()' is not allowed}}
-  (void)reinterpret_cast<int structure::*>(psf); // expected-error {{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::*)(){{.*}}' is not allowed}}
+  (void)reinterpret_cast<int structure::*>(psf); // expected-error-re {{reinterpret_cast from 'void (structure::*)(){{.*}}' 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 {{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::*)(){{.*}}' 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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/static-cast.cpp (original)
+++ cfe/trunk/test/SemaCXX/static-cast.cpp Thu Dec 12 10:07:11 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{{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::*)(){{.*}}'}}
   }
 }

Modified: cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp?rev=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp (original)
+++ cfe/trunk/test/SemaTemplate/explicit-instantiation.cpp Thu Dec 12 10:07:11 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 {{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){{.*}}' against 'int (int) {{.*}}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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/instantiate-method.cpp (original)
+++ cfe/trunk/test/SemaTemplate/instantiate-method.cpp Thu Dec 12 10:07:11 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 {{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 *){{.*}}'}}
   };
   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=197164&r1=197163&r2=197164&view=diff
==============================================================================
--- cfe/trunk/test/SemaTemplate/temp_arg_nontype.cpp (original)
+++ cfe/trunk/test/SemaTemplate/temp_arg_nontype.cpp Thu Dec 12 10:07:11 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{{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){{.*}}' cannot be converted to a value of type 'int (Z::*)(int){{.*}}'}}
 
 
 template<int Z::*pm> struct A7;  // expected-note{{template parameter is declared here}}





More information about the cfe-commits mailing list