Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s |
Anders Carlsson | b299d35 | 2009-10-06 17:54:23 +0000 | [diff] [blame] | 2 | |
Anders Carlsson | b299d35 | 2009-10-06 17:54:23 +0000 | [diff] [blame] | 3 | // PR5021 |
Anders Carlsson | c1eec89 | 2010-02-12 18:14:46 +0000 | [diff] [blame^] | 4 | namespace PR5021 { |
5 | |||||
Anders Carlsson | b299d35 | 2009-10-06 17:54:23 +0000 | [diff] [blame] | 6 | struct A { |
7 | virtual void f(char); | ||||
8 | }; | ||||
9 | |||||
10 | void f(A *a) { | ||||
Anders Carlsson | 5db0247 | 2009-10-12 20:06:34 +0000 | [diff] [blame] | 11 | // CHECK: call void % |
Anders Carlsson | b299d35 | 2009-10-06 17:54:23 +0000 | [diff] [blame] | 12 | a->f('c'); |
13 | } | ||||
Anders Carlsson | 29f1a60 | 2009-12-19 02:13:41 +0000 | [diff] [blame] | 14 | |
15 | struct B : virtual A { | ||||
16 | virtual void f(); | ||||
17 | }; | ||||
18 | |||||
19 | void f(B * b) { | ||||
20 | b->f(); | ||||
Anders Carlsson | c1eec89 | 2010-02-12 18:14:46 +0000 | [diff] [blame^] | 21 | } |
22 | |||||
23 | } | ||||
24 | |||||
25 | namespace 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 | } |