blob: e44fdc5ed2de32554e38d58d4733d19558fd8df9 [file] [log] [blame]
Anders Carlssona552ea72010-01-31 01:43:37 +00001// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
Anders Carlsson0ee33cf2009-09-12 16:16:49 +00002struct A {
3 void f();
4
5 int a;
6};
7
8struct B : A {
9 double b;
10};
11
12void f() {
13 B b;
14
15 b.f();
16}
Anders Carlssona552ea72010-01-31 01:43:37 +000017
18// CHECK: define %struct.B* @_Z1fP1A(%struct.A* %a) nounwind
19B *f(A *a) {
20 // CHECK-NOT: br label
21 // CHECK: ret %struct.B*
22 return static_cast<B*>(a);
23}
Anders Carlsson905a1002010-01-31 02:39:02 +000024
25// PR5965
26namespace PR5965 {
27
28// CHECK: define %struct.A* @_ZN6PR59651fEP1B(%struct.B* %b) nounwind
29A *f(B* b) {
30 // CHECK-NOT: br label
31 // CHECK: ret %struct.A*
32 return b;
33}
34
35}
36