r216841 - clang/test/CXX/drs/dr5xx.cpp: Suppress dr547 for targeting MSVC x86 for now, due to incompatibility of attribute(thiscall).

NAKAMURA Takumi geek4civic at gmail.com
Sun Aug 31 05:21:51 PDT 2014


Author: chapuni
Date: Sun Aug 31 07:21:50 2014
New Revision: 216841

URL: http://llvm.org/viewvc/llvm-project?rev=216841&view=rev
Log:
clang/test/CXX/drs/dr5xx.cpp: Suppress dr547 for targeting MSVC x86 for now, due to incompatibility of attribute(thiscall).

With targeting i686-win32,

  error: 'error' diagnostics seen but not expected:
    File clang/test/CXX/drs/dr5xx.cpp Line 521: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>'
    File clang/test/CXX/drs/dr5xx.cpp Line 518: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>'
    File clang/test/CXX/drs/dr5xx.cpp Line 518: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>'
  error: 'note' diagnostics seen but not expected:
    File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here
    File clang/test/CXX/drs/dr5xx.cpp Line 521: in instantiation of function template specialization 'dr547::f<void () __attribute__((thiscall)) const, dr547::S>' requested here
    File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here
    File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here
  7 errors generated.

Modified:
    cfe/trunk/test/CXX/drs/dr5xx.cpp

Modified: cfe/trunk/test/CXX/drs/dr5xx.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/drs/dr5xx.cpp?rev=216841&r1=216840&r2=216841&view=diff
==============================================================================
--- cfe/trunk/test/CXX/drs/dr5xx.cpp (original)
+++ cfe/trunk/test/CXX/drs/dr5xx.cpp Sun Aug 31 07:21:50 2014
@@ -511,6 +511,7 @@ namespace dr546 { // dr546: yes
   template<typename T> void A<T>::f() { T::error; }
 }
 
+#if !defined(_M_IX86) // This is incompatible to attribute(thiscall).
 namespace dr547 { // d547: yes
   template<typename T> struct X;
   template<typename T> struct X<T() const> {};
@@ -519,6 +520,7 @@ namespace dr547 { // d547: yes
   struct S { void f() const; };
   X<void() const> x = f(&S::f);
 }
+#endif
 
 namespace dr548 { // dr548: dup 482
   template<typename T> struct S {};





More information about the cfe-commits mailing list