blob: 8d5aad8889df686a9eae8ad15fe8c2e9f6ae5b2b [file] [log] [blame]
Aaron Ballmanfff32482012-12-09 17:45:41 +00001// 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}