(module
 (type $0 (func))
 (type $1 (func (param i32) (result i32)))
 (type $2 (func (result i32)))
 (type $3 (func (param i32 i32) (result i32)))
 (import "env" "memory" (memory $mimport$0 256 256))
 (import "env" "__indirect_function_table" (table $timport$0 1 funcref))
 (global $global$0 (mut i32) (i32.const 5244064))
 (global $global$1 i32 (i32.const 1172))
 (data $0 (i32.const 1024) "\nvoid used(int x) {\n  x++;\n  x--;\n  return x;\n}\n\nvoid unused(int x) {\n  x >>= 1;\n  x <<= 1;\n  return x;\n}\n\nint main() {\n  return used(42);\n}\n\00")
 (data $1 (i32.const 1168) "\00\04\00\00")
 (export "__wasm_call_ctors" (func $__wasm_call_ctors))
 (export "main" (func $main))
 (export "__data_end" (global $global$1))
 (func $__wasm_call_ctors
 )
 (func $used\28int\29 (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  ;; code offset: 0xe
  (local.set $1
   ;; code offset: 0x8
   (global.get $global$0)
  )
  ;; code offset: 0x12
  (local.set $2
   ;; code offset: 0x10
   (i32.const 16)
  )
  ;; code offset: 0x19
  (local.set $3
   ;; code offset: 0x18
   (i32.sub
    ;; code offset: 0x14
    (local.get $1)
    ;; code offset: 0x16
    (local.get $2)
   )
  )
  ;; code offset: 0x1f
  (i32.store offset=12
   ;; code offset: 0x1b
   (local.get $3)
   ;; code offset: 0x1d
   (local.get $0)
  )
  ;; code offset: 0x27
  (local.set $4
   ;; code offset: 0x24
   (i32.load offset=12
    ;; code offset: 0x22
    (local.get $3)
   )
  )
  ;; code offset: 0x2b
  (local.set $5
   ;; code offset: 0x29
   (i32.const 1)
  )
  ;; code offset: 0x32
  (local.set $6
   ;; code offset: 0x31
   (i32.add
    ;; code offset: 0x2d
    (local.get $4)
    ;; code offset: 0x2f
    (local.get $5)
   )
  )
  ;; code offset: 0x38
  (i32.store offset=12
   ;; code offset: 0x34
   (local.get $3)
   ;; code offset: 0x36
   (local.get $6)
  )
  ;; code offset: 0x40
  (local.set $7
   ;; code offset: 0x3d
   (i32.load offset=12
    ;; code offset: 0x3b
    (local.get $3)
   )
  )
  ;; code offset: 0x44
  (local.set $8
   ;; code offset: 0x42
   (i32.const -1)
  )
  ;; code offset: 0x4b
  (local.set $9
   ;; code offset: 0x4a
   (i32.add
    ;; code offset: 0x46
    (local.get $7)
    ;; code offset: 0x48
    (local.get $8)
   )
  )
  ;; code offset: 0x51
  (i32.store offset=12
   ;; code offset: 0x4d
   (local.get $3)
   ;; code offset: 0x4f
   (local.get $9)
  )
  ;; code offset: 0x59
  (local.set $10
   ;; code offset: 0x56
   (i32.load offset=12
    ;; code offset: 0x54
    (local.get $3)
   )
  )
  ;; code offset: 0x5d
  (return
   ;; code offset: 0x5b
   (local.get $10)
  )
 )
 (func $__original_main (result i32)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  ;; code offset: 0x69
  (local.set $0
   ;; code offset: 0x63
   (global.get $global$0)
  )
  ;; code offset: 0x6d
  (local.set $1
   ;; code offset: 0x6b
   (i32.const 16)
  )
  ;; code offset: 0x74
  (local.set $2
   ;; code offset: 0x73
   (i32.sub
    ;; code offset: 0x6f
    (local.get $0)
    ;; code offset: 0x71
    (local.get $1)
   )
  )
  ;; code offset: 0x78
  (global.set $global$0
   ;; code offset: 0x76
   (local.get $2)
  )
  ;; code offset: 0x80
  (local.set $3
   ;; code offset: 0x7e
   (i32.const 42)
  )
  ;; code offset: 0x84
  (local.set $4
   ;; code offset: 0x82
   (i32.const 0)
  )
  ;; code offset: 0x8a
  (i32.store offset=12
   ;; code offset: 0x86
   (local.get $2)
   ;; code offset: 0x88
   (local.get $4)
  )
  ;; code offset: 0x95
  (local.set $5
   ;; code offset: 0x8f
   (call $used\28int\29
    ;; code offset: 0x8d
    (local.get $3)
   )
  )
  ;; code offset: 0x99
  (local.set $6
   ;; code offset: 0x97
   (i32.const 0)
  )
  ;; code offset: 0xa4
  (local.set $7
   ;; code offset: 0x9d
   (i32.load offset=1168
    ;; code offset: 0x9b
    (local.get $6)
   )
  )
  ;; code offset: 0xab
  (local.set $8
   ;; code offset: 0xaa
   (i32.add
    ;; code offset: 0xa6
    (local.get $5)
    ;; code offset: 0xa8
    (local.get $7)
   )
  )
  ;; code offset: 0xaf
  (local.set $9
   ;; code offset: 0xad
   (i32.const 16)
  )
  ;; code offset: 0xb6
  (local.set $10
   ;; code offset: 0xb5
   (i32.add
    ;; code offset: 0xb1
    (local.get $2)
    ;; code offset: 0xb3
    (local.get $9)
   )
  )
  ;; code offset: 0xba
  (global.set $global$0
   ;; code offset: 0xb8
   (local.get $10)
  )
  ;; code offset: 0xc2
  (return
   ;; code offset: 0xc0
   (local.get $8)
  )
 )
 (func $main (param $0 i32) (param $1 i32) (result i32)
  (local $2 i32)
  ;; code offset: 0xce
  (local.set $2
   ;; code offset: 0xc8
   (call $__original_main)
  )
  ;; code offset: 0xd2
  (return
   ;; code offset: 0xd0
   (local.get $2)
  )
 )
 ;; custom section ".debug_info", size 175
 ;; custom section ".debug_ranges", size 32
 ;; custom section ".debug_abbrev", size 117
 ;; custom section ".debug_line", size 128
 ;; custom section ".debug_str", size 235
 ;; custom section "producers", size 180
)
DWARF debug info
================

Contains section .debug_info (175 bytes)
Contains section .debug_ranges (32 bytes)
Contains section .debug_abbrev (117 bytes)
Contains section .debug_line (128 bytes)
Contains section .debug_str (235 bytes)

.debug_abbrev contents:
Abbrev table for offset: 0x00000000
[1] DW_TAG_compile_unit	DW_CHILDREN_yes
	DW_AT_producer	DW_FORM_strp
	DW_AT_language	DW_FORM_data2
	DW_AT_name	DW_FORM_strp
	DW_AT_stmt_list	DW_FORM_sec_offset
	DW_AT_comp_dir	DW_FORM_strp
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_ranges	DW_FORM_sec_offset

[2] DW_TAG_variable	DW_CHILDREN_no
	DW_AT_name	DW_FORM_strp
	DW_AT_type	DW_FORM_ref4
	DW_AT_external	DW_FORM_flag_present
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_location	DW_FORM_exprloc

[3] DW_TAG_pointer_type	DW_CHILDREN_no
	DW_AT_type	DW_FORM_ref4

[4] DW_TAG_const_type	DW_CHILDREN_no
	DW_AT_type	DW_FORM_ref4

[5] DW_TAG_base_type	DW_CHILDREN_no
	DW_AT_name	DW_FORM_strp
	DW_AT_encoding	DW_FORM_data1
	DW_AT_byte_size	DW_FORM_data1

[6] DW_TAG_subprogram	DW_CHILDREN_yes
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_high_pc	DW_FORM_data4
	DW_AT_linkage_name	DW_FORM_strp
	DW_AT_name	DW_FORM_strp
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_type	DW_FORM_ref4
	DW_AT_external	DW_FORM_flag_present

[7] DW_TAG_formal_parameter	DW_CHILDREN_no
	DW_AT_location	DW_FORM_exprloc
	DW_AT_name	DW_FORM_strp
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_type	DW_FORM_ref4

[8] DW_TAG_subprogram	DW_CHILDREN_no
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_high_pc	DW_FORM_data4
	DW_AT_name	DW_FORM_strp
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_type	DW_FORM_ref4
	DW_AT_external	DW_FORM_flag_present


.debug_info contents:
0x00000000: Compile Unit: length = 0x000000ab version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x000000af)

0x0000000b: DW_TAG_compile_unit [1] *
              DW_AT_producer [DW_FORM_strp]	( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project f39277c1d370ccbbec2e20a20375ee6fb7281ae4)")
              DW_AT_language [DW_FORM_data2]	(DW_LANG_C_plus_plus)
              DW_AT_name [DW_FORM_strp]	( .debug_str[0x00000095] = "a.cpp")
              DW_AT_stmt_list [DW_FORM_sec_offset]	(0x00000000)
              DW_AT_comp_dir [DW_FORM_strp]	( .debug_str[0x0000009b] = "/home/alon/Dev/emscripten")
              DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)
              DW_AT_ranges [DW_FORM_sec_offset]	(0x00000000
                 [0x00000005, 0x0000005f))

0x00000026:   DW_TAG_variable [2]  
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000b5] = "quine")
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0037 => {0x00000037} "const char*")
                DW_AT_external [DW_FORM_flag_present]	(true)
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(2)
                DW_AT_location [DW_FORM_exprloc]	(DW_OP_addr 0x490)

0x00000037:   DW_TAG_pointer_type [3]  
                DW_AT_type [DW_FORM_ref4]	(cu + 0x003c => {0x0000003c} "const char")

0x0000003c:   DW_TAG_const_type [4]  
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0041 => {0x00000041} "char")

0x00000041:   DW_TAG_base_type [5]  
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000bb] = "char")
                DW_AT_encoding [DW_FORM_data1]	(DW_ATE_signed_char)
                DW_AT_byte_size [DW_FORM_data1]	(0x01)

0x00000048:   DW_TAG_base_type [5]  
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000c0] = "int")
                DW_AT_encoding [DW_FORM_data1]	(DW_ATE_signed)
                DW_AT_byte_size [DW_FORM_data1]	(0x04)

0x0000004f:   DW_TAG_subprogram [6] *
                DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000005)
                DW_AT_high_pc [DW_FORM_data4]	(0x0000005a)
                DW_AT_linkage_name [DW_FORM_strp]	( .debug_str[0x000000c4] = "_Z4usedi")
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000cd] = "used")
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(4)
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")
                DW_AT_external [DW_FORM_flag_present]	(true)

0x00000066:     DW_TAG_formal_parameter [7]  
                  DW_AT_location [DW_FORM_exprloc]	(DW_OP_plus_uconst 0xc)
                  DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000e9] = "x")
                  DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                  DW_AT_decl_line [DW_FORM_data1]	(4)
                  DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")

0x00000074:     NULL

0x00000075:   DW_TAG_subprogram [6] *
                DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)
                DW_AT_high_pc [DW_FORM_data4]	(0x0000005a)
                DW_AT_linkage_name [DW_FORM_strp]	( .debug_str[0x000000d2] = "_Z6unusedi")
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000dd] = "unused")
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(10)
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")
                DW_AT_external [DW_FORM_flag_present]	(true)

0x0000008c:     DW_TAG_formal_parameter [7]  
                  DW_AT_location [DW_FORM_exprloc]	(DW_OP_plus_uconst 0xc)
                  DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000e9] = "x")
                  DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                  DW_AT_decl_line [DW_FORM_data1]	(10)
                  DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")

0x0000009a:     NULL

0x0000009b:   DW_TAG_subprogram [8]  
                DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000060)
                DW_AT_high_pc [DW_FORM_data4]	(0x00000064)
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000e4] = "main")
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(16)
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")
                DW_AT_external [DW_FORM_flag_present]	(true)

0x000000ae:   NULL

.debug_line contents:
debug_line[0x00000000]
Line table prologue:
    total_length: 0x0000007c
         version: 4
 prologue_length: 0x0000001d
 min_inst_length: 1
max_ops_per_inst: 1
 default_is_stmt: 1
       line_base: -5
      line_range: 14
     opcode_base: 13
standard_opcode_lengths[DW_LNS_copy] = 0
standard_opcode_lengths[DW_LNS_advance_pc] = 1
standard_opcode_lengths[DW_LNS_advance_line] = 1
standard_opcode_lengths[DW_LNS_set_file] = 1
standard_opcode_lengths[DW_LNS_set_column] = 1
standard_opcode_lengths[DW_LNS_negate_stmt] = 0
standard_opcode_lengths[DW_LNS_set_basic_block] = 0
standard_opcode_lengths[DW_LNS_const_add_pc] = 0
standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
standard_opcode_lengths[DW_LNS_set_isa] = 1
file_names[  1]:
           name: "a.cpp"
      dir_index: 0
       mod_time: 0x00000000
         length: 0x00000000
0x00000027: 00 DW_LNE_set_address (0x0000000000000005)
0x0000002e: 15 address += 0,  line += 3
            0x0000000000000005      4      0      1   0             0  is_stmt

0x0000002f: 05 DW_LNS_set_column (4)
0x00000031: 0a DW_LNS_set_prologue_end
0x00000032: 08 DW_LNS_const_add_pc (0x0000000000000011)
0x00000033: bb address += 12,  line += 1
            0x0000000000000022      5      4      1   0             0  is_stmt prologue_end

0x00000034: 08 DW_LNS_const_add_pc (0x0000000000000011)
0x00000035: 83 address += 8,  line += 1
            0x000000000000003b      6      4      1   0             0  is_stmt

0x00000036: 05 DW_LNS_set_column (10)
0x00000038: 08 DW_LNS_const_add_pc (0x0000000000000011)
0x00000039: 83 address += 8,  line += 1
            0x0000000000000054      7     10      1   0             0  is_stmt

0x0000003a: 05 DW_LNS_set_column (3)
0x0000003c: 06 DW_LNS_negate_stmt
0x0000003d: 74 address += 7,  line += 0
            0x000000000000005b      7      3      1   0             0 

0x0000003e: 02 DW_LNS_advance_pc (4)
0x00000040: 00 DW_LNE_end_sequence
            0x000000000000005f      7      3      1   0             0  end_sequence

0x00000043: 00 DW_LNE_set_address (0x0000000000000000)
0x0000004a: 03 DW_LNS_advance_line (10)
0x0000004c: 01 DW_LNS_copy
            0x0000000000000000     10      0      1   0             0  is_stmt


0x0000004d: 05 DW_LNS_set_column (5)
0x0000004f: 0a DW_LNS_set_prologue_end
0x00000050: 08 DW_LNS_const_add_pc (0x0000000000000011)
0x00000051: bb address += 12,  line += 1
            0x000000000000001d     11      5      1   0             0  is_stmt prologue_end

0x00000052: 08 DW_LNS_const_add_pc (0x0000000000000011)
0x00000053: 83 address += 8,  line += 1
            0x0000000000000036     12      5      1   0             0  is_stmt

0x00000054: 05 DW_LNS_set_column (10)
0x00000056: 08 DW_LNS_const_add_pc (0x0000000000000011)
0x00000057: 83 address += 8,  line += 1
            0x000000000000004f     13     10      1   0             0  is_stmt

0x00000058: 05 DW_LNS_set_column (3)
0x0000005a: 06 DW_LNS_negate_stmt
0x0000005b: 74 address += 7,  line += 0
            0x0000000000000056     13      3      1   0             0 

0x0000005c: 02 DW_LNS_advance_pc (4)
0x0000005e: 00 DW_LNE_end_sequence
            0x000000000000005a     13      3      1   0             0  end_sequence

0x00000061: 00 DW_LNE_set_address (0x0000000000000060)
0x00000068: 03 DW_LNS_advance_line (16)
0x0000006a: 01 DW_LNS_copy
            0x0000000000000060     16      0      1   0             0  is_stmt


0x0000006b: 05 DW_LNS_set_column (10)
0x0000006d: 0a DW_LNS_set_prologue_end
0x0000006e: 02 DW_LNS_advance_pc (45)
0x00000070: 13 address += 0,  line += 1
            0x000000000000008d     17     10      1   0             0  is_stmt prologue_end

0x00000071: 05 DW_LNS_set_column (25)
0x00000073: 06 DW_LNS_negate_stmt
0x00000074: 9e address += 10,  line += 0
            0x0000000000000097     17     25      1   0             0 

0x00000075: 05 DW_LNS_set_column (19)
0x00000077: e4 address += 15,  line += 0
            0x00000000000000a6     17     19      1   0             0 

0x00000078: 05 DW_LNS_set_column (3)
0x0000007a: 74 address += 7,  line += 0
            0x00000000000000ad     17      3      1   0             0 

0x0000007b: 02 DW_LNS_advance_pc (23)
0x0000007d: 00 DW_LNE_end_sequence
            0x00000000000000c4     17      3      1   0             0  end_sequence


.debug_str contents:
0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project f39277c1d370ccbbec2e20a20375ee6fb7281ae4)"
0x00000095: "a.cpp"
0x0000009b: "/home/alon/Dev/emscripten"
0x000000b5: "quine"
0x000000bb: "char"
0x000000c0: "int"
0x000000c4: "_Z4usedi"
0x000000cd: "used"
0x000000d2: "_Z6unusedi"
0x000000dd: "unused"
0x000000e4: "main"
0x000000e9: "x"

.debug_ranges contents:
00000000 00000005 0000005f
00000000 <End of list>
00000010 00000060 000000c4
00000010 <End of list>
DWARF debug info
================

Contains section .debug_info (175 bytes)
Contains section .debug_ranges (32 bytes)
Contains section .debug_abbrev (117 bytes)
Contains section .debug_line (169 bytes)
Contains section .debug_str (235 bytes)

.debug_abbrev contents:
Abbrev table for offset: 0x00000000
[1] DW_TAG_compile_unit	DW_CHILDREN_yes
	DW_AT_producer	DW_FORM_strp
	DW_AT_language	DW_FORM_data2
	DW_AT_name	DW_FORM_strp
	DW_AT_stmt_list	DW_FORM_sec_offset
	DW_AT_comp_dir	DW_FORM_strp
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_ranges	DW_FORM_sec_offset

[2] DW_TAG_variable	DW_CHILDREN_no
	DW_AT_name	DW_FORM_strp
	DW_AT_type	DW_FORM_ref4
	DW_AT_external	DW_FORM_flag_present
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_location	DW_FORM_exprloc

[3] DW_TAG_pointer_type	DW_CHILDREN_no
	DW_AT_type	DW_FORM_ref4

[4] DW_TAG_const_type	DW_CHILDREN_no
	DW_AT_type	DW_FORM_ref4

[5] DW_TAG_base_type	DW_CHILDREN_no
	DW_AT_name	DW_FORM_strp
	DW_AT_encoding	DW_FORM_data1
	DW_AT_byte_size	DW_FORM_data1

[6] DW_TAG_subprogram	DW_CHILDREN_yes
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_high_pc	DW_FORM_data4
	DW_AT_linkage_name	DW_FORM_strp
	DW_AT_name	DW_FORM_strp
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_type	DW_FORM_ref4
	DW_AT_external	DW_FORM_flag_present

[7] DW_TAG_formal_parameter	DW_CHILDREN_no
	DW_AT_location	DW_FORM_exprloc
	DW_AT_name	DW_FORM_strp
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_type	DW_FORM_ref4

[8] DW_TAG_subprogram	DW_CHILDREN_no
	DW_AT_low_pc	DW_FORM_addr
	DW_AT_high_pc	DW_FORM_data4
	DW_AT_name	DW_FORM_strp
	DW_AT_decl_file	DW_FORM_data1
	DW_AT_decl_line	DW_FORM_data1
	DW_AT_type	DW_FORM_ref4
	DW_AT_external	DW_FORM_flag_present


.debug_info contents:
0x00000000: Compile Unit: length = 0x000000ab version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x000000af)

0x0000000b: DW_TAG_compile_unit [1] *
              DW_AT_producer [DW_FORM_strp]	( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project f39277c1d370ccbbec2e20a20375ee6fb7281ae4)")
              DW_AT_language [DW_FORM_data2]	(DW_LANG_C_plus_plus)
              DW_AT_name [DW_FORM_strp]	( .debug_str[0x00000095] = "a.cpp")
              DW_AT_stmt_list [DW_FORM_sec_offset]	(0x00000000)
              DW_AT_comp_dir [DW_FORM_strp]	( .debug_str[0x0000009b] = "/home/alon/Dev/emscripten")
              DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)
              DW_AT_ranges [DW_FORM_sec_offset]	(0x00000000
                 [0x00000005, 0x0000006d))

0x00000026:   DW_TAG_variable [2]  
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000b5] = "quine")
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0037 => {0x00000037} "const char*")
                DW_AT_external [DW_FORM_flag_present]	(true)
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(2)
                DW_AT_location [DW_FORM_exprloc]	(DW_OP_addr 0x490)

0x00000037:   DW_TAG_pointer_type [3]  
                DW_AT_type [DW_FORM_ref4]	(cu + 0x003c => {0x0000003c} "const char")

0x0000003c:   DW_TAG_const_type [4]  
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0041 => {0x00000041} "char")

0x00000041:   DW_TAG_base_type [5]  
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000bb] = "char")
                DW_AT_encoding [DW_FORM_data1]	(DW_ATE_signed_char)
                DW_AT_byte_size [DW_FORM_data1]	(0x01)

0x00000048:   DW_TAG_base_type [5]  
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000c0] = "int")
                DW_AT_encoding [DW_FORM_data1]	(DW_ATE_signed)
                DW_AT_byte_size [DW_FORM_data1]	(0x04)

0x0000004f:   DW_TAG_subprogram [6] *
                DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000005)
                DW_AT_high_pc [DW_FORM_data4]	(0x00000068)
                DW_AT_linkage_name [DW_FORM_strp]	( .debug_str[0x000000c4] = "_Z4usedi")
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000cd] = "used")
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(4)
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")
                DW_AT_external [DW_FORM_flag_present]	(true)

0x00000066:     DW_TAG_formal_parameter [7]  
                  DW_AT_location [DW_FORM_exprloc]	(DW_OP_plus_uconst 0xc)
                  DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000e9] = "x")
                  DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                  DW_AT_decl_line [DW_FORM_data1]	(4)
                  DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")

0x00000074:     NULL

0x00000075:   DW_TAG_subprogram [6] *
                DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)
                DW_AT_high_pc [DW_FORM_data4]	(0x00000000)
                DW_AT_linkage_name [DW_FORM_strp]	( .debug_str[0x000000d2] = "_Z6unusedi")
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000dd] = "unused")
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(10)
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")
                DW_AT_external [DW_FORM_flag_present]	(true)

0x0000008c:     DW_TAG_formal_parameter [7]  
                  DW_AT_location [DW_FORM_exprloc]	(DW_OP_plus_uconst 0xc)
                  DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000e9] = "x")
                  DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                  DW_AT_decl_line [DW_FORM_data1]	(10)
                  DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")

0x0000009a:     NULL

0x0000009b:   DW_TAG_subprogram [8]  
                DW_AT_low_pc [DW_FORM_addr]	(0x000000000000006e)
                DW_AT_high_pc [DW_FORM_data4]	(0x00000065)
                DW_AT_name [DW_FORM_strp]	( .debug_str[0x000000e4] = "main")
                DW_AT_decl_file [DW_FORM_data1]	("/home/alon/Dev/emscripten/a.cpp")
                DW_AT_decl_line [DW_FORM_data1]	(16)
                DW_AT_type [DW_FORM_ref4]	(cu + 0x0048 => {0x00000048} "int")
                DW_AT_external [DW_FORM_flag_present]	(true)

0x000000ae:   NULL

.debug_line contents:
debug_line[0x00000000]
Line table prologue:
    total_length: 0x000000a5
         version: 4
 prologue_length: 0x0000001d
 min_inst_length: 1
max_ops_per_inst: 1
 default_is_stmt: 1
       line_base: -5
      line_range: 14
     opcode_base: 13
standard_opcode_lengths[DW_LNS_copy] = 0
standard_opcode_lengths[DW_LNS_advance_pc] = 1
standard_opcode_lengths[DW_LNS_advance_line] = 1
standard_opcode_lengths[DW_LNS_set_file] = 1
standard_opcode_lengths[DW_LNS_set_column] = 1
standard_opcode_lengths[DW_LNS_negate_stmt] = 0
standard_opcode_lengths[DW_LNS_set_basic_block] = 0
standard_opcode_lengths[DW_LNS_const_add_pc] = 0
standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
standard_opcode_lengths[DW_LNS_set_isa] = 1
file_names[  1]:
           name: "a.cpp"
      dir_index: 0
       mod_time: 0x00000000
         length: 0x00000000
0x00000027: 00 DW_LNE_set_address (0x0000000000000005)
0x0000002e: 03 DW_LNS_advance_line (4)
0x00000030: 01 DW_LNS_copy
            0x0000000000000005      4      0      1   0             0  is_stmt


0x00000031: 00 DW_LNE_set_address (0x0000000000000030)
0x00000038: 03 DW_LNS_advance_line (5)
0x0000003a: 05 DW_LNS_set_column (4)
0x0000003c: 0a DW_LNS_set_prologue_end
0x0000003d: 01 DW_LNS_copy
            0x0000000000000030      5      4      1   0             0  is_stmt prologue_end


0x0000003e: 00 DW_LNE_set_address (0x0000000000000049)
0x00000045: 03 DW_LNS_advance_line (6)
0x00000047: 01 DW_LNS_copy
            0x0000000000000049      6      4      1   0             0  is_stmt


0x00000048: 00 DW_LNE_set_address (0x0000000000000062)
0x0000004f: 03 DW_LNS_advance_line (7)
0x00000051: 05 DW_LNS_set_column (10)
0x00000053: 01 DW_LNS_copy
            0x0000000000000062      7     10      1   0             0  is_stmt


0x00000054: 00 DW_LNE_set_address (0x0000000000000069)
0x0000005b: 05 DW_LNS_set_column (3)
0x0000005d: 06 DW_LNS_negate_stmt
0x0000005e: 01 DW_LNS_copy
            0x0000000000000069      7      3      1   0             0 


0x0000005f: 00 DW_LNE_set_address (0x000000000000006d)
0x00000066: 00 DW_LNE_end_sequence
            0x000000000000006d      7      3      1   0             0  end_sequence

0x00000069: 00 DW_LNE_set_address (0x000000000000006e)
0x00000070: 03 DW_LNS_advance_line (16)
0x00000072: 01 DW_LNS_copy
            0x000000000000006e     16      0      1   0             0  is_stmt


0x00000073: 00 DW_LNE_set_address (0x00000000000000a7)
0x0000007a: 03 DW_LNS_advance_line (17)
0x0000007c: 05 DW_LNS_set_column (10)
0x0000007e: 0a DW_LNS_set_prologue_end
0x0000007f: 01 DW_LNS_copy
            0x00000000000000a7     17     10      1   0             0  is_stmt prologue_end


0x00000080: 00 DW_LNE_set_address (0x00000000000000ad)
0x00000087: 05 DW_LNS_set_column (25)
0x00000089: 06 DW_LNS_negate_stmt
0x0000008a: 01 DW_LNS_copy
            0x00000000000000ad     17     25      1   0             0 


0x0000008b: 00 DW_LNE_set_address (0x00000000000000b9)
0x00000092: 05 DW_LNS_set_column (19)
0x00000094: 01 DW_LNS_copy
            0x00000000000000b9     17     19      1   0             0 


0x00000095: 00 DW_LNE_set_address (0x00000000000000c0)
0x0000009c: 05 DW_LNS_set_column (3)
0x0000009e: 01 DW_LNS_copy
            0x00000000000000c0     17      3      1   0             0 


0x0000009f: 00 DW_LNE_set_address (0x00000000000000d3)
0x000000a6: 00 DW_LNE_end_sequence
            0x00000000000000d3     17      3      1   0             0  end_sequence


.debug_str contents:
0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project f39277c1d370ccbbec2e20a20375ee6fb7281ae4)"
0x00000095: "a.cpp"
0x0000009b: "/home/alon/Dev/emscripten"
0x000000b5: "quine"
0x000000bb: "char"
0x000000c0: "int"
0x000000c4: "_Z4usedi"
0x000000cd: "used"
0x000000d2: "_Z6unusedi"
0x000000dd: "unused"
0x000000e4: "main"
0x000000e9: "x"

.debug_ranges contents:
00000000 00000005 0000006d
00000000 <End of list>
00000010 0000006e 000000d3
00000010 <End of list>
(module
 (type $0 (func))
 (type $1 (func (param i32) (result i32)))
 (type $2 (func (result i32)))
 (type $3 (func (param i32 i32) (result i32)))
 (import "env" "memory" (memory $mimport$0 256 256))
 (import "env" "__indirect_function_table" (table $timport$0 1 funcref))
 (global $global$0 (mut i32) (i32.const 5244064))
 (global $global$1 i32 (i32.const 1172))
 (data $0 (i32.const 1024) "\nvoid used(int x) {\n  x++;\n  x--;\n  return x;\n}\n\nvoid unused(int x) {\n  x >>= 1;\n  x <<= 1;\n  return x;\n}\n\nint main() {\n  return used(42);\n}\n\00")
 (data $1 (i32.const 1168) "\00\04\00\00")
 (export "__wasm_call_ctors" (func $__wasm_call_ctors))
 (export "main" (func $main))
 (export "__data_end" (global $global$1))
 (func $__wasm_call_ctors
 )
 (func $used\28int\29 (param $0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  ;; code offset: 0x1c
  (local.set $1
   ;; code offset: 0x1a
   (global.get $global$0)
  )
  ;; code offset: 0x20
  (local.set $2
   ;; code offset: 0x1e
   (i32.const 16)
  )
  ;; code offset: 0x27
  (local.set $3
   ;; code offset: 0x26
   (i32.sub
    ;; code offset: 0x22
    (local.get $1)
    ;; code offset: 0x24
    (local.get $2)
   )
  )
  ;; code offset: 0x2d
  (i32.store offset=12
   ;; code offset: 0x29
   (local.get $3)
   ;; code offset: 0x2b
   (local.get $0)
  )
  ;; code offset: 0x35
  (local.set $4
   ;; code offset: 0x32
   (i32.load offset=12
    ;; code offset: 0x30
    (local.get $3)
   )
  )
  ;; code offset: 0x39
  (local.set $5
   ;; code offset: 0x37
   (i32.const 1)
  )
  ;; code offset: 0x40
  (local.set $6
   ;; code offset: 0x3f
   (i32.add
    ;; code offset: 0x3b
    (local.get $4)
    ;; code offset: 0x3d
    (local.get $5)
   )
  )
  ;; code offset: 0x46
  (i32.store offset=12
   ;; code offset: 0x42
   (local.get $3)
   ;; code offset: 0x44
   (local.get $6)
  )
  ;; code offset: 0x4e
  (local.set $7
   ;; code offset: 0x4b
   (i32.load offset=12
    ;; code offset: 0x49
    (local.get $3)
   )
  )
  ;; code offset: 0x52
  (local.set $8
   ;; code offset: 0x50
   (i32.const -1)
  )
  ;; code offset: 0x59
  (local.set $9
   ;; code offset: 0x58
   (i32.add
    ;; code offset: 0x54
    (local.get $7)
    ;; code offset: 0x56
    (local.get $8)
   )
  )
  ;; code offset: 0x5f
  (i32.store offset=12
   ;; code offset: 0x5b
   (local.get $3)
   ;; code offset: 0x5d
   (local.get $9)
  )
  ;; code offset: 0x67
  (local.set $10
   ;; code offset: 0x64
   (i32.load offset=12
    ;; code offset: 0x62
    (local.get $3)
   )
  )
  ;; code offset: 0x6b
  (return
   ;; code offset: 0x69
   (local.get $10)
  )
 )
 (func $__original_main (result i32)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  ;; code offset: 0x87
  (local.set $0
   ;; code offset: 0x85
   (global.get $global$0)
  )
  ;; code offset: 0x8b
  (local.set $1
   ;; code offset: 0x89
   (i32.const 16)
  )
  ;; code offset: 0x92
  (local.set $2
   ;; code offset: 0x91
   (i32.sub
    ;; code offset: 0x8d
    (local.get $0)
    ;; code offset: 0x8f
    (local.get $1)
   )
  )
  ;; code offset: 0x96
  (global.set $global$0
   ;; code offset: 0x94
   (local.get $2)
  )
  ;; code offset: 0x9a
  (local.set $3
   ;; code offset: 0x98
   (i32.const 42)
  )
  ;; code offset: 0x9e
  (local.set $4
   ;; code offset: 0x9c
   (i32.const 0)
  )
  ;; code offset: 0xa4
  (i32.store offset=12
   ;; code offset: 0xa0
   (local.get $2)
   ;; code offset: 0xa2
   (local.get $4)
  )
  ;; code offset: 0xab
  (local.set $5
   ;; code offset: 0xa9
   (call $used\28int\29
    ;; code offset: 0xa7
    (local.get $3)
   )
  )
  ;; code offset: 0xaf
  (local.set $6
   ;; code offset: 0xad
   (i32.const 0)
  )
  ;; code offset: 0xb7
  (local.set $7
   ;; code offset: 0xb3
   (i32.load offset=1168
    ;; code offset: 0xb1
    (local.get $6)
   )
  )
  ;; code offset: 0xbe
  (local.set $8
   ;; code offset: 0xbd
   (i32.add
    ;; code offset: 0xb9
    (local.get $5)
    ;; code offset: 0xbb
    (local.get $7)
   )
  )
  ;; code offset: 0xc2
  (local.set $9
   ;; code offset: 0xc0
   (i32.const 16)
  )
  ;; code offset: 0xc9
  (local.set $10
   ;; code offset: 0xc8
   (i32.add
    ;; code offset: 0xc4
    (local.get $2)
    ;; code offset: 0xc6
    (local.get $9)
   )
  )
  ;; code offset: 0xcd
  (global.set $global$0
   ;; code offset: 0xcb
   (local.get $10)
  )
  ;; code offset: 0xd1
  (return
   ;; code offset: 0xcf
   (local.get $8)
  )
 )
 (func $main (param $0 i32) (param $1 i32) (result i32)
  (local $2 i32)
  ;; code offset: 0xd9
  (local.set $2
   ;; code offset: 0xd7
   (call $__original_main)
  )
  ;; code offset: 0xdd
  (return
   ;; code offset: 0xdb
   (local.get $2)
  )
 )
 ;; custom section ".debug_info", size 175
 ;; custom section ".debug_ranges", size 32
 ;; custom section ".debug_abbrev", size 117
 ;; custom section ".debug_line", size 169
 ;; custom section ".debug_str", size 235
 ;; custom section "producers", size 180
)