p1-emit.cpp revision 99ace16bc6962f1fc3dc45bbbdf2eb74e555a8ad
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin10 -o - %s | FileCheck %s 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template<typename T> 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct X { 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static T member1; 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static T member2; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static T member3; 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template<typename T> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)T X<T>::member1; 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template<typename T> 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)T X<T>::member2 = 17; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK: @_ZN1XIiE7member1E = weak_odr global i32 0 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template int X<int>::member1; 17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK: @_ZN1XIiE7member2E = weak_odr global i32 17 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template int X<int>::member2; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// For implicit instantiation of 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)long& get(bool Cond1, bool Cond2) { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // CHECK: @_ZN1XIlE7member1E = weak_odr global i64 0 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // CHECK: @_ZN1XIlE7member2E = weak_odr global i64 17 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // CHECK: @_ZN1XIlE7member3E = external global i64 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return Cond1? X<long>::member1 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : Cond2? X<long>::member2 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : X<long>::member3; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)