16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s 26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesnamespace Common { 46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesenum RenderMode { 56bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines kRenderEGA, 66bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines kRenderCGA 76bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}; 86bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesclass C; 96bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesclass A { 106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines A(); 116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines C *_vm; 126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines unsigned char _highlightColorTableVGA[]; 136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines static const unsigned char b[]; 146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}; 15c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines// CHECK: [[Common_A_b:@[^ ]+]] = constant [1 x i8] zeroinitializer 166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesclass B { 176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinespublic: 186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Common::RenderMode _configRenderMode; 196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}; 206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesclass C : public B {}; 216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen HinesA::A() { 226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 0 == Common::kRenderCGA || _vm->_configRenderMode == Common::kRenderEGA 236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines ? b 246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines : _highlightColorTableVGA; 256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// Make sure the PHI value is casted correctly to the PHI type 26c568f1e98938584c0ef0b12ae5018ff7d90a4072Stephen Hines// CHECK: %{{.*}} = phi [0 x i8]* [ bitcast ([1 x i8]* [[Common_A_b]] to [0 x i8]*), %{{.*}} ], [ %{{.*}}, %{{.*}} ] 276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} 286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesconst unsigned char A::b[] = { 0 }; 296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} 30