Nick Lewycky | 032313a | 2009-07-09 15:59:27 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-as < %s | opt -ssi-everything -disable-output |
| 2 | ; PR4511 |
| 3 | |
| 4 | %"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >" = type { %"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_impl" } |
| 5 | %"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_Vector_impl" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* } |
| 6 | %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" } |
| 7 | %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* } |
| 8 | %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" } |
| 9 | %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep_base" = type { i32, i32, i32 } |
| 10 | %"struct.std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >" = type { %"struct.std::_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >" } |
| 11 | |
| 12 | declare void @_Unwind_Resume(i8*) |
| 13 | |
| 14 | declare fastcc %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* @_ZSt24__uninitialized_copy_auxIPSsS0_ET0_T_S2_S1_St12__false_type(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*) |
| 15 | |
| 16 | define fastcc void @_ZNSt6vectorISsSaISsEE9push_backERKSs(%"struct.std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >"* nocapture %this, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* nocapture %__x) { |
| 17 | entry: |
| 18 | br i1 undef, label %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i, label %bb |
| 19 | |
| 20 | bb: ; preds = %entry |
| 21 | ret void |
| 22 | |
| 23 | _ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i: ; preds = %entry |
| 24 | %0 = invoke fastcc %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* @_ZSt24__uninitialized_copy_auxIPSsS0_ET0_T_S2_S1_St12__false_type(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef) |
| 25 | to label %invcont14.i unwind label %ppad81.i ; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=3] |
| 26 | |
| 27 | invcont14.i: ; preds = %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i |
| 28 | %1 = icmp eq %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* %0, null ; <i1> [#uses=1] |
| 29 | br i1 %1, label %bb19.i, label %bb.i17.i |
| 30 | |
| 31 | bb.i17.i: ; preds = %invcont14.i |
| 32 | %2 = invoke fastcc i8* @_ZNSs4_Rep8_M_cloneERKSaIcEj(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep"* undef, i32 0) |
| 33 | to label %bb2.i25.i unwind label %ppad.i.i.i23.i ; <i8*> [#uses=0] |
| 34 | |
| 35 | ppad.i.i.i23.i: ; preds = %bb.i17.i |
| 36 | invoke void @_Unwind_Resume(i8* undef) |
| 37 | to label %.noexc.i24.i unwind label %lpad.i29.i |
| 38 | |
| 39 | .noexc.i24.i: ; preds = %ppad.i.i.i23.i |
| 40 | unreachable |
| 41 | |
| 42 | bb2.i25.i: ; preds = %bb.i17.i |
| 43 | unreachable |
| 44 | |
| 45 | lpad.i29.i: ; preds = %ppad.i.i.i23.i |
| 46 | invoke void @_Unwind_Resume(i8* undef) |
| 47 | to label %.noexc.i9 unwind label %ppad81.i |
| 48 | |
| 49 | .noexc.i9: ; preds = %lpad.i29.i |
| 50 | unreachable |
| 51 | |
| 52 | bb19.i: ; preds = %invcont14.i |
| 53 | %3 = getelementptr %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* %0, i32 1 ; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=2] |
| 54 | %4 = invoke fastcc %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* @_ZSt24__uninitialized_copy_auxIPSsS0_ET0_T_S2_S1_St12__false_type(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* undef, %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* %3) |
| 55 | to label %invcont20.i unwind label %ppad81.i ; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=0] |
| 56 | |
| 57 | invcont20.i: ; preds = %bb19.i |
| 58 | unreachable |
| 59 | |
| 60 | invcont32.i: ; preds = %ppad81.i |
| 61 | unreachable |
| 62 | |
| 63 | ppad81.i: ; preds = %bb19.i, %lpad.i29.i, %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i |
| 64 | %__new_finish.0.i = phi %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"* [ %0, %lpad.i29.i ], [ undef, %_ZNSt12_Vector_baseISsSaISsEE11_M_allocateEj.exit.i ], [ %3, %bb19.i ] ; <%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >"*> [#uses=0] |
| 65 | br i1 undef, label %invcont32.i, label %bb.i.i.i.i |
| 66 | |
| 67 | bb.i.i.i.i: ; preds = %bb.i.i.i.i, %ppad81.i |
| 68 | br label %bb.i.i.i.i |
| 69 | } |
| 70 | |
| 71 | declare fastcc i8* @_ZNSs4_Rep8_M_cloneERKSaIcEj(%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Rep"* nocapture, i32) |