Skip to content

Instantly share code, notes, and snippets.

@modocache
Last active February 6, 2020 13:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save modocache/670bc38e5a5ea2e0a3d6bafe8ea9c693 to your computer and use it in GitHub Desktop.
Save modocache/670bc38e5a5ea2e0a3d6bafe8ea9c693 to your computer and use it in GitHub Desktop.
#include <cstdio>
#include <experimental/coroutine>
using namespace std::experimental;
struct coro {
struct promise_type {
coro get_return_object() {
auto handle = coroutine_handle<promise_type>::from_promise(*this);
return coro(handle);
}
suspend_never initial_suspend() { return {}; }
suspend_never final_suspend() { return {}; }
void return_void() {}
void unhandled_exception() {}
};
coroutine_handle<promise_type> handle;
coro(coroutine_handle<promise_type> handle)
: handle(handle) {}
};
coro foo() {
int i = 0;
++i;
printf("%d\n", i); // 1
// Breakpoint 1:
// (lldb) frame variable i
// (int) i = 1
co_await suspend_always();
int j = 0;
++i;
++j;
printf("%d, %d\n", i, j); // 2, 1
// Breakpoint 2:
// (lldb) frame variable i
// (int) i = <variable not available>
// (lldb) frame variable j
// (int) j = 1
co_await suspend_always();
++i;
++j;
printf("%d, %d\n", j, i); // 3, 2
// Breakpoint 3:
// (lldb) frame variable i
// (int) i = <variable not available>
// (lldb) frame variable j
// (int) j = 2
}
int main() {
auto c = foo();
c.handle.resume();
c.handle.resume();
}
test: file format ELF64-x86-64
.debug_info contents:
0x00000000: Compile Unit: length = 0x000018e0 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x08 (next unit at 0x000018e4)
0x0000000b: DW_TAG_compile_unit
DW_AT_producer ("clang version 11.0.0 (https://github.com/llvm/llvm-project.git baafe82b07ade3fff4f2685199870b67083a17d5)")
DW_AT_language (DW_LANG_C_plus_plus_14)
DW_AT_name ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_stmt_list (0x00000000)
DW_AT_comp_dir ("/home/modocache/Source/tmp/corodebug")
DW_AT_low_pc (0x0000000000000000)
DW_AT_ranges (0x00000000
[0x0000000000401150, 0x00000000004016bb)
[0x00000000004016c0, 0x00000000004016f1)
[0x0000000000401710, 0x00000000004022f8)
[0x0000000000402300, 0x0000000000402338)
[0x0000000000402340, 0x000000000040234a)
[0x0000000000402350, 0x0000000000402361)
[0x0000000000402370, 0x000000000040237e)
[0x0000000000402380, 0x00000000004023a7)
[0x00000000004023b0, 0x00000000004023ba)
[0x00000000004023c0, 0x00000000004023d1)
[0x00000000004023e0, 0x00000000004023ee)
[0x00000000004023f0, 0x00000000004023fa)
[0x0000000000402400, 0x000000000040240a)
[0x0000000000402410, 0x000000000040241a)
[0x0000000000402420, 0x000000000040243e)
[0x0000000000402440, 0x0000000000402472)
[0x0000000000402480, 0x0000000000402499)
[0x00000000004024a0, 0x00000000004024be)
[0x00000000004024c0, 0x00000000004024ce)
[0x00000000004024d0, 0x00000000004024e5))
0x0000002a: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("coro")
DW_AT_byte_size (0x08)
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (6)
0x00000033: DW_TAG_member
DW_AT_name ("handle")
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (18)
DW_AT_data_member_location (0x00)
0x0000003f: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("promise_type")
DW_AT_byte_size (0x01)
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (7)
0x00000048: DW_TAG_subprogram
DW_AT_linkage_name ("_ZN4coro12promise_type17get_return_objectEv")
DW_AT_name ("get_return_object")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (8)
DW_AT_type (0x0000002a "coro")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000057: DW_TAG_formal_parameter
DW_AT_type (0x0000079a "promise_type*")
DW_AT_artificial (true)
0x0000005c: NULL
0x0000005d: DW_TAG_subprogram
DW_AT_linkage_name ("_ZN4coro12promise_type15initial_suspendEv")
DW_AT_name ("initial_suspend")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (12)
DW_AT_type (0x00000275 "suspend_never")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000006c: DW_TAG_formal_parameter
DW_AT_type (0x0000079a "promise_type*")
DW_AT_artificial (true)
0x00000071: NULL
0x00000072: DW_TAG_subprogram
DW_AT_linkage_name ("_ZN4coro12promise_type13final_suspendEv")
DW_AT_name ("final_suspend")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (13)
DW_AT_type (0x00000275 "suspend_never")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000081: DW_TAG_formal_parameter
DW_AT_type (0x0000079a "promise_type*")
DW_AT_artificial (true)
0x00000086: NULL
0x00000087: DW_TAG_subprogram
DW_AT_linkage_name ("_ZN4coro12promise_type11return_voidEv")
DW_AT_name ("return_void")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (14)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000092: DW_TAG_formal_parameter
DW_AT_type (0x0000079a "promise_type*")
DW_AT_artificial (true)
0x00000097: NULL
0x00000098: DW_TAG_subprogram
DW_AT_linkage_name ("_ZN4coro12promise_type19unhandled_exceptionEv")
DW_AT_name ("unhandled_exception")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (15)
DW_AT_declaration (true)
DW_AT_external (true)
0x000000a3: DW_TAG_formal_parameter
DW_AT_type (0x0000079a "promise_type*")
DW_AT_artificial (true)
0x000000a8: NULL
0x000000a9: NULL
0x000000aa: DW_TAG_subprogram
DW_AT_name ("coro")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (19)
DW_AT_declaration (true)
DW_AT_external (true)
0x000000b1: DW_TAG_formal_parameter
DW_AT_type (0x000007b3 "coro*")
DW_AT_artificial (true)
0x000000b6: DW_TAG_formal_parameter
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x000000bb: NULL
0x000000bc: NULL
0x000000bd: DW_TAG_namespace
DW_AT_name ("std")
0x000000c2: DW_TAG_namespace
DW_AT_name ("experimental")
0x000000c7: DW_TAG_namespace
DW_AT_name ("coroutines_v1")
DW_AT_export_symbols (true)
0x000000cc: DW_TAG_class_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("coroutine_handle<coro::promise_type>")
DW_AT_byte_size (0x08)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (196)
0x000000d5: DW_TAG_inheritance
DW_AT_type (0x00000165 "coroutine_handle<void>")
DW_AT_data_member_location (0x00)
DW_AT_accessibility (DW_ACCESS_public)
0x000000dc: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEaSEDn")
DW_AT_name ("operator=")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (207)
DW_AT_type (0x0000078b "coroutine_handle<coro::promise_type>&")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x000000ec: DW_TAG_formal_parameter
DW_AT_type (0x00000790 "coroutine_handle<coro::promise_type>*")
DW_AT_artificial (true)
0x000000f1: DW_TAG_formal_parameter
DW_AT_type (0x0000032a "nullptr_t")
0x000000f6: NULL
0x000000f7: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE7promiseEv")
DW_AT_name ("promise")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (213)
DW_AT_type (0x00000795 "promise_type&")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000107: DW_TAG_formal_parameter
DW_AT_type (0x000007a9 "const coroutine_handle<coro::promise_type>*")
DW_AT_artificial (true)
0x0000010c: NULL
0x0000010d: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv")
DW_AT_name ("from_address")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (220)
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x0000011d: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x00000122: NULL
0x00000123: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEDn")
DW_AT_name ("from_address")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (231)
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000133: DW_TAG_formal_parameter
DW_AT_type (0x0000032a "nullptr_t")
0x00000138: NULL
0x00000139: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_promiseERS3_")
DW_AT_name ("from_promise")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (250)
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000149: DW_TAG_formal_parameter
DW_AT_type (0x00000795 "promise_type&")
0x0000014e: NULL
0x0000014f: DW_TAG_template_type_parameter
DW_AT_type (0x0000003f "promise_type")
DW_AT_name ("_Promise")
0x00000158: DW_TAG_subprogram
DW_AT_name ("coroutine_handle")
DW_AT_declaration (true)
DW_AT_artificial (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x0000015e: DW_TAG_formal_parameter
DW_AT_type (0x00000790 "coroutine_handle<coro::promise_type>*")
DW_AT_artificial (true)
0x00000163: NULL
0x00000164: NULL
0x00000165: DW_TAG_class_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("coroutine_handle<void>")
DW_AT_byte_size (0x08)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (92)
0x0000016e: DW_TAG_member
DW_AT_name ("__handle_")
DW_AT_type (0x0000076a "*")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (166)
DW_AT_data_member_location (0x00)
0x0000017a: DW_TAG_subprogram
DW_AT_name ("coroutine_handle")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (95)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000182: DW_TAG_formal_parameter
DW_AT_type (0x0000076b "coroutine_handle<void>*")
DW_AT_artificial (true)
0x00000187: NULL
0x00000188: DW_TAG_subprogram
DW_AT_name ("coroutine_handle")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (98)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000190: DW_TAG_formal_parameter
DW_AT_type (0x0000076b "coroutine_handle<void>*")
DW_AT_artificial (true)
0x00000195: DW_TAG_formal_parameter
DW_AT_type (0x0000032a "nullptr_t")
0x0000019a: NULL
0x0000019b: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIvEaSEDn")
DW_AT_name ("operator=")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (101)
DW_AT_type (0x00000775 "coroutine_handle<void>&")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x000001ab: DW_TAG_formal_parameter
DW_AT_type (0x0000076b "coroutine_handle<void>*")
DW_AT_artificial (true)
0x000001b0: DW_TAG_formal_parameter
DW_AT_type (0x0000032a "nullptr_t")
0x000001b5: NULL
0x000001b6: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v116coroutine_handleIvE7addressEv")
DW_AT_name ("address")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (107)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x000001c6: DW_TAG_formal_parameter
DW_AT_type (0x0000077a "const coroutine_handle<void>*")
DW_AT_artificial (true)
0x000001cb: NULL
0x000001cc: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v116coroutine_handleIvEcvbEv")
DW_AT_name ("operator bool")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (110)
DW_AT_type (0x00000784 "bool")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
DW_AT_explicit (true)
0x000001dc: DW_TAG_formal_parameter
DW_AT_type (0x0000077a "const coroutine_handle<void>*")
DW_AT_artificial (true)
0x000001e1: NULL
0x000001e2: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIvEclEv")
DW_AT_name ("operator()")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (113)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x000001ee: DW_TAG_formal_parameter
DW_AT_type (0x0000076b "coroutine_handle<void>*")
DW_AT_artificial (true)
0x000001f3: NULL
0x000001f4: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv")
DW_AT_name ("resume")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (116)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000200: DW_TAG_formal_parameter
DW_AT_type (0x0000076b "coroutine_handle<void>*")
DW_AT_artificial (true)
0x00000205: NULL
0x00000206: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIvE7destroyEv")
DW_AT_name ("destroy")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (125)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000212: DW_TAG_formal_parameter
DW_AT_type (0x0000076b "coroutine_handle<void>*")
DW_AT_artificial (true)
0x00000217: NULL
0x00000218: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v116coroutine_handleIvE4doneEv")
DW_AT_name ("done")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (132)
DW_AT_type (0x00000784 "bool")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000228: DW_TAG_formal_parameter
DW_AT_type (0x0000077a "const coroutine_handle<void>*")
DW_AT_artificial (true)
0x0000022d: NULL
0x0000022e: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIvE12from_addressEPv")
DW_AT_name ("from_address")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (140)
DW_AT_type (0x00000165 "coroutine_handle<void>")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x0000023e: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x00000243: NULL
0x00000244: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIvE12from_addressEDn")
DW_AT_name ("from_address")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (148)
DW_AT_type (0x00000165 "coroutine_handle<void>")
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_accessibility (DW_ACCESS_public)
0x00000254: DW_TAG_formal_parameter
DW_AT_type (0x0000032a "nullptr_t")
0x00000259: NULL
0x0000025a: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v116coroutine_handleIvE14__is_suspendedEv")
DW_AT_name ("__is_suspended")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (160)
DW_AT_type (0x00000784 "bool")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000269: DW_TAG_formal_parameter
DW_AT_type (0x0000077a "const coroutine_handle<void>*")
DW_AT_artificial (true)
0x0000026e: NULL
0x0000026f: DW_TAG_template_type_parameter
DW_AT_name ("_Promise")
0x00000274: NULL
0x00000275: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("suspend_never")
DW_AT_byte_size (0x01)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (300)
0x0000027f: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv")
DW_AT_name ("await_ready")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (302)
DW_AT_type (0x00000784 "bool")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000028f: DW_TAG_formal_parameter
DW_AT_type (0x0000079f "const suspend_never*")
DW_AT_artificial (true)
0x00000294: NULL
0x00000295: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE")
DW_AT_name ("await_suspend")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (304)
DW_AT_declaration (true)
DW_AT_external (true)
0x000002a1: DW_TAG_formal_parameter
DW_AT_type (0x0000079f "const suspend_never*")
DW_AT_artificial (true)
0x000002a6: DW_TAG_formal_parameter
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x000002ab: NULL
0x000002ac: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv")
DW_AT_name ("await_resume")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (306)
DW_AT_declaration (true)
DW_AT_external (true)
0x000002b8: DW_TAG_formal_parameter
DW_AT_type (0x0000079f "const suspend_never*")
DW_AT_artificial (true)
0x000002bd: NULL
0x000002be: NULL
0x000002bf: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("suspend_always")
DW_AT_byte_size (0x01)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (309)
0x000002c9: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv")
DW_AT_name ("await_ready")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (311)
DW_AT_type (0x00000784 "bool")
DW_AT_declaration (true)
DW_AT_external (true)
0x000002d9: DW_TAG_formal_parameter
DW_AT_type (0x0000161a "const suspend_always*")
DW_AT_artificial (true)
0x000002de: NULL
0x000002df: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE")
DW_AT_name ("await_suspend")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (313)
DW_AT_declaration (true)
DW_AT_external (true)
0x000002eb: DW_TAG_formal_parameter
DW_AT_type (0x0000161a "const suspend_always*")
DW_AT_artificial (true)
0x000002f0: DW_TAG_formal_parameter
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x000002f5: NULL
0x000002f6: DW_TAG_subprogram
DW_AT_linkage_name ("_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv")
DW_AT_name ("await_resume")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (315)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000302: DW_TAG_formal_parameter
DW_AT_type (0x0000161a "const suspend_always*")
DW_AT_artificial (true)
0x00000307: NULL
0x00000308: NULL
0x00000309: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_name ("__coroutine_traits_sfinae<coro, void>")
DW_AT_byte_size (0x01)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (76)
0x00000312: DW_TAG_template_type_parameter
DW_AT_type (0x0000002a "coro")
DW_AT_name ("_Tp")
0x0000031b: DW_TAG_template_type_parameter
0x0000031c: DW_TAG_typedef
DW_AT_type (0x0000003f "promise_type")
DW_AT_name ("promise_type")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (79)
0x00000327: NULL
0x00000328: NULL
0x00000329: NULL
0x0000032a: DW_TAG_typedef
DW_AT_type (0x00000770 "decltype(nullptr)")
DW_AT_name ("nullptr_t")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/__nullptr")
DW_AT_decl_line (56)
0x00000335: DW_TAG_namespace
DW_AT_name ("__1")
DW_AT_export_symbols (true)
0x0000033a: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (107)
DW_AT_import (0x000007b8)
0x00000341: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (108)
DW_AT_import (0x000007c8)
0x00000348: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (109)
DW_AT_import (0x000007e3)
0x0000034f: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (111)
DW_AT_import (0x000007f5)
0x00000356: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (112)
DW_AT_import (0x00000812)
0x0000035d: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (113)
DW_AT_import (0x00000823)
0x00000364: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (114)
DW_AT_import (0x0000084c)
0x0000036b: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (115)
DW_AT_import (0x0000086d)
0x00000372: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (116)
DW_AT_import (0x00000894)
0x00000379: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (117)
DW_AT_import (0x000008b0)
0x00000380: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (118)
DW_AT_import (0x000008cd)
0x00000387: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (119)
DW_AT_import (0x000008e5)
0x0000038e: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (120)
DW_AT_import (0x00000901)
0x00000395: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (121)
DW_AT_import (0x00000927)
0x0000039c: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (122)
DW_AT_import (0x00000947)
0x000003a3: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (123)
DW_AT_import (0x00000967)
0x000003aa: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (124)
DW_AT_import (0x00000988)
0x000003b1: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (125)
DW_AT_import (0x000009a4)
0x000003b8: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (126)
DW_AT_import (0x000009b6)
0x000003bf: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (127)
DW_AT_import (0x000009d2)
0x000003c6: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (128)
DW_AT_import (0x000009e9)
0x000003cd: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (129)
DW_AT_import (0x00000a00)
0x000003d4: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (130)
DW_AT_import (0x00000a12)
0x000003db: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (131)
DW_AT_import (0x00000a29)
0x000003e2: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (132)
DW_AT_import (0x00000a40)
0x000003e9: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (133)
DW_AT_import (0x00000a66)
0x000003f0: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (134)
DW_AT_import (0x00000a92)
0x000003f7: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (135)
DW_AT_import (0x00000ab3)
0x000003fe: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (136)
DW_AT_import (0x00000ad6)
0x00000405: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (137)
DW_AT_import (0x00000af7)
0x0000040c: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (138)
DW_AT_import (0x00000b09)
0x00000413: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (139)
DW_AT_import (0x00000b17)
0x0000041a: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (140)
DW_AT_import (0x00000b25)
0x00000421: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (141)
DW_AT_import (0x00000b37)
0x00000428: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (142)
DW_AT_import (0x00000b49)
0x0000042f: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (145)
DW_AT_import (0x00000b57)
0x00000436: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (146)
DW_AT_import (0x00000b6d)
0x0000043d: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (147)
DW_AT_import (0x00000b88)
0x00000444: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (148)
DW_AT_import (0x00000b99)
0x0000044b: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (149)
DW_AT_import (0x00000baf)
0x00000452: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (150)
DW_AT_import (0x00000bba)
0x00000459: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (154)
DW_AT_import (0x00000bcb)
0x00000460: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (158)
DW_AT_import (0x00000bd7)
0x00000467: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (159)
DW_AT_import (0x00000bee)
0x0000046e: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (163)
DW_AT_import (0x00000c09)
0x00000475: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (164)
DW_AT_import (0x00000c1c)
0x0000047c: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (165)
DW_AT_import (0x00000c2e)
0x00000483: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio")
DW_AT_decl_line (166)
DW_AT_import (0x00000c40)
0x0000048a: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstddef")
DW_AT_decl_line (49)
DW_AT_import (0x00000c57)
0x00000491: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstddef")
DW_AT_decl_line (50)
DW_AT_import (0x000007e3)
0x00000498: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstddef")
DW_AT_decl_line (55)
DW_AT_import (0x00000c62)
0x0000049f: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (99)
DW_AT_import (0x000007e3)
0x000004a6: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (100)
DW_AT_import (0x00000c6e)
0x000004ad: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (101)
DW_AT_import (0x00000c7a)
0x000004b4: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (103)
DW_AT_import (0x00000ca3)
0x000004bb: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (105)
DW_AT_import (0x00000cd3)
0x000004c2: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (106)
DW_AT_import (0x00000ceb)
0x000004c9: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (107)
DW_AT_import (0x00000cfc)
0x000004d0: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (109)
DW_AT_import (0x00000d0d)
0x000004d7: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (111)
DW_AT_import (0x00000d1e)
0x000004de: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (112)
DW_AT_import (0x00000d3e)
0x000004e5: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (113)
DW_AT_import (0x00000d5b)
0x000004ec: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (114)
DW_AT_import (0x00000d78)
0x000004f3: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (116)
DW_AT_import (0x00000d93)
0x000004fa: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (118)
DW_AT_import (0x00000dae)
0x00000501: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (120)
DW_AT_import (0x00000dc9)
0x00000508: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (122)
DW_AT_import (0x00000deb)
0x0000050f: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (123)
DW_AT_import (0x00000df7)
0x00000516: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (124)
DW_AT_import (0x00000e0c)
0x0000051d: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (125)
DW_AT_import (0x00000e23)
0x00000524: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (126)
DW_AT_import (0x00000e31)
0x0000052b: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (127)
DW_AT_import (0x00000e43)
0x00000532: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (128)
DW_AT_import (0x00000e5a)
0x00000539: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (129)
DW_AT_import (0x00000e62)
0x00000540: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (130)
DW_AT_import (0x00000e7a)
0x00000547: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (131)
DW_AT_import (0x00000e88)
0x0000054e: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (133)
DW_AT_import (0x00000e96)
0x00000555: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (134)
DW_AT_import (0x00000ea8)
0x0000055c: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (136)
DW_AT_import (0x00000eba)
0x00000563: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (137)
DW_AT_import (0x00000f01)
0x0000056a: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (138)
DW_AT_import (0x00000f1e)
0x00000571: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (139)
DW_AT_import (0x00000f34)
0x00000578: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (141)
DW_AT_import (0x00000f46)
0x0000057f: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (143)
DW_AT_import (0x00000f58)
0x00000586: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (144)
DW_AT_import (0x00000f73)
0x0000058d: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (146)
DW_AT_import (0x00000f8a)
0x00000594: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (148)
DW_AT_import (0x00000fa1)
0x0000059b: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (149)
DW_AT_import (0x00000fb8)
0x000005a2: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (150)
DW_AT_import (0x00000fe5)
0x000005a9: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (151)
DW_AT_import (0x00000ffc)
0x000005b0: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (152)
DW_AT_import (0x00001018)
0x000005b7: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (154)
DW_AT_import (0x00001043)
0x000005be: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (155)
DW_AT_import (0x00001055)
0x000005c5: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib")
DW_AT_decl_line (158)
DW_AT_import (0x00001063)
0x000005cc: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (152)
DW_AT_import (0x0000107a)
0x000005d3: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (153)
DW_AT_import (0x00001097)
0x000005da: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (154)
DW_AT_import (0x000010b4)
0x000005e1: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (155)
DW_AT_import (0x000010ca)
0x000005e8: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (157)
DW_AT_import (0x000010e0)
0x000005ef: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (158)
DW_AT_import (0x000010fd)
0x000005f6: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (159)
DW_AT_import (0x0000111a)
0x000005fd: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (160)
DW_AT_import (0x00001130)
0x00000604: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (162)
DW_AT_import (0x00001146)
0x0000060b: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (163)
DW_AT_import (0x0000115c)
0x00000612: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (164)
DW_AT_import (0x00001172)
0x00000619: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (165)
DW_AT_import (0x00001188)
0x00000620: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (167)
DW_AT_import (0x0000119e)
0x00000627: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (168)
DW_AT_import (0x000011b4)
0x0000062e: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (169)
DW_AT_import (0x000011ca)
0x00000635: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (170)
DW_AT_import (0x000011e0)
0x0000063c: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (172)
DW_AT_import (0x000011f6)
0x00000643: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (173)
DW_AT_import (0x00001201)
0x0000064a: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (174)
DW_AT_import (0x0000120c)
0x00000651: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (175)
DW_AT_import (0x00001217)
0x00000658: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (177)
DW_AT_import (0x00001222)
0x0000065f: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (178)
DW_AT_import (0x0000122d)
0x00000666: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (179)
DW_AT_import (0x00001238)
0x0000066d: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (180)
DW_AT_import (0x00001243)
0x00000674: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (182)
DW_AT_import (0x0000124e)
0x0000067b: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (183)
DW_AT_import (0x00001259)
0x00000682: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (185)
DW_AT_import (0x00001264)
0x00000689: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint")
DW_AT_decl_line (186)
DW_AT_import (0x0000127a)
0x00000690: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (68)
DW_AT_import (0x000007e3)
0x00000697: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (69)
DW_AT_import (0x00001290)
0x0000069e: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (70)
DW_AT_import (0x000012ab)
0x000006a5: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (71)
DW_AT_import (0x000012c6)
0x000006ac: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (72)
DW_AT_import (0x000012dc)
0x000006b3: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (73)
DW_AT_import (0x000012f7)
0x000006ba: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (74)
DW_AT_import (0x0000130d)
0x000006c1: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (75)
DW_AT_import (0x00001328)
0x000006c8: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (76)
DW_AT_import (0x00001343)
0x000006cf: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (77)
DW_AT_import (0x00001359)
0x000006d6: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (78)
DW_AT_import (0x00001374)
0x000006dd: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (79)
DW_AT_import (0x0000138a)
0x000006e4: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (80)
DW_AT_import (0x000013a5)
0x000006eb: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (81)
DW_AT_import (0x000013c4)
0x000006f2: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (82)
DW_AT_import (0x000013de)
0x000006f9: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (83)
DW_AT_import (0x000013f5)
0x00000700: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (84)
DW_AT_import (0x0000140f)
0x00000707: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (85)
DW_AT_import (0x00001429)
0x0000070e: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (86)
DW_AT_import (0x00001440)
0x00000715: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (88)
DW_AT_import (0x0000145a)
0x0000071c: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (90)
DW_AT_import (0x00001471)
0x00000723: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (91)
DW_AT_import (0x0000148c)
0x0000072a: DW_TAG_imported_declaration
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring")
DW_AT_decl_line (92)
DW_AT_import (0x0000149e)
0x00000731: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004024c0)
DW_AT_high_pc (0x00000000004024ce)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_linkage_name ("_ZNSt3__19addressofIN4coro12promise_typeEEEPT_RS3_")
DW_AT_name ("addressof<coro::promise_type>")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/type_traits")
DW_AT_decl_line (591)
DW_AT_type (0x000018c5 "promise_type*")
DW_AT_external (true)
0x0000074f: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("__x")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/type_traits")
DW_AT_decl_line (591)
DW_AT_type (0x00000795 "promise_type&")
0x0000075e: DW_TAG_template_type_parameter
DW_AT_type (0x0000003f "promise_type")
DW_AT_name ("_Tp")
0x00000767: NULL
0x00000768: NULL
0x00000769: NULL
0x0000076a: DW_TAG_pointer_type
0x0000076b: DW_TAG_pointer_type
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x00000770: DW_TAG_unspecified_type
DW_AT_name ("decltype(nullptr)")
0x00000775: DW_TAG_reference_type
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x0000077a: DW_TAG_pointer_type
DW_AT_type (0x0000077f "const coroutine_handle<void>")
0x0000077f: DW_TAG_const_type
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x00000784: DW_TAG_base_type
DW_AT_name ("bool")
DW_AT_encoding (DW_ATE_boolean)
DW_AT_byte_size (0x01)
0x0000078b: DW_TAG_reference_type
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x00000790: DW_TAG_pointer_type
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x00000795: DW_TAG_reference_type
DW_AT_type (0x0000003f "promise_type")
0x0000079a: DW_TAG_pointer_type
DW_AT_type (0x0000003f "promise_type")
0x0000079f: DW_TAG_pointer_type
DW_AT_type (0x000007a4 "const suspend_never")
0x000007a4: DW_TAG_const_type
DW_AT_type (0x00000275 "suspend_never")
0x000007a9: DW_TAG_pointer_type
DW_AT_type (0x000007ae "const coroutine_handle<coro::promise_type>")
0x000007ae: DW_TAG_const_type
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x000007b3: DW_TAG_pointer_type
DW_AT_type (0x0000002a "coro")
0x000007b8: DW_TAG_typedef
DW_AT_type (0x000007c3 "_IO_FILE")
DW_AT_name ("FILE")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types/FILE.h")
DW_AT_decl_line (7)
0x000007c3: DW_TAG_structure_type
DW_AT_name ("_IO_FILE")
DW_AT_declaration (true)
0x000007c8: DW_TAG_typedef
DW_AT_type (0x000007d3 "__fpos_t")
DW_AT_name ("fpos_t")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (84)
0x000007d3: DW_TAG_typedef
DW_AT_type (0x000007de "_G_fpos_t")
DW_AT_name ("__fpos_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h")
DW_AT_decl_line (14)
0x000007de: DW_TAG_structure_type
DW_AT_name ("_G_fpos_t")
DW_AT_declaration (true)
0x000007e3: DW_TAG_typedef
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_name ("size_t")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/lib/clang/11.0.0/include/stddef.h")
DW_AT_decl_line (46)
0x000007ee: DW_TAG_base_type
DW_AT_name ("long unsigned int")
DW_AT_encoding (DW_ATE_unsigned)
DW_AT_byte_size (0x08)
0x000007f5: DW_TAG_subprogram
DW_AT_name ("fclose")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (213)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000800: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000805: NULL
0x00000806: DW_TAG_base_type
DW_AT_name ("int")
DW_AT_encoding (DW_ATE_signed)
DW_AT_byte_size (0x04)
0x0000080d: DW_TAG_pointer_type
DW_AT_type (0x000007b8 "FILE")
0x00000812: DW_TAG_subprogram
DW_AT_name ("fflush")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (218)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000081d: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000822: NULL
0x00000823: DW_TAG_subprogram
DW_AT_name ("setbuf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (304)
DW_AT_declaration (true)
DW_AT_external (true)
0x0000082b: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x00000830: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x00000835: NULL
0x00000836: DW_TAG_restrict_type
DW_AT_type (0x0000080d "FILE*")
0x0000083b: DW_TAG_restrict_type
DW_AT_type (0x00000840 "char*")
0x00000840: DW_TAG_pointer_type
DW_AT_type (0x00000845 "char")
0x00000845: DW_TAG_base_type
DW_AT_name ("char")
DW_AT_encoding (DW_ATE_signed_char)
DW_AT_byte_size (0x01)
0x0000084c: DW_TAG_subprogram
DW_AT_name ("setvbuf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (308)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000858: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x0000085d: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x00000862: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000867: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x0000086c: NULL
0x0000086d: DW_TAG_subprogram
DW_AT_name ("fprintf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (326)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000879: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x0000087e: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000883: DW_TAG_unspecified_parameters
0x00000884: NULL
0x00000885: DW_TAG_restrict_type
DW_AT_type (0x0000088a "const char*")
0x0000088a: DW_TAG_pointer_type
DW_AT_type (0x0000088f "const char")
0x0000088f: DW_TAG_const_type
DW_AT_type (0x00000845 "char")
0x00000894: DW_TAG_subprogram
DW_AT_linkage_name ("__isoc99_fscanf")
DW_AT_name ("fscanf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (407)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x000008a4: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x000008a9: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000008ae: DW_TAG_unspecified_parameters
0x000008af: NULL
0x000008b0: DW_TAG_subprogram
DW_AT_name ("snprintf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (354)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x000008bc: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x000008c1: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x000008c6: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000008cb: DW_TAG_unspecified_parameters
0x000008cc: NULL
0x000008cd: DW_TAG_subprogram
DW_AT_name ("sprintf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (334)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x000008d9: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x000008de: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000008e3: DW_TAG_unspecified_parameters
0x000008e4: NULL
0x000008e5: DW_TAG_subprogram
DW_AT_linkage_name ("__isoc99_sscanf")
DW_AT_name ("sscanf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (412)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x000008f5: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000008fa: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000008ff: DW_TAG_unspecified_parameters
0x00000900: NULL
0x00000901: DW_TAG_subprogram
DW_AT_name ("vfprintf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (341)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000090d: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x00000912: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000917: DW_TAG_formal_parameter
DW_AT_type (0x0000091d "__va_list_tag*")
0x0000091c: NULL
0x0000091d: DW_TAG_pointer_type
DW_AT_type (0x00000922 "__va_list_tag")
0x00000922: DW_TAG_structure_type
DW_AT_name ("__va_list_tag")
DW_AT_declaration (true)
0x00000927: DW_TAG_subprogram
DW_AT_linkage_name ("__isoc99_vfscanf")
DW_AT_name ("vfscanf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (451)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000937: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x0000093c: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000941: DW_TAG_formal_parameter
DW_AT_type (0x0000091d "__va_list_tag*")
0x00000946: NULL
0x00000947: DW_TAG_subprogram
DW_AT_linkage_name ("__isoc99_vsscanf")
DW_AT_name ("vsscanf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (459)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000957: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x0000095c: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000961: DW_TAG_formal_parameter
DW_AT_type (0x0000091d "__va_list_tag*")
0x00000966: NULL
0x00000967: DW_TAG_subprogram
DW_AT_name ("vsnprintf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (358)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000973: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x00000978: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x0000097d: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000982: DW_TAG_formal_parameter
DW_AT_type (0x0000091d "__va_list_tag*")
0x00000987: NULL
0x00000988: DW_TAG_subprogram
DW_AT_name ("vsprintf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (349)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000994: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x00000999: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x0000099e: DW_TAG_formal_parameter
DW_AT_type (0x0000091d "__va_list_tag*")
0x000009a3: NULL
0x000009a4: DW_TAG_subprogram
DW_AT_name ("fgetc")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (485)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x000009b0: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x000009b5: NULL
0x000009b6: DW_TAG_subprogram
DW_AT_name ("fgets")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (564)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x000009c2: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x000009c7: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x000009cc: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x000009d1: NULL
0x000009d2: DW_TAG_subprogram
DW_AT_name ("fputc")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (521)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x000009de: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x000009e3: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x000009e8: NULL
0x000009e9: DW_TAG_subprogram
DW_AT_name ("fputs")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (626)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x000009f5: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000009fa: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x000009ff: NULL
0x00000a00: DW_TAG_subprogram
DW_AT_name ("getc")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (486)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000a0c: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000a11: NULL
0x00000a12: DW_TAG_subprogram
DW_AT_name ("putc")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (522)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000a1e: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000a23: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000a28: NULL
0x00000a29: DW_TAG_subprogram
DW_AT_name ("ungetc")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (639)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000a35: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000a3a: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000a3f: NULL
0x00000a40: DW_TAG_subprogram
DW_AT_name ("fread")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (646)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000a4c: DW_TAG_formal_parameter
DW_AT_type (0x00000a61 "restrict *")
0x00000a51: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000a56: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000a5b: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x00000a60: NULL
0x00000a61: DW_TAG_restrict_type
DW_AT_type (0x0000076a "*")
0x00000a66: DW_TAG_subprogram
DW_AT_name ("fwrite")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (652)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000a72: DW_TAG_formal_parameter
DW_AT_type (0x00000a87 "restrict const *")
0x00000a77: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000a7c: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000a81: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x00000a86: NULL
0x00000a87: DW_TAG_restrict_type
DW_AT_type (0x00000a8c "const *")
0x00000a8c: DW_TAG_pointer_type
DW_AT_type (0x00000a91 "const ")
0x00000a91: DW_TAG_const_type
0x00000a92: DW_TAG_subprogram
DW_AT_name ("fgetpos")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (731)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000a9e: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x00000aa3: DW_TAG_formal_parameter
DW_AT_type (0x00000aa9 "restrict fpos_t*")
0x00000aa8: NULL
0x00000aa9: DW_TAG_restrict_type
DW_AT_type (0x00000aae "fpos_t*")
0x00000aae: DW_TAG_pointer_type
DW_AT_type (0x000007c8 "fpos_t")
0x00000ab3: DW_TAG_subprogram
DW_AT_name ("fseek")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (684)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000abf: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000ac4: DW_TAG_formal_parameter
DW_AT_type (0x00000acf "long int")
0x00000ac9: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000ace: NULL
0x00000acf: DW_TAG_base_type
DW_AT_name ("long int")
DW_AT_encoding (DW_ATE_signed)
DW_AT_byte_size (0x08)
0x00000ad6: DW_TAG_subprogram
DW_AT_name ("fsetpos")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (736)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000ae2: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000ae7: DW_TAG_formal_parameter
DW_AT_type (0x00000aed "const fpos_t*")
0x00000aec: NULL
0x00000aed: DW_TAG_pointer_type
DW_AT_type (0x00000af2 "const fpos_t")
0x00000af2: DW_TAG_const_type
DW_AT_type (0x000007c8 "fpos_t")
0x00000af7: DW_TAG_subprogram
DW_AT_name ("ftell")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (689)
DW_AT_type (0x00000acf "long int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b03: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000b08: NULL
0x00000b09: DW_TAG_subprogram
DW_AT_name ("rewind")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (694)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b11: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000b16: NULL
0x00000b17: DW_TAG_subprogram
DW_AT_name ("clearerr")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (757)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b1f: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000b24: NULL
0x00000b25: DW_TAG_subprogram
DW_AT_name ("feof")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (759)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b31: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000b36: NULL
0x00000b37: DW_TAG_subprogram
DW_AT_name ("ferror")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (761)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b43: DW_TAG_formal_parameter
DW_AT_type (0x0000080d "FILE*")
0x00000b48: NULL
0x00000b49: DW_TAG_subprogram
DW_AT_name ("perror")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (775)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b51: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000b56: NULL
0x00000b57: DW_TAG_subprogram
DW_AT_name ("fopen")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (246)
DW_AT_type (0x0000080d "FILE*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b62: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000b67: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000b6c: NULL
0x00000b6d: DW_TAG_subprogram
DW_AT_name ("freopen")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (252)
DW_AT_type (0x0000080d "FILE*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b78: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000b7d: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000b82: DW_TAG_formal_parameter
DW_AT_type (0x00000836 "restrict FILE*")
0x00000b87: NULL
0x00000b88: DW_TAG_subprogram
DW_AT_name ("remove")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (146)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000b93: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000b98: NULL
0x00000b99: DW_TAG_subprogram
DW_AT_name ("rename")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (148)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000ba4: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000ba9: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000bae: NULL
0x00000baf: DW_TAG_subprogram
DW_AT_name ("tmpfile")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (173)
DW_AT_type (0x0000080d "FILE*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000bba: DW_TAG_subprogram
DW_AT_name ("tmpnam")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (187)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000bc5: DW_TAG_formal_parameter
DW_AT_type (0x00000840 "char*")
0x00000bca: NULL
0x00000bcb: DW_TAG_subprogram
DW_AT_name ("getchar")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (492)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000bd7: DW_TAG_subprogram
DW_AT_linkage_name ("__isoc99_scanf")
DW_AT_name ("scanf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (410)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000be7: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000bec: DW_TAG_unspecified_parameters
0x00000bed: NULL
0x00000bee: DW_TAG_subprogram
DW_AT_linkage_name ("__isoc99_vscanf")
DW_AT_name ("vscanf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (456)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000bfe: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000c03: DW_TAG_formal_parameter
DW_AT_type (0x0000091d "__va_list_tag*")
0x00000c08: NULL
0x00000c09: DW_TAG_subprogram
DW_AT_name ("printf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (332)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000c15: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000c1a: DW_TAG_unspecified_parameters
0x00000c1b: NULL
0x00000c1c: DW_TAG_subprogram
DW_AT_name ("putchar")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (528)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000c28: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000c2d: NULL
0x00000c2e: DW_TAG_subprogram
DW_AT_name ("puts")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (632)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000c3a: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000c3f: NULL
0x00000c40: DW_TAG_subprogram
DW_AT_name ("vprintf")
DW_AT_decl_file ("/usr/include/stdio.h")
DW_AT_decl_line (347)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000c4c: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000c51: DW_TAG_formal_parameter
DW_AT_type (0x0000091d "__va_list_tag*")
0x00000c56: NULL
0x00000c57: DW_TAG_typedef
DW_AT_type (0x00000acf "long int")
DW_AT_name ("ptrdiff_t")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/lib/clang/11.0.0/include/stddef.h")
DW_AT_decl_line (35)
0x00000c62: DW_TAG_typedef
DW_AT_type (0x00000c6d "structure ")
DW_AT_name ("max_align_t")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/lib/clang/11.0.0/include/__stddef_max_align_t.h")
DW_AT_decl_line (24)
0x00000c6d: DW_TAG_structure_type
DW_AT_declaration (true)
0x00000c6e: DW_TAG_typedef
DW_AT_type (0x00000c79 "structure ")
DW_AT_name ("div_t")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (62)
0x00000c79: DW_TAG_structure_type
DW_AT_declaration (true)
0x00000c7a: DW_TAG_typedef
DW_AT_type (0x00000c85 "structure ")
DW_AT_name ("ldiv_t")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (70)
0x00000c85: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_byte_size (0x10)
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (66)
0x00000c8a: DW_TAG_member
DW_AT_name ("quot")
DW_AT_type (0x00000acf "long int")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (68)
DW_AT_data_member_location (0x00)
0x00000c96: DW_TAG_member
DW_AT_name ("rem")
DW_AT_type (0x00000acf "long int")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (69)
DW_AT_data_member_location (0x08)
0x00000ca2: NULL
0x00000ca3: DW_TAG_typedef
DW_AT_type (0x00000cae "structure ")
DW_AT_name ("lldiv_t")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (80)
0x00000cae: DW_TAG_structure_type
DW_AT_calling_convention (DW_CC_pass_by_value)
DW_AT_byte_size (0x10)
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (76)
0x00000cb3: DW_TAG_member
DW_AT_name ("quot")
DW_AT_type (0x00000ccc "long long int")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (78)
DW_AT_data_member_location (0x00)
0x00000cbf: DW_TAG_member
DW_AT_name ("rem")
DW_AT_type (0x00000ccc "long long int")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (79)
DW_AT_data_member_location (0x08)
0x00000ccb: NULL
0x00000ccc: DW_TAG_base_type
DW_AT_name ("long long int")
DW_AT_encoding (DW_ATE_signed)
DW_AT_byte_size (0x08)
0x00000cd3: DW_TAG_subprogram
DW_AT_name ("atof")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (101)
DW_AT_type (0x00000ce4 "double")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000cde: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000ce3: NULL
0x00000ce4: DW_TAG_base_type
DW_AT_name ("double")
DW_AT_encoding (DW_ATE_float)
DW_AT_byte_size (0x08)
0x00000ceb: DW_TAG_subprogram
DW_AT_name ("atoi")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (104)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000cf6: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000cfb: NULL
0x00000cfc: DW_TAG_subprogram
DW_AT_name ("atol")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (107)
DW_AT_type (0x00000acf "long int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000d07: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000d0c: NULL
0x00000d0d: DW_TAG_subprogram
DW_AT_name ("atoll")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (112)
DW_AT_type (0x00000ccc "long long int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000d18: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000d1d: NULL
0x00000d1e: DW_TAG_subprogram
DW_AT_name ("strtod")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (117)
DW_AT_type (0x00000ce4 "double")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000d29: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000d2e: DW_TAG_formal_parameter
DW_AT_type (0x00000d34 "restrict char**")
0x00000d33: NULL
0x00000d34: DW_TAG_restrict_type
DW_AT_type (0x00000d39 "char**")
0x00000d39: DW_TAG_pointer_type
DW_AT_type (0x00000840 "char*")
0x00000d3e: DW_TAG_subprogram
DW_AT_name ("strtof")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (123)
DW_AT_type (0x00000d54 "float")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000d49: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000d4e: DW_TAG_formal_parameter
DW_AT_type (0x00000d34 "restrict char**")
0x00000d53: NULL
0x00000d54: DW_TAG_base_type
DW_AT_name ("float")
DW_AT_encoding (DW_ATE_float)
DW_AT_byte_size (0x04)
0x00000d5b: DW_TAG_subprogram
DW_AT_name ("strtold")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (126)
DW_AT_type (0x00000d71 "long double")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000d66: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000d6b: DW_TAG_formal_parameter
DW_AT_type (0x00000d34 "restrict char**")
0x00000d70: NULL
0x00000d71: DW_TAG_base_type
DW_AT_name ("long double")
DW_AT_encoding (DW_ATE_float)
DW_AT_byte_size (0x10)
0x00000d78: DW_TAG_subprogram
DW_AT_name ("strtol")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (176)
DW_AT_type (0x00000acf "long int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000d83: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000d88: DW_TAG_formal_parameter
DW_AT_type (0x00000d34 "restrict char**")
0x00000d8d: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000d92: NULL
0x00000d93: DW_TAG_subprogram
DW_AT_name ("strtoll")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (200)
DW_AT_type (0x00000ccc "long long int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000d9e: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000da3: DW_TAG_formal_parameter
DW_AT_type (0x00000d34 "restrict char**")
0x00000da8: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000dad: NULL
0x00000dae: DW_TAG_subprogram
DW_AT_name ("strtoul")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (180)
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000db9: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000dbe: DW_TAG_formal_parameter
DW_AT_type (0x00000d34 "restrict char**")
0x00000dc3: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000dc8: NULL
0x00000dc9: DW_TAG_subprogram
DW_AT_name ("strtoull")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (205)
DW_AT_type (0x00000de4 "long long unsigned int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000dd4: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000dd9: DW_TAG_formal_parameter
DW_AT_type (0x00000d34 "restrict char**")
0x00000dde: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000de3: NULL
0x00000de4: DW_TAG_base_type
DW_AT_name ("long long unsigned int")
DW_AT_encoding (DW_ATE_unsigned)
DW_AT_byte_size (0x08)
0x00000deb: DW_TAG_subprogram
DW_AT_name ("rand")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (453)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000df7: DW_TAG_subprogram
DW_AT_name ("srand")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (455)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000dff: DW_TAG_formal_parameter
DW_AT_type (0x00000e05 "unsigned int")
0x00000e04: NULL
0x00000e05: DW_TAG_base_type
DW_AT_name ("unsigned int")
DW_AT_encoding (DW_ATE_unsigned)
DW_AT_byte_size (0x04)
0x00000e0c: DW_TAG_subprogram
DW_AT_name ("calloc")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (542)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000e18: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000e1d: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000e22: NULL
0x00000e23: DW_TAG_subprogram
DW_AT_name ("free")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (565)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000e2b: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x00000e30: NULL
0x00000e31: DW_TAG_subprogram
DW_AT_name ("malloc")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (539)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000e3d: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000e42: NULL
0x00000e43: DW_TAG_subprogram
DW_AT_name ("realloc")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (550)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000e4f: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x00000e54: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000e59: NULL
0x00000e5a: DW_TAG_subprogram
DW_AT_name ("abort")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (591)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_noreturn (true)
0x00000e62: DW_TAG_subprogram
DW_AT_name ("atexit")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (595)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000e6e: DW_TAG_formal_parameter
DW_AT_type (0x00000e74 "void()*")
0x00000e73: NULL
0x00000e74: DW_TAG_pointer_type
DW_AT_type (0x00000e79 "void()")
0x00000e79: DW_TAG_subroutine_type
0x00000e7a: DW_TAG_subprogram
DW_AT_name ("exit")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (617)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_noreturn (true)
0x00000e82: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000e87: NULL
0x00000e88: DW_TAG_subprogram
DW_AT_name ("_Exit")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (629)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_noreturn (true)
0x00000e90: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00000e95: NULL
0x00000e96: DW_TAG_subprogram
DW_AT_name ("getenv")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (634)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000ea2: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000ea7: NULL
0x00000ea8: DW_TAG_subprogram
DW_AT_name ("system")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (784)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000eb4: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000eb9: NULL
0x00000eba: DW_TAG_subprogram
DW_AT_name ("bsearch")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (820)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000ec6: DW_TAG_formal_parameter
DW_AT_type (0x00000a8c "const *")
0x00000ecb: DW_TAG_formal_parameter
DW_AT_type (0x00000a8c "const *")
0x00000ed0: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000ed5: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000eda: DW_TAG_formal_parameter
DW_AT_type (0x00000ee0 "__compar_fn_t")
0x00000edf: NULL
0x00000ee0: DW_TAG_typedef
DW_AT_type (0x00000eec "int(const *, const *)*")
DW_AT_name ("__compar_fn_t")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (808)
0x00000eec: DW_TAG_pointer_type
DW_AT_type (0x00000ef1 "int(const *, const *)")
0x00000ef1: DW_TAG_subroutine_type
DW_AT_type (0x00000806 "int")
0x00000ef6: DW_TAG_formal_parameter
DW_AT_type (0x00000a8c "const *")
0x00000efb: DW_TAG_formal_parameter
DW_AT_type (0x00000a8c "const *")
0x00000f00: NULL
0x00000f01: DW_TAG_subprogram
DW_AT_name ("qsort")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (830)
DW_AT_declaration (true)
DW_AT_external (true)
0x00000f09: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x00000f0e: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000f13: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000f18: DW_TAG_formal_parameter
DW_AT_type (0x00000ee0 "__compar_fn_t")
0x00000f1d: NULL
0x00000f1e: DW_TAG_subprogram
DW_AT_linkage_name ("_Z3abse")
DW_AT_name ("abs")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/math.h")
DW_AT_decl_line (793)
DW_AT_type (0x00000d71 "long double")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000f2e: DW_TAG_formal_parameter
DW_AT_type (0x00000d71 "long double")
0x00000f33: NULL
0x00000f34: DW_TAG_subprogram
DW_AT_name ("labs")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (841)
DW_AT_type (0x00000acf "long int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000f40: DW_TAG_formal_parameter
DW_AT_type (0x00000acf "long int")
0x00000f45: NULL
0x00000f46: DW_TAG_subprogram
DW_AT_name ("llabs")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (844)
DW_AT_type (0x00000ccc "long long int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000f52: DW_TAG_formal_parameter
DW_AT_type (0x00000ccc "long long int")
0x00000f57: NULL
0x00000f58: DW_TAG_subprogram
DW_AT_linkage_name ("_Z3divxx")
DW_AT_name ("div")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/math.h")
DW_AT_decl_line (812)
DW_AT_type (0x00000ca3 "lldiv_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000f68: DW_TAG_formal_parameter
DW_AT_type (0x00000ccc "long long int")
0x00000f6d: DW_TAG_formal_parameter
DW_AT_type (0x00000ccc "long long int")
0x00000f72: NULL
0x00000f73: DW_TAG_subprogram
DW_AT_name ("ldiv")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (854)
DW_AT_type (0x00000c7a "ldiv_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000f7f: DW_TAG_formal_parameter
DW_AT_type (0x00000acf "long int")
0x00000f84: DW_TAG_formal_parameter
DW_AT_type (0x00000acf "long int")
0x00000f89: NULL
0x00000f8a: DW_TAG_subprogram
DW_AT_name ("lldiv")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (858)
DW_AT_type (0x00000ca3 "lldiv_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000f96: DW_TAG_formal_parameter
DW_AT_type (0x00000ccc "long long int")
0x00000f9b: DW_TAG_formal_parameter
DW_AT_type (0x00000ccc "long long int")
0x00000fa0: NULL
0x00000fa1: DW_TAG_subprogram
DW_AT_name ("mblen")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (922)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000fad: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00000fb2: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000fb7: NULL
0x00000fb8: DW_TAG_subprogram
DW_AT_name ("mbtowc")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (925)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000fc4: DW_TAG_formal_parameter
DW_AT_type (0x00000fd4 "restrict wchar_t*")
0x00000fc9: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00000fce: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00000fd3: NULL
0x00000fd4: DW_TAG_restrict_type
DW_AT_type (0x00000fd9 "wchar_t*")
0x00000fd9: DW_TAG_pointer_type
DW_AT_type (0x00000fde "wchar_t")
0x00000fde: DW_TAG_base_type
DW_AT_name ("wchar_t")
DW_AT_encoding (DW_ATE_signed)
DW_AT_byte_size (0x04)
0x00000fe5: DW_TAG_subprogram
DW_AT_name ("wctomb")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (929)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00000ff1: DW_TAG_formal_parameter
DW_AT_type (0x00000840 "char*")
0x00000ff6: DW_TAG_formal_parameter
DW_AT_type (0x00000fde "wchar_t")
0x00000ffb: NULL
0x00000ffc: DW_TAG_subprogram
DW_AT_name ("mbstowcs")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (933)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001008: DW_TAG_formal_parameter
DW_AT_type (0x00000fd4 "restrict wchar_t*")
0x0000100d: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00001012: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00001017: NULL
0x00001018: DW_TAG_subprogram
DW_AT_name ("wcstombs")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (936)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001024: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x00001029: DW_TAG_formal_parameter
DW_AT_type (0x00001034 "restrict const wchar_t*")
0x0000102e: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00001033: NULL
0x00001034: DW_TAG_restrict_type
DW_AT_type (0x00001039 "const wchar_t*")
0x00001039: DW_TAG_pointer_type
DW_AT_type (0x0000103e "const wchar_t")
0x0000103e: DW_TAG_const_type
DW_AT_type (0x00000fde "wchar_t")
0x00001043: DW_TAG_subprogram
DW_AT_name ("at_quick_exit")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (600)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000104f: DW_TAG_formal_parameter
DW_AT_type (0x00000e74 "void()*")
0x00001054: NULL
0x00001055: DW_TAG_subprogram
DW_AT_name ("quick_exit")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (623)
DW_AT_declaration (true)
DW_AT_external (true)
DW_AT_noreturn (true)
0x0000105d: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00001062: NULL
0x00001063: DW_TAG_subprogram
DW_AT_name ("aligned_alloc")
DW_AT_decl_file ("/usr/include/stdlib.h")
DW_AT_decl_line (586)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000106f: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00001074: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00001079: NULL
0x0000107a: DW_TAG_typedef
DW_AT_type (0x00001085 "__int8_t")
DW_AT_name ("int8_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-intn.h")
DW_AT_decl_line (24)
0x00001085: DW_TAG_typedef
DW_AT_type (0x00001090 "signed char")
DW_AT_name ("__int8_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (37)
0x00001090: DW_TAG_base_type
DW_AT_name ("signed char")
DW_AT_encoding (DW_ATE_signed_char)
DW_AT_byte_size (0x01)
0x00001097: DW_TAG_typedef
DW_AT_type (0x000010a2 "__int16_t")
DW_AT_name ("int16_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-intn.h")
DW_AT_decl_line (25)
0x000010a2: DW_TAG_typedef
DW_AT_type (0x000010ad "short")
DW_AT_name ("__int16_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (39)
0x000010ad: DW_TAG_base_type
DW_AT_name ("short")
DW_AT_encoding (DW_ATE_signed)
DW_AT_byte_size (0x02)
0x000010b4: DW_TAG_typedef
DW_AT_type (0x000010bf "__int32_t")
DW_AT_name ("int32_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-intn.h")
DW_AT_decl_line (26)
0x000010bf: DW_TAG_typedef
DW_AT_type (0x00000806 "int")
DW_AT_name ("__int32_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (41)
0x000010ca: DW_TAG_typedef
DW_AT_type (0x000010d5 "__int64_t")
DW_AT_name ("int64_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-intn.h")
DW_AT_decl_line (27)
0x000010d5: DW_TAG_typedef
DW_AT_type (0x00000acf "long int")
DW_AT_name ("__int64_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (44)
0x000010e0: DW_TAG_typedef
DW_AT_type (0x000010eb "__uint8_t")
DW_AT_name ("uint8_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h")
DW_AT_decl_line (24)
0x000010eb: DW_TAG_typedef
DW_AT_type (0x000010f6 "unsigned char")
DW_AT_name ("__uint8_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (38)
0x000010f6: DW_TAG_base_type
DW_AT_name ("unsigned char")
DW_AT_encoding (DW_ATE_unsigned_char)
DW_AT_byte_size (0x01)
0x000010fd: DW_TAG_typedef
DW_AT_type (0x00001108 "__uint16_t")
DW_AT_name ("uint16_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h")
DW_AT_decl_line (25)
0x00001108: DW_TAG_typedef
DW_AT_type (0x00001113 "unsigned short")
DW_AT_name ("__uint16_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (40)
0x00001113: DW_TAG_base_type
DW_AT_name ("unsigned short")
DW_AT_encoding (DW_ATE_unsigned)
DW_AT_byte_size (0x02)
0x0000111a: DW_TAG_typedef
DW_AT_type (0x00001125 "__uint32_t")
DW_AT_name ("uint32_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h")
DW_AT_decl_line (26)
0x00001125: DW_TAG_typedef
DW_AT_type (0x00000e05 "unsigned int")
DW_AT_name ("__uint32_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (42)
0x00001130: DW_TAG_typedef
DW_AT_type (0x0000113b "__uint64_t")
DW_AT_name ("uint64_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h")
DW_AT_decl_line (27)
0x0000113b: DW_TAG_typedef
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_name ("__uint64_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (45)
0x00001146: DW_TAG_typedef
DW_AT_type (0x00001151 "__int_least8_t")
DW_AT_name ("int_least8_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (43)
0x00001151: DW_TAG_typedef
DW_AT_type (0x00001085 "__int8_t")
DW_AT_name ("__int_least8_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (52)
0x0000115c: DW_TAG_typedef
DW_AT_type (0x00001167 "__int_least16_t")
DW_AT_name ("int_least16_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (44)
0x00001167: DW_TAG_typedef
DW_AT_type (0x000010a2 "__int16_t")
DW_AT_name ("__int_least16_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (54)
0x00001172: DW_TAG_typedef
DW_AT_type (0x0000117d "__int_least32_t")
DW_AT_name ("int_least32_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (45)
0x0000117d: DW_TAG_typedef
DW_AT_type (0x000010bf "__int32_t")
DW_AT_name ("__int_least32_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (56)
0x00001188: DW_TAG_typedef
DW_AT_type (0x00001193 "__int_least64_t")
DW_AT_name ("int_least64_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (46)
0x00001193: DW_TAG_typedef
DW_AT_type (0x000010d5 "__int64_t")
DW_AT_name ("__int_least64_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (58)
0x0000119e: DW_TAG_typedef
DW_AT_type (0x000011a9 "__uint_least8_t")
DW_AT_name ("uint_least8_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (49)
0x000011a9: DW_TAG_typedef
DW_AT_type (0x000010eb "__uint8_t")
DW_AT_name ("__uint_least8_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (53)
0x000011b4: DW_TAG_typedef
DW_AT_type (0x000011bf "__uint_least16_t")
DW_AT_name ("uint_least16_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (50)
0x000011bf: DW_TAG_typedef
DW_AT_type (0x00001108 "__uint16_t")
DW_AT_name ("__uint_least16_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (55)
0x000011ca: DW_TAG_typedef
DW_AT_type (0x000011d5 "__uint_least32_t")
DW_AT_name ("uint_least32_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (51)
0x000011d5: DW_TAG_typedef
DW_AT_type (0x00001125 "__uint32_t")
DW_AT_name ("__uint_least32_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (57)
0x000011e0: DW_TAG_typedef
DW_AT_type (0x000011eb "__uint_least64_t")
DW_AT_name ("uint_least64_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (52)
0x000011eb: DW_TAG_typedef
DW_AT_type (0x0000113b "__uint64_t")
DW_AT_name ("__uint_least64_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (59)
0x000011f6: DW_TAG_typedef
DW_AT_type (0x00001090 "signed char")
DW_AT_name ("int_fast8_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (58)
0x00001201: DW_TAG_typedef
DW_AT_type (0x00000acf "long int")
DW_AT_name ("int_fast16_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (60)
0x0000120c: DW_TAG_typedef
DW_AT_type (0x00000acf "long int")
DW_AT_name ("int_fast32_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (61)
0x00001217: DW_TAG_typedef
DW_AT_type (0x00000acf "long int")
DW_AT_name ("int_fast64_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (62)
0x00001222: DW_TAG_typedef
DW_AT_type (0x000010f6 "unsigned char")
DW_AT_name ("uint_fast8_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (71)
0x0000122d: DW_TAG_typedef
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_name ("uint_fast16_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (73)
0x00001238: DW_TAG_typedef
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_name ("uint_fast32_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (74)
0x00001243: DW_TAG_typedef
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_name ("uint_fast64_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (75)
0x0000124e: DW_TAG_typedef
DW_AT_type (0x00000acf "long int")
DW_AT_name ("intptr_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (87)
0x00001259: DW_TAG_typedef
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_name ("uintptr_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (90)
0x00001264: DW_TAG_typedef
DW_AT_type (0x0000126f "__intmax_t")
DW_AT_name ("intmax_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (101)
0x0000126f: DW_TAG_typedef
DW_AT_type (0x00000acf "long int")
DW_AT_name ("__intmax_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (72)
0x0000127a: DW_TAG_typedef
DW_AT_type (0x00001285 "__uintmax_t")
DW_AT_name ("uintmax_t")
DW_AT_decl_file ("/usr/include/stdint.h")
DW_AT_decl_line (102)
0x00001285: DW_TAG_typedef
DW_AT_type (0x000007ee "long unsigned int")
DW_AT_name ("__uintmax_t")
DW_AT_decl_file ("/usr/include/x86_64-linux-gnu/bits/types.h")
DW_AT_decl_line (73)
0x00001290: DW_TAG_subprogram
DW_AT_name ("memcpy")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (42)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000129b: DW_TAG_formal_parameter
DW_AT_type (0x00000a61 "restrict *")
0x000012a0: DW_TAG_formal_parameter
DW_AT_type (0x00000a87 "restrict const *")
0x000012a5: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x000012aa: NULL
0x000012ab: DW_TAG_subprogram
DW_AT_name ("memmove")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (46)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x000012b6: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x000012bb: DW_TAG_formal_parameter
DW_AT_type (0x00000a8c "const *")
0x000012c0: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x000012c5: NULL
0x000012c6: DW_TAG_subprogram
DW_AT_name ("strcpy")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (121)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x000012d1: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x000012d6: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000012db: NULL
0x000012dc: DW_TAG_subprogram
DW_AT_name ("strncpy")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (124)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x000012e7: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x000012ec: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x000012f1: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x000012f6: NULL
0x000012f7: DW_TAG_subprogram
DW_AT_name ("strcat")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (129)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001302: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x00001307: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x0000130c: NULL
0x0000130d: DW_TAG_subprogram
DW_AT_name ("strncat")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (132)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001318: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x0000131d: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00001322: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00001327: NULL
0x00001328: DW_TAG_subprogram
DW_AT_name ("memcmp")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (63)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001333: DW_TAG_formal_parameter
DW_AT_type (0x00000a8c "const *")
0x00001338: DW_TAG_formal_parameter
DW_AT_type (0x00000a8c "const *")
0x0000133d: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00001342: NULL
0x00001343: DW_TAG_subprogram
DW_AT_name ("strcmp")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (136)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000134e: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00001353: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00001358: NULL
0x00001359: DW_TAG_subprogram
DW_AT_name ("strncmp")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (139)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001364: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00001369: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x0000136e: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x00001373: NULL
0x00001374: DW_TAG_subprogram
DW_AT_name ("strcoll")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (143)
DW_AT_type (0x00000806 "int")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000137f: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00001384: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00001389: NULL
0x0000138a: DW_TAG_subprogram
DW_AT_name ("strxfrm")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (146)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001395: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x0000139a: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x0000139f: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x000013a4: NULL
0x000013a5: DW_TAG_subprogram
DW_AT_linkage_name ("_Z6memchrUa9enable_ifIXLb1EEEPvim")
DW_AT_name ("memchr")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/string.h")
DW_AT_decl_line (98)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x000013b4: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x000013b9: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x000013be: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x000013c3: NULL
0x000013c4: DW_TAG_subprogram
DW_AT_linkage_name ("_Z6strchrUa9enable_ifIXLb1EEEPci")
DW_AT_name ("strchr")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/string.h")
DW_AT_decl_line (77)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x000013d3: DW_TAG_formal_parameter
DW_AT_type (0x00000840 "char*")
0x000013d8: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x000013dd: NULL
0x000013de: DW_TAG_subprogram
DW_AT_name ("strcspn")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (272)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x000013ea: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x000013ef: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x000013f4: NULL
0x000013f5: DW_TAG_subprogram
DW_AT_linkage_name ("_Z7strpbrkUa9enable_ifIXLb1EEEPcPKc")
DW_AT_name ("strpbrk")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/string.h")
DW_AT_decl_line (84)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001404: DW_TAG_formal_parameter
DW_AT_type (0x00000840 "char*")
0x00001409: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x0000140e: NULL
0x0000140f: DW_TAG_subprogram
DW_AT_linkage_name ("_Z7strrchrUa9enable_ifIXLb1EEEPci")
DW_AT_name ("strrchr")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/string.h")
DW_AT_decl_line (91)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000141e: DW_TAG_formal_parameter
DW_AT_type (0x00000840 "char*")
0x00001423: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00001428: NULL
0x00001429: DW_TAG_subprogram
DW_AT_name ("strspn")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (276)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001435: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x0000143a: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x0000143f: NULL
0x00001440: DW_TAG_subprogram
DW_AT_linkage_name ("_Z6strstrUa9enable_ifIXLb1EEEPcPKc")
DW_AT_name ("strstr")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/string.h")
DW_AT_decl_line (105)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000144f: DW_TAG_formal_parameter
DW_AT_type (0x00000840 "char*")
0x00001454: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x00001459: NULL
0x0000145a: DW_TAG_subprogram
DW_AT_name ("strtok")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (335)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001466: DW_TAG_formal_parameter
DW_AT_type (0x0000083b "restrict char*")
0x0000146b: DW_TAG_formal_parameter
DW_AT_type (0x00000885 "restrict const char*")
0x00001470: NULL
0x00001471: DW_TAG_subprogram
DW_AT_name ("memset")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (60)
DW_AT_type (0x0000076a "*")
DW_AT_declaration (true)
DW_AT_external (true)
0x0000147c: DW_TAG_formal_parameter
DW_AT_type (0x0000076a "*")
0x00001481: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x00001486: DW_TAG_formal_parameter
DW_AT_type (0x000007e3 "size_t")
0x0000148b: NULL
0x0000148c: DW_TAG_subprogram
DW_AT_name ("strerror")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (396)
DW_AT_type (0x00000840 "char*")
DW_AT_declaration (true)
DW_AT_external (true)
0x00001498: DW_TAG_formal_parameter
DW_AT_type (0x00000806 "int")
0x0000149d: NULL
0x0000149e: DW_TAG_subprogram
DW_AT_name ("strlen")
DW_AT_decl_file ("/usr/include/string.h")
DW_AT_decl_line (384)
DW_AT_type (0x000007e3 "size_t")
DW_AT_declaration (true)
DW_AT_external (true)
0x000014aa: DW_TAG_formal_parameter
DW_AT_type (0x0000088a "const char*")
0x000014af: NULL
0x000014b0: DW_TAG_imported_module
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (4)
DW_AT_import (0x000000c2)
0x000014b7: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000401150)
DW_AT_high_pc (0x00000000004016bb)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_linkage_name ("_Z3foov")
DW_AT_name ("foo")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (23)
DW_AT_type (0x0000002a "coro")
DW_AT_external (true)
0x000014d4: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("__coro_gro")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (23)
DW_AT_type (0x0000002a "coro")
0x000014e2: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -16)
DW_AT_name ("__promise")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (23)
DW_AT_type (0x0000031c "promise_type")
0x000014f0: DW_TAG_lexical_block
DW_AT_low_pc (0x0000000000401329)
DW_AT_high_pc (0x0000000000401562)
0x000014fd: DW_TAG_variable
DW_AT_location (0x00000000:
[0x0000000000401322, 0x0000000000401333): DW_OP_consts +0, DW_OP_stack_value
[0x0000000000401333, 0x000000000040133c): DW_OP_reg1 RDX
[0x000000000040133c, 0x000000000040134d): DW_OP_reg4 RSI
[0x0000000000401439, 0x0000000000401442): DW_OP_reg1 RDX
[0x000000000040144b, 0x000000000040145f): DW_OP_reg4 RSI
[0x000000000040152f, 0x0000000000401538): DW_OP_reg2 RCX
[0x0000000000401544, 0x0000000000401555): DW_OP_reg1 RDX)
DW_AT_name ("i")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (24)
DW_AT_type (0x00000806 "int")
0x0000150c: DW_TAG_variable
DW_AT_location (0x000000a7:
[0x0000000000401428, 0x0000000000401442): DW_OP_consts +0, DW_OP_stack_value
[0x0000000000401442, 0x000000000040145f): DW_OP_reg1 RDX
[0x0000000000401538, 0x0000000000401541): DW_OP_reg2 RCX
[0x0000000000401541, 0x0000000000401555): DW_OP_reg4 RSI)
DW_AT_name ("j")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (32)
DW_AT_type (0x00000806 "int")
0x0000151b: NULL
0x0000151c: NULL
0x0000151d: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402300)
DW_AT_high_pc (0x0000000000402338)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x00001534)
DW_AT_specification (0x00000048 "_ZN4coro12promise_type17get_return_objectEv")
0x00001534: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -16)
DW_AT_name ("this")
DW_AT_type (0x000018c5 "promise_type*")
DW_AT_artificial (true)
0x00001540: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -24)
DW_AT_name ("handle")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (9)
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x0000154e: NULL
0x0000154f: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402340)
DW_AT_high_pc (0x000000000040234a)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x00001566)
DW_AT_specification (0x0000005d "_ZN4coro12promise_type15initial_suspendEv")
0x00001566: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018c5 "promise_type*")
DW_AT_artificial (true)
0x00001572: NULL
0x00001573: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402350)
DW_AT_high_pc (0x0000000000402361)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x0000158a)
DW_AT_specification (0x0000027f "_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv")
0x0000158a: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018ca "const suspend_never*")
DW_AT_artificial (true)
0x00001596: NULL
0x00001597: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402370)
DW_AT_high_pc (0x000000000040237e)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x000015ae)
DW_AT_specification (0x00000295 "_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE")
0x000015ae: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -16)
DW_AT_name ("this")
DW_AT_type (0x000018ca "const suspend_never*")
DW_AT_artificial (true)
0x000015ba: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (304)
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x000015c5: NULL
0x000015c6: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402380)
DW_AT_high_pc (0x00000000004023a7)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_specification (0x0000010d "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv")
0x000015d9: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -16)
DW_AT_name ("__addr")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (220)
DW_AT_type (0x0000076a "*")
0x000015e7: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("__tmp")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (221)
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x000015f5: NULL
0x000015f6: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004023b0)
DW_AT_high_pc (0x00000000004023ba)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x0000160d)
DW_AT_specification (0x000002ac "_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv")
0x0000160d: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018ca "const suspend_never*")
DW_AT_artificial (true)
0x00001619: NULL
0x0000161a: DW_TAG_pointer_type
DW_AT_type (0x0000161f "const suspend_always")
0x0000161f: DW_TAG_const_type
DW_AT_type (0x000002bf "suspend_always")
0x00001624: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004023c0)
DW_AT_high_pc (0x00000000004023d1)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x0000163b)
DW_AT_specification (0x000002c9 "_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv")
0x0000163b: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018cf "const suspend_always*")
DW_AT_artificial (true)
0x00001647: NULL
0x00001648: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004023e0)
DW_AT_high_pc (0x00000000004023ee)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x0000165f)
DW_AT_specification (0x000002df "_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE")
0x0000165f: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -16)
DW_AT_name ("this")
DW_AT_type (0x000018cf "const suspend_always*")
DW_AT_artificial (true)
0x0000166b: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (313)
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x00001676: NULL
0x00001677: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004023f0)
DW_AT_high_pc (0x00000000004023fa)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x0000168e)
DW_AT_specification (0x000002f6 "_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv")
0x0000168e: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018cf "const suspend_always*")
DW_AT_artificial (true)
0x0000169a: NULL
0x0000169b: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402400)
DW_AT_high_pc (0x000000000040240a)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x000016b2)
DW_AT_specification (0x00000087 "_ZN4coro12promise_type11return_voidEv")
0x000016b2: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018c5 "promise_type*")
DW_AT_artificial (true)
0x000016be: NULL
0x000016bf: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402410)
DW_AT_high_pc (0x000000000040241a)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x000016d6)
DW_AT_specification (0x00000072 "_ZN4coro12promise_type13final_suspendEv")
0x000016d6: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018c5 "promise_type*")
DW_AT_artificial (true)
0x000016e2: NULL
0x000016e3: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004016c0)
DW_AT_high_pc (0x00000000004016f1)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_name ("main")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (53)
DW_AT_type (0x00000806 "int")
DW_AT_external (true)
0x000016fc: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("c")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (54)
DW_AT_type (0x0000002a "coro")
0x0000170a: NULL
0x0000170b: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402420)
DW_AT_high_pc (0x000000000040243e)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x00001722)
DW_AT_specification (0x000001f4 "_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv")
0x00001722: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018d4 "coroutine_handle<void>*")
DW_AT_artificial (true)
0x0000172e: NULL
0x0000172f: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402440)
DW_AT_high_pc (0x0000000000402472)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_specification (0x00000139 "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_promiseERS3_")
0x00001742: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -16)
DW_AT_name ("__promise")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (250)
DW_AT_type (0x00000795 "promise_type&")
0x00001750: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("__tmp")
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (252)
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x0000175e: NULL
0x0000175f: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000402480)
DW_AT_high_pc (0x0000000000402499)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x0000177a)
DW_AT_linkage_name ("_ZN4coroC2ENSt12experimental13coroutines_v116coroutine_handleINS_12promise_typeEEE")
DW_AT_specification (0x000000aa "coro")
0x0000177a: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -16)
DW_AT_name ("this")
DW_AT_type (0x000018d9 "coro*")
DW_AT_artificial (true)
0x00001786: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("handle")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (19)
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x00001794: NULL
0x00001795: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004024a0)
DW_AT_high_pc (0x00000000004024be)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x000017b2)
DW_AT_decl_file ("/home/modocache/Source/llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine")
DW_AT_decl_line (196)
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEC2Ev")
DW_AT_specification (0x00000158 "coroutine_handle")
0x000017b2: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018de "coroutine_handle<coro::promise_type>*")
DW_AT_artificial (true)
0x000017be: NULL
0x000017bf: DW_TAG_subprogram
DW_AT_low_pc (0x00000000004024d0)
DW_AT_high_pc (0x00000000004024e5)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_object_pointer (0x000017da)
DW_AT_linkage_name ("_ZNSt12experimental13coroutines_v116coroutine_handleIvEC2Ev")
DW_AT_specification (0x0000017a "coroutine_handle")
0x000017da: DW_TAG_formal_parameter
DW_AT_location (DW_OP_fbreg -8)
DW_AT_name ("this")
DW_AT_type (0x000018d4 "coroutine_handle<void>*")
DW_AT_artificial (true)
0x000017e6: NULL
0x000017e7: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000401710)
DW_AT_high_pc (0x0000000000401aea)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_linkage_name ("_Z3foov")
DW_AT_name ("foo")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (23)
DW_AT_type (0x0000002a "coro")
DW_AT_external (true)
0x00001804: DW_TAG_lexical_block
DW_AT_low_pc (0x000000000040179e)
DW_AT_high_pc (0x00000000004019a1)
0x00001811: DW_TAG_variable
DW_AT_location (0x00000115:
[0x000000000040179a, 0x00000000004017a8): DW_OP_consts +0, DW_OP_stack_value
[0x00000000004017a8, 0x00000000004017b1): DW_OP_reg1 RDX
[0x00000000004017b1, 0x00000000004017c2): DW_OP_reg4 RSI
[0x0000000000401893, 0x000000000040189c): DW_OP_reg1 RDX
[0x00000000004018a5, 0x00000000004018b9): DW_OP_reg4 RSI
[0x0000000000401974, 0x000000000040197d): DW_OP_reg2 RCX
[0x0000000000401989, 0x000000000040199a): DW_OP_reg1 RDX)
DW_AT_name ("i")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (24)
DW_AT_type (0x00000806 "int")
0x00001820: DW_TAG_variable
DW_AT_location (0x000001bc:
[0x0000000000401885, 0x000000000040189c): DW_OP_consts +0, DW_OP_stack_value
[0x000000000040189c, 0x00000000004018b9): DW_OP_reg1 RDX
[0x000000000040197d, 0x0000000000401986): DW_OP_reg2 RCX
[0x0000000000401986, 0x000000000040199a): DW_OP_reg4 RSI)
DW_AT_name ("j")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (32)
DW_AT_type (0x00000806 "int")
0x0000182f: NULL
0x00001830: NULL
0x00001831: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000401af0)
DW_AT_high_pc (0x0000000000401ef1)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_linkage_name ("_Z3foov")
DW_AT_name ("foo")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (23)
DW_AT_type (0x0000002a "coro")
DW_AT_external (true)
0x0000184e: DW_TAG_lexical_block
DW_AT_low_pc (0x0000000000401b7e)
DW_AT_high_pc (0x0000000000401d81)
0x0000185b: DW_TAG_variable
DW_AT_location (0x0000022a:
[0x0000000000401b7a, 0x0000000000401b88): DW_OP_consts +0, DW_OP_stack_value
[0x0000000000401b88, 0x0000000000401b91): DW_OP_reg1 RDX
[0x0000000000401b91, 0x0000000000401ba2): DW_OP_reg4 RSI
[0x0000000000401c73, 0x0000000000401c7c): DW_OP_reg1 RDX
[0x0000000000401c85, 0x0000000000401c99): DW_OP_reg4 RSI
[0x0000000000401d54, 0x0000000000401d5d): DW_OP_reg2 RCX
[0x0000000000401d69, 0x0000000000401d7a): DW_OP_reg1 RDX)
DW_AT_name ("i")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (24)
DW_AT_type (0x00000806 "int")
0x0000186a: DW_TAG_variable
DW_AT_location (0x000002d1:
[0x0000000000401c65, 0x0000000000401c7c): DW_OP_consts +0, DW_OP_stack_value
[0x0000000000401c7c, 0x0000000000401c99): DW_OP_reg1 RDX
[0x0000000000401d5d, 0x0000000000401d66): DW_OP_reg2 RCX
[0x0000000000401d66, 0x0000000000401d7a): DW_OP_reg4 RSI)
DW_AT_name ("j")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (32)
DW_AT_type (0x00000806 "int")
0x00001879: NULL
0x0000187a: NULL
0x0000187b: DW_TAG_subprogram
DW_AT_low_pc (0x0000000000401f00)
DW_AT_high_pc (0x00000000004022f8)
DW_AT_frame_base (DW_OP_reg6 RBP)
DW_AT_linkage_name ("_Z3foov")
DW_AT_name ("foo")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (23)
DW_AT_type (0x0000002a "coro")
DW_AT_external (true)
0x00001898: DW_TAG_lexical_block
DW_AT_low_pc (0x0000000000401f8e)
DW_AT_high_pc (0x0000000000402191)
0x000018a5: DW_TAG_variable
DW_AT_location (0x0000033f:
[0x0000000000401f8a, 0x0000000000401f98): DW_OP_consts +0, DW_OP_stack_value
[0x0000000000401f98, 0x0000000000401fa1): DW_OP_reg1 RDX
[0x0000000000401fa1, 0x0000000000401fb2): DW_OP_reg4 RSI
[0x0000000000402083, 0x000000000040208c): DW_OP_reg1 RDX
[0x0000000000402095, 0x00000000004020a9): DW_OP_reg4 RSI
[0x0000000000402164, 0x000000000040216d): DW_OP_reg2 RCX
[0x0000000000402179, 0x000000000040218a): DW_OP_reg1 RDX)
DW_AT_name ("i")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (24)
DW_AT_type (0x00000806 "int")
0x000018b4: DW_TAG_variable
DW_AT_location (0x000003e6:
[0x0000000000402075, 0x000000000040208c): DW_OP_consts +0, DW_OP_stack_value
[0x000000000040208c, 0x00000000004020a9): DW_OP_reg1 RDX
[0x000000000040216d, 0x0000000000402176): DW_OP_reg2 RCX
[0x0000000000402176, 0x000000000040218a): DW_OP_reg4 RSI)
DW_AT_name ("j")
DW_AT_decl_file ("/home/modocache/Source/tmp/corodebug/test.cpp")
DW_AT_decl_line (32)
DW_AT_type (0x00000806 "int")
0x000018c3: NULL
0x000018c4: NULL
0x000018c5: DW_TAG_pointer_type
DW_AT_type (0x0000003f "promise_type")
0x000018ca: DW_TAG_pointer_type
DW_AT_type (0x000007a4 "const suspend_never")
0x000018cf: DW_TAG_pointer_type
DW_AT_type (0x0000161f "const suspend_always")
0x000018d4: DW_TAG_pointer_type
DW_AT_type (0x00000165 "coroutine_handle<void>")
0x000018d9: DW_TAG_pointer_type
DW_AT_type (0x0000002a "coro")
0x000018de: DW_TAG_pointer_type
DW_AT_type (0x000000cc "coroutine_handle<coro::promise_type>")
0x000018e3: NULL
; ModuleID = '/home/modocache/Source/tmp/corodebug/test.cpp'
source_filename = "/home/modocache/Source/tmp/corodebug/test.cpp"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%"struct.coro::promise_type" = type { i8 }
%_Z3foov.Frame = type { void (%_Z3foov.Frame*)*, void (%_Z3foov.Frame*)*, %"struct.coro::promise_type", i2, %"struct.std::experimental::coroutines_v1::suspend_never", %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle", i32, %"struct.std::experimental::coroutines_v1::suspend_always", %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle", i32, %"struct.std::experimental::coroutines_v1::suspend_always", %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle", %"struct.std::experimental::coroutines_v1::suspend_never", %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle" }
%"struct.std::experimental::coroutines_v1::suspend_always" = type { i8 }
%"struct.std::experimental::coroutines_v1::suspend_never" = type { i8 }
%"class.std::experimental::coroutines_v1::coroutine_handle.0" = type { i8* }
%"class.std::experimental::coroutines_v1::coroutine_handle" = type { %"class.std::experimental::coroutines_v1::coroutine_handle.0" }
%struct.coro = type { %"class.std::experimental::coroutines_v1::coroutine_handle" }
$_ZN4coro12promise_type17get_return_objectEv = comdat any
$_ZN4coro12promise_type15initial_suspendEv = comdat any
$_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv = comdat any
$_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE = comdat any
$_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv = comdat any
$_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv = comdat any
$_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv = comdat any
$_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE = comdat any
$_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv = comdat any
$_ZN4coro12promise_type11return_voidEv = comdat any
$_ZN4coro12promise_type13final_suspendEv = comdat any
$_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv = comdat any
$_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_promiseERS3_ = comdat any
$_ZN4coroC2ENSt12experimental13coroutines_v116coroutine_handleINS_12promise_typeEEE = comdat any
$_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEC2Ev = comdat any
$_ZNSt3__19addressofIN4coro12promise_typeEEEPT_RS3_ = comdat any
$_ZNSt12experimental13coroutines_v116coroutine_handleIvEC2Ev = comdat any
@__const._Z3foov.__promise = private unnamed_addr constant %"struct.coro::promise_type" undef, align 1
@.str = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
@.str.1 = private unnamed_addr constant [8 x i8] c"%d, %d\0A\00", align 1
@_Z3foov.resumers = private constant [3 x void (%_Z3foov.Frame*)*] [void (%_Z3foov.Frame*)* @_Z3foov.resume, void (%_Z3foov.Frame*)* @_Z3foov.destroy, void (%_Z3foov.Frame*)* @_Z3foov.cleanup]
; Function Attrs: noinline nounwind optnone uwtable
define dso_local i8* @_Z3foov() #0 !dbg !648 {
entry:
%retval = alloca %struct.coro, align 8
%gro.active = alloca i1, align 1
%0 = alloca %"struct.coro::promise_type", align 1
%1 = alloca %"struct.std::experimental::coroutines_v1::suspend_never", align 1
%undef.agg.tmp = alloca %"struct.std::experimental::coroutines_v1::suspend_never", align 1
%agg.tmp = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0", align 8
%ref.tmp5 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
%i = alloca i32, align 4
%ref.tmp11 = alloca %"struct.std::experimental::coroutines_v1::suspend_always", align 1
%agg.tmp13 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0", align 8
%ref.tmp14 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
%j = alloca i32, align 4
%ref.tmp22 = alloca %"struct.std::experimental::coroutines_v1::suspend_always", align 1
%agg.tmp24 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0", align 8
%ref.tmp25 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
%ref.tmp33 = alloca %"struct.std::experimental::coroutines_v1::suspend_never", align 1
%undef.agg.tmp34 = alloca %"struct.std::experimental::coroutines_v1::suspend_never", align 1
%agg.tmp36 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0", align 8
%ref.tmp37 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
call void @coro.devirt.trigger(i8* null)
br i1 true, label %coro.alloc, label %coro.init.from.entry, !dbg !650
coro.init.from.entry: ; preds = %entry
%.coro.init = phi i8* [ null, %entry ]
br label %coro.init, !dbg !650
coro.alloc: ; preds = %entry
%call = call i8* @_Znwm(i64 112), !dbg !651
br label %coro.init.from.coro.alloc, !dbg !650
coro.init.from.coro.alloc: ; preds = %coro.alloc
%call.coro.init = phi i8* [ %call, %coro.alloc ]
br label %coro.init, !dbg !650
coro.init: ; preds = %coro.init.from.entry, %coro.init.from.coro.alloc
%2 = phi i8* [ %.coro.init, %coro.init.from.entry ], [ %call.coro.init, %coro.init.from.coro.alloc ], !dbg !650
%FramePtr = bitcast i8* %2 to %_Z3foov.Frame*, !dbg !650
%resume.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 0, !dbg !650
store void (%_Z3foov.Frame*)* @_Z3foov.resume, void (%_Z3foov.Frame*)** %resume.addr, !dbg !650
%3 = select i1 true, void (%_Z3foov.Frame*)* @_Z3foov.destroy, void (%_Z3foov.Frame*)* @_Z3foov.cleanup, !dbg !650
%destroy.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 1, !dbg !650
store void (%_Z3foov.Frame*)* %3, void (%_Z3foov.Frame*)** %destroy.addr, !dbg !650
br label %AllocaSpillBB, !dbg !650
AllocaSpillBB: ; preds = %coro.init
%__promise = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 2, !dbg !650
%ref.tmp = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !650
br label %PostSpill, !dbg !650
PostSpill: ; preds = %AllocaSpillBB
store i1 false, i1* %gro.active, align 1, !dbg !650
call void @llvm.dbg.declare(metadata %struct.coro* %retval, metadata !652, metadata !DIExpression()), !dbg !651
call void @llvm.dbg.declare(metadata %"struct.coro::promise_type"* %0, metadata !653, metadata !DIExpression()), !dbg !651
%4 = bitcast %"struct.coro::promise_type"* %__promise to i8*, !dbg !651
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %4, i8* align 1 getelementptr inbounds (%"struct.coro::promise_type", %"struct.coro::promise_type"* @__const._Z3foov.__promise, i32 0, i32 0), i64 1, i1 false), !dbg !651
%call1 = call i8* @_ZN4coro12promise_type17get_return_objectEv(%"struct.coro::promise_type"* %__promise), !dbg !651
%coerce.dive = getelementptr inbounds %struct.coro, %struct.coro* %retval, i32 0, i32 0, !dbg !651
%coerce.dive2 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %coerce.dive, i32 0, i32 0, !dbg !651
%coerce.dive3 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive2, i32 0, i32 0, !dbg !651
store i8* %call1, i8** %coerce.dive3, align 8, !dbg !651
store i1 true, i1* %gro.active, align 1, !dbg !651
call void @_ZN4coro12promise_type15initial_suspendEv(%"struct.coro::promise_type"* %__promise), !dbg !651
%call4 = call zeroext i1 @_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp) #2, !dbg !651
br i1 %call4, label %init.ready, label %CoroSave, !dbg !651
CoroSave: ; preds = %PostSpill
%index.addr72 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !651
store i2 0, i2* %index.addr72, !dbg !651
br label %AfterCoroSave, !dbg !651
AfterCoroSave: ; preds = %CoroSave
%ref.tmp5.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 6, !dbg !651
%agg.tmp.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 5, !dbg !651
%ref.tmp.reload.addr61 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !651
%call6 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %2) #2, !dbg !651
%coerce.dive7 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp5.reload.addr, i32 0, i32 0, !dbg !651
%coerce.dive8 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive7, i32 0, i32 0, !dbg !651
store i8* %call6, i8** %coerce.dive8, align 8, !dbg !651
%5 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp5.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !651
%6 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp.reload.addr to i8*, !dbg !651
%7 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %5 to i8*, !dbg !651
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false), !dbg !651
%coerce.dive9 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp.reload.addr, i32 0, i32 0, !dbg !651
%8 = load i8*, i8** %coerce.dive9, align 8, !dbg !651
call void @_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp.reload.addr61, i8* %8) #2, !dbg !651
br label %CoroSuspend, !dbg !651
CoroSuspend: ; preds = %AfterCoroSave
br label %resume.0.landing, !dbg !651
resume.0.landing: ; preds = %CoroSuspend
br label %AfterCoroSuspend, !dbg !651
AfterCoroSuspend: ; preds = %resume.0.landing
switch i8 -1, label %coro.ret [
i8 0, label %init.ready
i8 1, label %init.cleanup
], !dbg !651
init.cleanup: ; preds = %AfterCoroSuspend
br label %cleanup.from.init.cleanup, !dbg !651
cleanup.from.init.cleanup: ; preds = %init.cleanup
%.cleanup60 = phi i32 [ 2, %init.cleanup ]
br label %cleanup, !dbg !651
init.ready: ; preds = %AfterCoroSuspend, %PostSpill
%ref.tmp11.reload.addr65 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !651
%i.reload.addr63 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !651
%ref.tmp.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !651
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp.reload.addr) #2, !dbg !651
call void @llvm.dbg.value(metadata i32 0, metadata !659, metadata !DIExpression()), !dbg !661
store i32 0, i32* %i.reload.addr63, align 4, !dbg !662
%9 = load i32, i32* %i.reload.addr63, align 4, !dbg !663
call void @llvm.dbg.value(metadata i32 %9, metadata !659, metadata !DIExpression()), !dbg !661
%inc = add nsw i32 %9, 1, !dbg !663
call void @llvm.dbg.value(metadata i32 %inc, metadata !659, metadata !DIExpression()), !dbg !661
store i32 %inc, i32* %i.reload.addr63, align 4, !dbg !663
%10 = load i32, i32* %i.reload.addr63, align 4, !dbg !664
call void @llvm.dbg.value(metadata i32 %10, metadata !659, metadata !DIExpression()), !dbg !661
%call10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %10), !dbg !665
%call12 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr65) #2, !dbg !666
br i1 %call12, label %await.ready, label %CoroSave45, !dbg !667
CoroSave45: ; preds = %init.ready
%index.addr73 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !667
store i2 1, i2* %index.addr73, !dbg !667
br label %AfterCoroSave46, !dbg !666
AfterCoroSave46: ; preds = %CoroSave45
%ref.tmp14.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 10, !dbg !666
%agg.tmp13.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 9, !dbg !666
%ref.tmp11.reload.addr64 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !666
%call15 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %2) #2, !dbg !666
%coerce.dive16 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr, i32 0, i32 0, !dbg !666
%coerce.dive17 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive16, i32 0, i32 0, !dbg !666
store i8* %call15, i8** %coerce.dive17, align 8, !dbg !666
%11 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !666
%12 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr to i8*, !dbg !666
%13 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %11 to i8*, !dbg !666
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 8 %13, i64 8, i1 false), !dbg !666
%coerce.dive18 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr, i32 0, i32 0, !dbg !666
%14 = load i8*, i8** %coerce.dive18, align 8, !dbg !666
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr64, i8* %14) #2, !dbg !666
br label %CoroSuspend47, !dbg !667
CoroSuspend47: ; preds = %AfterCoroSave46
br label %resume.1.landing, !dbg !667
resume.1.landing: ; preds = %CoroSuspend47
br label %AfterCoroSuspend48, !dbg !667
AfterCoroSuspend48: ; preds = %resume.1.landing
switch i8 -1, label %coro.ret [
i8 0, label %await.ready
i8 1, label %await.cleanup
], !dbg !667
await.cleanup: ; preds = %AfterCoroSuspend48
br label %cleanup.from.await.cleanup, !dbg !667
cleanup.from.await.cleanup: ; preds = %await.cleanup
%.cleanup59 = phi i32 [ 2, %await.cleanup ]
br label %cleanup, !dbg !667
await.ready: ; preds = %AfterCoroSuspend48, %init.ready
%ref.tmp22.reload.addr68 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !666
%j.reload.addr66 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !666
%ref.tmp11.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !666
%i.reload.addr62 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !666
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr) #2, !dbg !666
call void @llvm.dbg.value(metadata i32 0, metadata !668, metadata !DIExpression()), !dbg !661
store i32 0, i32* %j.reload.addr66, align 4, !dbg !669
%15 = load i32, i32* %i.reload.addr62, align 4, !dbg !670
call void @llvm.dbg.value(metadata i32 %15, metadata !659, metadata !DIExpression()), !dbg !661
%inc19 = add nsw i32 %15, 1, !dbg !670
call void @llvm.dbg.value(metadata i32 %inc19, metadata !659, metadata !DIExpression()), !dbg !661
store i32 %inc19, i32* %i.reload.addr62, align 4, !dbg !670
%16 = load i32, i32* %j.reload.addr66, align 4, !dbg !671
call void @llvm.dbg.value(metadata i32 %16, metadata !668, metadata !DIExpression()), !dbg !661
%inc20 = add nsw i32 %16, 1, !dbg !671
call void @llvm.dbg.value(metadata i32 %inc20, metadata !668, metadata !DIExpression()), !dbg !661
store i32 %inc20, i32* %j.reload.addr66, align 4, !dbg !671
%17 = load i32, i32* %i.reload.addr62, align 4, !dbg !672
call void @llvm.dbg.value(metadata i32 %17, metadata !659, metadata !DIExpression()), !dbg !661
%18 = load i32, i32* %j.reload.addr66, align 4, !dbg !673
call void @llvm.dbg.value(metadata i32 %18, metadata !668, metadata !DIExpression()), !dbg !661
%call21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %17, i32 %18), !dbg !674
%call23 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr68) #2, !dbg !675
br i1 %call23, label %await2.ready, label %CoroSave49, !dbg !676
CoroSave49: ; preds = %await.ready
%index.addr74 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !676
store i2 -2, i2* %index.addr74, !dbg !676
br label %AfterCoroSave50, !dbg !675
AfterCoroSave50: ; preds = %CoroSave49
%ref.tmp25.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 14, !dbg !675
%agg.tmp24.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 13, !dbg !675
%ref.tmp22.reload.addr67 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !675
%call26 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %2) #2, !dbg !675
%coerce.dive27 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr, i32 0, i32 0, !dbg !675
%coerce.dive28 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive27, i32 0, i32 0, !dbg !675
store i8* %call26, i8** %coerce.dive28, align 8, !dbg !675
%19 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !675
%20 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr to i8*, !dbg !675
%21 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %19 to i8*, !dbg !675
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %20, i8* align 8 %21, i64 8, i1 false), !dbg !675
%coerce.dive29 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr, i32 0, i32 0, !dbg !675
%22 = load i8*, i8** %coerce.dive29, align 8, !dbg !675
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr67, i8* %22) #2, !dbg !675
br label %CoroSuspend51, !dbg !676
CoroSuspend51: ; preds = %AfterCoroSave50
br label %resume.2.landing, !dbg !676
resume.2.landing: ; preds = %CoroSuspend51
br label %AfterCoroSuspend52, !dbg !676
AfterCoroSuspend52: ; preds = %resume.2.landing
switch i8 -1, label %coro.ret [
i8 0, label %await2.ready
i8 1, label %await2.cleanup
], !dbg !676
await2.cleanup: ; preds = %AfterCoroSuspend52
br label %cleanup.from.await2.cleanup, !dbg !676
cleanup.from.await2.cleanup: ; preds = %await2.cleanup
%.cleanup58 = phi i32 [ 2, %await2.cleanup ]
br label %cleanup, !dbg !676
await2.ready: ; preds = %AfterCoroSuspend52, %await.ready
%ref.tmp22.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !675
%j.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !675
%i.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !675
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr) #2, !dbg !675
%23 = load i32, i32* %i.reload.addr, align 4, !dbg !677
call void @llvm.dbg.value(metadata i32 %23, metadata !659, metadata !DIExpression()), !dbg !661
%inc30 = add nsw i32 %23, 1, !dbg !677
call void @llvm.dbg.value(metadata i32 %inc30, metadata !659, metadata !DIExpression()), !dbg !661
store i32 %inc30, i32* %i.reload.addr, align 4, !dbg !677
%24 = load i32, i32* %j.reload.addr, align 4, !dbg !678
call void @llvm.dbg.value(metadata i32 %24, metadata !668, metadata !DIExpression()), !dbg !661
%inc31 = add nsw i32 %24, 1, !dbg !678
call void @llvm.dbg.value(metadata i32 %inc31, metadata !668, metadata !DIExpression()), !dbg !661
store i32 %inc31, i32* %j.reload.addr, align 4, !dbg !678
%25 = load i32, i32* %j.reload.addr, align 4, !dbg !679
call void @llvm.dbg.value(metadata i32 %25, metadata !668, metadata !DIExpression()), !dbg !661
%26 = load i32, i32* %i.reload.addr, align 4, !dbg !680
call void @llvm.dbg.value(metadata i32 %26, metadata !659, metadata !DIExpression()), !dbg !661
%call32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %25, i32 %26), !dbg !681
call void @_ZN4coro12promise_type11return_voidEv(%"struct.coro::promise_type"* %__promise), !dbg !651
br label %coro.final, !dbg !651
coro.final: ; preds = %await2.ready
%ref.tmp33.reload.addr70 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !651
call void @_ZN4coro12promise_type13final_suspendEv(%"struct.coro::promise_type"* %__promise), !dbg !651
%call35 = call zeroext i1 @_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr70) #2, !dbg !651
br i1 %call35, label %final.ready, label %CoroSave53, !dbg !651
CoroSave53: ; preds = %coro.final
%ResumeFn.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 0, !dbg !651
store void (%_Z3foov.Frame*)* null, void (%_Z3foov.Frame*)** %ResumeFn.addr, !dbg !651
br label %AfterCoroSave54, !dbg !651
AfterCoroSave54: ; preds = %CoroSave53
%ref.tmp37.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 17, !dbg !651
%agg.tmp36.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 16, !dbg !651
%ref.tmp33.reload.addr69 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !651
%call38 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %2) #2, !dbg !651
%coerce.dive39 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr, i32 0, i32 0, !dbg !651
%coerce.dive40 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive39, i32 0, i32 0, !dbg !651
store i8* %call38, i8** %coerce.dive40, align 8, !dbg !651
%27 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !651
%28 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr to i8*, !dbg !651
%29 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %27 to i8*, !dbg !651
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %28, i8* align 8 %29, i64 8, i1 false), !dbg !651
%coerce.dive41 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr, i32 0, i32 0, !dbg !651
%30 = load i8*, i8** %coerce.dive41, align 8, !dbg !651
call void @_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr69, i8* %30) #2, !dbg !651
br label %CoroSuspend55, !dbg !651
CoroSuspend55: ; preds = %AfterCoroSave54
br label %resume.3.landing, !dbg !651
resume.3.landing: ; preds = %CoroSuspend55
br label %AfterCoroSuspend56, !dbg !651
AfterCoroSuspend56: ; preds = %resume.3.landing
switch i8 -1, label %coro.ret [
i8 0, label %final.ready
i8 1, label %final.cleanup
], !dbg !651
final.cleanup: ; preds = %AfterCoroSuspend56
br label %cleanup.from.final.cleanup, !dbg !651
cleanup.from.final.cleanup: ; preds = %final.cleanup
%.cleanup57 = phi i32 [ 2, %final.cleanup ]
br label %cleanup, !dbg !651
final.ready: ; preds = %AfterCoroSuspend56, %coro.final
%ref.tmp33.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !651
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr) #2, !dbg !651
br label %cleanup.from.final.ready, !dbg !651
cleanup.from.final.ready: ; preds = %final.ready
%.cleanup = phi i32 [ 0, %final.ready ]
br label %cleanup, !dbg !651
cleanup: ; preds = %cleanup.from.final.ready, %cleanup.from.final.cleanup, %cleanup.from.await2.cleanup, %cleanup.from.await.cleanup, %cleanup.from.init.cleanup
%cleanup.dest.slot.0 = phi i32 [ %.cleanup, %cleanup.from.final.ready ], [ %.cleanup57, %cleanup.from.final.cleanup ], [ %.cleanup58, %cleanup.from.await2.cleanup ], [ %.cleanup59, %cleanup.from.await.cleanup ], [ %.cleanup60, %cleanup.from.init.cleanup ]
%31 = icmp ne i8* %2, null, !dbg !651
br i1 %31, label %coro.free, label %after.coro.free, !dbg !651
coro.free: ; preds = %cleanup
call void @_ZdlPv(i8* %2) #2, !dbg !651
br label %after.coro.free, !dbg !651
after.coro.free: ; preds = %cleanup, %coro.free
switch i32 %cleanup.dest.slot.0, label %unreachable [
i32 0, label %cleanup.cont
i32 2, label %coro.ret
]
cleanup.cont: ; preds = %after.coro.free
br label %coro.ret, !dbg !651
coro.ret: ; preds = %cleanup.cont, %after.coro.free, %AfterCoroSuspend56, %AfterCoroSuspend52, %AfterCoroSuspend48, %AfterCoroSuspend
br label %CoroEnd, !dbg !651
CoroEnd: ; preds = %coro.ret
br label %AfterCoroEnd, !dbg !651
AfterCoroEnd: ; preds = %CoroEnd
%coerce.dive42 = getelementptr inbounds %struct.coro, %struct.coro* %retval, i32 0, i32 0, !dbg !651
%coerce.dive43 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %coerce.dive42, i32 0, i32 0, !dbg !651
%coerce.dive44 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive43, i32 0, i32 0, !dbg !651
%32 = load i8*, i8** %coerce.dive44, align 8, !dbg !651
ret i8* %32, !dbg !651
unreachable: ; preds = %after.coro.free
unreachable
}
; Function Attrs: argmemonly nounwind readonly
declare token @llvm.coro.id(i32, i8* readnone, i8* nocapture readonly, i8*) #1
; Function Attrs: nounwind
declare i1 @llvm.coro.alloc(token) #2
; Function Attrs: nobuiltin
declare dso_local noalias i8* @_Znwm(i64) #3
; Function Attrs: nounwind readnone
declare i64 @llvm.coro.size.i64() #4
; Function Attrs: nounwind
declare i8* @llvm.coro.begin(token, i8* writeonly) #2
; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #5
; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #6
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dso_local i8* @_ZN4coro12promise_type17get_return_objectEv(%"struct.coro::promise_type"* %this) #0 comdat align 2 !dbg !682 {
entry:
%retval = alloca %struct.coro, align 8
%this.addr = alloca %"struct.coro::promise_type"*, align 8
%handle = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
%agg.tmp = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
store %"struct.coro::promise_type"* %this, %"struct.coro::promise_type"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.coro::promise_type"** %this.addr, metadata !683, metadata !DIExpression()), !dbg !685
%this1 = load %"struct.coro::promise_type"*, %"struct.coro::promise_type"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle, metadata !686, metadata !DIExpression()), !dbg !687
%call = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_promiseERS3_(%"struct.coro::promise_type"* dereferenceable(1) %this1) #2, !dbg !688
%coerce.dive = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle, i32 0, i32 0, !dbg !688
%coerce.dive2 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive, i32 0, i32 0, !dbg !688
store i8* %call, i8** %coerce.dive2, align 8, !dbg !688
%0 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %agg.tmp to i8*, !dbg !689
%1 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle to i8*, !dbg !689
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %0, i8* align 8 %1, i64 8, i1 false), !dbg !689
%coerce.dive3 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %agg.tmp, i32 0, i32 0, !dbg !690
%coerce.dive4 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive3, i32 0, i32 0, !dbg !690
%2 = load i8*, i8** %coerce.dive4, align 8, !dbg !690
call void @_ZN4coroC2ENSt12experimental13coroutines_v116coroutine_handleINS_12promise_typeEEE(%struct.coro* %retval, i8* %2), !dbg !690
%coerce.dive5 = getelementptr inbounds %struct.coro, %struct.coro* %retval, i32 0, i32 0, !dbg !691
%coerce.dive6 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %coerce.dive5, i32 0, i32 0, !dbg !691
%coerce.dive7 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive6, i32 0, i32 0, !dbg !691
%3 = load i8*, i8** %coerce.dive7, align 8, !dbg !691
ret i8* %3, !dbg !691
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dso_local void @_ZN4coro12promise_type15initial_suspendEv(%"struct.coro::promise_type"* %this) #0 comdat align 2 !dbg !692 {
entry:
%this.addr = alloca %"struct.coro::promise_type"*, align 8
store %"struct.coro::promise_type"* %this, %"struct.coro::promise_type"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.coro::promise_type"** %this.addr, metadata !693, metadata !DIExpression()), !dbg !694
%this1 = load %"struct.coro::promise_type"*, %"struct.coro::promise_type"** %this.addr, align 8
ret void, !dbg !695
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden zeroext i1 @_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %this) #0 comdat align 2 !dbg !696 {
entry:
%this.addr = alloca %"struct.std::experimental::coroutines_v1::suspend_never"*, align 8
store %"struct.std::experimental::coroutines_v1::suspend_never"* %this, %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, metadata !697, metadata !DIExpression()), !dbg !699
%this1 = load %"struct.std::experimental::coroutines_v1::suspend_never"*, %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, align 8
ret i1 true, !dbg !700
}
; Function Attrs: nounwind
declare token @llvm.coro.save(i8*) #2
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden void @_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_never"* %this, i8* %.coerce) #0 comdat align 2 !dbg !701 {
entry:
%0 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0", align 8
%this.addr = alloca %"struct.std::experimental::coroutines_v1::suspend_never"*, align 8
%coerce.dive = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %0, i32 0, i32 0
store i8* %.coerce, i8** %coerce.dive, align 8
store %"struct.std::experimental::coroutines_v1::suspend_never"* %this, %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, metadata !702, metadata !DIExpression()), !dbg !703
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %0, metadata !704, metadata !DIExpression()), !dbg !705
%this1 = load %"struct.std::experimental::coroutines_v1::suspend_never"*, %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, align 8
ret void, !dbg !706
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %__addr) #0 comdat align 2 !dbg !707 {
entry:
%retval = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
%__addr.addr = alloca i8*, align 8
store i8* %__addr, i8** %__addr.addr, align 8
call void @llvm.dbg.declare(metadata i8** %__addr.addr, metadata !708, metadata !DIExpression()), !dbg !709
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle"* %retval, metadata !710, metadata !DIExpression()), !dbg !711
call void @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEC2Ev(%"class.std::experimental::coroutines_v1::coroutine_handle"* %retval) #2, !dbg !711
%0 = load i8*, i8** %__addr.addr, align 8, !dbg !712
%1 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %retval to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !713
%__handle_ = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %1, i32 0, i32 0, !dbg !714
store i8* %0, i8** %__handle_, align 8, !dbg !715
%coerce.dive = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %retval, i32 0, i32 0, !dbg !716
%coerce.dive1 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive, i32 0, i32 0, !dbg !716
%2 = load i8*, i8** %coerce.dive1, align 8, !dbg !716
ret i8* %2, !dbg !716
}
; Function Attrs: nounwind
declare i8 @llvm.coro.suspend(token, i1) #2
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %this) #0 comdat align 2 !dbg !717 {
entry:
%this.addr = alloca %"struct.std::experimental::coroutines_v1::suspend_never"*, align 8
store %"struct.std::experimental::coroutines_v1::suspend_never"* %this, %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, metadata !718, metadata !DIExpression()), !dbg !719
%this1 = load %"struct.std::experimental::coroutines_v1::suspend_never"*, %"struct.std::experimental::coroutines_v1::suspend_never"** %this.addr, align 8
ret void, !dbg !720
}
declare dso_local i32 @printf(i8*, ...) #7
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %this) #0 comdat align 2 !dbg !721 {
entry:
%this.addr = alloca %"struct.std::experimental::coroutines_v1::suspend_always"*, align 8
store %"struct.std::experimental::coroutines_v1::suspend_always"* %this, %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, metadata !735, metadata !DIExpression()), !dbg !737
%this1 = load %"struct.std::experimental::coroutines_v1::suspend_always"*, %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, align 8
ret i1 false, !dbg !738
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %this, i8* %.coerce) #0 comdat align 2 !dbg !739 {
entry:
%0 = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0", align 8
%this.addr = alloca %"struct.std::experimental::coroutines_v1::suspend_always"*, align 8
%coerce.dive = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %0, i32 0, i32 0
store i8* %.coerce, i8** %coerce.dive, align 8
store %"struct.std::experimental::coroutines_v1::suspend_always"* %this, %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, metadata !740, metadata !DIExpression()), !dbg !741
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %0, metadata !742, metadata !DIExpression()), !dbg !743
%this1 = load %"struct.std::experimental::coroutines_v1::suspend_always"*, %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, align 8
ret void, !dbg !744
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %this) #0 comdat align 2 !dbg !745 {
entry:
%this.addr = alloca %"struct.std::experimental::coroutines_v1::suspend_always"*, align 8
store %"struct.std::experimental::coroutines_v1::suspend_always"* %this, %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, metadata !746, metadata !DIExpression()), !dbg !747
%this1 = load %"struct.std::experimental::coroutines_v1::suspend_always"*, %"struct.std::experimental::coroutines_v1::suspend_always"** %this.addr, align 8
ret void, !dbg !748
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dso_local void @_ZN4coro12promise_type11return_voidEv(%"struct.coro::promise_type"* %this) #0 comdat align 2 !dbg !749 {
entry:
%this.addr = alloca %"struct.coro::promise_type"*, align 8
store %"struct.coro::promise_type"* %this, %"struct.coro::promise_type"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.coro::promise_type"** %this.addr, metadata !750, metadata !DIExpression()), !dbg !751
%this1 = load %"struct.coro::promise_type"*, %"struct.coro::promise_type"** %this.addr, align 8
ret void, !dbg !752
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dso_local void @_ZN4coro12promise_type13final_suspendEv(%"struct.coro::promise_type"* %this) #0 comdat align 2 !dbg !753 {
entry:
%this.addr = alloca %"struct.coro::promise_type"*, align 8
store %"struct.coro::promise_type"* %this, %"struct.coro::promise_type"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.coro::promise_type"** %this.addr, metadata !754, metadata !DIExpression()), !dbg !755
%this1 = load %"struct.coro::promise_type"*, %"struct.coro::promise_type"** %this.addr, align 8
ret void, !dbg !756
}
; Function Attrs: nobuiltin nounwind
declare dso_local void @_ZdlPv(i8*) #8
; Function Attrs: argmemonly nounwind readonly
declare i8* @llvm.coro.free(token, i8* nocapture readonly) #1
; Function Attrs: nounwind
declare i1 @llvm.coro.end(i8*, i1) #2
; Function Attrs: noinline norecurse nounwind optnone uwtable
define dso_local i32 @main() #9 !dbg !757 {
entry:
%c = alloca %struct.coro, align 8
call void @llvm.dbg.declare(metadata %struct.coro* %c, metadata !758, metadata !DIExpression()), !dbg !759
%call = call i8* @_Z3foov(), !dbg !760
%coerce.dive = getelementptr inbounds %struct.coro, %struct.coro* %c, i32 0, i32 0, !dbg !760
%coerce.dive1 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %coerce.dive, i32 0, i32 0, !dbg !760
%coerce.dive2 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive1, i32 0, i32 0, !dbg !760
store i8* %call, i8** %coerce.dive2, align 8, !dbg !760
%handle = getelementptr inbounds %struct.coro, %struct.coro* %c, i32 0, i32 0, !dbg !761
%0 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !762
call void @_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv(%"class.std::experimental::coroutines_v1::coroutine_handle.0"* %0), !dbg !763
%handle3 = getelementptr inbounds %struct.coro, %struct.coro* %c, i32 0, i32 0, !dbg !764
%1 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle3 to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !765
call void @_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv(%"class.std::experimental::coroutines_v1::coroutine_handle.0"* %1), !dbg !766
ret i32 0, !dbg !767
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden void @_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv(%"class.std::experimental::coroutines_v1::coroutine_handle.0"* %this) #0 comdat align 2 !dbg !768 {
entry:
%this.addr = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, align 8
store %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %this, %"class.std::experimental::coroutines_v1::coroutine_handle.0"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle.0"** %this.addr, metadata !769, metadata !DIExpression()), !dbg !771
%this1 = load %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, %"class.std::experimental::coroutines_v1::coroutine_handle.0"** %this.addr, align 8
%__handle_ = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %this1, i32 0, i32 0, !dbg !772
%0 = load i8*, i8** %__handle_, align 8, !dbg !772
%1 = bitcast i8* %0 to { i8*, i8* }*
%2 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %1, i32 0, i32 0
%3 = load i8*, i8** %2
%4 = bitcast i8* %3 to void (i8*)*
call fastcc void %4(i8* %0), !dbg !773
ret void, !dbg !774
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_promiseERS3_(%"struct.coro::promise_type"* dereferenceable(1) %__promise) #0 comdat align 2 !dbg !775 {
entry:
%retval = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
%__promise.addr = alloca %"struct.coro::promise_type"*, align 8
store %"struct.coro::promise_type"* %__promise, %"struct.coro::promise_type"** %__promise.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.coro::promise_type"** %__promise.addr, metadata !776, metadata !DIExpression()), !dbg !777
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle"* %retval, metadata !778, metadata !DIExpression()), !dbg !779
call void @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEC2Ev(%"class.std::experimental::coroutines_v1::coroutine_handle"* %retval) #2, !dbg !779
%0 = load %"struct.coro::promise_type"*, %"struct.coro::promise_type"** %__promise.addr, align 8, !dbg !780
%call = call %"struct.coro::promise_type"* @_ZNSt3__19addressofIN4coro12promise_typeEEEPT_RS3_(%"struct.coro::promise_type"* dereferenceable(1) %0) #2, !dbg !781
%1 = bitcast %"struct.coro::promise_type"* %call to i8*, !dbg !781
%2 = getelementptr inbounds i8, i8* %1, i32 -16, !dbg !782
%3 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %retval to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !783
%__handle_ = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %3, i32 0, i32 0, !dbg !784
store i8* %2, i8** %__handle_, align 8, !dbg !785
%coerce.dive = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %retval, i32 0, i32 0, !dbg !786
%coerce.dive1 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive, i32 0, i32 0, !dbg !786
%4 = load i8*, i8** %coerce.dive1, align 8, !dbg !786
ret i8* %4, !dbg !786
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dso_local void @_ZN4coroC2ENSt12experimental13coroutines_v116coroutine_handleINS_12promise_typeEEE(%struct.coro* %this, i8* %handle.coerce) unnamed_addr #0 comdat align 2 !dbg !787 {
entry:
%handle = alloca %"class.std::experimental::coroutines_v1::coroutine_handle", align 8
%this.addr = alloca %struct.coro*, align 8
%coerce.dive = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle, i32 0, i32 0
%coerce.dive1 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive, i32 0, i32 0
store i8* %handle.coerce, i8** %coerce.dive1, align 8
store %struct.coro* %this, %struct.coro** %this.addr, align 8
call void @llvm.dbg.declare(metadata %struct.coro** %this.addr, metadata !788, metadata !DIExpression()), !dbg !790
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle, metadata !791, metadata !DIExpression()), !dbg !792
%this2 = load %struct.coro*, %struct.coro** %this.addr, align 8
%handle3 = getelementptr inbounds %struct.coro, %struct.coro* %this2, i32 0, i32 0, !dbg !793
%0 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle3 to i8*, !dbg !793
%1 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %handle to i8*, !dbg !793
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %0, i8* align 8 %1, i64 8, i1 false), !dbg !793
ret void, !dbg !794
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dso_local void @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEC2Ev(%"class.std::experimental::coroutines_v1::coroutine_handle"* %this) unnamed_addr #0 comdat align 2 !dbg !795 {
entry:
%this.addr = alloca %"class.std::experimental::coroutines_v1::coroutine_handle"*, align 8
store %"class.std::experimental::coroutines_v1::coroutine_handle"* %this, %"class.std::experimental::coroutines_v1::coroutine_handle"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle"** %this.addr, metadata !799, metadata !DIExpression()), !dbg !801
%this1 = load %"class.std::experimental::coroutines_v1::coroutine_handle"*, %"class.std::experimental::coroutines_v1::coroutine_handle"** %this.addr, align 8
%0 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %this1 to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !802
call void @_ZNSt12experimental13coroutines_v116coroutine_handleIvEC2Ev(%"class.std::experimental::coroutines_v1::coroutine_handle.0"* %0) #2, !dbg !802
ret void, !dbg !802
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden %"struct.coro::promise_type"* @_ZNSt3__19addressofIN4coro12promise_typeEEEPT_RS3_(%"struct.coro::promise_type"* dereferenceable(1) %__x) #0 comdat !dbg !803 {
entry:
%__x.addr = alloca %"struct.coro::promise_type"*, align 8
store %"struct.coro::promise_type"* %__x, %"struct.coro::promise_type"** %__x.addr, align 8
call void @llvm.dbg.declare(metadata %"struct.coro::promise_type"** %__x.addr, metadata !809, metadata !DIExpression()), !dbg !810
%0 = load %"struct.coro::promise_type"*, %"struct.coro::promise_type"** %__x.addr, align 8, !dbg !811
ret %"struct.coro::promise_type"* %0, !dbg !812
}
; Function Attrs: nounwind readnone
declare i8* @llvm.coro.promise(i8* nocapture, i32, i1) #4
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr hidden void @_ZNSt12experimental13coroutines_v116coroutine_handleIvEC2Ev(%"class.std::experimental::coroutines_v1::coroutine_handle.0"* %this) unnamed_addr #0 comdat align 2 !dbg !813 {
entry:
%this.addr = alloca %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, align 8
store %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %this, %"class.std::experimental::coroutines_v1::coroutine_handle.0"** %this.addr, align 8
call void @llvm.dbg.declare(metadata %"class.std::experimental::coroutines_v1::coroutine_handle.0"** %this.addr, metadata !814, metadata !DIExpression()), !dbg !815
%this1 = load %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, %"class.std::experimental::coroutines_v1::coroutine_handle.0"** %this.addr, align 8
%__handle_ = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %this1, i32 0, i32 0, !dbg !816
store i8* null, i8** %__handle_, align 8, !dbg !816
ret void, !dbg !817
}
declare void @llvm.coro.resume(i8*)
; Function Attrs: argmemonly nounwind readonly
declare i8* @llvm.coro.subfn.addr(i8* nocapture readonly, i8) #1
; Function Attrs: alwaysinline
define private void @coro.devirt.trigger(i8* %0) #10 {
entry:
ret void
}
; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #5
; Function Attrs: noinline nounwind optnone uwtable
define internal fastcc void @_Z3foov.resume(%_Z3foov.Frame* noalias nonnull %FramePtr) #0 !dbg !818 {
entry.resume:
%vFrame = bitcast %_Z3foov.Frame* %FramePtr to i8*, !dbg !819
%__promise = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 2, !dbg !819
%ref.tmp = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !819
br label %resume.entry, !dbg !819
resume.0: ; preds = %resume.entry
br label %resume.0.landing, !dbg !820
resume.0.landing: ; preds = %resume.0
br label %AfterCoroSuspend, !dbg !820
AfterCoroSuspend: ; preds = %resume.0.landing
switch i8 0, label %coro.ret [
i8 0, label %init.ready
i8 1, label %init.cleanup
], !dbg !820
init.cleanup: ; preds = %AfterCoroSuspend
br label %cleanup.from.init.cleanup, !dbg !820
cleanup.from.init.cleanup: ; preds = %init.cleanup
%.cleanup60 = phi i32 [ 2, %init.cleanup ]
br label %cleanup, !dbg !820
init.ready: ; preds = %AfterCoroSuspend
%ref.tmp11.reload.addr65 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !820
%i.reload.addr63 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !820
%ref.tmp.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !820
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp.reload.addr) #2, !dbg !820
call void @llvm.dbg.value(metadata i32 0, metadata !821, metadata !DIExpression()), !dbg !823
store i32 0, i32* %i.reload.addr63, align 4, !dbg !824
%0 = load i32, i32* %i.reload.addr63, align 4, !dbg !825
call void @llvm.dbg.value(metadata i32 %0, metadata !821, metadata !DIExpression()), !dbg !823
%inc = add nsw i32 %0, 1, !dbg !825
call void @llvm.dbg.value(metadata i32 %inc, metadata !821, metadata !DIExpression()), !dbg !823
store i32 %inc, i32* %i.reload.addr63, align 4, !dbg !825
%1 = load i32, i32* %i.reload.addr63, align 4, !dbg !826
call void @llvm.dbg.value(metadata i32 %1, metadata !821, metadata !DIExpression()), !dbg !823
%call10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %1), !dbg !827
%call12 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr65) #2, !dbg !828
br i1 %call12, label %await.ready, label %CoroSave45, !dbg !829
CoroSave45: ; preds = %init.ready
%index.addr73 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !829
store i2 1, i2* %index.addr73, !dbg !829
br label %AfterCoroSave46, !dbg !828
AfterCoroSave46: ; preds = %CoroSave45
%ref.tmp14.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 10, !dbg !828
%agg.tmp13.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 9, !dbg !828
%ref.tmp11.reload.addr64 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !828
%call15 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !828
%coerce.dive16 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr, i32 0, i32 0, !dbg !828
%coerce.dive17 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive16, i32 0, i32 0, !dbg !828
store i8* %call15, i8** %coerce.dive17, align 8, !dbg !828
%2 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !828
%3 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr to i8*, !dbg !828
%4 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %2 to i8*, !dbg !828
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 8, i1 false), !dbg !828
%coerce.dive18 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr, i32 0, i32 0, !dbg !828
%5 = load i8*, i8** %coerce.dive18, align 8, !dbg !828
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr64, i8* %5) #2, !dbg !828
br label %CoroSuspend47, !dbg !829
CoroSuspend47: ; preds = %AfterCoroSave46
br label %resume.1.landing, !dbg !829
resume.1: ; preds = %resume.entry
br label %resume.1.landing, !dbg !829
resume.1.landing: ; preds = %resume.1, %CoroSuspend47
%6 = phi i8 [ -1, %CoroSuspend47 ], [ 0, %resume.1 ]
br label %AfterCoroSuspend48, !dbg !829
AfterCoroSuspend48: ; preds = %resume.1.landing
switch i8 %6, label %coro.ret [
i8 0, label %await.ready
i8 1, label %await.cleanup
], !dbg !829
await.cleanup: ; preds = %AfterCoroSuspend48
br label %cleanup.from.await.cleanup, !dbg !829
cleanup.from.await.cleanup: ; preds = %await.cleanup
%.cleanup59 = phi i32 [ 2, %await.cleanup ]
br label %cleanup, !dbg !829
await.ready: ; preds = %AfterCoroSuspend48, %init.ready
%ref.tmp22.reload.addr68 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !828
%j.reload.addr66 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !828
%ref.tmp11.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !828
%i.reload.addr62 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !828
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr) #2, !dbg !828
call void @llvm.dbg.value(metadata i32 0, metadata !830, metadata !DIExpression()), !dbg !823
store i32 0, i32* %j.reload.addr66, align 4, !dbg !831
%7 = load i32, i32* %i.reload.addr62, align 4, !dbg !832
call void @llvm.dbg.value(metadata i32 %7, metadata !821, metadata !DIExpression()), !dbg !823
%inc19 = add nsw i32 %7, 1, !dbg !832
call void @llvm.dbg.value(metadata i32 %inc19, metadata !821, metadata !DIExpression()), !dbg !823
store i32 %inc19, i32* %i.reload.addr62, align 4, !dbg !832
%8 = load i32, i32* %j.reload.addr66, align 4, !dbg !833
call void @llvm.dbg.value(metadata i32 %8, metadata !830, metadata !DIExpression()), !dbg !823
%inc20 = add nsw i32 %8, 1, !dbg !833
call void @llvm.dbg.value(metadata i32 %inc20, metadata !830, metadata !DIExpression()), !dbg !823
store i32 %inc20, i32* %j.reload.addr66, align 4, !dbg !833
%9 = load i32, i32* %i.reload.addr62, align 4, !dbg !834
call void @llvm.dbg.value(metadata i32 %9, metadata !821, metadata !DIExpression()), !dbg !823
%10 = load i32, i32* %j.reload.addr66, align 4, !dbg !835
call void @llvm.dbg.value(metadata i32 %10, metadata !830, metadata !DIExpression()), !dbg !823
%call21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %9, i32 %10), !dbg !836
%call23 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr68) #2, !dbg !837
br i1 %call23, label %await2.ready, label %CoroSave49, !dbg !838
CoroSave49: ; preds = %await.ready
%index.addr74 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !838
store i2 -2, i2* %index.addr74, !dbg !838
br label %AfterCoroSave50, !dbg !837
AfterCoroSave50: ; preds = %CoroSave49
%ref.tmp25.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 14, !dbg !837
%agg.tmp24.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 13, !dbg !837
%ref.tmp22.reload.addr67 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !837
%call26 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !837
%coerce.dive27 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr, i32 0, i32 0, !dbg !837
%coerce.dive28 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive27, i32 0, i32 0, !dbg !837
store i8* %call26, i8** %coerce.dive28, align 8, !dbg !837
%11 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !837
%12 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr to i8*, !dbg !837
%13 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %11 to i8*, !dbg !837
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 8 %13, i64 8, i1 false), !dbg !837
%coerce.dive29 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr, i32 0, i32 0, !dbg !837
%14 = load i8*, i8** %coerce.dive29, align 8, !dbg !837
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr67, i8* %14) #2, !dbg !837
br label %CoroSuspend51, !dbg !838
CoroSuspend51: ; preds = %AfterCoroSave50
br label %resume.2.landing, !dbg !838
resume.2: ; preds = %resume.entry
br label %resume.2.landing, !dbg !838
resume.2.landing: ; preds = %resume.2, %CoroSuspend51
%15 = phi i8 [ -1, %CoroSuspend51 ], [ 0, %resume.2 ]
br label %AfterCoroSuspend52, !dbg !838
AfterCoroSuspend52: ; preds = %resume.2.landing
switch i8 %15, label %coro.ret [
i8 0, label %await2.ready
i8 1, label %await2.cleanup
], !dbg !838
await2.cleanup: ; preds = %AfterCoroSuspend52
br label %cleanup.from.await2.cleanup, !dbg !838
cleanup.from.await2.cleanup: ; preds = %await2.cleanup
%.cleanup58 = phi i32 [ 2, %await2.cleanup ]
br label %cleanup, !dbg !838
await2.ready: ; preds = %AfterCoroSuspend52, %await.ready
%ref.tmp22.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !837
%j.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !837
%i.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !837
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr) #2, !dbg !837
%16 = load i32, i32* %i.reload.addr, align 4, !dbg !839
call void @llvm.dbg.value(metadata i32 %16, metadata !821, metadata !DIExpression()), !dbg !823
%inc30 = add nsw i32 %16, 1, !dbg !839
call void @llvm.dbg.value(metadata i32 %inc30, metadata !821, metadata !DIExpression()), !dbg !823
store i32 %inc30, i32* %i.reload.addr, align 4, !dbg !839
%17 = load i32, i32* %j.reload.addr, align 4, !dbg !840
call void @llvm.dbg.value(metadata i32 %17, metadata !830, metadata !DIExpression()), !dbg !823
%inc31 = add nsw i32 %17, 1, !dbg !840
call void @llvm.dbg.value(metadata i32 %inc31, metadata !830, metadata !DIExpression()), !dbg !823
store i32 %inc31, i32* %j.reload.addr, align 4, !dbg !840
%18 = load i32, i32* %j.reload.addr, align 4, !dbg !841
call void @llvm.dbg.value(metadata i32 %18, metadata !830, metadata !DIExpression()), !dbg !823
%19 = load i32, i32* %i.reload.addr, align 4, !dbg !842
call void @llvm.dbg.value(metadata i32 %19, metadata !821, metadata !DIExpression()), !dbg !823
%call32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %18, i32 %19), !dbg !843
call void @_ZN4coro12promise_type11return_voidEv(%"struct.coro::promise_type"* %__promise), !dbg !820
br label %coro.final, !dbg !820
coro.final: ; preds = %await2.ready
%ref.tmp33.reload.addr70 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !820
call void @_ZN4coro12promise_type13final_suspendEv(%"struct.coro::promise_type"* %__promise), !dbg !820
%call35 = call zeroext i1 @_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr70) #2, !dbg !820
br i1 %call35, label %final.ready, label %CoroSave53, !dbg !820
CoroSave53: ; preds = %coro.final
%ResumeFn.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 0, !dbg !820
store void (%_Z3foov.Frame*)* null, void (%_Z3foov.Frame*)** %ResumeFn.addr, !dbg !820
br label %AfterCoroSave54, !dbg !820
AfterCoroSave54: ; preds = %CoroSave53
%ref.tmp37.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 17, !dbg !820
%agg.tmp36.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 16, !dbg !820
%ref.tmp33.reload.addr69 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !820
%call38 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !820
%coerce.dive39 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr, i32 0, i32 0, !dbg !820
%coerce.dive40 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive39, i32 0, i32 0, !dbg !820
store i8* %call38, i8** %coerce.dive40, align 8, !dbg !820
%20 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !820
%21 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr to i8*, !dbg !820
%22 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %20 to i8*, !dbg !820
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %21, i8* align 8 %22, i64 8, i1 false), !dbg !820
%coerce.dive41 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr, i32 0, i32 0, !dbg !820
%23 = load i8*, i8** %coerce.dive41, align 8, !dbg !820
call void @_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr69, i8* %23) #2, !dbg !820
br label %CoroSuspend55, !dbg !820
CoroSuspend55: ; preds = %AfterCoroSave54
br label %resume.3.landing, !dbg !820
resume.3.landing: ; preds = %CoroSuspend55
br label %AfterCoroSuspend56, !dbg !820
AfterCoroSuspend56: ; preds = %resume.3.landing
switch i8 -1, label %coro.ret [
i8 0, label %final.ready
i8 1, label %final.cleanup
], !dbg !820
final.cleanup: ; preds = %AfterCoroSuspend56
br label %cleanup.from.final.cleanup, !dbg !820
cleanup.from.final.cleanup: ; preds = %final.cleanup
%.cleanup57 = phi i32 [ 2, %final.cleanup ]
br label %cleanup, !dbg !820
final.ready: ; preds = %AfterCoroSuspend56, %coro.final
%ref.tmp33.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !820
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr) #2, !dbg !820
br label %cleanup.from.final.ready, !dbg !820
cleanup.from.final.ready: ; preds = %final.ready
%.cleanup = phi i32 [ 0, %final.ready ]
br label %cleanup, !dbg !820
cleanup: ; preds = %cleanup.from.final.ready, %cleanup.from.final.cleanup, %cleanup.from.await2.cleanup, %cleanup.from.await.cleanup, %cleanup.from.init.cleanup
%cleanup.dest.slot.0 = phi i32 [ %.cleanup, %cleanup.from.final.ready ], [ %.cleanup57, %cleanup.from.final.cleanup ], [ %.cleanup58, %cleanup.from.await2.cleanup ], [ %.cleanup59, %cleanup.from.await.cleanup ], [ %.cleanup60, %cleanup.from.init.cleanup ]
%24 = icmp ne i8* %vFrame, null, !dbg !820
br i1 %24, label %coro.free, label %after.coro.free, !dbg !820
coro.free: ; preds = %cleanup
call void @_ZdlPv(i8* %vFrame) #2, !dbg !820
br label %after.coro.free, !dbg !820
after.coro.free: ; preds = %coro.free, %cleanup
switch i32 %cleanup.dest.slot.0, label %unreachable [
i32 0, label %cleanup.cont
i32 2, label %coro.ret
]
cleanup.cont: ; preds = %after.coro.free
br label %coro.ret, !dbg !820
coro.ret: ; preds = %cleanup.cont, %after.coro.free, %AfterCoroSuspend56, %AfterCoroSuspend52, %AfterCoroSuspend48, %AfterCoroSuspend
br label %CoroEnd, !dbg !820
CoroEnd: ; preds = %coro.ret
ret void, !dbg !820
unreachable: ; preds = %after.coro.free
unreachable
resume.entry: ; preds = %entry.resume
%index.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3
%index = load i2, i2* %index.addr
switch i2 %index, label %unreachable71 [
i2 0, label %resume.0
i2 1, label %resume.1
i2 -2, label %resume.2
]
unreachable71: ; preds = %resume.entry
unreachable, !dbg !820
}
; Function Attrs: noinline nounwind optnone uwtable
define internal fastcc void @_Z3foov.destroy(%_Z3foov.Frame* noalias nonnull %FramePtr) #0 !dbg !844 {
entry.destroy:
%vFrame = bitcast %_Z3foov.Frame* %FramePtr to i8*, !dbg !845
%__promise = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 2, !dbg !845
%ref.tmp = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !845
br label %resume.entry, !dbg !845
resume.0: ; preds = %Switch
br label %resume.0.landing, !dbg !846
resume.0.landing: ; preds = %resume.0
br label %AfterCoroSuspend, !dbg !846
AfterCoroSuspend: ; preds = %resume.0.landing
switch i8 1, label %coro.ret [
i8 0, label %init.ready
i8 1, label %init.cleanup
], !dbg !846
init.cleanup: ; preds = %AfterCoroSuspend
br label %cleanup.from.init.cleanup, !dbg !846
cleanup.from.init.cleanup: ; preds = %init.cleanup
%.cleanup60 = phi i32 [ 2, %init.cleanup ]
br label %cleanup, !dbg !846
init.ready: ; preds = %AfterCoroSuspend
%ref.tmp11.reload.addr65 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !846
%i.reload.addr63 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !846
%ref.tmp.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !846
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp.reload.addr) #2, !dbg !846
call void @llvm.dbg.value(metadata i32 0, metadata !847, metadata !DIExpression()), !dbg !849
store i32 0, i32* %i.reload.addr63, align 4, !dbg !850
%0 = load i32, i32* %i.reload.addr63, align 4, !dbg !851
call void @llvm.dbg.value(metadata i32 %0, metadata !847, metadata !DIExpression()), !dbg !849
%inc = add nsw i32 %0, 1, !dbg !851
call void @llvm.dbg.value(metadata i32 %inc, metadata !847, metadata !DIExpression()), !dbg !849
store i32 %inc, i32* %i.reload.addr63, align 4, !dbg !851
%1 = load i32, i32* %i.reload.addr63, align 4, !dbg !852
call void @llvm.dbg.value(metadata i32 %1, metadata !847, metadata !DIExpression()), !dbg !849
%call10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %1), !dbg !853
%call12 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr65) #2, !dbg !854
br i1 %call12, label %await.ready, label %CoroSave45, !dbg !855
CoroSave45: ; preds = %init.ready
%index.addr73 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !855
store i2 1, i2* %index.addr73, !dbg !855
br label %AfterCoroSave46, !dbg !854
AfterCoroSave46: ; preds = %CoroSave45
%ref.tmp14.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 10, !dbg !854
%agg.tmp13.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 9, !dbg !854
%ref.tmp11.reload.addr64 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !854
%call15 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !854
%coerce.dive16 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr, i32 0, i32 0, !dbg !854
%coerce.dive17 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive16, i32 0, i32 0, !dbg !854
store i8* %call15, i8** %coerce.dive17, align 8, !dbg !854
%2 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !854
%3 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr to i8*, !dbg !854
%4 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %2 to i8*, !dbg !854
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 8, i1 false), !dbg !854
%coerce.dive18 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr, i32 0, i32 0, !dbg !854
%5 = load i8*, i8** %coerce.dive18, align 8, !dbg !854
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr64, i8* %5) #2, !dbg !854
br label %CoroSuspend47, !dbg !855
CoroSuspend47: ; preds = %AfterCoroSave46
br label %resume.1.landing, !dbg !855
resume.1: ; preds = %Switch
br label %resume.1.landing, !dbg !855
resume.1.landing: ; preds = %resume.1, %CoroSuspend47
%6 = phi i8 [ -1, %CoroSuspend47 ], [ 1, %resume.1 ]
br label %AfterCoroSuspend48, !dbg !855
AfterCoroSuspend48: ; preds = %resume.1.landing
switch i8 %6, label %coro.ret [
i8 0, label %await.ready
i8 1, label %await.cleanup
], !dbg !855
await.cleanup: ; preds = %AfterCoroSuspend48
br label %cleanup.from.await.cleanup, !dbg !855
cleanup.from.await.cleanup: ; preds = %await.cleanup
%.cleanup59 = phi i32 [ 2, %await.cleanup ]
br label %cleanup, !dbg !855
await.ready: ; preds = %AfterCoroSuspend48, %init.ready
%ref.tmp22.reload.addr68 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !854
%j.reload.addr66 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !854
%ref.tmp11.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !854
%i.reload.addr62 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !854
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr) #2, !dbg !854
call void @llvm.dbg.value(metadata i32 0, metadata !856, metadata !DIExpression()), !dbg !849
store i32 0, i32* %j.reload.addr66, align 4, !dbg !857
%7 = load i32, i32* %i.reload.addr62, align 4, !dbg !858
call void @llvm.dbg.value(metadata i32 %7, metadata !847, metadata !DIExpression()), !dbg !849
%inc19 = add nsw i32 %7, 1, !dbg !858
call void @llvm.dbg.value(metadata i32 %inc19, metadata !847, metadata !DIExpression()), !dbg !849
store i32 %inc19, i32* %i.reload.addr62, align 4, !dbg !858
%8 = load i32, i32* %j.reload.addr66, align 4, !dbg !859
call void @llvm.dbg.value(metadata i32 %8, metadata !856, metadata !DIExpression()), !dbg !849
%inc20 = add nsw i32 %8, 1, !dbg !859
call void @llvm.dbg.value(metadata i32 %inc20, metadata !856, metadata !DIExpression()), !dbg !849
store i32 %inc20, i32* %j.reload.addr66, align 4, !dbg !859
%9 = load i32, i32* %i.reload.addr62, align 4, !dbg !860
call void @llvm.dbg.value(metadata i32 %9, metadata !847, metadata !DIExpression()), !dbg !849
%10 = load i32, i32* %j.reload.addr66, align 4, !dbg !861
call void @llvm.dbg.value(metadata i32 %10, metadata !856, metadata !DIExpression()), !dbg !849
%call21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %9, i32 %10), !dbg !862
%call23 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr68) #2, !dbg !863
br i1 %call23, label %await2.ready, label %CoroSave49, !dbg !864
CoroSave49: ; preds = %await.ready
%index.addr74 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !864
store i2 -2, i2* %index.addr74, !dbg !864
br label %AfterCoroSave50, !dbg !863
AfterCoroSave50: ; preds = %CoroSave49
%ref.tmp25.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 14, !dbg !863
%agg.tmp24.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 13, !dbg !863
%ref.tmp22.reload.addr67 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !863
%call26 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !863
%coerce.dive27 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr, i32 0, i32 0, !dbg !863
%coerce.dive28 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive27, i32 0, i32 0, !dbg !863
store i8* %call26, i8** %coerce.dive28, align 8, !dbg !863
%11 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !863
%12 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr to i8*, !dbg !863
%13 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %11 to i8*, !dbg !863
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 8 %13, i64 8, i1 false), !dbg !863
%coerce.dive29 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr, i32 0, i32 0, !dbg !863
%14 = load i8*, i8** %coerce.dive29, align 8, !dbg !863
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr67, i8* %14) #2, !dbg !863
br label %CoroSuspend51, !dbg !864
CoroSuspend51: ; preds = %AfterCoroSave50
br label %resume.2.landing, !dbg !864
resume.2: ; preds = %Switch
br label %resume.2.landing, !dbg !864
resume.2.landing: ; preds = %resume.2, %CoroSuspend51
%15 = phi i8 [ -1, %CoroSuspend51 ], [ 1, %resume.2 ]
br label %AfterCoroSuspend52, !dbg !864
AfterCoroSuspend52: ; preds = %resume.2.landing
switch i8 %15, label %coro.ret [
i8 0, label %await2.ready
i8 1, label %await2.cleanup
], !dbg !864
await2.cleanup: ; preds = %AfterCoroSuspend52
br label %cleanup.from.await2.cleanup, !dbg !864
cleanup.from.await2.cleanup: ; preds = %await2.cleanup
%.cleanup58 = phi i32 [ 2, %await2.cleanup ]
br label %cleanup, !dbg !864
await2.ready: ; preds = %AfterCoroSuspend52, %await.ready
%ref.tmp22.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !863
%j.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !863
%i.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !863
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr) #2, !dbg !863
%16 = load i32, i32* %i.reload.addr, align 4, !dbg !865
call void @llvm.dbg.value(metadata i32 %16, metadata !847, metadata !DIExpression()), !dbg !849
%inc30 = add nsw i32 %16, 1, !dbg !865
call void @llvm.dbg.value(metadata i32 %inc30, metadata !847, metadata !DIExpression()), !dbg !849
store i32 %inc30, i32* %i.reload.addr, align 4, !dbg !865
%17 = load i32, i32* %j.reload.addr, align 4, !dbg !866
call void @llvm.dbg.value(metadata i32 %17, metadata !856, metadata !DIExpression()), !dbg !849
%inc31 = add nsw i32 %17, 1, !dbg !866
call void @llvm.dbg.value(metadata i32 %inc31, metadata !856, metadata !DIExpression()), !dbg !849
store i32 %inc31, i32* %j.reload.addr, align 4, !dbg !866
%18 = load i32, i32* %j.reload.addr, align 4, !dbg !867
call void @llvm.dbg.value(metadata i32 %18, metadata !856, metadata !DIExpression()), !dbg !849
%19 = load i32, i32* %i.reload.addr, align 4, !dbg !868
call void @llvm.dbg.value(metadata i32 %19, metadata !847, metadata !DIExpression()), !dbg !849
%call32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %18, i32 %19), !dbg !869
call void @_ZN4coro12promise_type11return_voidEv(%"struct.coro::promise_type"* %__promise), !dbg !846
br label %coro.final, !dbg !846
coro.final: ; preds = %await2.ready
%ref.tmp33.reload.addr70 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !846
call void @_ZN4coro12promise_type13final_suspendEv(%"struct.coro::promise_type"* %__promise), !dbg !846
%call35 = call zeroext i1 @_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr70) #2, !dbg !846
br i1 %call35, label %final.ready, label %CoroSave53, !dbg !846
CoroSave53: ; preds = %coro.final
%ResumeFn.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 0, !dbg !846
store void (%_Z3foov.Frame*)* null, void (%_Z3foov.Frame*)** %ResumeFn.addr, !dbg !846
br label %AfterCoroSave54, !dbg !846
AfterCoroSave54: ; preds = %CoroSave53
%ref.tmp37.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 17, !dbg !846
%agg.tmp36.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 16, !dbg !846
%ref.tmp33.reload.addr69 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !846
%call38 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !846
%coerce.dive39 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr, i32 0, i32 0, !dbg !846
%coerce.dive40 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive39, i32 0, i32 0, !dbg !846
store i8* %call38, i8** %coerce.dive40, align 8, !dbg !846
%20 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !846
%21 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr to i8*, !dbg !846
%22 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %20 to i8*, !dbg !846
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %21, i8* align 8 %22, i64 8, i1 false), !dbg !846
%coerce.dive41 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr, i32 0, i32 0, !dbg !846
%23 = load i8*, i8** %coerce.dive41, align 8, !dbg !846
call void @_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr69, i8* %23) #2, !dbg !846
br label %CoroSuspend55, !dbg !846
CoroSuspend55: ; preds = %AfterCoroSave54
br label %resume.3.landing, !dbg !846
resume.3: ; preds = %resume.entry
br label %resume.3.landing, !dbg !846
resume.3.landing: ; preds = %resume.3, %CoroSuspend55
%24 = phi i8 [ -1, %CoroSuspend55 ], [ 1, %resume.3 ]
br label %AfterCoroSuspend56, !dbg !846
AfterCoroSuspend56: ; preds = %resume.3.landing
switch i8 %24, label %coro.ret [
i8 0, label %final.ready
i8 1, label %final.cleanup
], !dbg !846
final.cleanup: ; preds = %AfterCoroSuspend56
br label %cleanup.from.final.cleanup, !dbg !846
cleanup.from.final.cleanup: ; preds = %final.cleanup
%.cleanup57 = phi i32 [ 2, %final.cleanup ]
br label %cleanup, !dbg !846
final.ready: ; preds = %AfterCoroSuspend56, %coro.final
%ref.tmp33.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !846
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr) #2, !dbg !846
br label %cleanup.from.final.ready, !dbg !846
cleanup.from.final.ready: ; preds = %final.ready
%.cleanup = phi i32 [ 0, %final.ready ]
br label %cleanup, !dbg !846
cleanup: ; preds = %cleanup.from.final.ready, %cleanup.from.final.cleanup, %cleanup.from.await2.cleanup, %cleanup.from.await.cleanup, %cleanup.from.init.cleanup
%cleanup.dest.slot.0 = phi i32 [ %.cleanup, %cleanup.from.final.ready ], [ %.cleanup57, %cleanup.from.final.cleanup ], [ %.cleanup58, %cleanup.from.await2.cleanup ], [ %.cleanup59, %cleanup.from.await.cleanup ], [ %.cleanup60, %cleanup.from.init.cleanup ]
%25 = icmp ne i8* %vFrame, null, !dbg !846
br i1 %25, label %coro.free, label %after.coro.free, !dbg !846
coro.free: ; preds = %cleanup
call void @_ZdlPv(i8* %vFrame) #2, !dbg !846
br label %after.coro.free, !dbg !846
after.coro.free: ; preds = %coro.free, %cleanup
switch i32 %cleanup.dest.slot.0, label %unreachable [
i32 0, label %cleanup.cont
i32 2, label %coro.ret
]
cleanup.cont: ; preds = %after.coro.free
br label %coro.ret, !dbg !846
coro.ret: ; preds = %cleanup.cont, %after.coro.free, %AfterCoroSuspend56, %AfterCoroSuspend52, %AfterCoroSuspend48, %AfterCoroSuspend
br label %CoroEnd, !dbg !846
CoroEnd: ; preds = %coro.ret
ret void, !dbg !846
unreachable: ; preds = %after.coro.free
unreachable
resume.entry: ; preds = %entry.destroy
%index.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3
%index = load i2, i2* %index.addr
%ResumeFn.addr1 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 0
%26 = load void (%_Z3foov.Frame*)*, void (%_Z3foov.Frame*)** %ResumeFn.addr1
%27 = icmp eq void (%_Z3foov.Frame*)* %26, null
br i1 %27, label %resume.3, label %Switch
Switch: ; preds = %resume.entry
switch i2 %index, label %unreachable71 [
i2 0, label %resume.0
i2 1, label %resume.1
i2 -2, label %resume.2
]
unreachable71: ; preds = %Switch
unreachable, !dbg !846
}
; Function Attrs: noinline nounwind optnone uwtable
define internal fastcc void @_Z3foov.cleanup(%_Z3foov.Frame* noalias nonnull %FramePtr) #0 !dbg !870 {
entry.cleanup:
%vFrame = bitcast %_Z3foov.Frame* %FramePtr to i8*, !dbg !871
%__promise = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 2, !dbg !871
%ref.tmp = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !871
br label %resume.entry, !dbg !871
resume.0: ; preds = %Switch
br label %resume.0.landing, !dbg !872
resume.0.landing: ; preds = %resume.0
br label %AfterCoroSuspend, !dbg !872
AfterCoroSuspend: ; preds = %resume.0.landing
switch i8 1, label %coro.ret [
i8 0, label %init.ready
i8 1, label %init.cleanup
], !dbg !872
init.cleanup: ; preds = %AfterCoroSuspend
br label %cleanup.from.init.cleanup, !dbg !872
cleanup.from.init.cleanup: ; preds = %init.cleanup
%.cleanup60 = phi i32 [ 2, %init.cleanup ]
br label %cleanup, !dbg !872
init.ready: ; preds = %AfterCoroSuspend
%ref.tmp11.reload.addr65 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !872
%i.reload.addr63 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !872
%ref.tmp.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 4, !dbg !872
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp.reload.addr) #2, !dbg !872
call void @llvm.dbg.value(metadata i32 0, metadata !873, metadata !DIExpression()), !dbg !875
store i32 0, i32* %i.reload.addr63, align 4, !dbg !876
%0 = load i32, i32* %i.reload.addr63, align 4, !dbg !877
call void @llvm.dbg.value(metadata i32 %0, metadata !873, metadata !DIExpression()), !dbg !875
%inc = add nsw i32 %0, 1, !dbg !877
call void @llvm.dbg.value(metadata i32 %inc, metadata !873, metadata !DIExpression()), !dbg !875
store i32 %inc, i32* %i.reload.addr63, align 4, !dbg !877
%1 = load i32, i32* %i.reload.addr63, align 4, !dbg !878
call void @llvm.dbg.value(metadata i32 %1, metadata !873, metadata !DIExpression()), !dbg !875
%call10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %1), !dbg !879
%call12 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr65) #2, !dbg !880
br i1 %call12, label %await.ready, label %CoroSave45, !dbg !881
CoroSave45: ; preds = %init.ready
%index.addr73 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !881
store i2 1, i2* %index.addr73, !dbg !881
br label %AfterCoroSave46, !dbg !880
AfterCoroSave46: ; preds = %CoroSave45
%ref.tmp14.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 10, !dbg !880
%agg.tmp13.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 9, !dbg !880
%ref.tmp11.reload.addr64 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !880
%call15 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !880
%coerce.dive16 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr, i32 0, i32 0, !dbg !880
%coerce.dive17 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive16, i32 0, i32 0, !dbg !880
store i8* %call15, i8** %coerce.dive17, align 8, !dbg !880
%2 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp14.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !880
%3 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr to i8*, !dbg !880
%4 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %2 to i8*, !dbg !880
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 8, i1 false), !dbg !880
%coerce.dive18 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp13.reload.addr, i32 0, i32 0, !dbg !880
%5 = load i8*, i8** %coerce.dive18, align 8, !dbg !880
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr64, i8* %5) #2, !dbg !880
br label %CoroSuspend47, !dbg !881
CoroSuspend47: ; preds = %AfterCoroSave46
br label %resume.1.landing, !dbg !881
resume.1: ; preds = %Switch
br label %resume.1.landing, !dbg !881
resume.1.landing: ; preds = %resume.1, %CoroSuspend47
%6 = phi i8 [ -1, %CoroSuspend47 ], [ 1, %resume.1 ]
br label %AfterCoroSuspend48, !dbg !881
AfterCoroSuspend48: ; preds = %resume.1.landing
switch i8 %6, label %coro.ret [
i8 0, label %await.ready
i8 1, label %await.cleanup
], !dbg !881
await.cleanup: ; preds = %AfterCoroSuspend48
br label %cleanup.from.await.cleanup, !dbg !881
cleanup.from.await.cleanup: ; preds = %await.cleanup
%.cleanup59 = phi i32 [ 2, %await.cleanup ]
br label %cleanup, !dbg !881
await.ready: ; preds = %AfterCoroSuspend48, %init.ready
%ref.tmp22.reload.addr68 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !880
%j.reload.addr66 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !880
%ref.tmp11.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 8, !dbg !880
%i.reload.addr62 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !880
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp11.reload.addr) #2, !dbg !880
call void @llvm.dbg.value(metadata i32 0, metadata !882, metadata !DIExpression()), !dbg !875
store i32 0, i32* %j.reload.addr66, align 4, !dbg !883
%7 = load i32, i32* %i.reload.addr62, align 4, !dbg !884
call void @llvm.dbg.value(metadata i32 %7, metadata !873, metadata !DIExpression()), !dbg !875
%inc19 = add nsw i32 %7, 1, !dbg !884
call void @llvm.dbg.value(metadata i32 %inc19, metadata !873, metadata !DIExpression()), !dbg !875
store i32 %inc19, i32* %i.reload.addr62, align 4, !dbg !884
%8 = load i32, i32* %j.reload.addr66, align 4, !dbg !885
call void @llvm.dbg.value(metadata i32 %8, metadata !882, metadata !DIExpression()), !dbg !875
%inc20 = add nsw i32 %8, 1, !dbg !885
call void @llvm.dbg.value(metadata i32 %inc20, metadata !882, metadata !DIExpression()), !dbg !875
store i32 %inc20, i32* %j.reload.addr66, align 4, !dbg !885
%9 = load i32, i32* %i.reload.addr62, align 4, !dbg !886
call void @llvm.dbg.value(metadata i32 %9, metadata !873, metadata !DIExpression()), !dbg !875
%10 = load i32, i32* %j.reload.addr66, align 4, !dbg !887
call void @llvm.dbg.value(metadata i32 %10, metadata !882, metadata !DIExpression()), !dbg !875
%call21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %9, i32 %10), !dbg !888
%call23 = call zeroext i1 @_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr68) #2, !dbg !889
br i1 %call23, label %await2.ready, label %CoroSave49, !dbg !890
CoroSave49: ; preds = %await.ready
%index.addr74 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3, !dbg !890
store i2 -2, i2* %index.addr74, !dbg !890
br label %AfterCoroSave50, !dbg !889
AfterCoroSave50: ; preds = %CoroSave49
%ref.tmp25.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 14, !dbg !889
%agg.tmp24.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 13, !dbg !889
%ref.tmp22.reload.addr67 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !889
%call26 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !889
%coerce.dive27 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr, i32 0, i32 0, !dbg !889
%coerce.dive28 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive27, i32 0, i32 0, !dbg !889
store i8* %call26, i8** %coerce.dive28, align 8, !dbg !889
%11 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp25.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !889
%12 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr to i8*, !dbg !889
%13 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %11 to i8*, !dbg !889
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 8 %13, i64 8, i1 false), !dbg !889
%coerce.dive29 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp24.reload.addr, i32 0, i32 0, !dbg !889
%14 = load i8*, i8** %coerce.dive29, align 8, !dbg !889
call void @_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr67, i8* %14) #2, !dbg !889
br label %CoroSuspend51, !dbg !890
CoroSuspend51: ; preds = %AfterCoroSave50
br label %resume.2.landing, !dbg !890
resume.2: ; preds = %Switch
br label %resume.2.landing, !dbg !890
resume.2.landing: ; preds = %resume.2, %CoroSuspend51
%15 = phi i8 [ -1, %CoroSuspend51 ], [ 1, %resume.2 ]
br label %AfterCoroSuspend52, !dbg !890
AfterCoroSuspend52: ; preds = %resume.2.landing
switch i8 %15, label %coro.ret [
i8 0, label %await2.ready
i8 1, label %await2.cleanup
], !dbg !890
await2.cleanup: ; preds = %AfterCoroSuspend52
br label %cleanup.from.await2.cleanup, !dbg !890
cleanup.from.await2.cleanup: ; preds = %await2.cleanup
%.cleanup58 = phi i32 [ 2, %await2.cleanup ]
br label %cleanup, !dbg !890
await2.ready: ; preds = %AfterCoroSuspend52, %await.ready
%ref.tmp22.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 12, !dbg !889
%j.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 11, !dbg !889
%i.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 7, !dbg !889
call void @_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_always"* %ref.tmp22.reload.addr) #2, !dbg !889
%16 = load i32, i32* %i.reload.addr, align 4, !dbg !891
call void @llvm.dbg.value(metadata i32 %16, metadata !873, metadata !DIExpression()), !dbg !875
%inc30 = add nsw i32 %16, 1, !dbg !891
call void @llvm.dbg.value(metadata i32 %inc30, metadata !873, metadata !DIExpression()), !dbg !875
store i32 %inc30, i32* %i.reload.addr, align 4, !dbg !891
%17 = load i32, i32* %j.reload.addr, align 4, !dbg !892
call void @llvm.dbg.value(metadata i32 %17, metadata !882, metadata !DIExpression()), !dbg !875
%inc31 = add nsw i32 %17, 1, !dbg !892
call void @llvm.dbg.value(metadata i32 %inc31, metadata !882, metadata !DIExpression()), !dbg !875
store i32 %inc31, i32* %j.reload.addr, align 4, !dbg !892
%18 = load i32, i32* %j.reload.addr, align 4, !dbg !893
call void @llvm.dbg.value(metadata i32 %18, metadata !882, metadata !DIExpression()), !dbg !875
%19 = load i32, i32* %i.reload.addr, align 4, !dbg !894
call void @llvm.dbg.value(metadata i32 %19, metadata !873, metadata !DIExpression()), !dbg !875
%call32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i32 %18, i32 %19), !dbg !895
call void @_ZN4coro12promise_type11return_voidEv(%"struct.coro::promise_type"* %__promise), !dbg !872
br label %coro.final, !dbg !872
coro.final: ; preds = %await2.ready
%ref.tmp33.reload.addr70 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !872
call void @_ZN4coro12promise_type13final_suspendEv(%"struct.coro::promise_type"* %__promise), !dbg !872
%call35 = call zeroext i1 @_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr70) #2, !dbg !872
br i1 %call35, label %final.ready, label %CoroSave53, !dbg !872
CoroSave53: ; preds = %coro.final
%ResumeFn.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 0, !dbg !872
store void (%_Z3foov.Frame*)* null, void (%_Z3foov.Frame*)** %ResumeFn.addr, !dbg !872
br label %AfterCoroSave54, !dbg !872
AfterCoroSave54: ; preds = %CoroSave53
%ref.tmp37.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 17, !dbg !872
%agg.tmp36.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 16, !dbg !872
%ref.tmp33.reload.addr69 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !872
%call38 = call i8* @_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv(i8* %vFrame) #2, !dbg !872
%coerce.dive39 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle", %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr, i32 0, i32 0, !dbg !872
%coerce.dive40 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %coerce.dive39, i32 0, i32 0, !dbg !872
store i8* %call38, i8** %coerce.dive40, align 8, !dbg !872
%20 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle"* %ref.tmp37.reload.addr to %"class.std::experimental::coroutines_v1::coroutine_handle.0"*, !dbg !872
%21 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr to i8*, !dbg !872
%22 = bitcast %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %20 to i8*, !dbg !872
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %21, i8* align 8 %22, i64 8, i1 false), !dbg !872
%coerce.dive41 = getelementptr inbounds %"class.std::experimental::coroutines_v1::coroutine_handle.0", %"class.std::experimental::coroutines_v1::coroutine_handle.0"* %agg.tmp36.reload.addr, i32 0, i32 0, !dbg !872
%23 = load i8*, i8** %coerce.dive41, align 8, !dbg !872
call void @_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr69, i8* %23) #2, !dbg !872
br label %CoroSuspend55, !dbg !872
CoroSuspend55: ; preds = %AfterCoroSave54
br label %resume.3.landing, !dbg !872
resume.3: ; preds = %resume.entry
br label %resume.3.landing, !dbg !872
resume.3.landing: ; preds = %resume.3, %CoroSuspend55
%24 = phi i8 [ -1, %CoroSuspend55 ], [ 1, %resume.3 ]
br label %AfterCoroSuspend56, !dbg !872
AfterCoroSuspend56: ; preds = %resume.3.landing
switch i8 %24, label %coro.ret [
i8 0, label %final.ready
i8 1, label %final.cleanup
], !dbg !872
final.cleanup: ; preds = %AfterCoroSuspend56
br label %cleanup.from.final.cleanup, !dbg !872
cleanup.from.final.cleanup: ; preds = %final.cleanup
%.cleanup57 = phi i32 [ 2, %final.cleanup ]
br label %cleanup, !dbg !872
final.ready: ; preds = %AfterCoroSuspend56, %coro.final
%ref.tmp33.reload.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 15, !dbg !872
call void @_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv(%"struct.std::experimental::coroutines_v1::suspend_never"* %ref.tmp33.reload.addr) #2, !dbg !872
br label %cleanup.from.final.ready, !dbg !872
cleanup.from.final.ready: ; preds = %final.ready
%.cleanup = phi i32 [ 0, %final.ready ]
br label %cleanup, !dbg !872
cleanup: ; preds = %cleanup.from.final.ready, %cleanup.from.final.cleanup, %cleanup.from.await2.cleanup, %cleanup.from.await.cleanup, %cleanup.from.init.cleanup
%cleanup.dest.slot.0 = phi i32 [ %.cleanup, %cleanup.from.final.ready ], [ %.cleanup57, %cleanup.from.final.cleanup ], [ %.cleanup58, %cleanup.from.await2.cleanup ], [ %.cleanup59, %cleanup.from.await.cleanup ], [ %.cleanup60, %cleanup.from.init.cleanup ]
%25 = icmp ne i8* null, null, !dbg !872
br i1 %25, label %coro.free, label %after.coro.free, !dbg !872
coro.free: ; preds = %cleanup
call void @_ZdlPv(i8* null) #2, !dbg !872
br label %after.coro.free, !dbg !872
after.coro.free: ; preds = %coro.free, %cleanup
switch i32 %cleanup.dest.slot.0, label %unreachable [
i32 0, label %cleanup.cont
i32 2, label %coro.ret
]
cleanup.cont: ; preds = %after.coro.free
br label %coro.ret, !dbg !872
coro.ret: ; preds = %cleanup.cont, %after.coro.free, %AfterCoroSuspend56, %AfterCoroSuspend52, %AfterCoroSuspend48, %AfterCoroSuspend
br label %CoroEnd, !dbg !872
CoroEnd: ; preds = %coro.ret
ret void, !dbg !872
unreachable: ; preds = %after.coro.free
unreachable
resume.entry: ; preds = %entry.cleanup
%index.addr = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 3
%index = load i2, i2* %index.addr
%ResumeFn.addr1 = getelementptr inbounds %_Z3foov.Frame, %_Z3foov.Frame* %FramePtr, i32 0, i32 0
%26 = load void (%_Z3foov.Frame*)*, void (%_Z3foov.Frame*)** %ResumeFn.addr1
%27 = icmp eq void (%_Z3foov.Frame*)* %26, null
br i1 %27, label %resume.3, label %Switch
Switch: ; preds = %resume.entry
switch i2 %index, label %unreachable71 [
i2 0, label %resume.0
i2 1, label %resume.1
i2 -2, label %resume.2
]
unreachable71: ; preds = %Switch
unreachable, !dbg !872
}
attributes #0 = { noinline nounwind optnone uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "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"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind readonly }
attributes #2 = { nounwind }
attributes #3 = { nobuiltin "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "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"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #4 = { nounwind readnone }
attributes #5 = { nounwind readnone speculatable willreturn }
attributes #6 = { argmemonly nounwind willreturn }
attributes #7 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "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"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #8 = { nobuiltin nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "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"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #9 = { noinline norecurse nounwind optnone uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "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"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #10 = { alwaysinline }
!llvm.dbg.cu = !{!0}
!llvm.linker.options = !{}
!llvm.module.flags = !{!644, !645, !646}
!llvm.ident = !{!647}
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 11.0.0 (https://github.com/llvm/llvm-project.git baafe82b07ade3fff4f2685199870b67083a17d5)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, imports: !108, splitDebugInlining: false, nameTableKind: None)
!1 = !DIFile(filename: "/home/modocache/Source/tmp/corodebug/test.cpp", directory: "/home/modocache/Source/tmp/corodebug")
!2 = !{}
!3 = !{!4}
!4 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "coro", file: !5, line: 6, size: 64, flags: DIFlagTypePassByValue | DIFlagNonTrivial, elements: !6, identifier: "_ZTS4coro")
!5 = !DIFile(filename: "test.cpp", directory: "/home/modocache/Source/tmp/corodebug")
!6 = !{!7, !104}
!7 = !DIDerivedType(tag: DW_TAG_member, name: "handle", scope: !4, file: !5, line: 18, baseType: !8, size: 64)
!8 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "coroutine_handle<coro::promise_type>", scope: !10, file: !9, line: 196, size: 64, flags: DIFlagTypePassByValue | DIFlagNonTrivial, elements: !13, templateParams: !102, identifier: "_ZTSNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEE")
!9 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/experimental/coroutine", directory: "/home/modocache/Source")
!10 = !DINamespace(name: "coroutines_v1", scope: !11, exportSymbols: true)
!11 = !DINamespace(name: "experimental", scope: !12)
!12 = !DINamespace(name: "std", scope: null)
!13 = !{!14, !55, !60, !93, !96, !99}
!14 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !8, baseType: !15, flags: DIFlagPublic, extraData: i32 0)
!15 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "coroutine_handle<void>", scope: !10, file: !9, line: 92, size: 64, flags: DIFlagTypePassByValue | DIFlagNonTrivial, elements: !16, templateParams: !53, identifier: "_ZTSNSt12experimental13coroutines_v116coroutine_handleIvEE")
!16 = !{!17, !19, !23, !29, !33, !38, !42, !43, !44, !45, !46, !49, !52}
!17 = !DIDerivedType(tag: DW_TAG_member, name: "__handle_", scope: !15, file: !9, line: 166, baseType: !18, size: 64)
!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)
!19 = !DISubprogram(name: "coroutine_handle", scope: !15, file: !9, line: 95, type: !20, scopeLine: 95, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!20 = !DISubroutineType(types: !21)
!21 = !{null, !22}
!22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!23 = !DISubprogram(name: "coroutine_handle", scope: !15, file: !9, line: 98, type: !24, scopeLine: 98, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!24 = !DISubroutineType(types: !25)
!25 = !{null, !22, !26}
!26 = !DIDerivedType(tag: DW_TAG_typedef, name: "nullptr_t", scope: !12, file: !27, line: 56, baseType: !28)
!27 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/__nullptr", directory: "/home/modocache/Source")
!28 = !DIBasicType(tag: DW_TAG_unspecified_type, name: "decltype(nullptr)")
!29 = !DISubprogram(name: "operator=", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvEaSEDn", scope: !15, file: !9, line: 101, type: !30, scopeLine: 101, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!30 = !DISubroutineType(types: !31)
!31 = !{!32, !22, !26}
!32 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !15, size: 64)
!33 = !DISubprogram(name: "address", linkageName: "_ZNKSt12experimental13coroutines_v116coroutine_handleIvE7addressEv", scope: !15, file: !9, line: 107, type: !34, scopeLine: 107, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!34 = !DISubroutineType(types: !35)
!35 = !{!18, !36}
!36 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !37, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!37 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !15)
!38 = !DISubprogram(name: "operator bool", linkageName: "_ZNKSt12experimental13coroutines_v116coroutine_handleIvEcvbEv", scope: !15, file: !9, line: 110, type: !39, scopeLine: 110, flags: DIFlagPublic | DIFlagExplicit | DIFlagPrototyped, spFlags: 0)
!39 = !DISubroutineType(types: !40)
!40 = !{!41, !36}
!41 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
!42 = !DISubprogram(name: "operator()", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvEclEv", scope: !15, file: !9, line: 113, type: !20, scopeLine: 113, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!43 = !DISubprogram(name: "resume", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv", scope: !15, file: !9, line: 116, type: !20, scopeLine: 116, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!44 = !DISubprogram(name: "destroy", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvE7destroyEv", scope: !15, file: !9, line: 125, type: !20, scopeLine: 125, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!45 = !DISubprogram(name: "done", linkageName: "_ZNKSt12experimental13coroutines_v116coroutine_handleIvE4doneEv", scope: !15, file: !9, line: 132, type: !39, scopeLine: 132, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!46 = !DISubprogram(name: "from_address", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvE12from_addressEPv", scope: !15, file: !9, line: 140, type: !47, scopeLine: 140, flags: DIFlagPublic | DIFlagPrototyped | DIFlagStaticMember, spFlags: 0)
!47 = !DISubroutineType(types: !48)
!48 = !{!15, !18}
!49 = !DISubprogram(name: "from_address", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvE12from_addressEDn", scope: !15, file: !9, line: 148, type: !50, scopeLine: 148, flags: DIFlagPublic | DIFlagPrototyped | DIFlagStaticMember, spFlags: 0)
!50 = !DISubroutineType(types: !51)
!51 = !{!15, !26}
!52 = !DISubprogram(name: "__is_suspended", linkageName: "_ZNKSt12experimental13coroutines_v116coroutine_handleIvE14__is_suspendedEv", scope: !15, file: !9, line: 160, type: !39, scopeLine: 160, flags: DIFlagPrototyped, spFlags: 0)
!53 = !{!54}
!54 = !DITemplateTypeParameter(name: "_Promise", type: null)
!55 = !DISubprogram(name: "operator=", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEaSEDn", scope: !8, file: !9, line: 207, type: !56, scopeLine: 207, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!56 = !DISubroutineType(types: !57)
!57 = !{!58, !59, !26}
!58 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !8, size: 64)
!59 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!60 = !DISubprogram(name: "promise", linkageName: "_ZNKSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE7promiseEv", scope: !8, file: !9, line: 213, type: !61, scopeLine: 213, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
!61 = !DISubroutineType(types: !62)
!62 = !{!63, !91}
!63 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !64, size: 64)
!64 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "promise_type", scope: !4, file: !5, line: 7, size: 8, flags: DIFlagTypePassByValue, elements: !65, identifier: "_ZTSN4coro12promise_typeE")
!65 = !{!66, !70, !86, !87, !90}
!66 = !DISubprogram(name: "get_return_object", linkageName: "_ZN4coro12promise_type17get_return_objectEv", scope: !64, file: !5, line: 8, type: !67, scopeLine: 8, flags: DIFlagPrototyped, spFlags: 0)
!67 = !DISubroutineType(types: !68)
!68 = !{!4, !69}
!69 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !64, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!70 = !DISubprogram(name: "initial_suspend", linkageName: "_ZN4coro12promise_type15initial_suspendEv", scope: !64, file: !5, line: 12, type: !71, scopeLine: 12, flags: DIFlagPrototyped, spFlags: 0)
!71 = !DISubroutineType(types: !72)
!72 = !{!73, !69}
!73 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "suspend_never", scope: !10, file: !9, line: 300, size: 8, flags: DIFlagTypePassByValue, elements: !74, identifier: "_ZTSNSt12experimental13coroutines_v113suspend_neverE")
!74 = !{!75, !80, !83}
!75 = !DISubprogram(name: "await_ready", linkageName: "_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv", scope: !73, file: !9, line: 302, type: !76, scopeLine: 302, flags: DIFlagPrototyped, spFlags: 0)
!76 = !DISubroutineType(types: !77)
!77 = !{!41, !78}
!78 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !79, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!79 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !73)
!80 = !DISubprogram(name: "await_suspend", linkageName: "_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE", scope: !73, file: !9, line: 304, type: !81, scopeLine: 304, flags: DIFlagPrototyped, spFlags: 0)
!81 = !DISubroutineType(types: !82)
!82 = !{null, !78, !15}
!83 = !DISubprogram(name: "await_resume", linkageName: "_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv", scope: !73, file: !9, line: 306, type: !84, scopeLine: 306, flags: DIFlagPrototyped, spFlags: 0)
!84 = !DISubroutineType(types: !85)
!85 = !{null, !78}
!86 = !DISubprogram(name: "final_suspend", linkageName: "_ZN4coro12promise_type13final_suspendEv", scope: !64, file: !5, line: 13, type: !71, scopeLine: 13, flags: DIFlagPrototyped, spFlags: 0)
!87 = !DISubprogram(name: "return_void", linkageName: "_ZN4coro12promise_type11return_voidEv", scope: !64, file: !5, line: 14, type: !88, scopeLine: 14, flags: DIFlagPrototyped, spFlags: 0)
!88 = !DISubroutineType(types: !89)
!89 = !{null, !69}
!90 = !DISubprogram(name: "unhandled_exception", linkageName: "_ZN4coro12promise_type19unhandled_exceptionEv", scope: !64, file: !5, line: 15, type: !88, scopeLine: 15, flags: DIFlagPrototyped, spFlags: 0)
!91 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !92, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!92 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !8)
!93 = !DISubprogram(name: "from_address", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv", scope: !8, file: !9, line: 220, type: !94, scopeLine: 220, flags: DIFlagPublic | DIFlagPrototyped | DIFlagStaticMember, spFlags: 0)
!94 = !DISubroutineType(types: !95)
!95 = !{!8, !18}
!96 = !DISubprogram(name: "from_address", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEDn", scope: !8, file: !9, line: 231, type: !97, scopeLine: 231, flags: DIFlagPublic | DIFlagPrototyped | DIFlagStaticMember, spFlags: 0)
!97 = !DISubroutineType(types: !98)
!98 = !{!8, !26}
!99 = !DISubprogram(name: "from_promise", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_promiseERS3_", scope: !8, file: !9, line: 250, type: !100, scopeLine: 250, flags: DIFlagPublic | DIFlagPrototyped | DIFlagStaticMember, spFlags: 0)
!100 = !DISubroutineType(types: !101)
!101 = !{!8, !63}
!102 = !{!103}
!103 = !DITemplateTypeParameter(name: "_Promise", type: !64)
!104 = !DISubprogram(name: "coro", scope: !4, file: !5, line: 19, type: !105, scopeLine: 19, flags: DIFlagPrototyped, spFlags: 0)
!105 = !DISubroutineType(types: !106)
!106 = !{null, !107, !8}
!107 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!108 = !{!109, !116, !122, !126, !132, !134, !142, !146, !153, !155, !159, !163, !167, !173, !175, !179, !183, !187, !189, !193, !197, !201, !203, !205, !207, !212, !219, !225, !230, !236, !240, !244, !246, !248, !250, !254, !258, !262, !266, !270, !274, !278, !282, !286, !290, !292, !296, !298, !300, !303, !304, !308, !310, !314, !320, !327, !332, !334, !338, !342, !348, !353, !358, !362, !366, !370, !375, !377, !382, !386, !390, !394, !398, !402, !407, !411, !413, !417, !419, !427, !431, !436, !440, !444, !448, !452, !454, !458, !465, !469, !473, !480, !482, !484, !486, !493, !497, !500, !503, !508, !512, !515, !518, !522, !525, !528, !531, !534, !537, !540, !543, !545, !547, !549, !551, !553, !555, !557, !559, !561, !563, !566, !569, !571, !576, !580, !584, !588, !590, !592, !596, !598, !602, !604, !608, !613, !617, !621, !625, !627, !629, !631, !633, !635, !639, !643}
!109 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !111, file: !115, line: 107)
!110 = !DINamespace(name: "__1", scope: !12, exportSymbols: true)
!111 = !DIDerivedType(tag: DW_TAG_typedef, name: "FILE", file: !112, line: 7, baseType: !113)
!112 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types/FILE.h", directory: "")
!113 = !DICompositeType(tag: DW_TAG_structure_type, name: "_IO_FILE", file: !114, line: 49, flags: DIFlagFwdDecl, identifier: "_ZTS8_IO_FILE")
!114 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h", directory: "")
!115 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdio", directory: "/home/modocache/Source")
!116 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !117, file: !115, line: 108)
!117 = !DIDerivedType(tag: DW_TAG_typedef, name: "fpos_t", file: !118, line: 84, baseType: !119)
!118 = !DIFile(filename: "/usr/include/stdio.h", directory: "")
!119 = !DIDerivedType(tag: DW_TAG_typedef, name: "__fpos_t", file: !120, line: 14, baseType: !121)
!120 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h", directory: "")
!121 = !DICompositeType(tag: DW_TAG_structure_type, name: "_G_fpos_t", file: !120, line: 10, flags: DIFlagFwdDecl, identifier: "_ZTS9_G_fpos_t")
!122 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !123, file: !115, line: 109)
!123 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !124, line: 46, baseType: !125)
!124 = !DIFile(filename: "llvm/git/dev/llvm-project/build/lib/clang/11.0.0/include/stddef.h", directory: "/home/modocache/Source")
!125 = !DIBasicType(name: "long unsigned int", size: 64, encoding: DW_ATE_unsigned)
!126 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !127, file: !115, line: 111)
!127 = !DISubprogram(name: "fclose", scope: !118, file: !118, line: 213, type: !128, flags: DIFlagPrototyped, spFlags: 0)
!128 = !DISubroutineType(types: !129)
!129 = !{!130, !131}
!130 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!131 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !111, size: 64)
!132 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !133, file: !115, line: 112)
!133 = !DISubprogram(name: "fflush", scope: !118, file: !118, line: 218, type: !128, flags: DIFlagPrototyped, spFlags: 0)
!134 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !135, file: !115, line: 113)
!135 = !DISubprogram(name: "setbuf", scope: !118, file: !118, line: 304, type: !136, flags: DIFlagPrototyped, spFlags: 0)
!136 = !DISubroutineType(types: !137)
!137 = !{null, !138, !139}
!138 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !131)
!139 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !140)
!140 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !141, size: 64)
!141 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char)
!142 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !143, file: !115, line: 114)
!143 = !DISubprogram(name: "setvbuf", scope: !118, file: !118, line: 308, type: !144, flags: DIFlagPrototyped, spFlags: 0)
!144 = !DISubroutineType(types: !145)
!145 = !{!130, !138, !139, !130, !123}
!146 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !147, file: !115, line: 115)
!147 = !DISubprogram(name: "fprintf", scope: !118, file: !118, line: 326, type: !148, flags: DIFlagPrototyped, spFlags: 0)
!148 = !DISubroutineType(types: !149)
!149 = !{!130, !138, !150, null}
!150 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !151)
!151 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !152, size: 64)
!152 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !141)
!153 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !154, file: !115, line: 116)
!154 = !DISubprogram(name: "fscanf", linkageName: "__isoc99_fscanf", scope: !118, file: !118, line: 407, type: !148, flags: DIFlagPrototyped, spFlags: 0)
!155 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !156, file: !115, line: 117)
!156 = !DISubprogram(name: "snprintf", scope: !118, file: !118, line: 354, type: !157, flags: DIFlagPrototyped, spFlags: 0)
!157 = !DISubroutineType(types: !158)
!158 = !{!130, !139, !123, !150, null}
!159 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !160, file: !115, line: 118)
!160 = !DISubprogram(name: "sprintf", scope: !118, file: !118, line: 334, type: !161, flags: DIFlagPrototyped, spFlags: 0)
!161 = !DISubroutineType(types: !162)
!162 = !{!130, !139, !150, null}
!163 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !164, file: !115, line: 119)
!164 = !DISubprogram(name: "sscanf", linkageName: "__isoc99_sscanf", scope: !118, file: !118, line: 412, type: !165, flags: DIFlagPrototyped, spFlags: 0)
!165 = !DISubroutineType(types: !166)
!166 = !{!130, !150, !150, null}
!167 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !168, file: !115, line: 120)
!168 = !DISubprogram(name: "vfprintf", scope: !118, file: !118, line: 341, type: !169, flags: DIFlagPrototyped, spFlags: 0)
!169 = !DISubroutineType(types: !170)
!170 = !{!130, !138, !150, !171}
!171 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !172, size: 64)
!172 = !DICompositeType(tag: DW_TAG_structure_type, name: "__va_list_tag", file: !1, flags: DIFlagFwdDecl, identifier: "_ZTS13__va_list_tag")
!173 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !174, file: !115, line: 121)
!174 = !DISubprogram(name: "vfscanf", linkageName: "__isoc99_vfscanf", scope: !118, file: !118, line: 451, type: !169, flags: DIFlagPrototyped, spFlags: 0)
!175 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !176, file: !115, line: 122)
!176 = !DISubprogram(name: "vsscanf", linkageName: "__isoc99_vsscanf", scope: !118, file: !118, line: 459, type: !177, flags: DIFlagPrototyped, spFlags: 0)
!177 = !DISubroutineType(types: !178)
!178 = !{!130, !150, !150, !171}
!179 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !180, file: !115, line: 123)
!180 = !DISubprogram(name: "vsnprintf", scope: !118, file: !118, line: 358, type: !181, flags: DIFlagPrototyped, spFlags: 0)
!181 = !DISubroutineType(types: !182)
!182 = !{!130, !139, !123, !150, !171}
!183 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !184, file: !115, line: 124)
!184 = !DISubprogram(name: "vsprintf", scope: !118, file: !118, line: 349, type: !185, flags: DIFlagPrototyped, spFlags: 0)
!185 = !DISubroutineType(types: !186)
!186 = !{!130, !139, !150, !171}
!187 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !188, file: !115, line: 125)
!188 = !DISubprogram(name: "fgetc", scope: !118, file: !118, line: 485, type: !128, flags: DIFlagPrototyped, spFlags: 0)
!189 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !190, file: !115, line: 126)
!190 = !DISubprogram(name: "fgets", scope: !118, file: !118, line: 564, type: !191, flags: DIFlagPrototyped, spFlags: 0)
!191 = !DISubroutineType(types: !192)
!192 = !{!140, !139, !130, !138}
!193 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !194, file: !115, line: 127)
!194 = !DISubprogram(name: "fputc", scope: !118, file: !118, line: 521, type: !195, flags: DIFlagPrototyped, spFlags: 0)
!195 = !DISubroutineType(types: !196)
!196 = !{!130, !130, !131}
!197 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !198, file: !115, line: 128)
!198 = !DISubprogram(name: "fputs", scope: !118, file: !118, line: 626, type: !199, flags: DIFlagPrototyped, spFlags: 0)
!199 = !DISubroutineType(types: !200)
!200 = !{!130, !150, !138}
!201 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !202, file: !115, line: 129)
!202 = !DISubprogram(name: "getc", scope: !118, file: !118, line: 486, type: !128, flags: DIFlagPrototyped, spFlags: 0)
!203 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !204, file: !115, line: 130)
!204 = !DISubprogram(name: "putc", scope: !118, file: !118, line: 522, type: !195, flags: DIFlagPrototyped, spFlags: 0)
!205 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !206, file: !115, line: 131)
!206 = !DISubprogram(name: "ungetc", scope: !118, file: !118, line: 639, type: !195, flags: DIFlagPrototyped, spFlags: 0)
!207 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !208, file: !115, line: 132)
!208 = !DISubprogram(name: "fread", scope: !118, file: !118, line: 646, type: !209, flags: DIFlagPrototyped, spFlags: 0)
!209 = !DISubroutineType(types: !210)
!210 = !{!123, !211, !123, !123, !138}
!211 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !18)
!212 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !213, file: !115, line: 133)
!213 = !DISubprogram(name: "fwrite", scope: !118, file: !118, line: 652, type: !214, flags: DIFlagPrototyped, spFlags: 0)
!214 = !DISubroutineType(types: !215)
!215 = !{!123, !216, !123, !123, !138}
!216 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !217)
!217 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !218, size: 64)
!218 = !DIDerivedType(tag: DW_TAG_const_type, baseType: null)
!219 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !220, file: !115, line: 134)
!220 = !DISubprogram(name: "fgetpos", scope: !118, file: !118, line: 731, type: !221, flags: DIFlagPrototyped, spFlags: 0)
!221 = !DISubroutineType(types: !222)
!222 = !{!130, !138, !223}
!223 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !224)
!224 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !117, size: 64)
!225 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !226, file: !115, line: 135)
!226 = !DISubprogram(name: "fseek", scope: !118, file: !118, line: 684, type: !227, flags: DIFlagPrototyped, spFlags: 0)
!227 = !DISubroutineType(types: !228)
!228 = !{!130, !131, !229, !130}
!229 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed)
!230 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !231, file: !115, line: 136)
!231 = !DISubprogram(name: "fsetpos", scope: !118, file: !118, line: 736, type: !232, flags: DIFlagPrototyped, spFlags: 0)
!232 = !DISubroutineType(types: !233)
!233 = !{!130, !131, !234}
!234 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !235, size: 64)
!235 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !117)
!236 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !237, file: !115, line: 137)
!237 = !DISubprogram(name: "ftell", scope: !118, file: !118, line: 689, type: !238, flags: DIFlagPrototyped, spFlags: 0)
!238 = !DISubroutineType(types: !239)
!239 = !{!229, !131}
!240 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !241, file: !115, line: 138)
!241 = !DISubprogram(name: "rewind", scope: !118, file: !118, line: 694, type: !242, flags: DIFlagPrototyped, spFlags: 0)
!242 = !DISubroutineType(types: !243)
!243 = !{null, !131}
!244 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !245, file: !115, line: 139)
!245 = !DISubprogram(name: "clearerr", scope: !118, file: !118, line: 757, type: !242, flags: DIFlagPrototyped, spFlags: 0)
!246 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !247, file: !115, line: 140)
!247 = !DISubprogram(name: "feof", scope: !118, file: !118, line: 759, type: !128, flags: DIFlagPrototyped, spFlags: 0)
!248 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !249, file: !115, line: 141)
!249 = !DISubprogram(name: "ferror", scope: !118, file: !118, line: 761, type: !128, flags: DIFlagPrototyped, spFlags: 0)
!250 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !251, file: !115, line: 142)
!251 = !DISubprogram(name: "perror", scope: !118, file: !118, line: 775, type: !252, flags: DIFlagPrototyped, spFlags: 0)
!252 = !DISubroutineType(types: !253)
!253 = !{null, !151}
!254 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !255, file: !115, line: 145)
!255 = !DISubprogram(name: "fopen", scope: !118, file: !118, line: 246, type: !256, flags: DIFlagPrototyped, spFlags: 0)
!256 = !DISubroutineType(types: !257)
!257 = !{!131, !150, !150}
!258 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !259, file: !115, line: 146)
!259 = !DISubprogram(name: "freopen", scope: !118, file: !118, line: 252, type: !260, flags: DIFlagPrototyped, spFlags: 0)
!260 = !DISubroutineType(types: !261)
!261 = !{!131, !150, !150, !138}
!262 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !263, file: !115, line: 147)
!263 = !DISubprogram(name: "remove", scope: !118, file: !118, line: 146, type: !264, flags: DIFlagPrototyped, spFlags: 0)
!264 = !DISubroutineType(types: !265)
!265 = !{!130, !151}
!266 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !267, file: !115, line: 148)
!267 = !DISubprogram(name: "rename", scope: !118, file: !118, line: 148, type: !268, flags: DIFlagPrototyped, spFlags: 0)
!268 = !DISubroutineType(types: !269)
!269 = !{!130, !151, !151}
!270 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !271, file: !115, line: 149)
!271 = !DISubprogram(name: "tmpfile", scope: !118, file: !118, line: 173, type: !272, flags: DIFlagPrototyped, spFlags: 0)
!272 = !DISubroutineType(types: !273)
!273 = !{!131}
!274 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !275, file: !115, line: 150)
!275 = !DISubprogram(name: "tmpnam", scope: !118, file: !118, line: 187, type: !276, flags: DIFlagPrototyped, spFlags: 0)
!276 = !DISubroutineType(types: !277)
!277 = !{!140, !140}
!278 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !279, file: !115, line: 154)
!279 = !DISubprogram(name: "getchar", scope: !118, file: !118, line: 492, type: !280, flags: DIFlagPrototyped, spFlags: 0)
!280 = !DISubroutineType(types: !281)
!281 = !{!130}
!282 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !283, file: !115, line: 158)
!283 = !DISubprogram(name: "scanf", linkageName: "__isoc99_scanf", scope: !118, file: !118, line: 410, type: !284, flags: DIFlagPrototyped, spFlags: 0)
!284 = !DISubroutineType(types: !285)
!285 = !{!130, !150, null}
!286 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !287, file: !115, line: 159)
!287 = !DISubprogram(name: "vscanf", linkageName: "__isoc99_vscanf", scope: !118, file: !118, line: 456, type: !288, flags: DIFlagPrototyped, spFlags: 0)
!288 = !DISubroutineType(types: !289)
!289 = !{!130, !150, !171}
!290 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !291, file: !115, line: 163)
!291 = !DISubprogram(name: "printf", scope: !118, file: !118, line: 332, type: !284, flags: DIFlagPrototyped, spFlags: 0)
!292 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !293, file: !115, line: 164)
!293 = !DISubprogram(name: "putchar", scope: !118, file: !118, line: 528, type: !294, flags: DIFlagPrototyped, spFlags: 0)
!294 = !DISubroutineType(types: !295)
!295 = !{!130, !130}
!296 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !297, file: !115, line: 165)
!297 = !DISubprogram(name: "puts", scope: !118, file: !118, line: 632, type: !264, flags: DIFlagPrototyped, spFlags: 0)
!298 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !299, file: !115, line: 166)
!299 = !DISubprogram(name: "vprintf", scope: !118, file: !118, line: 347, type: !288, flags: DIFlagPrototyped, spFlags: 0)
!300 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !301, file: !302, line: 49)
!301 = !DIDerivedType(tag: DW_TAG_typedef, name: "ptrdiff_t", file: !124, line: 35, baseType: !229)
!302 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstddef", directory: "/home/modocache/Source")
!303 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !123, file: !302, line: 50)
!304 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !305, file: !302, line: 55)
!305 = !DIDerivedType(tag: DW_TAG_typedef, name: "max_align_t", file: !306, line: 24, baseType: !307)
!306 = !DIFile(filename: "llvm/git/dev/llvm-project/build/lib/clang/11.0.0/include/__stddef_max_align_t.h", directory: "/home/modocache/Source")
!307 = !DICompositeType(tag: DW_TAG_structure_type, file: !306, line: 19, flags: DIFlagFwdDecl, identifier: "_ZTS11max_align_t")
!308 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !123, file: !309, line: 99)
!309 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdlib", directory: "/home/modocache/Source")
!310 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !311, file: !309, line: 100)
!311 = !DIDerivedType(tag: DW_TAG_typedef, name: "div_t", file: !312, line: 62, baseType: !313)
!312 = !DIFile(filename: "/usr/include/stdlib.h", directory: "")
!313 = !DICompositeType(tag: DW_TAG_structure_type, file: !312, line: 58, flags: DIFlagFwdDecl, identifier: "_ZTS5div_t")
!314 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !315, file: !309, line: 101)
!315 = !DIDerivedType(tag: DW_TAG_typedef, name: "ldiv_t", file: !312, line: 70, baseType: !316)
!316 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !312, line: 66, size: 128, flags: DIFlagTypePassByValue, elements: !317, identifier: "_ZTS6ldiv_t")
!317 = !{!318, !319}
!318 = !DIDerivedType(tag: DW_TAG_member, name: "quot", scope: !316, file: !312, line: 68, baseType: !229, size: 64)
!319 = !DIDerivedType(tag: DW_TAG_member, name: "rem", scope: !316, file: !312, line: 69, baseType: !229, size: 64, offset: 64)
!320 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !321, file: !309, line: 103)
!321 = !DIDerivedType(tag: DW_TAG_typedef, name: "lldiv_t", file: !312, line: 80, baseType: !322)
!322 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !312, line: 76, size: 128, flags: DIFlagTypePassByValue, elements: !323, identifier: "_ZTS7lldiv_t")
!323 = !{!324, !326}
!324 = !DIDerivedType(tag: DW_TAG_member, name: "quot", scope: !322, file: !312, line: 78, baseType: !325, size: 64)
!325 = !DIBasicType(name: "long long int", size: 64, encoding: DW_ATE_signed)
!326 = !DIDerivedType(tag: DW_TAG_member, name: "rem", scope: !322, file: !312, line: 79, baseType: !325, size: 64, offset: 64)
!327 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !328, file: !309, line: 105)
!328 = !DISubprogram(name: "atof", scope: !312, file: !312, line: 101, type: !329, flags: DIFlagPrototyped, spFlags: 0)
!329 = !DISubroutineType(types: !330)
!330 = !{!331, !151}
!331 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float)
!332 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !333, file: !309, line: 106)
!333 = !DISubprogram(name: "atoi", scope: !312, file: !312, line: 104, type: !264, flags: DIFlagPrototyped, spFlags: 0)
!334 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !335, file: !309, line: 107)
!335 = !DISubprogram(name: "atol", scope: !312, file: !312, line: 107, type: !336, flags: DIFlagPrototyped, spFlags: 0)
!336 = !DISubroutineType(types: !337)
!337 = !{!229, !151}
!338 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !339, file: !309, line: 109)
!339 = !DISubprogram(name: "atoll", scope: !312, file: !312, line: 112, type: !340, flags: DIFlagPrototyped, spFlags: 0)
!340 = !DISubroutineType(types: !341)
!341 = !{!325, !151}
!342 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !343, file: !309, line: 111)
!343 = !DISubprogram(name: "strtod", scope: !312, file: !312, line: 117, type: !344, flags: DIFlagPrototyped, spFlags: 0)
!344 = !DISubroutineType(types: !345)
!345 = !{!331, !150, !346}
!346 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !347)
!347 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !140, size: 64)
!348 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !349, file: !309, line: 112)
!349 = !DISubprogram(name: "strtof", scope: !312, file: !312, line: 123, type: !350, flags: DIFlagPrototyped, spFlags: 0)
!350 = !DISubroutineType(types: !351)
!351 = !{!352, !150, !346}
!352 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float)
!353 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !354, file: !309, line: 113)
!354 = !DISubprogram(name: "strtold", scope: !312, file: !312, line: 126, type: !355, flags: DIFlagPrototyped, spFlags: 0)
!355 = !DISubroutineType(types: !356)
!356 = !{!357, !150, !346}
!357 = !DIBasicType(name: "long double", size: 128, encoding: DW_ATE_float)
!358 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !359, file: !309, line: 114)
!359 = !DISubprogram(name: "strtol", scope: !312, file: !312, line: 176, type: !360, flags: DIFlagPrototyped, spFlags: 0)
!360 = !DISubroutineType(types: !361)
!361 = !{!229, !150, !346, !130}
!362 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !363, file: !309, line: 116)
!363 = !DISubprogram(name: "strtoll", scope: !312, file: !312, line: 200, type: !364, flags: DIFlagPrototyped, spFlags: 0)
!364 = !DISubroutineType(types: !365)
!365 = !{!325, !150, !346, !130}
!366 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !367, file: !309, line: 118)
!367 = !DISubprogram(name: "strtoul", scope: !312, file: !312, line: 180, type: !368, flags: DIFlagPrototyped, spFlags: 0)
!368 = !DISubroutineType(types: !369)
!369 = !{!125, !150, !346, !130}
!370 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !371, file: !309, line: 120)
!371 = !DISubprogram(name: "strtoull", scope: !312, file: !312, line: 205, type: !372, flags: DIFlagPrototyped, spFlags: 0)
!372 = !DISubroutineType(types: !373)
!373 = !{!374, !150, !346, !130}
!374 = !DIBasicType(name: "long long unsigned int", size: 64, encoding: DW_ATE_unsigned)
!375 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !376, file: !309, line: 122)
!376 = !DISubprogram(name: "rand", scope: !312, file: !312, line: 453, type: !280, flags: DIFlagPrototyped, spFlags: 0)
!377 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !378, file: !309, line: 123)
!378 = !DISubprogram(name: "srand", scope: !312, file: !312, line: 455, type: !379, flags: DIFlagPrototyped, spFlags: 0)
!379 = !DISubroutineType(types: !380)
!380 = !{null, !381}
!381 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!382 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !383, file: !309, line: 124)
!383 = !DISubprogram(name: "calloc", scope: !312, file: !312, line: 542, type: !384, flags: DIFlagPrototyped, spFlags: 0)
!384 = !DISubroutineType(types: !385)
!385 = !{!18, !123, !123}
!386 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !387, file: !309, line: 125)
!387 = !DISubprogram(name: "free", scope: !312, file: !312, line: 565, type: !388, flags: DIFlagPrototyped, spFlags: 0)
!388 = !DISubroutineType(types: !389)
!389 = !{null, !18}
!390 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !391, file: !309, line: 126)
!391 = !DISubprogram(name: "malloc", scope: !312, file: !312, line: 539, type: !392, flags: DIFlagPrototyped, spFlags: 0)
!392 = !DISubroutineType(types: !393)
!393 = !{!18, !123}
!394 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !395, file: !309, line: 127)
!395 = !DISubprogram(name: "realloc", scope: !312, file: !312, line: 550, type: !396, flags: DIFlagPrototyped, spFlags: 0)
!396 = !DISubroutineType(types: !397)
!397 = !{!18, !18, !123}
!398 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !399, file: !309, line: 128)
!399 = !DISubprogram(name: "abort", scope: !312, file: !312, line: 591, type: !400, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!400 = !DISubroutineType(types: !401)
!401 = !{null}
!402 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !403, file: !309, line: 129)
!403 = !DISubprogram(name: "atexit", scope: !312, file: !312, line: 595, type: !404, flags: DIFlagPrototyped, spFlags: 0)
!404 = !DISubroutineType(types: !405)
!405 = !{!130, !406}
!406 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !400, size: 64)
!407 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !408, file: !309, line: 130)
!408 = !DISubprogram(name: "exit", scope: !312, file: !312, line: 617, type: !409, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!409 = !DISubroutineType(types: !410)
!410 = !{null, !130}
!411 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !412, file: !309, line: 131)
!412 = !DISubprogram(name: "_Exit", scope: !312, file: !312, line: 629, type: !409, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!413 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !414, file: !309, line: 133)
!414 = !DISubprogram(name: "getenv", scope: !312, file: !312, line: 634, type: !415, flags: DIFlagPrototyped, spFlags: 0)
!415 = !DISubroutineType(types: !416)
!416 = !{!140, !151}
!417 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !418, file: !309, line: 134)
!418 = !DISubprogram(name: "system", scope: !312, file: !312, line: 784, type: !264, flags: DIFlagPrototyped, spFlags: 0)
!419 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !420, file: !309, line: 136)
!420 = !DISubprogram(name: "bsearch", scope: !312, file: !312, line: 820, type: !421, flags: DIFlagPrototyped, spFlags: 0)
!421 = !DISubroutineType(types: !422)
!422 = !{!18, !217, !217, !123, !123, !423}
!423 = !DIDerivedType(tag: DW_TAG_typedef, name: "__compar_fn_t", file: !312, line: 808, baseType: !424)
!424 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !425, size: 64)
!425 = !DISubroutineType(types: !426)
!426 = !{!130, !217, !217}
!427 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !428, file: !309, line: 137)
!428 = !DISubprogram(name: "qsort", scope: !312, file: !312, line: 830, type: !429, flags: DIFlagPrototyped, spFlags: 0)
!429 = !DISubroutineType(types: !430)
!430 = !{null, !18, !123, !123, !423}
!431 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !432, file: !309, line: 138)
!432 = !DISubprogram(name: "abs", linkageName: "_Z3abse", scope: !433, file: !433, line: 793, type: !434, flags: DIFlagPrototyped, spFlags: 0)
!433 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/math.h", directory: "/home/modocache/Source")
!434 = !DISubroutineType(types: !435)
!435 = !{!357, !357}
!436 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !437, file: !309, line: 139)
!437 = !DISubprogram(name: "labs", scope: !312, file: !312, line: 841, type: !438, flags: DIFlagPrototyped, spFlags: 0)
!438 = !DISubroutineType(types: !439)
!439 = !{!229, !229}
!440 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !441, file: !309, line: 141)
!441 = !DISubprogram(name: "llabs", scope: !312, file: !312, line: 844, type: !442, flags: DIFlagPrototyped, spFlags: 0)
!442 = !DISubroutineType(types: !443)
!443 = !{!325, !325}
!444 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !445, file: !309, line: 143)
!445 = !DISubprogram(name: "div", linkageName: "_Z3divxx", scope: !433, file: !433, line: 812, type: !446, flags: DIFlagPrototyped, spFlags: 0)
!446 = !DISubroutineType(types: !447)
!447 = !{!321, !325, !325}
!448 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !449, file: !309, line: 144)
!449 = !DISubprogram(name: "ldiv", scope: !312, file: !312, line: 854, type: !450, flags: DIFlagPrototyped, spFlags: 0)
!450 = !DISubroutineType(types: !451)
!451 = !{!315, !229, !229}
!452 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !453, file: !309, line: 146)
!453 = !DISubprogram(name: "lldiv", scope: !312, file: !312, line: 858, type: !446, flags: DIFlagPrototyped, spFlags: 0)
!454 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !455, file: !309, line: 148)
!455 = !DISubprogram(name: "mblen", scope: !312, file: !312, line: 922, type: !456, flags: DIFlagPrototyped, spFlags: 0)
!456 = !DISubroutineType(types: !457)
!457 = !{!130, !151, !123}
!458 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !459, file: !309, line: 149)
!459 = !DISubprogram(name: "mbtowc", scope: !312, file: !312, line: 925, type: !460, flags: DIFlagPrototyped, spFlags: 0)
!460 = !DISubroutineType(types: !461)
!461 = !{!130, !462, !150, !123}
!462 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !463)
!463 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !464, size: 64)
!464 = !DIBasicType(name: "wchar_t", size: 32, encoding: DW_ATE_signed)
!465 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !466, file: !309, line: 150)
!466 = !DISubprogram(name: "wctomb", scope: !312, file: !312, line: 929, type: !467, flags: DIFlagPrototyped, spFlags: 0)
!467 = !DISubroutineType(types: !468)
!468 = !{!130, !140, !464}
!469 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !470, file: !309, line: 151)
!470 = !DISubprogram(name: "mbstowcs", scope: !312, file: !312, line: 933, type: !471, flags: DIFlagPrototyped, spFlags: 0)
!471 = !DISubroutineType(types: !472)
!472 = !{!123, !462, !150, !123}
!473 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !474, file: !309, line: 152)
!474 = !DISubprogram(name: "wcstombs", scope: !312, file: !312, line: 936, type: !475, flags: DIFlagPrototyped, spFlags: 0)
!475 = !DISubroutineType(types: !476)
!476 = !{!123, !139, !477, !123}
!477 = !DIDerivedType(tag: DW_TAG_restrict_type, baseType: !478)
!478 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !479, size: 64)
!479 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !464)
!480 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !481, file: !309, line: 154)
!481 = !DISubprogram(name: "at_quick_exit", scope: !312, file: !312, line: 600, type: !404, flags: DIFlagPrototyped, spFlags: 0)
!482 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !483, file: !309, line: 155)
!483 = !DISubprogram(name: "quick_exit", scope: !312, file: !312, line: 623, type: !409, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!484 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !485, file: !309, line: 158)
!485 = !DISubprogram(name: "aligned_alloc", scope: !312, file: !312, line: 586, type: !384, flags: DIFlagPrototyped, spFlags: 0)
!486 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !487, file: !492, line: 152)
!487 = !DIDerivedType(tag: DW_TAG_typedef, name: "int8_t", file: !488, line: 24, baseType: !489)
!488 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h", directory: "")
!489 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int8_t", file: !490, line: 37, baseType: !491)
!490 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/types.h", directory: "")
!491 = !DIBasicType(name: "signed char", size: 8, encoding: DW_ATE_signed_char)
!492 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstdint", directory: "/home/modocache/Source")
!493 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !494, file: !492, line: 153)
!494 = !DIDerivedType(tag: DW_TAG_typedef, name: "int16_t", file: !488, line: 25, baseType: !495)
!495 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int16_t", file: !490, line: 39, baseType: !496)
!496 = !DIBasicType(name: "short", size: 16, encoding: DW_ATE_signed)
!497 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !498, file: !492, line: 154)
!498 = !DIDerivedType(tag: DW_TAG_typedef, name: "int32_t", file: !488, line: 26, baseType: !499)
!499 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int32_t", file: !490, line: 41, baseType: !130)
!500 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !501, file: !492, line: 155)
!501 = !DIDerivedType(tag: DW_TAG_typedef, name: "int64_t", file: !488, line: 27, baseType: !502)
!502 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int64_t", file: !490, line: 44, baseType: !229)
!503 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !504, file: !492, line: 157)
!504 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8_t", file: !505, line: 24, baseType: !506)
!505 = !DIFile(filename: "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h", directory: "")
!506 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint8_t", file: !490, line: 38, baseType: !507)
!507 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char)
!508 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !509, file: !492, line: 158)
!509 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint16_t", file: !505, line: 25, baseType: !510)
!510 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint16_t", file: !490, line: 40, baseType: !511)
!511 = !DIBasicType(name: "unsigned short", size: 16, encoding: DW_ATE_unsigned)
!512 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !513, file: !492, line: 159)
!513 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !505, line: 26, baseType: !514)
!514 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !490, line: 42, baseType: !381)
!515 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !516, file: !492, line: 160)
!516 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint64_t", file: !505, line: 27, baseType: !517)
!517 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint64_t", file: !490, line: 45, baseType: !125)
!518 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !519, file: !492, line: 162)
!519 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_least8_t", file: !520, line: 43, baseType: !521)
!520 = !DIFile(filename: "/usr/include/stdint.h", directory: "")
!521 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int_least8_t", file: !490, line: 52, baseType: !489)
!522 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !523, file: !492, line: 163)
!523 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_least16_t", file: !520, line: 44, baseType: !524)
!524 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int_least16_t", file: !490, line: 54, baseType: !495)
!525 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !526, file: !492, line: 164)
!526 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_least32_t", file: !520, line: 45, baseType: !527)
!527 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int_least32_t", file: !490, line: 56, baseType: !499)
!528 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !529, file: !492, line: 165)
!529 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_least64_t", file: !520, line: 46, baseType: !530)
!530 = !DIDerivedType(tag: DW_TAG_typedef, name: "__int_least64_t", file: !490, line: 58, baseType: !502)
!531 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !532, file: !492, line: 167)
!532 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_least8_t", file: !520, line: 49, baseType: !533)
!533 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint_least8_t", file: !490, line: 53, baseType: !506)
!534 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !535, file: !492, line: 168)
!535 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_least16_t", file: !520, line: 50, baseType: !536)
!536 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint_least16_t", file: !490, line: 55, baseType: !510)
!537 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !538, file: !492, line: 169)
!538 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_least32_t", file: !520, line: 51, baseType: !539)
!539 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint_least32_t", file: !490, line: 57, baseType: !514)
!540 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !541, file: !492, line: 170)
!541 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_least64_t", file: !520, line: 52, baseType: !542)
!542 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint_least64_t", file: !490, line: 59, baseType: !517)
!543 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !544, file: !492, line: 172)
!544 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_fast8_t", file: !520, line: 58, baseType: !491)
!545 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !546, file: !492, line: 173)
!546 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_fast16_t", file: !520, line: 60, baseType: !229)
!547 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !548, file: !492, line: 174)
!548 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_fast32_t", file: !520, line: 61, baseType: !229)
!549 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !550, file: !492, line: 175)
!550 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_fast64_t", file: !520, line: 62, baseType: !229)
!551 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !552, file: !492, line: 177)
!552 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_fast8_t", file: !520, line: 71, baseType: !507)
!553 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !554, file: !492, line: 178)
!554 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_fast16_t", file: !520, line: 73, baseType: !125)
!555 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !556, file: !492, line: 179)
!556 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_fast32_t", file: !520, line: 74, baseType: !125)
!557 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !558, file: !492, line: 180)
!558 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint_fast64_t", file: !520, line: 75, baseType: !125)
!559 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !560, file: !492, line: 182)
!560 = !DIDerivedType(tag: DW_TAG_typedef, name: "intptr_t", file: !520, line: 87, baseType: !229)
!561 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !562, file: !492, line: 183)
!562 = !DIDerivedType(tag: DW_TAG_typedef, name: "uintptr_t", file: !520, line: 90, baseType: !125)
!563 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !564, file: !492, line: 185)
!564 = !DIDerivedType(tag: DW_TAG_typedef, name: "intmax_t", file: !520, line: 101, baseType: !565)
!565 = !DIDerivedType(tag: DW_TAG_typedef, name: "__intmax_t", file: !490, line: 72, baseType: !229)
!566 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !567, file: !492, line: 186)
!567 = !DIDerivedType(tag: DW_TAG_typedef, name: "uintmax_t", file: !520, line: 102, baseType: !568)
!568 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uintmax_t", file: !490, line: 73, baseType: !125)
!569 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !123, file: !570, line: 68)
!570 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/cstring", directory: "/home/modocache/Source")
!571 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !572, file: !570, line: 69)
!572 = !DISubprogram(name: "memcpy", scope: !573, file: !573, line: 42, type: !574, flags: DIFlagPrototyped, spFlags: 0)
!573 = !DIFile(filename: "/usr/include/string.h", directory: "")
!574 = !DISubroutineType(types: !575)
!575 = !{!18, !211, !216, !123}
!576 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !577, file: !570, line: 70)
!577 = !DISubprogram(name: "memmove", scope: !573, file: !573, line: 46, type: !578, flags: DIFlagPrototyped, spFlags: 0)
!578 = !DISubroutineType(types: !579)
!579 = !{!18, !18, !217, !123}
!580 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !581, file: !570, line: 71)
!581 = !DISubprogram(name: "strcpy", scope: !573, file: !573, line: 121, type: !582, flags: DIFlagPrototyped, spFlags: 0)
!582 = !DISubroutineType(types: !583)
!583 = !{!140, !139, !150}
!584 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !585, file: !570, line: 72)
!585 = !DISubprogram(name: "strncpy", scope: !573, file: !573, line: 124, type: !586, flags: DIFlagPrototyped, spFlags: 0)
!586 = !DISubroutineType(types: !587)
!587 = !{!140, !139, !150, !123}
!588 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !589, file: !570, line: 73)
!589 = !DISubprogram(name: "strcat", scope: !573, file: !573, line: 129, type: !582, flags: DIFlagPrototyped, spFlags: 0)
!590 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !591, file: !570, line: 74)
!591 = !DISubprogram(name: "strncat", scope: !573, file: !573, line: 132, type: !586, flags: DIFlagPrototyped, spFlags: 0)
!592 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !593, file: !570, line: 75)
!593 = !DISubprogram(name: "memcmp", scope: !573, file: !573, line: 63, type: !594, flags: DIFlagPrototyped, spFlags: 0)
!594 = !DISubroutineType(types: !595)
!595 = !{!130, !217, !217, !123}
!596 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !597, file: !570, line: 76)
!597 = !DISubprogram(name: "strcmp", scope: !573, file: !573, line: 136, type: !268, flags: DIFlagPrototyped, spFlags: 0)
!598 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !599, file: !570, line: 77)
!599 = !DISubprogram(name: "strncmp", scope: !573, file: !573, line: 139, type: !600, flags: DIFlagPrototyped, spFlags: 0)
!600 = !DISubroutineType(types: !601)
!601 = !{!130, !151, !151, !123}
!602 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !603, file: !570, line: 78)
!603 = !DISubprogram(name: "strcoll", scope: !573, file: !573, line: 143, type: !268, flags: DIFlagPrototyped, spFlags: 0)
!604 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !605, file: !570, line: 79)
!605 = !DISubprogram(name: "strxfrm", scope: !573, file: !573, line: 146, type: !606, flags: DIFlagPrototyped, spFlags: 0)
!606 = !DISubroutineType(types: !607)
!607 = !{!123, !139, !150, !123}
!608 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !609, file: !570, line: 80)
!609 = !DISubprogram(name: "memchr", linkageName: "_Z6memchrUa9enable_ifIXLb1EEEPvim", scope: !610, file: !610, line: 98, type: !611, flags: DIFlagPrototyped, spFlags: 0)
!610 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/string.h", directory: "/home/modocache/Source")
!611 = !DISubroutineType(types: !612)
!612 = !{!18, !18, !130, !123}
!613 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !614, file: !570, line: 81)
!614 = !DISubprogram(name: "strchr", linkageName: "_Z6strchrUa9enable_ifIXLb1EEEPci", scope: !610, file: !610, line: 77, type: !615, flags: DIFlagPrototyped, spFlags: 0)
!615 = !DISubroutineType(types: !616)
!616 = !{!140, !140, !130}
!617 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !618, file: !570, line: 82)
!618 = !DISubprogram(name: "strcspn", scope: !573, file: !573, line: 272, type: !619, flags: DIFlagPrototyped, spFlags: 0)
!619 = !DISubroutineType(types: !620)
!620 = !{!123, !151, !151}
!621 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !622, file: !570, line: 83)
!622 = !DISubprogram(name: "strpbrk", linkageName: "_Z7strpbrkUa9enable_ifIXLb1EEEPcPKc", scope: !610, file: !610, line: 84, type: !623, flags: DIFlagPrototyped, spFlags: 0)
!623 = !DISubroutineType(types: !624)
!624 = !{!140, !140, !151}
!625 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !626, file: !570, line: 84)
!626 = !DISubprogram(name: "strrchr", linkageName: "_Z7strrchrUa9enable_ifIXLb1EEEPci", scope: !610, file: !610, line: 91, type: !615, flags: DIFlagPrototyped, spFlags: 0)
!627 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !628, file: !570, line: 85)
!628 = !DISubprogram(name: "strspn", scope: !573, file: !573, line: 276, type: !619, flags: DIFlagPrototyped, spFlags: 0)
!629 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !630, file: !570, line: 86)
!630 = !DISubprogram(name: "strstr", linkageName: "_Z6strstrUa9enable_ifIXLb1EEEPcPKc", scope: !610, file: !610, line: 105, type: !623, flags: DIFlagPrototyped, spFlags: 0)
!631 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !632, file: !570, line: 88)
!632 = !DISubprogram(name: "strtok", scope: !573, file: !573, line: 335, type: !582, flags: DIFlagPrototyped, spFlags: 0)
!633 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !634, file: !570, line: 90)
!634 = !DISubprogram(name: "memset", scope: !573, file: !573, line: 60, type: !611, flags: DIFlagPrototyped, spFlags: 0)
!635 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !636, file: !570, line: 91)
!636 = !DISubprogram(name: "strerror", scope: !573, file: !573, line: 396, type: !637, flags: DIFlagPrototyped, spFlags: 0)
!637 = !DISubroutineType(types: !638)
!638 = !{!140, !130}
!639 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !110, entity: !640, file: !570, line: 92)
!640 = !DISubprogram(name: "strlen", scope: !573, file: !573, line: 384, type: !641, flags: DIFlagPrototyped, spFlags: 0)
!641 = !DISubroutineType(types: !642)
!642 = !{!123, !151}
!643 = !DIImportedEntity(tag: DW_TAG_imported_module, scope: !0, entity: !11, file: !5, line: 4)
!644 = !{i32 7, !"Dwarf Version", i32 4}
!645 = !{i32 2, !"Debug Info Version", i32 3}
!646 = !{i32 1, !"wchar_size", i32 4}
!647 = !{!"clang version 11.0.0 (https://github.com/llvm/llvm-project.git baafe82b07ade3fff4f2685199870b67083a17d5)"}
!648 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !5, file: !5, line: 23, type: !649, scopeLine: 23, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!649 = !DISubroutineType(types: !3)
!650 = !DILocation(line: 23, column: 12, scope: !648)
!651 = !DILocation(line: 23, column: 6, scope: !648)
!652 = !DILocalVariable(name: "__coro_gro", scope: !648, file: !5, line: 23, type: !4)
!653 = !DILocalVariable(name: "__promise", scope: !648, file: !5, line: 23, type: !654)
!654 = !DIDerivedType(tag: DW_TAG_typedef, name: "promise_type", scope: !655, file: !9, line: 79, baseType: !64)
!655 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__coroutine_traits_sfinae<coro, void>", scope: !10, file: !9, line: 76, size: 8, flags: DIFlagTypePassByValue, elements: !2, templateParams: !656, identifier: "_ZTSNSt12experimental13coroutines_v125__coroutine_traits_sfinaeI4corovEE")
!656 = !{!657, !658}
!657 = !DITemplateTypeParameter(name: "_Tp", type: !4)
!658 = !DITemplateTypeParameter(type: null)
!659 = !DILocalVariable(name: "i", scope: !660, file: !5, line: 24, type: !130)
!660 = distinct !DILexicalBlock(scope: !648, file: !5, line: 23, column: 12)
!661 = !DILocation(line: 0, scope: !660)
!662 = !DILocation(line: 24, column: 7, scope: !660)
!663 = !DILocation(line: 25, column: 3, scope: !660)
!664 = !DILocation(line: 26, column: 18, scope: !660)
!665 = !DILocation(line: 26, column: 3, scope: !660)
!666 = !DILocation(line: 31, column: 12, scope: !660)
!667 = !DILocation(line: 31, column: 3, scope: !660)
!668 = !DILocalVariable(name: "j", scope: !660, file: !5, line: 32, type: !130)
!669 = !DILocation(line: 32, column: 7, scope: !660)
!670 = !DILocation(line: 33, column: 3, scope: !660)
!671 = !DILocation(line: 34, column: 3, scope: !660)
!672 = !DILocation(line: 35, column: 22, scope: !660)
!673 = !DILocation(line: 35, column: 25, scope: !660)
!674 = !DILocation(line: 35, column: 3, scope: !660)
!675 = !DILocation(line: 42, column: 12, scope: !660)
!676 = !DILocation(line: 42, column: 3, scope: !660)
!677 = !DILocation(line: 43, column: 3, scope: !660)
!678 = !DILocation(line: 44, column: 3, scope: !660)
!679 = !DILocation(line: 45, column: 22, scope: !660)
!680 = !DILocation(line: 45, column: 25, scope: !660)
!681 = !DILocation(line: 45, column: 3, scope: !660)
!682 = distinct !DISubprogram(name: "get_return_object", linkageName: "_ZN4coro12promise_type17get_return_objectEv", scope: !64, file: !5, line: 8, type: !67, scopeLine: 8, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !66, retainedNodes: !2)
!683 = !DILocalVariable(name: "this", arg: 1, scope: !682, type: !684, flags: DIFlagArtificial | DIFlagObjectPointer)
!684 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !64, size: 64)
!685 = !DILocation(line: 0, scope: !682)
!686 = !DILocalVariable(name: "handle", scope: !682, file: !5, line: 9, type: !8)
!687 = !DILocation(line: 9, column: 12, scope: !682)
!688 = !DILocation(line: 9, column: 21, scope: !682)
!689 = !DILocation(line: 10, column: 19, scope: !682)
!690 = !DILocation(line: 10, column: 14, scope: !682)
!691 = !DILocation(line: 10, column: 7, scope: !682)
!692 = distinct !DISubprogram(name: "initial_suspend", linkageName: "_ZN4coro12promise_type15initial_suspendEv", scope: !64, file: !5, line: 12, type: !71, scopeLine: 12, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !70, retainedNodes: !2)
!693 = !DILocalVariable(name: "this", arg: 1, scope: !692, type: !684, flags: DIFlagArtificial | DIFlagObjectPointer)
!694 = !DILocation(line: 0, scope: !692)
!695 = !DILocation(line: 12, column: 39, scope: !692)
!696 = distinct !DISubprogram(name: "await_ready", linkageName: "_ZNKSt12experimental13coroutines_v113suspend_never11await_readyEv", scope: !73, file: !9, line: 302, type: !76, scopeLine: 302, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !75, retainedNodes: !2)
!697 = !DILocalVariable(name: "this", arg: 1, scope: !696, type: !698, flags: DIFlagArtificial | DIFlagObjectPointer)
!698 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !79, size: 64)
!699 = !DILocation(line: 0, scope: !696)
!700 = !DILocation(line: 302, column: 40, scope: !696)
!701 = distinct !DISubprogram(name: "await_suspend", linkageName: "_ZNKSt12experimental13coroutines_v113suspend_never13await_suspendENS0_16coroutine_handleIvEE", scope: !73, file: !9, line: 304, type: !81, scopeLine: 304, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !80, retainedNodes: !2)
!702 = !DILocalVariable(name: "this", arg: 1, scope: !701, type: !698, flags: DIFlagArtificial | DIFlagObjectPointer)
!703 = !DILocation(line: 0, scope: !701)
!704 = !DILocalVariable(arg: 2, scope: !701, file: !9, line: 304, type: !15)
!705 = !DILocation(line: 304, column: 40, scope: !701)
!706 = !DILocation(line: 304, column: 59, scope: !701)
!707 = distinct !DISubprogram(name: "from_address", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_addressEPv", scope: !8, file: !9, line: 220, type: !94, scopeLine: 220, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !93, retainedNodes: !2)
!708 = !DILocalVariable(name: "__addr", arg: 1, scope: !707, file: !9, line: 220, type: !18)
!709 = !DILocation(line: 220, column: 48, scope: !707)
!710 = !DILocalVariable(name: "__tmp", scope: !707, file: !9, line: 221, type: !8)
!711 = !DILocation(line: 221, column: 26, scope: !707)
!712 = !DILocation(line: 222, column: 27, scope: !707)
!713 = !DILocation(line: 222, column: 9, scope: !707)
!714 = !DILocation(line: 222, column: 15, scope: !707)
!715 = !DILocation(line: 222, column: 25, scope: !707)
!716 = !DILocation(line: 223, column: 9, scope: !707)
!717 = distinct !DISubprogram(name: "await_resume", linkageName: "_ZNKSt12experimental13coroutines_v113suspend_never12await_resumeEv", scope: !73, file: !9, line: 306, type: !84, scopeLine: 306, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !83, retainedNodes: !2)
!718 = !DILocalVariable(name: "this", arg: 1, scope: !717, type: !698, flags: DIFlagArtificial | DIFlagObjectPointer)
!719 = !DILocation(line: 0, scope: !717)
!720 = !DILocation(line: 306, column: 40, scope: !717)
!721 = distinct !DISubprogram(name: "await_ready", linkageName: "_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv", scope: !722, file: !9, line: 311, type: !725, scopeLine: 311, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !724, retainedNodes: !2)
!722 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "suspend_always", scope: !10, file: !9, line: 309, size: 8, flags: DIFlagTypePassByValue, elements: !723, identifier: "_ZTSNSt12experimental13coroutines_v114suspend_alwaysE")
!723 = !{!724, !729, !732}
!724 = !DISubprogram(name: "await_ready", linkageName: "_ZNKSt12experimental13coroutines_v114suspend_always11await_readyEv", scope: !722, file: !9, line: 311, type: !725, scopeLine: 311, flags: DIFlagPrototyped, spFlags: 0)
!725 = !DISubroutineType(types: !726)
!726 = !{!41, !727}
!727 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !728, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
!728 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !722)
!729 = !DISubprogram(name: "await_suspend", linkageName: "_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE", scope: !722, file: !9, line: 313, type: !730, scopeLine: 313, flags: DIFlagPrototyped, spFlags: 0)
!730 = !DISubroutineType(types: !731)
!731 = !{null, !727, !15}
!732 = !DISubprogram(name: "await_resume", linkageName: "_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv", scope: !722, file: !9, line: 315, type: !733, scopeLine: 315, flags: DIFlagPrototyped, spFlags: 0)
!733 = !DISubroutineType(types: !734)
!734 = !{null, !727}
!735 = !DILocalVariable(name: "this", arg: 1, scope: !721, type: !736, flags: DIFlagArtificial | DIFlagObjectPointer)
!736 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !728, size: 64)
!737 = !DILocation(line: 0, scope: !721)
!738 = !DILocation(line: 311, column: 40, scope: !721)
!739 = distinct !DISubprogram(name: "await_suspend", linkageName: "_ZNKSt12experimental13coroutines_v114suspend_always13await_suspendENS0_16coroutine_handleIvEE", scope: !722, file: !9, line: 313, type: !730, scopeLine: 313, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !729, retainedNodes: !2)
!740 = !DILocalVariable(name: "this", arg: 1, scope: !739, type: !736, flags: DIFlagArtificial | DIFlagObjectPointer)
!741 = !DILocation(line: 0, scope: !739)
!742 = !DILocalVariable(arg: 2, scope: !739, file: !9, line: 313, type: !15)
!743 = !DILocation(line: 313, column: 40, scope: !739)
!744 = !DILocation(line: 313, column: 59, scope: !739)
!745 = distinct !DISubprogram(name: "await_resume", linkageName: "_ZNKSt12experimental13coroutines_v114suspend_always12await_resumeEv", scope: !722, file: !9, line: 315, type: !733, scopeLine: 315, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !732, retainedNodes: !2)
!746 = !DILocalVariable(name: "this", arg: 1, scope: !745, type: !736, flags: DIFlagArtificial | DIFlagObjectPointer)
!747 = !DILocation(line: 0, scope: !745)
!748 = !DILocation(line: 315, column: 40, scope: !745)
!749 = distinct !DISubprogram(name: "return_void", linkageName: "_ZN4coro12promise_type11return_voidEv", scope: !64, file: !5, line: 14, type: !88, scopeLine: 14, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !87, retainedNodes: !2)
!750 = !DILocalVariable(name: "this", arg: 1, scope: !749, type: !684, flags: DIFlagArtificial | DIFlagObjectPointer)
!751 = !DILocation(line: 0, scope: !749)
!752 = !DILocation(line: 14, column: 25, scope: !749)
!753 = distinct !DISubprogram(name: "final_suspend", linkageName: "_ZN4coro12promise_type13final_suspendEv", scope: !64, file: !5, line: 13, type: !71, scopeLine: 13, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !86, retainedNodes: !2)
!754 = !DILocalVariable(name: "this", arg: 1, scope: !753, type: !684, flags: DIFlagArtificial | DIFlagObjectPointer)
!755 = !DILocation(line: 0, scope: !753)
!756 = !DILocation(line: 13, column: 37, scope: !753)
!757 = distinct !DISubprogram(name: "main", scope: !5, file: !5, line: 53, type: !280, scopeLine: 53, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!758 = !DILocalVariable(name: "c", scope: !757, file: !5, line: 54, type: !4)
!759 = !DILocation(line: 54, column: 8, scope: !757)
!760 = !DILocation(line: 54, column: 12, scope: !757)
!761 = !DILocation(line: 55, column: 5, scope: !757)
!762 = !DILocation(line: 55, column: 3, scope: !757)
!763 = !DILocation(line: 55, column: 12, scope: !757)
!764 = !DILocation(line: 56, column: 5, scope: !757)
!765 = !DILocation(line: 56, column: 3, scope: !757)
!766 = !DILocation(line: 56, column: 12, scope: !757)
!767 = !DILocation(line: 57, column: 1, scope: !757)
!768 = distinct !DISubprogram(name: "resume", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvE6resumeEv", scope: !15, file: !9, line: 116, type: !20, scopeLine: 116, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !43, retainedNodes: !2)
!769 = !DILocalVariable(name: "this", arg: 1, scope: !768, type: !770, flags: DIFlagArtificial | DIFlagObjectPointer)
!770 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !15, size: 64)
!771 = !DILocation(line: 0, scope: !768)
!772 = !DILocation(line: 121, column: 29, scope: !768)
!773 = !DILocation(line: 121, column: 7, scope: !768)
!774 = !DILocation(line: 122, column: 5, scope: !768)
!775 = distinct !DISubprogram(name: "from_promise", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEE12from_promiseERS3_", scope: !8, file: !9, line: 250, type: !100, scopeLine: 250, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !99, retainedNodes: !2)
!776 = !DILocalVariable(name: "__promise", arg: 1, scope: !775, file: !9, line: 250, type: !63)
!777 = !DILocation(line: 250, column: 52, scope: !775)
!778 = !DILocalVariable(name: "__tmp", scope: !775, file: !9, line: 252, type: !8)
!779 = !DILocation(line: 252, column: 26, scope: !775)
!780 = !DILocation(line: 254, column: 55, scope: !775)
!781 = !DILocation(line: 254, column: 13, scope: !775)
!782 = !DILocation(line: 253, column: 27, scope: !775)
!783 = !DILocation(line: 253, column: 9, scope: !775)
!784 = !DILocation(line: 253, column: 15, scope: !775)
!785 = !DILocation(line: 253, column: 25, scope: !775)
!786 = !DILocation(line: 256, column: 9, scope: !775)
!787 = distinct !DISubprogram(name: "coro", linkageName: "_ZN4coroC2ENSt12experimental13coroutines_v116coroutine_handleINS_12promise_typeEEE", scope: !4, file: !5, line: 19, type: !105, scopeLine: 20, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !104, retainedNodes: !2)
!788 = !DILocalVariable(name: "this", arg: 1, scope: !787, type: !789, flags: DIFlagArtificial | DIFlagObjectPointer)
!789 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64)
!790 = !DILocation(line: 0, scope: !787)
!791 = !DILocalVariable(name: "handle", arg: 2, scope: !787, file: !5, line: 19, type: !8)
!792 = !DILocation(line: 19, column: 39, scope: !787)
!793 = !DILocation(line: 20, column: 9, scope: !787)
!794 = !DILocation(line: 20, column: 25, scope: !787)
!795 = distinct !DISubprogram(name: "coroutine_handle", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIN4coro12promise_typeEEC2Ev", scope: !8, file: !9, line: 196, type: !796, scopeLine: 196, flags: DIFlagArtificial | DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !798, retainedNodes: !2)
!796 = !DISubroutineType(types: !797)
!797 = !{null, !59}
!798 = !DISubprogram(name: "coroutine_handle", scope: !8, type: !796, flags: DIFlagPublic | DIFlagArtificial | DIFlagPrototyped, spFlags: 0)
!799 = !DILocalVariable(name: "this", arg: 1, scope: !795, type: !800, flags: DIFlagArtificial | DIFlagObjectPointer)
!800 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64)
!801 = !DILocation(line: 0, scope: !795)
!802 = !DILocation(line: 196, column: 28, scope: !795)
!803 = distinct !DISubprogram(name: "addressof<coro::promise_type>", linkageName: "_ZNSt3__19addressofIN4coro12promise_typeEEEPT_RS3_", scope: !110, file: !804, line: 591, type: !805, scopeLine: 592, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, templateParams: !807, retainedNodes: !2)
!804 = !DIFile(filename: "llvm/git/dev/llvm-project/build/bin/../include/c++/v1/type_traits", directory: "/home/modocache/Source")
!805 = !DISubroutineType(types: !806)
!806 = !{!684, !63}
!807 = !{!808}
!808 = !DITemplateTypeParameter(name: "_Tp", type: !64)
!809 = !DILocalVariable(name: "__x", arg: 1, scope: !803, file: !804, line: 591, type: !63)
!810 = !DILocation(line: 591, column: 16, scope: !803)
!811 = !DILocation(line: 593, column: 32, scope: !803)
!812 = !DILocation(line: 593, column: 5, scope: !803)
!813 = distinct !DISubprogram(name: "coroutine_handle", linkageName: "_ZNSt12experimental13coroutines_v116coroutine_handleIvEC2Ev", scope: !15, file: !9, line: 95, type: !20, scopeLine: 95, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, declaration: !19, retainedNodes: !2)
!814 = !DILocalVariable(name: "this", arg: 1, scope: !813, type: !770, flags: DIFlagArtificial | DIFlagObjectPointer)
!815 = !DILocation(line: 0, scope: !813)
!816 = !DILocation(line: 95, column: 54, scope: !813)
!817 = !DILocation(line: 95, column: 74, scope: !813)
!818 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !5, file: !5, line: 23, type: !649, scopeLine: 23, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!819 = !DILocation(line: 23, column: 12, scope: !818)
!820 = !DILocation(line: 23, column: 6, scope: !818)
!821 = !DILocalVariable(name: "i", scope: !822, file: !5, line: 24, type: !130)
!822 = distinct !DILexicalBlock(scope: !818, file: !5, line: 23, column: 12)
!823 = !DILocation(line: 0, scope: !822)
!824 = !DILocation(line: 24, column: 7, scope: !822)
!825 = !DILocation(line: 25, column: 3, scope: !822)
!826 = !DILocation(line: 26, column: 18, scope: !822)
!827 = !DILocation(line: 26, column: 3, scope: !822)
!828 = !DILocation(line: 31, column: 12, scope: !822)
!829 = !DILocation(line: 31, column: 3, scope: !822)
!830 = !DILocalVariable(name: "j", scope: !822, file: !5, line: 32, type: !130)
!831 = !DILocation(line: 32, column: 7, scope: !822)
!832 = !DILocation(line: 33, column: 3, scope: !822)
!833 = !DILocation(line: 34, column: 3, scope: !822)
!834 = !DILocation(line: 35, column: 22, scope: !822)
!835 = !DILocation(line: 35, column: 25, scope: !822)
!836 = !DILocation(line: 35, column: 3, scope: !822)
!837 = !DILocation(line: 42, column: 12, scope: !822)
!838 = !DILocation(line: 42, column: 3, scope: !822)
!839 = !DILocation(line: 43, column: 3, scope: !822)
!840 = !DILocation(line: 44, column: 3, scope: !822)
!841 = !DILocation(line: 45, column: 22, scope: !822)
!842 = !DILocation(line: 45, column: 25, scope: !822)
!843 = !DILocation(line: 45, column: 3, scope: !822)
!844 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !5, file: !5, line: 23, type: !649, scopeLine: 23, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!845 = !DILocation(line: 23, column: 12, scope: !844)
!846 = !DILocation(line: 23, column: 6, scope: !844)
!847 = !DILocalVariable(name: "i", scope: !848, file: !5, line: 24, type: !130)
!848 = distinct !DILexicalBlock(scope: !844, file: !5, line: 23, column: 12)
!849 = !DILocation(line: 0, scope: !848)
!850 = !DILocation(line: 24, column: 7, scope: !848)
!851 = !DILocation(line: 25, column: 3, scope: !848)
!852 = !DILocation(line: 26, column: 18, scope: !848)
!853 = !DILocation(line: 26, column: 3, scope: !848)
!854 = !DILocation(line: 31, column: 12, scope: !848)
!855 = !DILocation(line: 31, column: 3, scope: !848)
!856 = !DILocalVariable(name: "j", scope: !848, file: !5, line: 32, type: !130)
!857 = !DILocation(line: 32, column: 7, scope: !848)
!858 = !DILocation(line: 33, column: 3, scope: !848)
!859 = !DILocation(line: 34, column: 3, scope: !848)
!860 = !DILocation(line: 35, column: 22, scope: !848)
!861 = !DILocation(line: 35, column: 25, scope: !848)
!862 = !DILocation(line: 35, column: 3, scope: !848)
!863 = !DILocation(line: 42, column: 12, scope: !848)
!864 = !DILocation(line: 42, column: 3, scope: !848)
!865 = !DILocation(line: 43, column: 3, scope: !848)
!866 = !DILocation(line: 44, column: 3, scope: !848)
!867 = !DILocation(line: 45, column: 22, scope: !848)
!868 = !DILocation(line: 45, column: 25, scope: !848)
!869 = !DILocation(line: 45, column: 3, scope: !848)
!870 = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: !5, file: !5, line: 23, type: !649, scopeLine: 23, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!871 = !DILocation(line: 23, column: 12, scope: !870)
!872 = !DILocation(line: 23, column: 6, scope: !870)
!873 = !DILocalVariable(name: "i", scope: !874, file: !5, line: 24, type: !130)
!874 = distinct !DILexicalBlock(scope: !870, file: !5, line: 23, column: 12)
!875 = !DILocation(line: 0, scope: !874)
!876 = !DILocation(line: 24, column: 7, scope: !874)
!877 = !DILocation(line: 25, column: 3, scope: !874)
!878 = !DILocation(line: 26, column: 18, scope: !874)
!879 = !DILocation(line: 26, column: 3, scope: !874)
!880 = !DILocation(line: 31, column: 12, scope: !874)
!881 = !DILocation(line: 31, column: 3, scope: !874)
!882 = !DILocalVariable(name: "j", scope: !874, file: !5, line: 32, type: !130)
!883 = !DILocation(line: 32, column: 7, scope: !874)
!884 = !DILocation(line: 33, column: 3, scope: !874)
!885 = !DILocation(line: 34, column: 3, scope: !874)
!886 = !DILocation(line: 35, column: 22, scope: !874)
!887 = !DILocation(line: 35, column: 25, scope: !874)
!888 = !DILocation(line: 35, column: 3, scope: !874)
!889 = !DILocation(line: 42, column: 12, scope: !874)
!890 = !DILocation(line: 42, column: 3, scope: !874)
!891 = !DILocation(line: 43, column: 3, scope: !874)
!892 = !DILocation(line: 44, column: 3, scope: !874)
!893 = !DILocation(line: 45, column: 22, scope: !874)
!894 = !DILocation(line: 45, column: 25, scope: !874)
!895 = !DILocation(line: 45, column: 3, scope: !874)
# The clang++, llvm-dwarfdump, and libc++ being used here were build from llvm-project trunk.
# LLVM IR
clang++ \
-std=c++2a -stdlib=libc++ -g -fno-cxx-exceptions \
-c -Xclang -emit-llvm \
test.cpp -o ~/Source/tmp/corodebug/test.ll
# Executable
clang++ \
-std=c++2a -stdlib=libc++ -g -fno-cxx-exceptions \
test.cpp -o test
# DWARF dump
llvm-dwarfdump test -o test.dwarfdump.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment