blob: 46e7b2d37f777eaf3431824b7a08e68a44a414b3 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
Anders Carlssonb299d352009-10-06 17:54:23 +00002
Anders Carlssonb299d352009-10-06 17:54:23 +00003// PR5021
Anders Carlssonc1eec892010-02-12 18:14:46 +00004namespace PR5021 {
5
Anders Carlssonb299d352009-10-06 17:54:23 +00006struct A {
7 virtual void f(char);
8};
9
10void f(A *a) {
Anders Carlsson5db02472009-10-12 20:06:34 +000011 // CHECK: call void %
Anders Carlssonb299d352009-10-06 17:54:23 +000012 a->f('c');
13}
Anders Carlsson29f1a602009-12-19 02:13:41 +000014
15struct B : virtual A {
16 virtual void f();
17};
18
19void f(B * b) {
20 b->f();
Anders Carlssonc1eec892010-02-12 18:14:46 +000021}
22
23}
24
25namespace Test1 {
26 struct A {
27 virtual ~A();
28 };
29
30 struct B : A {
31 virtual ~B();
32 virtual void f();
33 };
34
35 void f(B *b) {
36 b->f();
37 }
38}