1 // PR c++/43031
2 // { dg-options "-std=c++11 -pedantic" }
3 // { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } }
4 
5 // c++11 attributes that apply to types are ignored for now
6 
7 class T;
8 class L { };
9 class P : public L
10 {
11   typedef void (T::* [[gnu::__stdcall__]] F2) (L*); // { dg-warning "ignored" }
12   typedef void (T::*F) (L*) [[gnu::__stdcall__]]; // { dg-warning "ignored" }
13   void f(bool aAdd);
14 };
15 
16 class T
17 {
18 public:
19   virtual void  A(L *listener) [[gnu::__stdcall__]] = 0; // { dg-warning "ignored" }
20   virtual void R(L *listener)  [[gnu::__stdcall__]] = 0; // { dg-warning "ignored" }
21 };
f(bool aAdd)22 void P::f(bool aAdd)
23 {
24   F addRemoveEventListener = (aAdd ? &T::A : &T::R);
25 }
26