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.
6namespace 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