blob: 8e2b671bf4936a627172c27f154a6a7a5a90c84f [file] [log] [blame]
Argyrios Kyrtzidis799ef662011-02-03 18:01:15 +00001// RUN: %clang_cc1 -fsyntax-only -Woverloaded-virtual -verify %s
2
3struct B1 {
4 virtual void foo(int); // expected-note {{declared here}}
5 virtual void foo(); // expected-note {{declared here}}
6};
7
8struct S1 : public B1 {
9 void foo(float); // expected-warning {{hides overloaded virtual functions}}
10};
11
12struct S2 : public B1 {
13 void foo(); // expected-note {{declared here}}
14};
15
16struct B2 {
17 virtual void foo(void*); // expected-note {{declared here}}
18};
19
20struct MS1 : public S2, public B2 {
21 virtual void foo(int); // expected-warning {{hides overloaded virtual functions}}
22};
23
24struct B3 {
25 virtual void foo(int);
26 virtual void foo();
27};
28
29struct S3 : public B3 {
30 using B3::foo;
31 void foo(float);
32};
33
34struct B4 {
35 virtual void foo();
36};
37
38struct S4 : public B4 {
39 void foo(float);
40 void foo();
41};
Argyrios Kyrtzidis74b47f92011-02-10 18:13:41 +000042
43namespace PR9182 {
44struct Base {
45 virtual void foo(int);
46};
47
48void Base::foo(int) { }
49
50struct Derived : public Base {
51 virtual void foo(int);
52 void foo(int, int);
53};
54}
Argyrios Kyrtzidis0266aa32011-03-03 22:58:57 +000055
56namespace PR9396 {
57class A {
58public:
59 virtual void f(int) {}
60};
61
62class B : public A {
63public:
64 static void f() {}
65};
66}