1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li namespace Common { 4*67e74705SXin Li enum RenderMode { 5*67e74705SXin Li kRenderEGA, 6*67e74705SXin Li kRenderCGA 7*67e74705SXin Li }; 8*67e74705SXin Li class C; 9*67e74705SXin Li class A { 10*67e74705SXin Li A(); 11*67e74705SXin Li C *_vm; 12*67e74705SXin Li unsigned char _highlightColorTableVGA[]; 13*67e74705SXin Li static const unsigned char b[]; 14*67e74705SXin Li }; 15*67e74705SXin Li // CHECK: [[Common_A_b:@[^ ]+]] = constant [1 x i8] zeroinitializer 16*67e74705SXin Li class B { 17*67e74705SXin Li public: 18*67e74705SXin Li Common::RenderMode _configRenderMode; 19*67e74705SXin Li }; 20*67e74705SXin Li class C : public B {}; A()21*67e74705SXin LiA::A() { 22*67e74705SXin Li 0 == Common::kRenderCGA || _vm->_configRenderMode == Common::kRenderEGA 23*67e74705SXin Li ? b 24*67e74705SXin Li : _highlightColorTableVGA; 25*67e74705SXin Li // Make sure the PHI value is casted correctly to the PHI type 26*67e74705SXin Li // CHECK: %{{.*}} = phi [0 x i8]* [ bitcast ([1 x i8]* [[Common_A_b]] to [0 x i8]*), %{{.*}} ], [ %{{.*}}, %{{.*}} ] 27*67e74705SXin Li } 28*67e74705SXin Li const unsigned char A::b[] = { 0 }; 29*67e74705SXin Li } 30