aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/ext/attrib36.C
blob: 625ffe6bb69c31fed08f27e0d6dd40d2698aac4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// PR c++/43031
// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } }

class T;
class L { };
class P : public L
{
  typedef void (__attribute__((__stdcall__)) T::*F) (L*);
  void f(bool aAdd);
};
class T
{
public:
    virtual void __attribute__((__stdcall__)) A(L *listener) = 0;
    virtual void __attribute__((__stdcall__)) R(L *listener) = 0;
};
void P::f(bool aAdd)
{
  F addRemoveEventListener = (aAdd ? &T::A : &T::R);
}