blob: 9303bdaba8bc50ea35212ede28ca0ed9d778c872 [file] [log] [blame]
Daniel Dunbar8fbe78f2009-12-15 20:14:24 +00001// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
Anders Carlssoncabdeb42009-07-27 17:10:54 +00002
Anders Carlsson58fe1752010-05-05 05:47:36 +00003// An extra byte should be allocated for an empty class.
Anders Carlsson220bf4f2009-12-08 01:24:23 +00004// CHECK: %struct.A = type { i8 }
Anders Carlssoncabdeb42009-07-27 17:10:54 +00005struct A { } a;
Anders Carlsson220bf4f2009-12-08 01:24:23 +00006
7// No need to add tail padding here.
8// CHECK: %struct.B = type { i8*, i32 }
9struct B { void *a; int b; } b;
Anders Carlssond681a292009-12-16 17:27:20 +000010
11// C should have a vtable pointer.
Anders Carlsson58fe1752010-05-05 05:47:36 +000012// CHECK: %struct.C = type { i32 (...)**, i32 }
Anders Carlssond681a292009-12-16 17:27:20 +000013struct C { virtual void f(); int a; } *c;