Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2017
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 65.00 KB | None | 0 0
  1.     ; ModuleID = './test.cpp'
  2.     source_filename = "./test.cpp"
  3.     target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
  4.     target triple = "x86_64-apple-macosx10.12.0"
  5.  
  6.     %"class.std::__1::basic_ostream" = type { i32 (...)**, %"class.std::__1::basic_ios.base" }
  7.     %"class.std::__1::basic_ios.base" = type <{ %"class.std::__1::ios_base", %"class.std::__1::basic_ostream"*, i32 }>
  8.     %"class.std::__1::ios_base" = type { i32 (...)**, i32, i64, i64, i32, i32, i8*, i8*, void (i32, %"class.std::__1::ios_base"*, i32)**, i32*, i64, i64, i64*, i64, i64, i8**, i64, i64 }
  9.     %"class.std::__1::locale::id" = type <{ %"struct.std::__1::once_flag", i32, [4 x i8] }>
  10.     %"struct.std::__1::once_flag" = type { i64 }
  11.     %"class.std::__1::basic_ios" = type <{ %"class.std::__1::ios_base", %"class.std::__1::basic_ostream"*, i32, [4 x i8] }>
  12.     %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry" = type { i8, %"class.std::__1::basic_ostream"* }
  13.     %"class.std::__1::ostreambuf_iterator" = type { %"class.std::__1::basic_streambuf"* }
  14.     %"class.std::__1::basic_streambuf" = type { i32 (...)**, %"class.std::__1::locale", i8*, i8*, i8*, i8*, i8*, i8* }
  15.     %"class.std::__1::locale" = type { %"class.std::__1::locale::__imp"* }
  16.     %"class.std::__1::locale::__imp" = type opaque
  17.     %"class.std::__1::basic_string" = type { %"class.std::__1::__compressed_pair" }
  18.     %"class.std::__1::__compressed_pair" = type { %"class.std::__1::__libcpp_compressed_pair_imp" }
  19.     %"class.std::__1::__libcpp_compressed_pair_imp" = type { %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep" }
  20.     %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep" = type { %union.anon }
  21.     %union.anon = type { %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long" }
  22.     %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long" = type { i64, i64, i8* }
  23.     %"class.std::__1::allocator" = type { i8 }
  24.     %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short" = type { %union.anon.0, [23 x i8] }
  25.     %union.anon.0 = type { i8 }
  26.     %"class.std::__1::ctype" = type <{ %"class.std::__1::locale::facet", i32*, i8, [7 x i8] }>
  27.     %"class.std::__1::locale::facet" = type { %"class.std::__1::__shared_count" }
  28.     %"class.std::__1::__shared_count" = type { i32 (...)**, i64 }
  29.  
  30.     @_ZNSt3__14coutE = external global %"class.std::__1::basic_ostream", align 8
  31.     @.str = private unnamed_addr constant [15 x i8] c"Hello, world. \00", align 1
  32.     @_ZNSt3__15ctypeIcE2idE = external global %"class.std::__1::locale::id", align 8
  33.  
  34.     ; Function Attrs: noinline norecurse ssp uwtable
  35.     define i32 @main() #0 {
  36.       %1 = alloca i32, align 4
  37.       store i32 0, i32* %1, align 4
  38.       %2 = call dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(%"class.std::__1::basic_ostream"* dereferenceable(160) @_ZNSt3__14coutE, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i32 0, i32 0))
  39.       %3 = call dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E(%"class.std::__1::basic_ostream"* %2, %"class.std::__1::basic_ostream"* (%"class.std::__1::basic_ostream"*)* @_ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_)
  40.       ret i32 0
  41.     }
  42.  
  43.     ; Function Attrs: noinline ssp uwtable
  44.     define linkonce_odr dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc(%"class.std::__1::basic_ostream"* dereferenceable(160), i8*) #1 {
  45.       %3 = alloca %"class.std::__1::basic_ostream"*, align 8
  46.       %4 = alloca i8*, align 8
  47.       store %"class.std::__1::basic_ostream"* %0, %"class.std::__1::basic_ostream"** %3, align 8
  48.       store i8* %1, i8** %4, align 8
  49.       %5 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %3, align 8
  50.       %6 = load i8*, i8** %4, align 8
  51.       %7 = load i8*, i8** %4, align 8
  52.       %9 = call dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(%"class.std::__1::basic_ostream"* dereferenceable(160) %5, i8* %6, i64 %8)
  53.       ret %"class.std::__1::basic_ostream"* %9
  54.     }
  55.  
  56.     ; Function Attrs: alwaysinline ssp uwtable
  57.     define available_externally dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E(%"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"* (%"class.std::__1::basic_ostream"*)*) #2 align 2 {
  58.       %3 = alloca %"class.std::__1::basic_ostream"*, align 8
  59.       %4 = alloca %"class.std::__1::basic_ostream"* (%"class.std::__1::basic_ostream"*)*, align 8
  60.       store %"class.std::__1::basic_ostream"* %0, %"class.std::__1::basic_ostream"** %3, align 8
  61.       store %"class.std::__1::basic_ostream"* (%"class.std::__1::basic_ostream"*)* %1, %"class.std::__1::basic_ostream"* (%"class.std::__1::basic_ostream"*)** %4, align 8
  62.       %5 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %3, align 8
  63.       %6 = load %"class.std::__1::basic_ostream"* (%"class.std::__1::basic_ostream"*)*, %"class.std::__1::basic_ostream"* (%"class.std::__1::basic_ostream"*)** %4, align 8
  64.       %7 = call dereferenceable(160) %"class.std::__1::basic_ostream"* %6(%"class.std::__1::basic_ostream"* dereferenceable(160) %5)
  65.       ret %"class.std::__1::basic_ostream"* %7
  66.     }
  67.  
  68.     ; Function Attrs: alwaysinline ssp uwtable
  69.     define linkonce_odr hidden dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_(%"class.std::__1::basic_ostream"* dereferenceable(160)) #2 {
  70.       %2 = alloca %"class.std::__1::basic_ostream"*, align 8
  71.       store %"class.std::__1::basic_ostream"* %0, %"class.std::__1::basic_ostream"** %2, align 8
  72.       %3 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %2, align 8
  73.       %4 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %2, align 8
  74.       %5 = bitcast %"class.std::__1::basic_ostream"* %4 to i8**
  75.       %6 = load i8*, i8** %5, align 8
  76.       %7 = getelementptr i8, i8* %6, i64 -24
  77.       %8 = bitcast i8* %7 to i64*
  78.       %9 = load i64, i64* %8, align 8
  79.       %10 = bitcast %"class.std::__1::basic_ostream"* %4 to i8*
  80.       %11 = getelementptr inbounds i8, i8* %10, i64 %9
  81.       %12 = bitcast i8* %11 to %"class.std::__1::basic_ios"*
  82.       %13 = call signext i8 @_ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE5widenEc(%"class.std::__1::basic_ios"* %12, i8 signext 10)
  83.       %14 = call dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc(%"class.std::__1::basic_ostream"* %3, i8 signext %13)
  84.       %15 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %2, align 8
  85.       %16 = call dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv(%"class.std::__1::basic_ostream"* %15)
  86.       %17 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %2, align 8
  87.       ret %"class.std::__1::basic_ostream"* %17
  88.     }
  89.  
  90.     ; Function Attrs: noinline ssp uwtable
  91.     define linkonce_odr dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(%"class.std::__1::basic_ostream"* dereferenceable(160), i8*, i64) #1 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
  92.       %4 = alloca %"class.std::__1::basic_ostream"*, align 8
  93.       %5 = alloca i8*, align 8
  94.       %6 = alloca i64, align 8
  95.       %7 = alloca %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry", align 8
  96.       %8 = alloca i8*
  97.       %9 = alloca i32
  98.       %10 = alloca %"class.std::__1::ostreambuf_iterator", align 8
  99.       %11 = alloca %"class.std::__1::ostreambuf_iterator", align 8
  100.       store %"class.std::__1::basic_ostream"* %0, %"class.std::__1::basic_ostream"** %4, align 8
  101.       store i8* %1, i8** %5, align 8
  102.       store i64 %2, i64* %6, align 8
  103.       %12 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  104.       invoke void @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3_(%"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"* %7, %"class.std::__1::basic_ostream"* dereferenceable(160) %12)
  105.               to label %13 unwind label %79
  106.  
  107.     ; <label>:13:                                     ; preds = %3
  108.       %14 = invoke zeroext i1 @_ZNKSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentrycvbEv(%"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"* %7)
  109.               to label %15 unwind label %83
  110.  
  111.     ; <label>:15:                                     ; preds = %13
  112.       br i1 %14, label %16, label %102
  113.  
  114.     ; <label>:16:                                     ; preds = %15
  115.       %17 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  116.       call void @_ZNSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEEC1ERNS_13basic_ostreamIcS2_EE(%"class.std::__1::ostreambuf_iterator"* %11, %"class.std::__1::basic_ostream"* dereferenceable(160) %17) #9
  117.       %18 = load i8*, i8** %5, align 8
  118.       %19 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  119.       %20 = bitcast %"class.std::__1::basic_ostream"* %19 to i8**
  120.       %21 = load i8*, i8** %20, align 8
  121.       %22 = getelementptr i8, i8* %21, i64 -24
  122.       %23 = bitcast i8* %22 to i64*
  123.       %24 = load i64, i64* %23, align 8
  124.       %25 = bitcast %"class.std::__1::basic_ostream"* %19 to i8*
  125.       %26 = getelementptr inbounds i8, i8* %25, i64 %24
  126.       %27 = bitcast i8* %26 to %"class.std::__1::ios_base"*
  127.       %28 = invoke i32 @_ZNKSt3__18ios_base5flagsEv(%"class.std::__1::ios_base"* %27)
  128.               to label %29 unwind label %83
  129.  
  130.     ; <label>:29:                                     ; preds = %16
  131.       %30 = and i32 %28, 176
  132.       %31 = icmp eq i32 %30, 32
  133.       br i1 %31, label %32, label %36
  134.  
  135.     ; <label>:32:                                     ; preds = %29
  136.       %33 = load i8*, i8** %5, align 8
  137.       %34 = load i64, i64* %6, align 8
  138.       %35 = getelementptr inbounds i8, i8* %33, i64 %34
  139.       br label %38
  140.  
  141.     ; <label>:36:                                     ; preds = %29
  142.       %37 = load i8*, i8** %5, align 8
  143.       br label %38
  144.  
  145.     ; <label>:38:                                     ; preds = %36, %32
  146.       %39 = phi i8* [ %35, %32 ], [ %37, %36 ]
  147.       %40 = load i8*, i8** %5, align 8
  148.       %41 = load i64, i64* %6, align 8
  149.       %42 = getelementptr inbounds i8, i8* %40, i64 %41
  150.       %43 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  151.       %44 = bitcast %"class.std::__1::basic_ostream"* %43 to i8**
  152.       %45 = load i8*, i8** %44, align 8
  153.       %46 = getelementptr i8, i8* %45, i64 -24
  154.       %47 = bitcast i8* %46 to i64*
  155.       %48 = load i64, i64* %47, align 8
  156.       %49 = bitcast %"class.std::__1::basic_ostream"* %43 to i8*
  157.       %50 = getelementptr inbounds i8, i8* %49, i64 %48
  158.       %51 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  159.       %52 = bitcast %"class.std::__1::basic_ostream"* %51 to i8**
  160.       %53 = load i8*, i8** %52, align 8
  161.       %54 = getelementptr i8, i8* %53, i64 -24
  162.       %55 = bitcast i8* %54 to i64*
  163.       %56 = load i64, i64* %55, align 8
  164.       %57 = bitcast %"class.std::__1::basic_ostream"* %51 to i8*
  165.       %58 = getelementptr inbounds i8, i8* %57, i64 %56
  166.       %59 = bitcast i8* %58 to %"class.std::__1::basic_ios"*
  167.       %60 = invoke signext i8 @_ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE4fillEv(%"class.std::__1::basic_ios"* %59)
  168.               to label %61 unwind label %83
  169.  
  170.     ; <label>:61:                                     ; preds = %38
  171.       %62 = bitcast i8* %50 to %"class.std::__1::ios_base"*
  172.       %63 = bitcast %"class.std::__1::ostreambuf_iterator"* %11 to %"class.std::__1::basic_streambuf"**
  173.       %64 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %63, align 8
  174.       %65 = invoke %"class.std::__1::basic_streambuf"* @_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_(%"class.std::__1::basic_streambuf"* %64, i8* %18, i8* %39, i8* %42, %"class.std::__1::ios_base"* dereferenceable(136) %62, i8 signext %60)
  175.               to label %66 unwind label %83
  176.  
  177.     ; <label>:66:                                     ; preds = %61
  178.       %67 = bitcast %"class.std::__1::ostreambuf_iterator"* %10 to %"class.std::__1::basic_streambuf"**
  179.       store %"class.std::__1::basic_streambuf"* %65, %"class.std::__1::basic_streambuf"** %67, align 8
  180.       %68 = call zeroext i1 @_ZNKSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEE6failedEv(%"class.std::__1::ostreambuf_iterator"* %10) #9
  181.       br i1 %68, label %69, label %102
  182.  
  183.     ; <label>:69:                                     ; preds = %66
  184.       %70 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  185.       %71 = bitcast %"class.std::__1::basic_ostream"* %70 to i8**
  186.       %72 = load i8*, i8** %71, align 8
  187.       %73 = getelementptr i8, i8* %72, i64 -24
  188.       %74 = bitcast i8* %73 to i64*
  189.       %75 = load i64, i64* %74, align 8
  190.       %76 = bitcast %"class.std::__1::basic_ostream"* %70 to i8*
  191.       %77 = getelementptr inbounds i8, i8* %76, i64 %75
  192.       %78 = bitcast i8* %77 to %"class.std::__1::basic_ios"*
  193.       invoke void @_ZNSt3__19basic_iosIcNS_11char_traitsIcEEE8setstateEj(%"class.std::__1::basic_ios"* %78, i32 5)
  194.               to label %102 unwind label %83
  195.  
  196.     ; <label>:79:                                     ; preds = %3
  197.       %80 = landingpad { i8*, i32 }
  198.               catch i8* null
  199.       %81 = extractvalue { i8*, i32 } %80, 0
  200.       store i8* %81, i8** %8, align 8
  201.       %82 = extractvalue { i8*, i32 } %80, 1
  202.       store i32 %82, i32* %9, align 4
  203.       br label %87
  204.  
  205.     ; <label>:83:                                     ; preds = %69, %61, %38, %16, %13
  206.       %84 = landingpad { i8*, i32 }
  207.               catch i8* null
  208.       %85 = extractvalue { i8*, i32 } %84, 0
  209.       store i8* %85, i8** %8, align 8
  210.       %86 = extractvalue { i8*, i32 } %84, 1
  211.       store i32 %86, i32* %9, align 4
  212.       call void @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev(%"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"* %7) #9
  213.       br label %87
  214.  
  215.     ; <label>:87:                                     ; preds = %83, %79
  216.       %88 = load i8*, i8** %8, align 8
  217.       %89 = call i8* @__cxa_begin_catch(i8* %88) #9
  218.       %90 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  219.       %91 = bitcast %"class.std::__1::basic_ostream"* %90 to i8**
  220.       %92 = load i8*, i8** %91, align 8
  221.       %93 = getelementptr i8, i8* %92, i64 -24
  222.       %94 = bitcast i8* %93 to i64*
  223.       %95 = load i64, i64* %94, align 8
  224.       %96 = bitcast %"class.std::__1::basic_ostream"* %90 to i8*
  225.       %97 = getelementptr inbounds i8, i8* %96, i64 %95
  226.       %98 = bitcast i8* %97 to %"class.std::__1::ios_base"*
  227.       invoke void @_ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv(%"class.std::__1::ios_base"* %98)
  228.               to label %99 unwind label %103
  229.  
  230.     ; <label>:99:                                     ; preds = %87
  231.       call void @__cxa_end_catch()
  232.       br label %100
  233.  
  234.     ; <label>:100:                                    ; preds = %99, %102
  235.       %101 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  236.       ret %"class.std::__1::basic_ostream"* %101
  237.  
  238.     ; <label>:102:                                    ; preds = %66, %69, %15
  239.       call void @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev(%"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"* %7) #9
  240.       br label %100
  241.  
  242.     ; <label>:103:                                    ; preds = %87
  243.       %104 = landingpad { i8*, i32 }
  244.               cleanup
  245.       %105 = extractvalue { i8*, i32 } %104, 0
  246.       store i8* %105, i8** %8, align 8
  247.       %106 = extractvalue { i8*, i32 } %104, 1
  248.       store i32 %106, i32* %9, align 4
  249.       invoke void @__cxa_end_catch()
  250.               to label %107 unwind label %109
  251.  
  252.     ; <label>:107:                                    ; preds = %103
  253.       %108 = load i8*, i8** %8, align 8
  254.       call void @_Unwind_Resume(i8* %108)
  255.       unreachable
  256.  
  257.     ; <label>:109:                                    ; preds = %103
  258.       %110 = landingpad { i8*, i32 }
  259.               catch i8* null
  260.       %111 = extractvalue { i8*, i32 } %110, 0
  261.       call void @__clang_call_terminate(i8* %111) #10
  262.       unreachable
  263.     }
  264.  
  265.     ; Function Attrs: noinline ssp uwtable
  266.     define linkonce_odr i64 @_ZNSt3__111char_traitsIcE6lengthEPKc(i8*) #1 align 2 {
  267.       %2 = alloca i8*, align 8
  268.       store i8* %0, i8** %2, align 8
  269.       %3 = load i8*, i8** %2, align 8
  270.       %4 = call i64 @strlen(i8* %3)
  271.       ret i64 %4
  272.     }
  273.  
  274.     declare void @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3_(%"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"*, %"class.std::__1::basic_ostream"* dereferenceable(160)) unnamed_addr #3
  275.  
  276.     declare i32 @__gxx_personality_v0(...)
  277.  
  278.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  279.     define available_externally hidden zeroext i1 @_ZNKSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentrycvbEv(%"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"*) #4 align 2 {
  280.       %2 = alloca %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"*, align 8
  281.       store %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"* %0, %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"** %2, align 8
  282.       %3 = load %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"*, %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"** %2, align 8
  283.       %4 = bitcast %"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"* %3 to i8*
  284.       %5 = load i8, i8* %4, align 8
  285.       %6 = trunc i8 %5 to i1
  286.       ret i1 %6
  287.     }
  288.  
  289.     ; Function Attrs: noinline ssp uwtable
  290.     define linkonce_odr hidden %"class.std::__1::basic_streambuf"* @_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_(%"class.std::__1::basic_streambuf"*, i8*, i8*, i8*, %"class.std::__1::ios_base"* dereferenceable(136), i8 signext) #1 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
  291.       %7 = alloca %"class.std::__1::ostreambuf_iterator", align 8
  292.       %8 = alloca %"class.std::__1::ostreambuf_iterator", align 8
  293.       %9 = alloca i8*, align 8
  294.       %10 = alloca i8*, align 8
  295.       %11 = alloca i8*, align 8
  296.       %12 = alloca %"class.std::__1::ios_base"*, align 8
  297.       %13 = alloca i8, align 1
  298.       %14 = alloca i64, align 8
  299.       %15 = alloca i64, align 8
  300.       %16 = alloca i64, align 8
  301.       %17 = alloca %"class.std::__1::basic_string", align 8
  302.       %18 = alloca i8*
  303.       %19 = alloca i32
  304.       %20 = alloca i32
  305.       %21 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  306.       store %"class.std::__1::basic_streambuf"* %0, %"class.std::__1::basic_streambuf"** %21, align 8
  307.       store i8* %1, i8** %9, align 8
  308.       store i8* %2, i8** %10, align 8
  309.       store i8* %3, i8** %11, align 8
  310.       store %"class.std::__1::ios_base"* %4, %"class.std::__1::ios_base"** %12, align 8
  311.       store i8 %5, i8* %13, align 1
  312.       %22 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  313.       %23 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %22, align 8
  314.       %24 = icmp eq %"class.std::__1::basic_streambuf"* %23, null
  315.       br i1 %24, label %25, label %28
  316.  
  317.     ; <label>:25:                                     ; preds = %6
  318.       %26 = bitcast %"class.std::__1::ostreambuf_iterator"* %7 to i8*
  319.       %27 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to i8*
  320.       call void @llvm.memcpy.p0i8.p0i8.i64(i8* %26, i8* %27, i64 8, i32 8, i1 false)
  321.       br label %110
  322.  
  323.     ; <label>:28:                                     ; preds = %6
  324.       %29 = load i8*, i8** %11, align 8
  325.       %30 = load i8*, i8** %9, align 8
  326.       %31 = ptrtoint i8* %29 to i64
  327.       %32 = ptrtoint i8* %30 to i64
  328.       %33 = sub i64 %31, %32
  329.       store i64 %33, i64* %14, align 8
  330.       %34 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %12, align 8
  331.       %35 = call i64 @_ZNKSt3__18ios_base5widthEv(%"class.std::__1::ios_base"* %34)
  332.       store i64 %35, i64* %15, align 8
  333.       %36 = load i64, i64* %15, align 8
  334.       %37 = load i64, i64* %14, align 8
  335.       %38 = icmp sgt i64 %36, %37
  336.       br i1 %38, label %39, label %43
  337.  
  338.     ; <label>:39:                                     ; preds = %28
  339.       %40 = load i64, i64* %14, align 8
  340.       %41 = load i64, i64* %15, align 8
  341.       %42 = sub nsw i64 %41, %40
  342.       store i64 %42, i64* %15, align 8
  343.       br label %44
  344.  
  345.     ; <label>:43:                                     ; preds = %28
  346.       store i64 0, i64* %15, align 8
  347.       br label %44
  348.  
  349.     ; <label>:44:                                     ; preds = %43, %39
  350.       %45 = load i8*, i8** %10, align 8
  351.       %46 = load i8*, i8** %9, align 8
  352.       %47 = ptrtoint i8* %45 to i64
  353.       %48 = ptrtoint i8* %46 to i64
  354.       %49 = sub i64 %47, %48
  355.       store i64 %49, i64* %16, align 8
  356.       %50 = load i64, i64* %16, align 8
  357.       %51 = icmp sgt i64 %50, 0
  358.       br i1 %51, label %52, label %64
  359.  
  360.     ; <label>:52:                                     ; preds = %44
  361.       %53 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  362.       %54 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %53, align 8
  363.       %55 = load i8*, i8** %9, align 8
  364.       %56 = load i64, i64* %16, align 8
  365.       %57 = call i64 @_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputnEPKcl(%"class.std::__1::basic_streambuf"* %54, i8* %55, i64 %56)
  366.       %58 = load i64, i64* %16, align 8
  367.       %59 = icmp ne i64 %57, %58
  368.       br i1 %59, label %60, label %64
  369.  
  370.     ; <label>:60:                                     ; preds = %52
  371.       %61 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  372.       store %"class.std::__1::basic_streambuf"* null, %"class.std::__1::basic_streambuf"** %61, align 8
  373.       %62 = bitcast %"class.std::__1::ostreambuf_iterator"* %7 to i8*
  374.       %63 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to i8*
  375.       call void @llvm.memcpy.p0i8.p0i8.i64(i8* %62, i8* %63, i64 8, i32 8, i1 false)
  376.       br label %110
  377.  
  378.     ; <label>:64:                                     ; preds = %52, %44
  379.       %65 = load i64, i64* %15, align 8
  380.       %66 = icmp sgt i64 %65, 0
  381.       br i1 %66, label %67, label %85
  382.  
  383.     ; <label>:67:                                     ; preds = %64
  384.       %68 = load i64, i64* %15, align 8
  385.       %69 = load i8, i8* %13, align 1
  386.       call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1Emc(%"class.std::__1::basic_string"* %17, i64 %68, i8 signext %69)
  387.       %70 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  388.       %71 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %70, align 8
  389.       %72 = call i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4dataEv(%"class.std::__1::basic_string"* %17) #9
  390.       %73 = load i64, i64* %15, align 8
  391.       %74 = invoke i64 @_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputnEPKcl(%"class.std::__1::basic_streambuf"* %71, i8* %72, i64 %73)
  392.               to label %75 unwind label %113
  393.  
  394.     ; <label>:75:                                     ; preds = %67
  395.       %76 = load i64, i64* %15, align 8
  396.       %77 = icmp ne i64 %74, %76
  397.       br i1 %77, label %78, label %82
  398.  
  399.     ; <label>:78:                                     ; preds = %75
  400.       %79 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  401.       store %"class.std::__1::basic_streambuf"* null, %"class.std::__1::basic_streambuf"** %79, align 8
  402.       %80 = bitcast %"class.std::__1::ostreambuf_iterator"* %7 to i8*
  403.       %81 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to i8*
  404.       call void @llvm.memcpy.p0i8.p0i8.i64(i8* %80, i8* %81, i64 8, i32 8, i1 false)
  405.       store i32 1, i32* %20, align 4
  406.       br label %83
  407.  
  408.     ; <label>:82:                                     ; preds = %75
  409.       store i32 0, i32* %20, align 4
  410.       br label %83
  411.  
  412.     ; <label>:83:                                     ; preds = %82, %78
  413.       call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(%"class.std::__1::basic_string"* %17) #9
  414.       %84 = load i32, i32* %20, align 4
  415.       switch i32 %84, label %118 [
  416.         i32 0, label %85
  417.         i32 1, label %110
  418.       ]
  419.  
  420.     ; <label>:85:                                     ; preds = %83, %64
  421.       %86 = load i8*, i8** %11, align 8
  422.       %87 = load i8*, i8** %10, align 8
  423.       %88 = ptrtoint i8* %86 to i64
  424.       %89 = ptrtoint i8* %87 to i64
  425.       %90 = sub i64 %88, %89
  426.       store i64 %90, i64* %16, align 8
  427.       %91 = load i64, i64* %16, align 8
  428.       %92 = icmp sgt i64 %91, 0
  429.       br i1 %92, label %93, label %105
  430.  
  431.     ; <label>:93:                                     ; preds = %85
  432.       %94 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  433.       %95 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %94, align 8
  434.       %96 = load i8*, i8** %10, align 8
  435.       %97 = load i64, i64* %16, align 8
  436.       %98 = call i64 @_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputnEPKcl(%"class.std::__1::basic_streambuf"* %95, i8* %96, i64 %97)
  437.       %99 = load i64, i64* %16, align 8
  438.       %100 = icmp ne i64 %98, %99
  439.       br i1 %100, label %101, label %105
  440.  
  441.     ; <label>:101:                                    ; preds = %93
  442.       %102 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to %"class.std::__1::basic_streambuf"**
  443.       store %"class.std::__1::basic_streambuf"* null, %"class.std::__1::basic_streambuf"** %102, align 8
  444.       %103 = bitcast %"class.std::__1::ostreambuf_iterator"* %7 to i8*
  445.       %104 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to i8*
  446.       call void @llvm.memcpy.p0i8.p0i8.i64(i8* %103, i8* %104, i64 8, i32 8, i1 false)
  447.       br label %110
  448.  
  449.     ; <label>:105:                                    ; preds = %93, %85
  450.       %106 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %12, align 8
  451.       %107 = call i64 @_ZNSt3__18ios_base5widthEl(%"class.std::__1::ios_base"* %106, i64 0)
  452.       %108 = bitcast %"class.std::__1::ostreambuf_iterator"* %7 to i8*
  453.       %109 = bitcast %"class.std::__1::ostreambuf_iterator"* %8 to i8*
  454.       call void @llvm.memcpy.p0i8.p0i8.i64(i8* %108, i8* %109, i64 8, i32 8, i1 false)
  455.       br label %110
  456.  
  457.     ; <label>:110:                                    ; preds = %105, %101, %83, %60, %25
  458.       %111 = bitcast %"class.std::__1::ostreambuf_iterator"* %7 to %"class.std::__1::basic_streambuf"**
  459.       %112 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %111, align 8
  460.       ret %"class.std::__1::basic_streambuf"* %112
  461.  
  462.     ; <label>:113:                                    ; preds = %67
  463.       %114 = landingpad { i8*, i32 }
  464.               cleanup
  465.       %115 = extractvalue { i8*, i32 } %114, 0
  466.       store i8* %115, i8** %18, align 8
  467.       %116 = extractvalue { i8*, i32 } %114, 1
  468.       store i32 %116, i32* %19, align 4
  469.       call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(%"class.std::__1::basic_string"* %17) #9
  470.       %117 = load i8*, i8** %18, align 8
  471.       call void @_Unwind_Resume(i8* %117)
  472.       unreachable
  473.  
  474.     ; <label>:118:                                    ; preds = %83
  475.       unreachable
  476.     }
  477.  
  478.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  479.     define linkonce_odr hidden void @_ZNSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEEC1ERNS_13basic_ostreamIcS2_EE(%"class.std::__1::ostreambuf_iterator"*, %"class.std::__1::basic_ostream"* dereferenceable(160)) unnamed_addr #4 align 2 {
  480.       %3 = alloca %"class.std::__1::ostreambuf_iterator"*, align 8
  481.       %4 = alloca %"class.std::__1::basic_ostream"*, align 8
  482.       store %"class.std::__1::ostreambuf_iterator"* %0, %"class.std::__1::ostreambuf_iterator"** %3, align 8
  483.       store %"class.std::__1::basic_ostream"* %1, %"class.std::__1::basic_ostream"** %4, align 8
  484.       %5 = load %"class.std::__1::ostreambuf_iterator"*, %"class.std::__1::ostreambuf_iterator"** %3, align 8
  485.       %6 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  486.       call void @_ZNSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEEC2ERNS_13basic_ostreamIcS2_EE(%"class.std::__1::ostreambuf_iterator"* %5, %"class.std::__1::basic_ostream"* dereferenceable(160) %6) #9
  487.       ret void
  488.     }
  489.  
  490.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  491.     define linkonce_odr hidden i32 @_ZNKSt3__18ios_base5flagsEv(%"class.std::__1::ios_base"*) #4 align 2 {
  492.       %2 = alloca %"class.std::__1::ios_base"*, align 8
  493.       store %"class.std::__1::ios_base"* %0, %"class.std::__1::ios_base"** %2, align 8
  494.       %3 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %2, align 8
  495.       %4 = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %3, i32 0, i32 1
  496.       %5 = load i32, i32* %4, align 8
  497.       ret i32 %5
  498.     }
  499.  
  500.     ; Function Attrs: alwaysinline ssp uwtable
  501.     define available_externally hidden signext i8 @_ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE4fillEv(%"class.std::__1::basic_ios"*) #2 align 2 {
  502.       %2 = alloca %"class.std::__1::basic_ios"*, align 8
  503.       store %"class.std::__1::basic_ios"* %0, %"class.std::__1::basic_ios"** %2, align 8
  504.       %3 = load %"class.std::__1::basic_ios"*, %"class.std::__1::basic_ios"** %2, align 8
  505.       %4 = call i32 @_ZNSt3__111char_traitsIcE3eofEv() #9
  506.       %5 = getelementptr inbounds %"class.std::__1::basic_ios", %"class.std::__1::basic_ios"* %3, i32 0, i32 2
  507.       %6 = load i32, i32* %5, align 8
  508.       %7 = call zeroext i1 @_ZNSt3__111char_traitsIcE11eq_int_typeEii(i32 %4, i32 %6) #9
  509.       br i1 %7, label %8, label %12
  510.  
  511.     ; <label>:8:                                      ; preds = %1
  512.       %9 = call signext i8 @_ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE5widenEc(%"class.std::__1::basic_ios"* %3, i8 signext 32)
  513.       %10 = sext i8 %9 to i32
  514.       %11 = getelementptr inbounds %"class.std::__1::basic_ios", %"class.std::__1::basic_ios"* %3, i32 0, i32 2
  515.       store i32 %10, i32* %11, align 8
  516.       br label %12
  517.  
  518.     ; <label>:12:                                     ; preds = %8, %1
  519.       %13 = getelementptr inbounds %"class.std::__1::basic_ios", %"class.std::__1::basic_ios"* %3, i32 0, i32 2
  520.       %14 = load i32, i32* %13, align 8
  521.       %15 = trunc i32 %14 to i8
  522.       ret i8 %15
  523.     }
  524.  
  525.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  526.     define linkonce_odr hidden zeroext i1 @_ZNKSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEE6failedEv(%"class.std::__1::ostreambuf_iterator"*) #4 align 2 {
  527.       %2 = alloca %"class.std::__1::ostreambuf_iterator"*, align 8
  528.       store %"class.std::__1::ostreambuf_iterator"* %0, %"class.std::__1::ostreambuf_iterator"** %2, align 8
  529.       %3 = load %"class.std::__1::ostreambuf_iterator"*, %"class.std::__1::ostreambuf_iterator"** %2, align 8
  530.       %4 = bitcast %"class.std::__1::ostreambuf_iterator"* %3 to %"class.std::__1::basic_streambuf"**
  531.       %5 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %4, align 8
  532.       %6 = icmp eq %"class.std::__1::basic_streambuf"* %5, null
  533.       ret i1 %6
  534.     }
  535.  
  536.     ; Function Attrs: alwaysinline ssp uwtable
  537.     define available_externally hidden void @_ZNSt3__19basic_iosIcNS_11char_traitsIcEEE8setstateEj(%"class.std::__1::basic_ios"*, i32) #2 align 2 {
  538.       %3 = alloca %"class.std::__1::basic_ios"*, align 8
  539.       %4 = alloca i32, align 4
  540.       store %"class.std::__1::basic_ios"* %0, %"class.std::__1::basic_ios"** %3, align 8
  541.       store i32 %1, i32* %4, align 4
  542.       %5 = load %"class.std::__1::basic_ios"*, %"class.std::__1::basic_ios"** %3, align 8
  543.       %6 = bitcast %"class.std::__1::basic_ios"* %5 to %"class.std::__1::ios_base"*
  544.       %7 = load i32, i32* %4, align 4
  545.       call void @_ZNSt3__18ios_base8setstateEj(%"class.std::__1::ios_base"* %6, i32 %7)
  546.       ret void
  547.     }
  548.  
  549.     ; Function Attrs: nounwind
  550.     declare void @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev(%"class.std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry"*) unnamed_addr #5
  551.  
  552.     declare i8* @__cxa_begin_catch(i8*)
  553.  
  554.     declare void @_ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv(%"class.std::__1::ios_base"*) #3
  555.  
  556.     declare void @__cxa_end_catch()
  557.  
  558.     ; Function Attrs: noinline noreturn nounwind
  559.     define linkonce_odr hidden void @__clang_call_terminate(i8*) #6 {
  560.       %2 = call i8* @__cxa_begin_catch(i8* %0) #9
  561.       call void @_ZSt9terminatev() #10
  562.       unreachable
  563.     }
  564.  
  565.     declare void @_ZSt9terminatev()
  566.  
  567.     ; Function Attrs: argmemonly nounwind
  568.     declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #7
  569.  
  570.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  571.     define linkonce_odr hidden i64 @_ZNKSt3__18ios_base5widthEv(%"class.std::__1::ios_base"*) #4 align 2 {
  572.       %2 = alloca %"class.std::__1::ios_base"*, align 8
  573.       store %"class.std::__1::ios_base"* %0, %"class.std::__1::ios_base"** %2, align 8
  574.       %3 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %2, align 8
  575.       %4 = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %3, i32 0, i32 3
  576.       %5 = load i64, i64* %4, align 8
  577.       ret i64 %5
  578.     }
  579.  
  580.     ; Function Attrs: alwaysinline ssp uwtable
  581.     define available_externally i64 @_ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputnEPKcl(%"class.std::__1::basic_streambuf"*, i8*, i64) #2 align 2 {
  582.       %4 = alloca %"class.std::__1::basic_streambuf"*, align 8
  583.       %5 = alloca i8*, align 8
  584.       %6 = alloca i64, align 8
  585.       store %"class.std::__1::basic_streambuf"* %0, %"class.std::__1::basic_streambuf"** %4, align 8
  586.       store i8* %1, i8** %5, align 8
  587.       store i64 %2, i64* %6, align 8
  588.       %7 = load %"class.std::__1::basic_streambuf"*, %"class.std::__1::basic_streambuf"** %4, align 8
  589.       %8 = bitcast %"class.std::__1::basic_streambuf"* %7 to i64 (%"class.std::__1::basic_streambuf"*, i8*, i64)***
  590.       %9 = load i64 (%"class.std::__1::basic_streambuf"*, i8*, i64)**, i64 (%"class.std::__1::basic_streambuf"*, i8*, i64)*** %8, align 8
  591.       %10 = getelementptr inbounds i64 (%"class.std::__1::basic_streambuf"*, i8*, i64)*, i64 (%"class.std::__1::basic_streambuf"*, i8*, i64)** %9, i64 12
  592.       %11 = load i64 (%"class.std::__1::basic_streambuf"*, i8*, i64)*, i64 (%"class.std::__1::basic_streambuf"*, i8*, i64)** %10, align 8
  593.       %12 = load i8*, i8** %5, align 8
  594.       %13 = load i64, i64* %6, align 8
  595.       %14 = call i64 %11(%"class.std::__1::basic_streambuf"* %7, i8* %12, i64 %13)
  596.       ret i64 %14
  597.     }
  598.  
  599.     ; Function Attrs: alwaysinline ssp uwtable
  600.     define available_externally hidden void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1Emc(%"class.std::__1::basic_string"*, i64, i8 signext) unnamed_addr #2 align 2 {
  601.       %4 = alloca %"class.std::__1::basic_string"*, align 8
  602.       %5 = alloca i64, align 8
  603.       %6 = alloca i8, align 1
  604.       store %"class.std::__1::basic_string"* %0, %"class.std::__1::basic_string"** %4, align 8
  605.       store i64 %1, i64* %5, align 8
  606.       store i8 %2, i8* %6, align 1
  607.       %7 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %4, align 8
  608.       %8 = load i64, i64* %5, align 8
  609.       %9 = load i8, i8* %6, align 1
  610.       call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2Emc(%"class.std::__1::basic_string"* %7, i64 %8, i8 signext %9)
  611.       ret void
  612.     }
  613.  
  614.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  615.     define available_externally hidden i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE4dataEv(%"class.std::__1::basic_string"*) #4 align 2 {
  616.       %2 = alloca %"class.std::__1::basic_string"*, align 8
  617.       store %"class.std::__1::basic_string"* %0, %"class.std::__1::basic_string"** %2, align 8
  618.       %3 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %2, align 8
  619.       %4 = call i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE13__get_pointerEv(%"class.std::__1::basic_string"* %3) #9
  620.       %5 = call i8* @_ZNSt3__116__to_raw_pointerIKcEEPT_S3_(i8* %4) #9
  621.       ret i8* %5
  622.     }
  623.  
  624.     ; Function Attrs: nounwind
  625.     declare void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(%"class.std::__1::basic_string"*) unnamed_addr #5
  626.  
  627.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  628.     define linkonce_odr hidden i64 @_ZNSt3__18ios_base5widthEl(%"class.std::__1::ios_base"*, i64) #4 align 2 {
  629.       %3 = alloca %"class.std::__1::ios_base"*, align 8
  630.       %4 = alloca i64, align 8
  631.       %5 = alloca i64, align 8
  632.       store %"class.std::__1::ios_base"* %0, %"class.std::__1::ios_base"** %3, align 8
  633.       store i64 %1, i64* %4, align 8
  634.       %6 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %3, align 8
  635.       %7 = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %6, i32 0, i32 3
  636.       %8 = load i64, i64* %7, align 8
  637.       store i64 %8, i64* %5, align 8
  638.       %9 = load i64, i64* %4, align 8
  639.       %10 = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %6, i32 0, i32 3
  640.       store i64 %9, i64* %10, align 8
  641.       %11 = load i64, i64* %5, align 8
  642.       ret i64 %11
  643.     }
  644.  
  645.     ; Function Attrs: alwaysinline ssp uwtable
  646.     define available_externally hidden void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2Emc(%"class.std::__1::basic_string"*, i64, i8 signext) unnamed_addr #2 align 2 {
  647.       %4 = alloca %"class.std::__1::basic_string"*, align 8
  648.       %5 = alloca i64, align 8
  649.       %6 = alloca i8, align 1
  650.       store %"class.std::__1::basic_string"* %0, %"class.std::__1::basic_string"** %4, align 8
  651.       store i64 %1, i64* %5, align 8
  652.       store i8 %2, i8* %6, align 1
  653.       %7 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %4, align 8
  654.       %8 = bitcast %"class.std::__1::basic_string"* %7 to %"class.std::__1::__compressed_pair"*
  655.       %9 = load i64, i64* %5, align 8
  656.       %10 = load i8, i8* %6, align 1
  657.       call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEmc(%"class.std::__1::basic_string"* %7, i64 %9, i8 signext %10)
  658.       ret void
  659.     }
  660.  
  661.     ; Function Attrs: alwaysinline ssp uwtable
  662.     define linkonce_odr hidden void @_ZNSt3__117__compressed_pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_EC1Ev(%"class.std::__1::__compressed_pair"*) unnamed_addr #2 align 2 {
  663.       %2 = alloca %"class.std::__1::__compressed_pair"*, align 8
  664.       store %"class.std::__1::__compressed_pair"* %0, %"class.std::__1::__compressed_pair"** %2, align 8
  665.       %3 = load %"class.std::__1::__compressed_pair"*, %"class.std::__1::__compressed_pair"** %2, align 8
  666.       ret void
  667.     }
  668.  
  669.     declare void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEmc(%"class.std::__1::basic_string"*, i64, i8 signext) #3
  670.  
  671.     ; Function Attrs: alwaysinline ssp uwtable
  672.     define linkonce_odr hidden void @_ZNSt3__117__compressed_pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_EC2Ev(%"class.std::__1::__compressed_pair"*) unnamed_addr #2 align 2 {
  673.       %2 = alloca %"class.std::__1::__compressed_pair"*, align 8
  674.       store %"class.std::__1::__compressed_pair"* %0, %"class.std::__1::__compressed_pair"** %2, align 8
  675.       %3 = load %"class.std::__1::__compressed_pair"*, %"class.std::__1::__compressed_pair"** %2, align 8
  676.       %4 = bitcast %"class.std::__1::__compressed_pair"* %3 to %"class.std::__1::__libcpp_compressed_pair_imp"*
  677.       ret void
  678.     }
  679.  
  680.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  681.     define linkonce_odr hidden void @_ZNSt3__128__libcpp_compressed_pair_impINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_Lj2EEC2Ev(%"class.std::__1::__libcpp_compressed_pair_imp"*) unnamed_addr #4 align 2 {
  682.       %2 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
  683.       store %"class.std::__1::__libcpp_compressed_pair_imp"* %0, %"class.std::__1::__libcpp_compressed_pair_imp"** %2, align 8
  684.       %3 = load %"class.std::__1::__libcpp_compressed_pair_imp"*, %"class.std::__1::__libcpp_compressed_pair_imp"** %2, align 8
  685.       %4 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %3 to %"class.std::__1::allocator"*
  686.       call void @_ZNSt3__19allocatorIcEC2Ev(%"class.std::__1::allocator"* %4) #9
  687.       %5 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %3 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"*
  688.       %6 = bitcast %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %5 to i8*
  689.       call void @llvm.memset.p0i8.i64(i8* %6, i8 0, i64 24, i32 8, i1 false)
  690.       ret void
  691.     }
  692.  
  693.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  694.     define linkonce_odr hidden void @_ZNSt3__19allocatorIcEC2Ev(%"class.std::__1::allocator"*) unnamed_addr #4 align 2 {
  695.       %2 = alloca %"class.std::__1::allocator"*, align 8
  696.       store %"class.std::__1::allocator"* %0, %"class.std::__1::allocator"** %2, align 8
  697.       %3 = load %"class.std::__1::allocator"*, %"class.std::__1::allocator"** %2, align 8
  698.       ret void
  699.     }
  700.  
  701.     ; Function Attrs: argmemonly nounwind
  702.     declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i32, i1) #7
  703.  
  704.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  705.     define linkonce_odr hidden i8* @_ZNSt3__116__to_raw_pointerIKcEEPT_S3_(i8*) #4 {
  706.       %2 = alloca i8*, align 8
  707.       store i8* %0, i8** %2, align 8
  708.       %3 = load i8*, i8** %2, align 8
  709.       ret i8* %3
  710.     }
  711.  
  712.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  713.     define available_externally hidden i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE13__get_pointerEv(%"class.std::__1::basic_string"*) #4 align 2 {
  714.       %2 = alloca %"class.std::__1::basic_string"*, align 8
  715.       store %"class.std::__1::basic_string"* %0, %"class.std::__1::basic_string"** %2, align 8
  716.       %3 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %2, align 8
  717.       %4 = call zeroext i1 @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__is_longEv(%"class.std::__1::basic_string"* %3) #9
  718.       br i1 %4, label %5, label %7
  719.  
  720.     ; <label>:5:                                      ; preds = %1
  721.       %6 = call i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE18__get_long_pointerEv(%"class.std::__1::basic_string"* %3) #9
  722.       br label %9
  723.  
  724.     ; <label>:7:                                      ; preds = %1
  725.       %8 = call i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE19__get_short_pointerEv(%"class.std::__1::basic_string"* %3) #9
  726.       br label %9
  727.  
  728.     ; <label>:9:                                      ; preds = %7, %5
  729.       %10 = phi i8* [ %6, %5 ], [ %8, %7 ]
  730.       ret i8* %10
  731.     }
  732.  
  733.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  734.     define available_externally hidden zeroext i1 @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__is_longEv(%"class.std::__1::basic_string"*) #4 align 2 {
  735.       %2 = alloca %"class.std::__1::basic_string"*, align 8
  736.       store %"class.std::__1::basic_string"* %0, %"class.std::__1::basic_string"** %2, align 8
  737.       %3 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %2, align 8
  738.       %4 = bitcast %"class.std::__1::basic_string"* %3 to %"class.std::__1::__compressed_pair"*
  739.       %5 = call dereferenceable(24) %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* @_ZNKSt3__117__compressed_pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_E5firstEv(%"class.std::__1::__compressed_pair"* %4) #9
  740.       %6 = bitcast %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %5 to %union.anon*
  741.       %7 = bitcast %union.anon* %6 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"*
  742.       %8 = bitcast %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"* %7 to %union.anon.0*
  743.       %9 = bitcast %union.anon.0* %8 to i8*
  744.       %10 = load i8, i8* %9, align 8
  745.       %11 = zext i8 %10 to i32
  746.       %12 = and i32 %11, 1
  747.       %13 = icmp ne i32 %12, 0
  748.       ret i1 %13
  749.     }
  750.  
  751.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  752.     define available_externally hidden i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE18__get_long_pointerEv(%"class.std::__1::basic_string"*) #4 align 2 {
  753.       %2 = alloca %"class.std::__1::basic_string"*, align 8
  754.       store %"class.std::__1::basic_string"* %0, %"class.std::__1::basic_string"** %2, align 8
  755.       %3 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %2, align 8
  756.       %4 = bitcast %"class.std::__1::basic_string"* %3 to %"class.std::__1::__compressed_pair"*
  757.       %5 = call dereferenceable(24) %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* @_ZNKSt3__117__compressed_pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_E5firstEv(%"class.std::__1::__compressed_pair"* %4) #9
  758.       %6 = bitcast %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %5 to %union.anon*
  759.       %7 = bitcast %union.anon* %6 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long"*
  760.       %8 = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__long"* %7, i32 0, i32 2
  761.       %9 = load i8*, i8** %8, align 8
  762.       ret i8* %9
  763.     }
  764.  
  765.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  766.     define available_externally hidden i8* @_ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE19__get_short_pointerEv(%"class.std::__1::basic_string"*) #4 align 2 {
  767.       %2 = alloca %"class.std::__1::basic_string"*, align 8
  768.       store %"class.std::__1::basic_string"* %0, %"class.std::__1::basic_string"** %2, align 8
  769.       %3 = load %"class.std::__1::basic_string"*, %"class.std::__1::basic_string"** %2, align 8
  770.       %4 = bitcast %"class.std::__1::basic_string"* %3 to %"class.std::__1::__compressed_pair"*
  771.       %5 = call dereferenceable(24) %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* @_ZNKSt3__117__compressed_pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_E5firstEv(%"class.std::__1::__compressed_pair"* %4) #9
  772.       %6 = bitcast %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %5 to %union.anon*
  773.       %7 = bitcast %union.anon* %6 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"*
  774.       %8 = getelementptr inbounds %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short", %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__short"* %7, i32 0, i32 1
  775.       %9 = bitcast [23 x i8]* %8 to i8*
  776.       %10 = call i8* @_ZNSt3__114pointer_traitsIPKcE10pointer_toERS1_(i8* dereferenceable(1) %9) #9
  777.       ret i8* %10
  778.     }
  779.  
  780.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  781.     define linkonce_odr hidden dereferenceable(24) %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* @_ZNKSt3__117__compressed_pairINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_E5firstEv(%"class.std::__1::__compressed_pair"*) #4 align 2 {
  782.       %2 = alloca %"class.std::__1::__compressed_pair"*, align 8
  783.       store %"class.std::__1::__compressed_pair"* %0, %"class.std::__1::__compressed_pair"** %2, align 8
  784.       %3 = load %"class.std::__1::__compressed_pair"*, %"class.std::__1::__compressed_pair"** %2, align 8
  785.       %4 = bitcast %"class.std::__1::__compressed_pair"* %3 to %"class.std::__1::__libcpp_compressed_pair_imp"*
  786.       %5 = call dereferenceable(24) %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* @_ZNKSt3__128__libcpp_compressed_pair_impINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_Lj2EE5firstEv(%"class.std::__1::__libcpp_compressed_pair_imp"* %4) #9
  787.       ret %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %5
  788.     }
  789.  
  790.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  791.     define linkonce_odr hidden dereferenceable(24) %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* @_ZNKSt3__128__libcpp_compressed_pair_impINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5__repES5_Lj2EE5firstEv(%"class.std::__1::__libcpp_compressed_pair_imp"*) #4 align 2 {
  792.       %2 = alloca %"class.std::__1::__libcpp_compressed_pair_imp"*, align 8
  793.       store %"class.std::__1::__libcpp_compressed_pair_imp"* %0, %"class.std::__1::__libcpp_compressed_pair_imp"** %2, align 8
  794.       %3 = load %"class.std::__1::__libcpp_compressed_pair_imp"*, %"class.std::__1::__libcpp_compressed_pair_imp"** %2, align 8
  795.       %4 = bitcast %"class.std::__1::__libcpp_compressed_pair_imp"* %3 to %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"*
  796.       ret %"struct.std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep"* %4
  797.     }
  798.  
  799.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  800.     define linkonce_odr hidden i8* @_ZNSt3__114pointer_traitsIPKcE10pointer_toERS1_(i8* dereferenceable(1)) #4 align 2 {
  801.       %2 = alloca i8*, align 8
  802.       store i8* %0, i8** %2, align 8
  803.       %3 = load i8*, i8** %2, align 8
  804.       %4 = call i8* @_ZNSt3__19addressofIKcEEPT_RS2_(i8* dereferenceable(1) %3) #9
  805.       ret i8* %4
  806.     }
  807.  
  808.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  809.     define linkonce_odr hidden i8* @_ZNSt3__19addressofIKcEEPT_RS2_(i8* dereferenceable(1)) #4 {
  810.       %2 = alloca i8*, align 8
  811.       store i8* %0, i8** %2, align 8
  812.       %3 = load i8*, i8** %2, align 8
  813.       ret i8* %3
  814.     }
  815.  
  816.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  817.     define linkonce_odr hidden void @_ZNSt3__119ostreambuf_iteratorIcNS_11char_traitsIcEEEC2ERNS_13basic_ostreamIcS2_EE(%"class.std::__1::ostreambuf_iterator"*, %"class.std::__1::basic_ostream"* dereferenceable(160)) unnamed_addr #4 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
  818.       %3 = alloca %"class.std::__1::ostreambuf_iterator"*, align 8
  819.       %4 = alloca %"class.std::__1::basic_ostream"*, align 8
  820.       store %"class.std::__1::ostreambuf_iterator"* %0, %"class.std::__1::ostreambuf_iterator"** %3, align 8
  821.       store %"class.std::__1::basic_ostream"* %1, %"class.std::__1::basic_ostream"** %4, align 8
  822.       %5 = load %"class.std::__1::ostreambuf_iterator"*, %"class.std::__1::ostreambuf_iterator"** %3, align 8
  823.       %6 = load %"class.std::__1::basic_ostream"*, %"class.std::__1::basic_ostream"** %4, align 8
  824.       %7 = bitcast %"class.std::__1::basic_ostream"* %6 to i8**
  825.       %8 = load i8*, i8** %7, align 8
  826.       %9 = getelementptr i8, i8* %8, i64 -24
  827.       %10 = bitcast i8* %9 to i64*
  828.       %11 = load i64, i64* %10, align 8
  829.       %12 = bitcast %"class.std::__1::basic_ostream"* %6 to i8*
  830.       %13 = getelementptr inbounds i8, i8* %12, i64 %11
  831.       %14 = bitcast i8* %13 to %"class.std::__1::basic_ios"*
  832.       %15 = invoke %"class.std::__1::basic_streambuf"* @_ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE5rdbufEv(%"class.std::__1::basic_ios"* %14)
  833.               to label %16 unwind label %18
  834.  
  835.     ; <label>:16:                                     ; preds = %2
  836.       %17 = bitcast %"class.std::__1::ostreambuf_iterator"* %5 to %"class.std::__1::basic_streambuf"**
  837.       store %"class.std::__1::basic_streambuf"* %15, %"class.std::__1::basic_streambuf"** %17, align 8
  838.       ret void
  839.  
  840.     ; <label>:18:                                     ; preds = %2
  841.       %19 = landingpad { i8*, i32 }
  842.               catch i8* null
  843.       %20 = extractvalue { i8*, i32 } %19, 0
  844.       call void @__clang_call_terminate(i8* %20) #10
  845.       unreachable
  846.     }
  847.  
  848.     ; Function Attrs: alwaysinline ssp uwtable
  849.     define available_externally hidden %"class.std::__1::basic_streambuf"* @_ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE5rdbufEv(%"class.std::__1::basic_ios"*) #2 align 2 {
  850.       %2 = alloca %"class.std::__1::basic_ios"*, align 8
  851.       store %"class.std::__1::basic_ios"* %0, %"class.std::__1::basic_ios"** %2, align 8
  852.       %3 = load %"class.std::__1::basic_ios"*, %"class.std::__1::basic_ios"** %2, align 8
  853.       %4 = bitcast %"class.std::__1::basic_ios"* %3 to %"class.std::__1::ios_base"*
  854.       %5 = call i8* @_ZNKSt3__18ios_base5rdbufEv(%"class.std::__1::ios_base"* %4)
  855.       %6 = bitcast i8* %5 to %"class.std::__1::basic_streambuf"*
  856.       ret %"class.std::__1::basic_streambuf"* %6
  857.     }
  858.  
  859.     ; Function Attrs: alwaysinline nounwind ssp uwtable
  860.     define linkonce_odr hidden i8* @_ZNKSt3__18ios_base5rdbufEv(%"class.std::__1::ios_base"*) #4 align 2 {
  861.       %2 = alloca %"class.std::__1::ios_base"*, align 8
  862.       store %"class.std::__1::ios_base"* %0, %"class.std::__1::ios_base"** %2, align 8
  863.       %3 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %2, align 8
  864.       %4 = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %3, i32 0, i32 6
  865.       %5 = load i8*, i8** %4, align 8
  866.       ret i8* %5
  867.     }
  868.  
  869.     ; Function Attrs: noinline nounwind ssp uwtable
  870.     define linkonce_odr zeroext i1 @_ZNSt3__111char_traitsIcE11eq_int_typeEii(i32, i32) #8 align 2 {
  871.       %3 = alloca i32, align 4
  872.       %4 = alloca i32, align 4
  873.       store i32 %0, i32* %3, align 4
  874.       store i32 %1, i32* %4, align 4
  875.       %5 = load i32, i32* %3, align 4
  876.       %6 = load i32, i32* %4, align 4
  877.       %7 = icmp eq i32 %5, %6
  878.       ret i1 %7
  879.     }
  880.  
  881.     ; Function Attrs: noinline nounwind ssp uwtable
  882.     define linkonce_odr i32 @_ZNSt3__111char_traitsIcE3eofEv() #8 align 2 {
  883.       ret i32 -1
  884.     }
  885.  
  886.     ; Function Attrs: alwaysinline ssp uwtable
  887.     define available_externally hidden signext i8 @_ZNKSt3__19basic_iosIcNS_11char_traitsIcEEE5widenEc(%"class.std::__1::basic_ios"*, i8 signext) #2 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
  888.       %3 = alloca %"class.std::__1::basic_ios"*, align 8
  889.       %4 = alloca i8, align 1
  890.       %5 = alloca %"class.std::__1::locale", align 8
  891.       %6 = alloca i8*
  892.       %7 = alloca i32
  893.       store %"class.std::__1::basic_ios"* %0, %"class.std::__1::basic_ios"** %3, align 8
  894.       store i8 %1, i8* %4, align 1
  895.       %8 = load %"class.std::__1::basic_ios"*, %"class.std::__1::basic_ios"** %3, align 8
  896.       %9 = bitcast %"class.std::__1::basic_ios"* %8 to %"class.std::__1::ios_base"*
  897.       call void @_ZNKSt3__18ios_base6getlocEv(%"class.std::__1::locale"* sret %5, %"class.std::__1::ios_base"* %9)
  898.       %10 = invoke dereferenceable(32) %"class.std::__1::ctype"* @_ZNSt3__19use_facetINS_5ctypeIcEEEERKT_RKNS_6localeE(%"class.std::__1::locale"* dereferenceable(8) %5)
  899.               to label %11 unwind label %15
  900.  
  901.     ; <label>:11:                                     ; preds = %2
  902.       %12 = load i8, i8* %4, align 1
  903.       %13 = invoke signext i8 @_ZNKSt3__15ctypeIcE5widenEc(%"class.std::__1::ctype"* %10, i8 signext %12)
  904.               to label %14 unwind label %15
  905.  
  906.     ; <label>:14:                                     ; preds = %11
  907.       call void @_ZNSt3__16localeD1Ev(%"class.std::__1::locale"* %5) #9
  908.       ret i8 %13
  909.  
  910.     ; <label>:15:                                     ; preds = %11, %2
  911.       %16 = landingpad { i8*, i32 }
  912.               cleanup
  913.       %17 = extractvalue { i8*, i32 } %16, 0
  914.       store i8* %17, i8** %6, align 8
  915.       %18 = extractvalue { i8*, i32 } %16, 1
  916.       store i32 %18, i32* %7, align 4
  917.       call void @_ZNSt3__16localeD1Ev(%"class.std::__1::locale"* %5) #9
  918.       br label %19
  919.  
  920.     ; <label>:19:                                     ; preds = %15
  921.       %20 = load i8*, i8** %6, align 8
  922.       call void @_Unwind_Resume(i8* %20)
  923.       unreachable
  924.     }
  925.  
  926.     ; Function Attrs: alwaysinline ssp uwtable
  927.     define linkonce_odr hidden dereferenceable(32) %"class.std::__1::ctype"* @_ZNSt3__19use_facetINS_5ctypeIcEEEERKT_RKNS_6localeE(%"class.std::__1::locale"* dereferenceable(8)) #2 {
  928.       %2 = alloca %"class.std::__1::locale"*, align 8
  929.       store %"class.std::__1::locale"* %0, %"class.std::__1::locale"** %2, align 8
  930.       %3 = load %"class.std::__1::locale"*, %"class.std::__1::locale"** %2, align 8
  931.       %4 = call %"class.std::__1::locale::facet"* @_ZNKSt3__16locale9use_facetERNS0_2idE(%"class.std::__1::locale"* %3, %"class.std::__1::locale::id"* dereferenceable(16) @_ZNSt3__15ctypeIcE2idE)
  932.       %5 = bitcast %"class.std::__1::locale::facet"* %4 to %"class.std::__1::ctype"*
  933.       ret %"class.std::__1::ctype"* %5
  934.     }
  935.  
  936.     declare void @_ZNKSt3__18ios_base6getlocEv(%"class.std::__1::locale"* sret, %"class.std::__1::ios_base"*) #3
  937.  
  938.     ; Function Attrs: alwaysinline ssp uwtable
  939.     define linkonce_odr hidden signext i8 @_ZNKSt3__15ctypeIcE5widenEc(%"class.std::__1::ctype"*, i8 signext) #2 align 2 {
  940.       %3 = alloca %"class.std::__1::ctype"*, align 8
  941.       %4 = alloca i8, align 1
  942.       store %"class.std::__1::ctype"* %0, %"class.std::__1::ctype"** %3, align 8
  943.       store i8 %1, i8* %4, align 1
  944.       %5 = load %"class.std::__1::ctype"*, %"class.std::__1::ctype"** %3, align 8
  945.       %6 = bitcast %"class.std::__1::ctype"* %5 to i8 (%"class.std::__1::ctype"*, i8)***
  946.       %7 = load i8 (%"class.std::__1::ctype"*, i8)**, i8 (%"class.std::__1::ctype"*, i8)*** %6, align 8
  947.       %8 = getelementptr inbounds i8 (%"class.std::__1::ctype"*, i8)*, i8 (%"class.std::__1::ctype"*, i8)** %7, i64 7
  948.       %9 = load i8 (%"class.std::__1::ctype"*, i8)*, i8 (%"class.std::__1::ctype"*, i8)** %8, align 8
  949.       %10 = load i8, i8* %4, align 1
  950.       %11 = call signext i8 %9(%"class.std::__1::ctype"* %5, i8 signext %10)
  951.       ret i8 %11
  952.     }
  953.  
  954.     ; Function Attrs: nounwind
  955.     declare void @_ZNSt3__16localeD1Ev(%"class.std::__1::locale"*) unnamed_addr #5
  956.  
  957.     declare %"class.std::__1::locale::facet"* @_ZNKSt3__16locale9use_facetERNS0_2idE(%"class.std::__1::locale"*, %"class.std::__1::locale::id"* dereferenceable(16)) #3
  958.  
  959.     ; Function Attrs: alwaysinline ssp uwtable
  960.     define linkonce_odr hidden void @_ZNSt3__18ios_base8setstateEj(%"class.std::__1::ios_base"*, i32) #2 align 2 {
  961.       %3 = alloca %"class.std::__1::ios_base"*, align 8
  962.       %4 = alloca i32, align 4
  963.       store %"class.std::__1::ios_base"* %0, %"class.std::__1::ios_base"** %3, align 8
  964.       store i32 %1, i32* %4, align 4
  965.       %5 = load %"class.std::__1::ios_base"*, %"class.std::__1::ios_base"** %3, align 8
  966.       %6 = getelementptr inbounds %"class.std::__1::ios_base", %"class.std::__1::ios_base"* %5, i32 0, i32 4
  967.       %7 = load i32, i32* %6, align 8
  968.       %8 = load i32, i32* %4, align 4
  969.       %9 = or i32 %7, %8
  970.       call void @_ZNSt3__18ios_base5clearEj(%"class.std::__1::ios_base"* %5, i32 %9)
  971.       ret void
  972.     }
  973.  
  974.     declare void @_ZNSt3__18ios_base5clearEj(%"class.std::__1::ios_base"*, i32) #3
  975.  
  976.     declare i64 @strlen(i8*) #3
  977.  
  978.     declare dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc(%"class.std::__1::basic_ostream"*, i8 signext) #3
  979.  
  980.     declare dereferenceable(160) %"class.std::__1::basic_ostream"* @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv(%"class.std::__1::basic_ostream"*) #3
  981.  
  982.     ; Function Attrs: nounwind
  983.     declare void @llvm.stackprotector(i8*, i8**) #9
  984.  
  985.     declare void @_Unwind_Resume(i8*)
  986.  
  987.     attributes #0 = { noinline norecurse ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  988.     attributes #1 = { noinline ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  989.     attributes #2 = { alwaysinline ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  990.     attributes #3 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  991.     attributes #4 = { alwaysinline nounwind ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  992.     attributes #5 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  993.     attributes #6 = { noinline noreturn nounwind }
  994.     attributes #7 = { argmemonly nounwind }
  995.     attributes #8 = { noinline nounwind ssp uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
  996.     attributes #9 = { nounwind }
  997.     attributes #10 = { noreturn nounwind }
  998.  
  999.     !llvm.module.flags = !{!0}
  1000.     !llvm.ident = !{!1}
  1001.  
  1002.     !0 = !{i32 1, !"PIC Level", i32 2}
  1003.     !1 = !{!"clang version 5.0.0 (trunk 292778)"}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement