Skip to content

Instantly share code, notes, and snippets.

@chandlerc
Created October 16, 2022 22:28
Show Gist options
  • Save chandlerc/d66cb8884e35a9f93e4898ae75ee0a32 to your computer and use it in GitHub Desktop.
Save chandlerc/d66cb8884e35a9f93e4898ae75ee0a32 to your computer and use it in GitHub Desktop.
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-macosx12.0.0"
@_ZN4absl14flags_internal12_GLOBAL__N_115specified_flagsE = external dso_local global { ptr, [24 x i8] }
declare ptr @_ZN4absl9MutexLockD1Ev(ptr)
define void @_ZN4absl14flags_internal20ParseCommandLineImplEiPPcNS0_14ArgvListActionENS0_16UsageFlagsActionENS0_15OnUndefinedFlagE(ptr %0, ptr %1, i1 %2, i64 %3, i8 %4, i8 %5, i64 %6, i1 %7, i1 %8, i1 %9, i64 %10, ptr %11, ptr %12, ptr %13, i1 %14, i1 %15) personality ptr null {
%17 = load i64, ptr null, align 8
br label %18
18: ; preds = %16
br i1 %2, label %19, label %21
19: ; preds = %18
%20 = alloca i8, i64 0, align 32
br label %21
21: ; preds = %19, %18
%22 = phi i64 [ 0, %18 ], [ 1, %19 ]
%23 = add i64 0, 4304
%24 = inttoptr i64 %3 to ptr
%25 = inttoptr i64 %10 to ptr
%26 = add i64 %3, 5552
%27 = inttoptr i64 %26 to ptr
%28 = add i64 %6, 1
%29 = inttoptr i64 %28 to ptr
%30 = add i64 %3, 5616
%31 = inttoptr i64 %30 to ptr
%32 = add i64 %3, 5632
%33 = inttoptr i64 %32 to ptr
%34 = add i64 1, 1
%35 = add i64 %3, 6016
%36 = inttoptr i64 %35 to ptr
%37 = inttoptr i64 6048 to ptr
%38 = add i64 %3, 6224
%39 = inttoptr i64 %38 to ptr
%40 = add i64 %22, 6256
%41 = inttoptr i64 %40 to ptr
%42 = add i64 1, 0
br label %43
43: ; preds = %21
store i32 -117901064, ptr %1, align 1
%44 = inttoptr i64 0 to ptr
store i8 0, ptr %44, align 1
%45 = call ptr @__asan_memset(ptr null)
br label %46
46: ; preds = %43
invoke void @_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE11__vallocateB6v15002Em(ptr %1, i64 0)
to label %47 unwind label %50
47: ; preds = %46
invoke void @_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__construct_at_endIPPcEENS_9enable_ifIXsr27__is_cpp17_forward_iteratorIT_EE5valueEvE4typeESD_SD_m(ptr null, ptr null, ptr null, i64 0)
to label %48 unwind label %50
48: ; preds = %47
br label %49
49: ; preds = %48
br label %53
50: ; preds = %47, %46
%51 = landingpad { ptr, i32 }
cleanup
br label %52
52: ; preds = %50
br label %256
53: ; preds = %49
br label %54
54: ; preds = %53
%55 = icmp eq ptr %1, null
br i1 %55, label %56, label %62
56: ; preds = %54
%57 = invoke ptr @_Znwm(i64 0)
to label %58 unwind label %60
58: ; preds = %56
br label %59
59: ; preds = %58
store ptr %0, ptr @_ZN4absl14flags_internal12_GLOBAL__N_115specified_flagsE, align 8
br label %64
60: ; preds = %56
%61 = landingpad { ptr, i32 }
cleanup
br label %250
62: ; preds = %54
%63 = ptrtoint ptr null to i64
br label %64
64: ; preds = %62, %59
%65 = ptrtoint ptr null to i64
%66 = getelementptr inbounds [2 x i64], ptr %37, i64 0, i64 1
%67 = getelementptr inbounds [2 x i64], ptr %11, i64 0, i64 1
%68 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%69 = getelementptr inbounds i8, ptr null, i64 8
%70 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%71 = getelementptr inbounds i8, ptr null, i64 8
%72 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%73 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%74 = getelementptr inbounds i8, ptr null, i64 8
%75 = getelementptr inbounds [2 x i64], ptr %12, i64 0, i64 1
%76 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%77 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%78 = getelementptr inbounds i8, ptr null, i64 8
%79 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%80 = getelementptr inbounds [2 x i64], ptr null, i64 0, i64 1
%81 = getelementptr inbounds [2 x i64], ptr %39, i64 0, i64 1
br label %82
82: ; preds = %232, %64
%83 = phi i1 [ true, %64 ], [ %233, %232 ]
br label %84
84: ; preds = %82
%85 = load ptr, ptr %24, align 8
br label %86
86: ; preds = %84
%87 = icmp eq ptr %85, %24
br i1 %87, label %235, label %88
88: ; preds = %86
%89 = lshr i64 %23, 1
%90 = add i64 %89, %17
%91 = inttoptr i64 %90 to ptr
%92 = load i8, ptr %91, align 1
%93 = icmp ne i8 %92, 0
br i1 %93, label %94, label %95
94: ; preds = %88
call void @__asan_report_store8(i64 %22)
unreachable
95: ; preds = %88
br label %96
96: ; preds = %95
%97 = zext i1 %83 to i8
br label %98
98: ; preds = %96
%99 = load ptr, ptr %24, align 8
br label %100
100: ; preds = %98
br label %103
101: ; preds = %248
%102 = landingpad { ptr, i32 }
cleanup
br label %250
103: ; preds = %100
br label %104
104: ; preds = %103
%105 = getelementptr inbounds i8, ptr null, i64 1
%106 = add i64 0, 0
br label %107
107: ; preds = %104
br i1 %7, label %108, label %110
108: ; preds = %107
%109 = ptrtoint ptr null to i64
br label %110
110: ; preds = %108, %107
%111 = call ptr @__asan_memset(ptr %29)
br label %112
112: ; preds = %110
store i8 0, ptr %31, align 1
%113 = ptrtoint ptr %105 to i64
%114 = insertvalue [2 x i64] zeroinitializer, i64 %113, 0
%115 = insertvalue [2 x i64] %114, i64 %106, 1
invoke fastcc void @0(ptr %33, [2 x i64] %115)
to label %116 unwind label %119
116: ; preds = %112
%117 = call ptr @_ZNSt3__112__tuple_implINS_15__tuple_indicesIJLm0ELm1ELm2EEEEJRNS_17basic_string_viewIcNS_11char_traitsIcEEEES7_RbEEC2B6v15002IJLm0ELm1ELm2EEJS7_S7_S8_EJEJEJS7_S7_S8_EEENS1_IJXspT_EEEENS_13__tuple_typesIJDpT0_EEENS1_IJXspT1_EEEENSC_IJDpT2_EEEDpOT3_(ptr %27, ptr %31)
call void @_ZNSt3__127__memberwise_forward_assignB6v15002INS_5tupleIJRNS_17basic_string_viewIcNS_11char_traitsIcEEEES6_RbEEENS1_IJS5_S5_bEEEJS5_S5_bEJLm0ELm1ELm2EEEEvRT_OT0_NS_13__tuple_typesIJDpT1_EEENS_15__tuple_indicesIJXspT2_EEEE(ptr %33)
br label %118
118: ; preds = %116
br label %121
119: ; preds = %112
%120 = landingpad { ptr, i32 }
cleanup
br label %121
121: ; preds = %119, %118
%122 = icmp ne i8 1, 0
br i1 %122, label %123, label %124
123: ; preds = %121
call void @__asan_report_store8(i64 0)
unreachable
124: ; preds = %121
br label %125
125: ; preds = %124
%126 = insertvalue [2 x i64] zeroinitializer, i64 %26, 0
%127 = invoke fastcc [2 x i64] @1([2 x i64] %126)
to label %128 unwind label %146
128: ; preds = %125
%129 = add i64 %35, %17
%130 = inttoptr i64 %129 to ptr
%131 = load i8, ptr %130, align 1
%132 = icmp ne i8 %131, 0
br i1 %132, label %133, label %134
133: ; preds = %128
call void @__asan_report_store8(i64 %35)
unreachable
134: ; preds = %128
store i64 0, ptr %36, align 8
br label %135
135: ; preds = %134
store i64 %34, ptr %11, align 8
%136 = ptrtoint ptr %66 to i64
%137 = add i64 %136, %17
%138 = inttoptr i64 %137 to ptr
%139 = load i8, ptr %138, align 1
%140 = icmp ne i8 %139, 0
br i1 %140, label %141, label %142
141: ; preds = %135
call void @__asan_report_store8(i64 %136)
unreachable
142: ; preds = %135
store i64 %65, ptr %66, align 8
br label %143
143: ; preds = %142
br i1 %8, label %144, label %148
144: ; preds = %143
br label %145
145: ; preds = %144
br label %231
146: ; preds = %125
%147 = landingpad { ptr, i32 }
cleanup
br label %148
148: ; preds = %146, %143
br label %149
149: ; preds = %148
%150 = ptrtoint ptr %67 to i64
br i1 %8, label %151, label %152
151: ; preds = %149
call void @__asan_report_store8(i64 %150)
unreachable
152: ; preds = %149
br label %153
153: ; preds = %152
%154 = icmp eq ptr null, %0
br i1 %15, label %155, label %191
155: ; preds = %153
br label %156
156: ; preds = %155
%157 = ptrtoint ptr %77 to i64
br i1 %9, label %158, label %159
158: ; preds = %156
call void @__asan_report_store8(i64 %157)
unreachable
159: ; preds = %156
br label %160
160: ; preds = %159
%161 = ptrtoint ptr %78 to i64
br i1 %14, label %162, label %163
162: ; preds = %160
call void @__asan_report_store8(i64 %161)
unreachable
163: ; preds = %160
br label %164
164: ; preds = %163
%165 = ptrtoint ptr %79 to i64
br i1 %8, label %166, label %167
166: ; preds = %164
call void @__asan_report_store8(i64 %165)
unreachable
167: ; preds = %164
br label %168
168: ; preds = %167
%169 = ptrtoint ptr %80 to i64
br i1 %9, label %170, label %171
170: ; preds = %168
call void @__asan_report_store8(i64 %169)
unreachable
171: ; preds = %168
br label %172
172: ; preds = %171
%173 = ptrtoint ptr %73 to i64
%174 = icmp ne i8 %4, 0
br i1 %174, label %175, label %176
175: ; preds = %172
call void @__asan_report_store8(i64 %173)
unreachable
176: ; preds = %172
br label %177
177: ; preds = %176
%178 = ptrtoint ptr %74 to i64
br i1 %8, label %179, label %180
179: ; preds = %177
call void @__asan_report_store8(i64 %178)
unreachable
180: ; preds = %177
br label %181
181: ; preds = %180
store i64 1, ptr %12, align 8
%182 = ptrtoint ptr %75 to i64
%183 = icmp ne i8 %5, 0
br i1 %183, label %184, label %185
184: ; preds = %181
call void @__asan_report_store8(i64 %182)
unreachable
185: ; preds = %181
br label %186
186: ; preds = %185
store i64 0, ptr %1, align 8
%187 = ptrtoint ptr %76 to i64
br i1 %8, label %188, label %189
188: ; preds = %186
call void @__asan_report_store8(i64 %187)
unreachable
189: ; preds = %186
br label %190
190: ; preds = %189
br label %211
191: ; preds = %153
br label %192
192: ; preds = %191
%193 = ptrtoint ptr %68 to i64
br i1 %2, label %194, label %195
194: ; preds = %192
call void @__asan_report_store8(i64 %193)
unreachable
195: ; preds = %192
br label %196
196: ; preds = %195
%197 = ptrtoint ptr %69 to i64
br i1 %7, label %198, label %199
198: ; preds = %196
call void @__asan_report_store8(i64 %197)
unreachable
199: ; preds = %196
br label %200
200: ; preds = %199
%201 = ptrtoint ptr %70 to i64
br i1 %8, label %202, label %203
202: ; preds = %200
call void @__asan_report_store8(i64 %201)
unreachable
203: ; preds = %200
br label %204
204: ; preds = %203
%205 = ptrtoint ptr %71 to i64
br i1 %2, label %206, label %207
206: ; preds = %204
call void @__asan_report_store8(i64 %205)
unreachable
207: ; preds = %204
br label %208
208: ; preds = %207
%209 = ptrtoint ptr %72 to i64
br label %210
210: ; preds = %208
call void @__asan_report_store8(i64 %209)
unreachable
211: ; preds = %190
br label %212
212: ; preds = %211
store i64 0, ptr %39, align 8
%213 = ptrtoint ptr %81 to i64
br i1 %7, label %214, label %215
214: ; preds = %212
call void @__asan_report_store8(i64 %213)
unreachable
215: ; preds = %212
br label %216
216: ; preds = %215
%217 = load i64, ptr %99, align 8
%218 = icmp eq i64 0, %217
br i1 %218, label %221, label %219
219: ; preds = %216
%220 = getelementptr inbounds ptr, ptr %1, i64 %6
br label %221
221: ; preds = %219, %216
br label %222
222: ; preds = %221
%223 = invoke i1 @_ZN4absl14flags_internal21PrivateHandleAccessor9ParseFromERNS_15CommandLineFlagENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEENS0_15FlagSettingModeENS0_11ValueSourceERNS4_12basic_stringIcS7_NS4_9allocatorIcEEEE(ptr null, [2 x i64] zeroinitializer, i32 0, i32 0, ptr %41)
to label %224 unwind label %225
224: ; preds = %222
br label %228
225: ; preds = %229, %222
%226 = landingpad { ptr, i32 }
cleanup
%227 = call ptr null(ptr null)
br label %228
228: ; preds = %225, %224
br label %229
229: ; preds = %228
invoke void @_ZNSt3__16vectorIPKN4absl15CommandLineFlagENS_9allocatorIS4_EEE22__construct_one_at_endB6v15002IJRKS4_EEEvDpOT_(ptr @_ZN4absl14flags_internal12_GLOBAL__N_115specified_flagsE, ptr null)
to label %230 unwind label %225
230: ; preds = %229
br label %231
231: ; preds = %230, %145
br label %232
232: ; preds = %231
%233 = icmp ne i8 %97, 0
%234 = icmp eq i32 0, 1
br i1 %234, label %235, label %82
235: ; preds = %232, %86
%236 = phi i1 [ %83, %232 ], [ false, %86 ]
br label %237
237: ; preds = %235
%238 = icmp eq ptr %25, null
br i1 %238, label %240, label %239
239: ; preds = %237
br label %241
240: ; preds = %244, %237
br label %245
241: ; preds = %244, %239
br label %242
242: ; preds = %241
%243 = inttoptr i64 %42 to ptr
store i32 -117901064, ptr %243, align 1
br label %244
244: ; preds = %242
br i1 false, label %240, label %241
245: ; preds = %240
br label %246
246: ; preds = %245
%247 = load ptr, ptr @_ZN4absl14flags_internal12_GLOBAL__N_115specified_flagsE, align 8
br label %248
248: ; preds = %246
invoke fastcc void @2(ptr %247, ptr null, ptr null, i64 0)
to label %249 unwind label %101
249: ; preds = %248
ret void
250: ; preds = %101, %60
%251 = call ptr @_ZN4absl9MutexLockD1Ev(ptr %1)
br label %252
252: ; preds = %250
%253 = call ptr @_ZNSt3__16vectorINS_4pairIbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS5_IS8_EEED1B6v15002Ev(ptr %25)
br label %254
254: ; preds = %252
%255 = call ptr @_ZNSt3__16vectorIPcNS_9allocatorIS1_EEED2B6v15002Ev(ptr %0)
br label %256
256: ; preds = %254, %52
ret void
; uselistorder directives
uselistorder ptr %0, { 1, 0, 2 }
}
declare ptr @_Znwm()
declare fastcc void @0()
declare fastcc [2 x i64] @1()
declare i1 @_ZN4absl14flags_internal21PrivateHandleAccessor9ParseFromERNS_15CommandLineFlagENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEENS0_15FlagSettingModeENS0_11ValueSourceERNS4_12basic_stringIcS7_NS4_9allocatorIcEEEE()
declare ptr @_ZNSt3__16vectorINS_4pairIbNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS5_IS8_EEED1B6v15002Ev(ptr)
declare void @_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE11__vallocateB6v15002Em()
declare void @_ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__construct_at_endIPPcEENS_9enable_ifIXsr27__is_cpp17_forward_iteratorIT_EE5valueEvE4typeESD_SD_m()
declare ptr @_ZNSt3__112__tuple_implINS_15__tuple_indicesIJLm0ELm1ELm2EEEEJRNS_17basic_string_viewIcNS_11char_traitsIcEEEES7_RbEEC2B6v15002IJLm0ELm1ELm2EEJS7_S7_S8_EJEJEJS7_S7_S8_EEENS1_IJXspT_EEEENS_13__tuple_typesIJDpT0_EEENS1_IJXspT1_EEEENSC_IJDpT2_EEEDpOT3_(ptr, ptr)
declare ptr @_ZNSt3__16vectorIPcNS_9allocatorIS1_EEED2B6v15002Ev(ptr)
declare void @_ZNSt3__127__memberwise_forward_assignB6v15002INS_5tupleIJRNS_17basic_string_viewIcNS_11char_traitsIcEEEES6_RbEEENS1_IJS5_S5_bEEEJS5_S5_bEJLm0ELm1ELm2EEEEvRT_OT0_NS_13__tuple_typesIJDpT1_EEENS_15__tuple_indicesIJXspT2_EEEE(ptr)
declare void @_ZNSt3__16vectorIPKN4absl15CommandLineFlagENS_9allocatorIS4_EEE22__construct_one_at_endB6v15002IJRKS4_EEEvDpOT_()
declare fastcc void @2()
declare void @__asan_report_store8(i64)
declare ptr @__asan_memset(ptr)
; uselistorder directives
uselistorder ptr null, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0 }
uselistorder ptr @__asan_report_store8, { 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }
uselistorder ptr @__asan_memset, { 1, 0 }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment