Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -triple=x86_64-pc-unknown -fsyntax-only -verify %s
      2 
      3 // Non-x86 targets ignore the calling conventions by default (but will warn
      4 // when one is encountered), so we want to make sure the virtual overrides
      5 // continue to work.
      6 namespace PR14339 {
      7   class A {
      8   public:
      9     virtual void __attribute__((thiscall)) f();	// expected-warning {{calling convention 'thiscall' ignored for this target}}
     10   };
     11 
     12   class B : public A {
     13   public:
     14     void __attribute__((cdecl)) f();
     15   };
     16 
     17   class C : public A {
     18   public:
     19     void __attribute__((thiscall)) f();  // expected-warning {{calling convention 'thiscall' ignored for this target}}
     20   };
     21 
     22   class D : public A {
     23   public:
     24     void f();
     25   };
     26 
     27   class E {
     28   public:
     29     virtual void __attribute__((stdcall)) g();  // expected-warning {{calling convention 'stdcall' ignored for this target}}
     30   };
     31 
     32   class F : public E {
     33   public:
     34     void g();
     35   };
     36 }
     37