Commit d072812e by Dodji Seketeli Committed by Dodji Seketeli

Update g++.dg/cpp0x/gen-attrs-{8,36,37}.C as c++11 attributes to types are ignored

The current implementation of C++11 attributes forbids them from being
applied to a type unless the type is being declared.  I forgot to
adjust g++.dg/cpp0x/gen-attrs-{8,36,37}.C that was being run only on
ia32.

Fixed thus, tested on i386-unknown-linux-gnu and
x86_64-unknown-linux-gnu against trunk.

gcc/testsuite/

	* g++.dg/cpp0x/gen-attrs-8.C: Update the test to reflect the fact
	that c++11 attributes to types are ignored for now.
	* g++.dg/cpp0x/gen-attrs-36.C: Likewise.
	* g++.dg/cpp0x/gen-attrs-37.C: Likewise

From-SVN: r192300
parent d32350e7
2012-10-10 Dodji Seketeli <dodji@redhat.com>
* g++.dg/cpp0x/gen-attrs-8.C: Update the test to reflect the fact
that c++11 attributes to types are ignored for now.
* g++.dg/cpp0x/gen-attrs-36.C: Likewise.
* g++.dg/cpp0x/gen-attrs-37.C: Likewise
2012-10-10 Paolo Carlini <paolo.carlini@oracle.com> 2012-10-10 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53741 PR c++/53741
......
...@@ -2,20 +2,22 @@ ...@@ -2,20 +2,22 @@
// { dg-options "-std=c++11 -pedantic" } // { dg-options "-std=c++11 -pedantic" }
// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } // { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } }
// c++11 attributes that apply to types are ignored for now
class T; class T;
class L { }; class L { };
class P : public L class P : public L
{ {
typedef void (T::* [[gnu::__stdcall__]] F2) (L*); // { dg-warning "only applies to function types" } typedef void (T::* [[gnu::__stdcall__]] F2) (L*); // { dg-warning "ignored" }
typedef void (T::*F) (L*) [[gnu::__stdcall__]]; typedef void (T::*F) (L*) [[gnu::__stdcall__]]; // { dg-warning "ignored" }
void f(bool aAdd); void f(bool aAdd);
}; };
class T class T
{ {
public: public:
virtual void A(L *listener) [[gnu::__stdcall__]] = 0; virtual void A(L *listener) [[gnu::__stdcall__]] = 0; // { dg-warning "ignored" }
virtual void R(L *listener) [[gnu::__stdcall__]] = 0; virtual void R(L *listener) [[gnu::__stdcall__]] = 0; // { dg-warning "ignored" }
}; };
void P::f(bool aAdd) void P::f(bool aAdd)
{ {
......
...@@ -2,12 +2,14 @@ ...@@ -2,12 +2,14 @@
// { dg-options "-std=c++11 -pedantic" } // { dg-options "-std=c++11 -pedantic" }
// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } // { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } }
// c++11 attributes that apply to types are ignored for now
struct S { struct S {
int x; int x;
S(const S &s) {} S(const S &s) {}
}; };
S getS() [[gnu::__stdcall__]]; S getS() [[gnu::__stdcall__]]; // { dg-warning "ignored" }
void test() void test()
{ {
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } // { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } }
extern int * ([[gnu::stdcall]] *fooPtr)( void); // { dg-error "expected" } extern int * ([[gnu::stdcall]] *fooPtr)( void); // { dg-error "expected" }
int * [[gnu::stdcall]] myFn01( void) { return 0; }// { dg-warning "attribute only applies to function types" } int * [[gnu::stdcall]] myFn01( void) { return 0; }// { dg-warning "ignored" }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment