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