1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 %s -emit-llvm -o - -O2 | FileCheck %s
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct B;
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoextern B x;
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaochar y;
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotypedef __typeof(sizeof(int)) size_t;
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct A { int a; A() { y = ((size_t)this - (size_t)&x) / sizeof(void*); } };
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct B : virtual A { void* x; };
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoB x;
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// CHECK: @y = global i8 2
12