
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: void save(Copy_relocs<4,_64,_false> * this, Symbol * sym,
   Sized_relobj_file<64,_false> * object, uint shndx, Output_section * output_section, uint r_type,
   Elf_Addr r_offset, Elf_Swxword r_addend) */

void __thiscall
gold::Copy_relocs<4,_64,_false>::save
          (Copy_relocs<4,_64,_false> *this,Symbol *sym,Sized_relobj_file<64,_false> *object,
          uint shndx,Output_section *output_section,uint r_type,Elf_Addr r_offset,
          Elf_Swxword r_addend)

{
  iterator iVar1;
  Copy_reloc_entry *pCVar2;
  Copy_reloc_entry *pCVar3;
  undefined4 uVar4;
  Copy_reloc_entry *pCVar5;
  uint uVar6;
  Sized_relobj_file<64,_false> *pSVar7;
  uint uVar8;
  iterator __position;
  Copy_reloc_entry local_30;
  
  __position._M_current =
       (this->entries_).
       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
       ._M_impl._M_finish;
  local_30.relobj_ = object;
  local_30.shndx_ = shndx;
  local_30.reloc_type_ = r_type;
  local_30.address_ = r_offset;
  local_30.sym_ = sym;
  local_30.output_section_ = output_section;
  local_30.addend_ = r_addend;
  if (__position._M_current !=
      (this->entries_).
      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
      ._M_impl._M_end_of_storage) {
    pCVar3 = &local_30;
    iVar1._M_current = __position._M_current;
    do {
      pCVar5 = iVar1._M_current;
      pCVar2 = pCVar3;
      pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_;
      uVar8 = pCVar2->reloc_type_;
      pSVar7 = pCVar2->relobj_;
      uVar6 = pCVar2->shndx_;
      pCVar5->sym_ = pCVar2->sym_;
      pCVar5->reloc_type_ = uVar8;
      pCVar5->relobj_ = pSVar7;
      pCVar5->shndx_ = uVar6;
      iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_;
    } while (pCVar3 != (Copy_reloc_entry *)&local_30.addend_);
    uVar4 = *(undefined4 *)&pCVar2->field_0x14;
    pCVar5->output_section_ = *(Output_section **)pCVar3;
    *(undefined4 *)&pCVar5->field_0x14 = uVar4;
    (this->entries_).
    super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
    ._M_impl._M_finish = __position._M_current + 1;
    return;
  }
  std::
  vector<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>
  ::_M_realloc_insert<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>
            (&this->entries_,__position,&local_30);
  return;
}



/* gold::Copy_relocs<4, 64, false>::save(gold::Symbol*, gold::Sized_relobj_file<64, false>*,
   unsigned int, gold::Output_section*, unsigned int, unsigned long long, long long) */

void gold::Copy_relocs<4,64,false>::save
               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,
               uint param_5,ulonglong param_6,longlong param_7)

{
  undefined4 *puVar1;
  Sized_relobj_file **ppSVar2;
  Sized_relobj_file **ppSVar3;
  undefined4 *puVar4;
  Sized_relobj_file *pSVar5;
  Sized_relobj_file *pSVar6;
  Sized_relobj_file *pSVar7;
  undefined4 *puVar8;
  Sized_relobj_file *local_30 [2];
  uint local_28;
  Output_section *local_24;
  uint local_20;
  ulonglong local_18;
  longlong local_10;
  
  puVar8 = *(undefined4 **)(param_1 + 4);
  local_28 = param_3;
  local_24 = param_4;
  local_18 = param_6;
  local_30[0] = param_2;
  local_20 = param_5;
  local_10 = param_7;
  if (puVar8 != *(undefined4 **)(param_1 + 8)) {
    ppSVar3 = local_30;
    puVar1 = puVar8;
    do {
      puVar4 = puVar1;
      ppSVar2 = ppSVar3;
      ppSVar3 = ppSVar2 + 4;
      pSVar7 = ppSVar2[1];
      pSVar6 = ppSVar2[2];
      pSVar5 = ppSVar2[3];
      *puVar4 = *ppSVar2;
      puVar4[1] = pSVar7;
      puVar4[2] = pSVar6;
      puVar4[3] = pSVar5;
      puVar1 = puVar4 + 4;
    } while (ppSVar3 != (Sized_relobj_file **)&local_10);
    pSVar5 = ppSVar2[5];
    puVar4[4] = *ppSVar3;
    puVar4[5] = pSVar5;
    *(undefined4 **)(param_1 + 4) = puVar8 + 10;
    return;
  }
  std::
  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>
  ::_M_realloc_insert<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>
            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>
              *)param_1,puVar8,local_30);
  return;
}


lui gp,0x37
addiu gp,gp,0x330c
addu gp,gp,t9
addiu sp,sp,-0x48
lw t0,0x4(a0)
lw v0,0x8(a0)
lw v1,0x5c(sp)
sw a2,0x20(sp)
sw a3,0x24(sp)
sw v1,0x1c(sp)
lw a3,0x64(sp)
lw a2,0x60(sp)
lw v1,0x58(sp)
sw a3,0x34(sp)
sw a2,0x30(sp)
sw gp,0x10(sp)
sw ra,0x44(sp)
sw a1,0x18(sp)
sw v1,0x28(sp)
lw a3,0x6c(sp)
lw a2,0x68(sp)
sw a3,0x3c(sp)
beq t0,v0,0x00155ff4
_sw a2,0x38(sp)
addiu v0,sp,0x18
addiu t2,sp,0x38
or t1,a0,zero
or v1,t0,zero
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t2,0x00155fa4
_sw a0,-0x4(v1)
lw a0,0x0(v0)
addiu t0,t0,0x28
lw v0,0x4(v0)
lw ra,0x44(sp)
sw a0,0x0(v1)
sw v0,0x4(v1)
sw t0,0x4(t1)
jr ra
_addiu sp,sp,0x48
lw t9,-0x5d70(gp)
addiu a2,sp,0x18
bal 0x00155cb0
_or a1,t0,zero
lw ra,0x44(sp)
jr ra
_addiu sp,sp,0x48
(translation_unit "/* gold::Copy_relocs<4, 64, false>::save(gold::Symbol*, gold::Sized_relobj_file<64, false>*,\n   unsigned int, gold::Output_section*, unsigned int, unsigned long long, long long) */\n\nvoid gold::Copy_relocs<4,64,false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4 *puVar1;\n  Sized_relobj_file **ppSVar2;\n  Sized_relobj_file **ppSVar3;\n  undefined4 *puVar4;\n  Sized_relobj_file *pSVar5;\n  Sized_relobj_file *pSVar6;\n  Sized_relobj_file *pSVar7;\n  undefined4 *puVar8;\n  Sized_relobj_file *local_30 [2];\n  uint local_28;\n  Output_section *local_24;\n  uint local_20;\n  ulonglong local_18;\n  longlong local_10;\n  \n  puVar8 = *(undefined4 **)(param_1 + 4);\n  local_28 = param_3;\n  local_24 = param_4;\n  local_18 = param_6;\n  local_30[0] = param_2;\n  local_20 = param_5;\n  local_10 = param_7;\n  if (puVar8 != *(undefined4 **)(param_1 + 8)) {\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }\n  std::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);\n  return;\n}\n\n" comment (declaration "void gold::Copy_relocs<4,64,false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4 *puVar1;" primitive_type (ERROR "gold::" identifier : :) identifier (ERROR "<4,64" < number_literal , number_literal) , (ERROR "false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4" (function_declarator "false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)" identifier (ERROR ">::save" > : : identifier) (parameter_list "(Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)" ( (parameter_declaration "Symbol *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Sized_relobj_file *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "Output_section *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "ulonglong param_6" type_identifier identifier) , (parameter_declaration "longlong param_7" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "Sized_relobj_file **ppSVar2;" type_identifier (pointer_declarator "**ppSVar2" * (pointer_declarator "*ppSVar2" * identifier)) ;) (declaration "Sized_relobj_file **ppSVar3;" type_identifier (pointer_declarator "**ppSVar3" * (pointer_declarator "*ppSVar3" * identifier)) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "Sized_relobj_file *pSVar5;" type_identifier (pointer_declarator "*pSVar5" * identifier) ;) (declaration "Sized_relobj_file *pSVar6;" type_identifier (pointer_declarator "*pSVar6" * identifier) ;) (declaration "Sized_relobj_file *pSVar7;" type_identifier (pointer_declarator "*pSVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "Sized_relobj_file *local_30 [2];" type_identifier (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "Output_section *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "uint local_20;" type_identifier identifier ;) (declaration "ulonglong local_18;" type_identifier identifier ;) (declaration "longlong local_10;" type_identifier identifier ;) (expression_statement "puVar8 = *(undefined4 **)(param_1 + 4);" (assignment_expression "puVar8 = *(undefined4 **)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_28 = param_3;" (assignment_expression "local_28 = param_3" identifier = identifier) ;) (expression_statement "local_24 = param_4;" (assignment_expression "local_24 = param_4" identifier = identifier) ;) (expression_statement "local_18 = param_6;" (assignment_expression "local_18 = param_6" identifier = identifier) ;) (expression_statement "local_30[0] = param_2;" (assignment_expression "local_30[0] = param_2" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_20 = param_5;" (assignment_expression "local_20 = param_5" identifier = identifier) ;) (expression_statement "local_10 = param_7;" (assignment_expression "local_10 = param_7" identifier = identifier) ;) (if_statement "if (puVar8 != *(undefined4 **)(param_1 + 8)) {\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }" if (parenthesized_expression "(puVar8 != *(undefined4 **)(param_1 + 8))" ( (binary_expression "puVar8 != *(undefined4 **)(param_1 + 8)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }" { (expression_statement "ppSVar3 = local_30;" (assignment_expression "ppSVar3 = local_30" identifier = identifier) ;) (expression_statement "puVar1 = puVar8;" (assignment_expression "puVar1 = puVar8" identifier = identifier) ;) (do_statement "do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);" do (compound_statement "{\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppSVar2 = ppSVar3;" (assignment_expression "ppSVar2 = ppSVar3" identifier = identifier) ;) (expression_statement "ppSVar3 = ppSVar2 + 4;" (assignment_expression "ppSVar3 = ppSVar2 + 4" identifier = (binary_expression "ppSVar2 + 4" identifier + number_literal)) ;) (expression_statement "pSVar7 = ppSVar2[1];" (assignment_expression "pSVar7 = ppSVar2[1]" identifier = (subscript_expression "ppSVar2[1]" identifier [ number_literal ])) ;) (expression_statement "pSVar6 = ppSVar2[2];" (assignment_expression "pSVar6 = ppSVar2[2]" identifier = (subscript_expression "ppSVar2[2]" identifier [ number_literal ])) ;) (expression_statement "pSVar5 = ppSVar2[3];" (assignment_expression "pSVar5 = ppSVar2[3]" identifier = (subscript_expression "ppSVar2[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppSVar2;" (assignment_expression "*puVar4 = *ppSVar2" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppSVar2" * identifier)) ;) (expression_statement "puVar4[1] = pSVar7;" (assignment_expression "puVar4[1] = pSVar7" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = pSVar6;" (assignment_expression "puVar4[2] = pSVar6" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = pSVar5;" (assignment_expression "puVar4[3] = pSVar5" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppSVar3 != (Sized_relobj_file **)&local_10)" ( (binary_expression "ppSVar3 != (Sized_relobj_file **)&local_10" identifier != (cast_expression "(Sized_relobj_file **)&local_10" ( (type_descriptor "Sized_relobj_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_10" & identifier))) )) ;) (expression_statement "pSVar5 = ppSVar2[5];" (assignment_expression "pSVar5 = ppSVar2[5]" identifier = (subscript_expression "ppSVar2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppSVar3;" (assignment_expression "puVar4[4] = *ppSVar3" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppSVar3" * identifier)) ;) (expression_statement "puVar4[5] = pSVar5;" (assignment_expression "puVar4[5] = pSVar5" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 4) = puVar8 + 10;" (assignment_expression "*(undefined4 **)(param_1 + 4) = puVar8 + 10" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "puVar8 + 10" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "std::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);" statement_identifier (ERROR "::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry,std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry,std" number_literal , (comma_expression "false>::Copy_reloc_entry,std" (binary_expression "false>::Copy_reloc_entry" false > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" number_literal , (binary_expression "false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" (binary_expression "false>::Copy_reloc_entry>>\n  ::_M_realloc_insert" false > (ERROR "::" : :) (binary_expression "Copy_reloc_entry>>\n  ::_M_realloc_insert" identifier >> (ERROR "::" : :) identifier)) < identifier))) :) : (expression_statement "Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);" (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" number_literal , (binary_expression "false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (binary_expression "false>::Copy_reloc_entry" false > (ERROR "::" : :) identifier) > (parenthesized_expression "((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" ( (parenthesized_expression "(vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" ( (ERROR "vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry,std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry,std" number_literal , (comma_expression "false>::Copy_reloc_entry,std" (binary_expression "false>::Copy_reloc_entry" false > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" number_literal , (comma_expression "false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" (binary_expression "false>::Copy_reloc_entry>>\n              *)param_1" false > (ERROR "::" : :) (binary_expression "Copy_reloc_entry>>\n              *)param_1" identifier >> (pointer_expression "*)param_1" * (ERROR ")" )) identifier))) , (comma_expression "puVar8,local_30" identifier , identifier)))) )) ))))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: void save(Copy_relocs<4,_64,_false> * this, Symbol * sym,\n   Sized_relobj_file<64,_false> * object, uint shndx, Output_section * output_section, uint r_type,\n   Elf_Addr r_offset, Elf_Swxword r_addend) */\n\nvoid __thiscall\ngold::Copy_relocs<4,_64,_false>::save\n          (Copy_relocs<4,_64,_false> *this,Symbol *sym,Sized_relobj_file<64,_false> *object,\n          uint shndx,Output_section *output_section,uint r_type,Elf_Addr r_offset,\n          Elf_Swxword r_addend)\n\n{\n  iterator iVar1;\n  Copy_reloc_entry *pCVar2;\n  Copy_reloc_entry *pCVar3;\n  undefined4 uVar4;\n  Copy_reloc_entry *pCVar5;\n  uint uVar6;\n  Sized_relobj_file<64,_false> *pSVar7;\n  uint uVar8;\n  iterator __position;\n  Copy_reloc_entry local_30;\n  \n  __position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish;\n  local_30.relobj_ = object;\n  local_30.shndx_ = shndx;\n  local_30.reloc_type_ = r_type;\n  local_30.address_ = r_offset;\n  local_30.sym_ = sym;\n  local_30.output_section_ = output_section;\n  local_30.addend_ = r_addend;\n  if (__position._M_current !=\n      (this->entries_).\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_end_of_storage) {\n    pCVar3 = &local_30;\n    iVar1._M_current = __position._M_current;\n    do {\n      pCVar5 = iVar1._M_current;\n      pCVar2 = pCVar3;\n      pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_;\n      uVar8 = pCVar2->reloc_type_;\n      pSVar7 = pCVar2->relobj_;\n      uVar6 = pCVar2->shndx_;\n      pCVar5->sym_ = pCVar2->sym_;\n      pCVar5->reloc_type_ = uVar8;\n      pCVar5->relobj_ = pSVar7;\n      pCVar5->shndx_ = uVar6;\n      iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_;\n    } while (pCVar3 != (Copy_reloc_entry *)&local_30.addend_);\n    uVar4 = *(undefined4 *)&pCVar2->field_0x14;\n    pCVar5->output_section_ = *(Output_section **)pCVar3;\n    *(undefined4 *)&pCVar5->field_0x14 = uVar4;\n    (this->entries_).\n    super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n    return;\n  }\n  std::\n  vector<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n  ::_M_realloc_insert<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>\n            (&this->entries_,__position,&local_30);\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Copy_relocs<4,_64,_false>::save\n          (Copy_relocs<4,_64,_false> *this,Symbol *sym,Sized_relobj_file<64,_false> *object,\n          uint shndx,Output_section *output_section,uint r_type,Elf_Addr r_offset,\n          Elf_Swxword r_addend)\n\n{\n  iterator iVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , (ERROR "_false>::save\n          (Copy_relocs<4,_64,_false> *this,Symbol *sym,Sized_relobj_file<64,_false> *object,\n          uint shndx,Output_section *output_section,uint r_type,Elf_Addr r_offset,\n          Elf_Swxword r_addend)\n\n{\n  iterator" (function_declarator "_false>::save\n          (Copy_relocs<4,_64,_false> *this,Symbol *sym,Sized_relobj_file<64,_false> *object,\n          uint shndx,Output_section *output_section,uint r_type,Elf_Addr r_offset,\n          Elf_Swxword r_addend)" identifier (ERROR ">::save" > : : identifier) (parameter_list "(Copy_relocs<4,_64,_false> *this,Symbol *sym,Sized_relobj_file<64,_false> *object,\n          uint shndx,Output_section *output_section,uint r_type,Elf_Addr r_offset,\n          Elf_Swxword r_addend)" ( (parameter_declaration "Copy_relocs" type_identifier) (ERROR "<4" < number_literal) , (parameter_declaration "_64" type_identifier) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol *sym" type_identifier (pointer_declarator "*sym" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) , (parameter_declaration "uint r_type" type_identifier identifier) , (parameter_declaration "Elf_Addr r_offset" type_identifier identifier) , (parameter_declaration "Elf_Swxword r_addend" type_identifier identifier) ))) { identifier) identifier ;) (declaration "Copy_reloc_entry *pCVar2;" type_identifier (pointer_declarator "*pCVar2" * identifier) ;) (declaration "Copy_reloc_entry *pCVar3;" type_identifier (pointer_declarator "*pCVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "Copy_reloc_entry *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "Sized_relobj_file<64,_false> *pSVar7;" (update_expression "Sized_relobj_file<64,_false> *pSVar7" (binary_expression "Sized_relobj_file<64,_false> *pSVar7" (binary_expression "Sized_relobj_file<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pSVar7" * identifier)) --) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Copy_reloc_entry local_30;" type_identifier identifier ;) (expression_statement "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish;" (field_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl._M_finish" (field_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n       ._M_impl" (binary_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_" (binary_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry" (binary_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4" (binary_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold" (binary_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry" (binary_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold::Copy_relocs<4" (assignment_expression "__position._M_current =\n       (this->entries_).\n       super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->entries_).\n       super__Vector_base<gold" (field_expression "(this->entries_).\n       super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Copy_relocs" : : identifier) < number_literal) (ERROR ",_64,_false" , identifier , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < identifier) (ERROR "::Copy_relocs" : : identifier) < number_literal) (ERROR ",_64,_false" , identifier , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_30.relobj_ = object;" (assignment_expression "local_30.relobj_ = object" (field_expression "local_30.relobj_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.shndx_ = shndx;" (assignment_expression "local_30.shndx_ = shndx" (field_expression "local_30.shndx_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.reloc_type_ = r_type;" (assignment_expression "local_30.reloc_type_ = r_type" (field_expression "local_30.reloc_type_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.address_ = r_offset;" (assignment_expression "local_30.address_ = r_offset" (field_expression "local_30.address_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.sym_ = sym;" (assignment_expression "local_30.sym_ = sym" (field_expression "local_30.sym_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.output_section_ = output_section;" (assignment_expression "local_30.output_section_ = output_section" (field_expression "local_30.output_section_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.addend_ = r_addend;" (assignment_expression "local_30.addend_ = r_addend" (field_expression "local_30.addend_" identifier . field_identifier) = identifier) ;) (if_statement "if (__position._M_current !=\n      (this->entries_).\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_end_of_storage) {\n    pCVar3 = &local_30;\n    iVar1._M_current = __position._M_current;\n    do {\n      pCVar5 = iVar1._M_current;\n      pCVar2 = pCVar3;\n      pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_;\n      uVar8 = pCVar2->reloc_type_;\n      pSVar7 = pCVar2->relobj_;\n      uVar6 = pCVar2->shndx_;\n      pCVar5->sym_ = pCVar2->sym_;\n      pCVar5->reloc_type_ = uVar8;\n      pCVar5->relobj_ = pSVar7;\n      pCVar5->shndx_ = uVar6;\n      iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_;\n    } while (pCVar3 != (Copy_reloc_entry *)&local_30.addend_);\n    uVar4 = *(undefined4 *)&pCVar2->field_0x14;\n    pCVar5->output_section_ = *(Output_section **)pCVar3;\n    *(undefined4 *)&pCVar5->field_0x14 = uVar4;\n    (this->entries_).\n    super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n    return;\n  }" if (parenthesized_expression "(__position._M_current !=\n      (this->entries_).\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current !=\n      (this->entries_).\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::" (comma_expression "__position._M_current !=\n      (this->entries_).\n      super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "__position._M_current !=\n      (this->entries_).\n      super__Vector_base<gold::Copy_relocs<4" (binary_expression "__position._M_current !=\n      (this->entries_).\n      super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) != (binary_expression "(this->entries_).\n      super__Vector_base<gold" (field_expression "(this->entries_).\n      super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Copy_relocs" : : identifier) < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_end_of_storage" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n      ._M_impl._M_end_of_storage" identifier , (field_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl._M_end_of_storage" (field_expression "_false>::Copy_reloc_entry>_>\n      ._M_impl" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier))) )) (compound_statement "{\n    pCVar3 = &local_30;\n    iVar1._M_current = __position._M_current;\n    do {\n      pCVar5 = iVar1._M_current;\n      pCVar2 = pCVar3;\n      pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_;\n      uVar8 = pCVar2->reloc_type_;\n      pSVar7 = pCVar2->relobj_;\n      uVar6 = pCVar2->shndx_;\n      pCVar5->sym_ = pCVar2->sym_;\n      pCVar5->reloc_type_ = uVar8;\n      pCVar5->relobj_ = pSVar7;\n      pCVar5->shndx_ = uVar6;\n      iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_;\n    } while (pCVar3 != (Copy_reloc_entry *)&local_30.addend_);\n    uVar4 = *(undefined4 *)&pCVar2->field_0x14;\n    pCVar5->output_section_ = *(Output_section **)pCVar3;\n    *(undefined4 *)&pCVar5->field_0x14 = uVar4;\n    (this->entries_).\n    super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n    return;\n  }" { (expression_statement "pCVar3 = &local_30;" (assignment_expression "pCVar3 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "iVar1._M_current = __position._M_current;" (assignment_expression "iVar1._M_current = __position._M_current" (field_expression "iVar1._M_current" identifier . field_identifier) = (field_expression "__position._M_current" identifier . field_identifier)) ;) (do_statement "do {\n      pCVar5 = iVar1._M_current;\n      pCVar2 = pCVar3;\n      pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_;\n      uVar8 = pCVar2->reloc_type_;\n      pSVar7 = pCVar2->relobj_;\n      uVar6 = pCVar2->shndx_;\n      pCVar5->sym_ = pCVar2->sym_;\n      pCVar5->reloc_type_ = uVar8;\n      pCVar5->relobj_ = pSVar7;\n      pCVar5->shndx_ = uVar6;\n      iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_;\n    } while (pCVar3 != (Copy_reloc_entry *)&local_30.addend_);" do (compound_statement "{\n      pCVar5 = iVar1._M_current;\n      pCVar2 = pCVar3;\n      pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_;\n      uVar8 = pCVar2->reloc_type_;\n      pSVar7 = pCVar2->relobj_;\n      uVar6 = pCVar2->shndx_;\n      pCVar5->sym_ = pCVar2->sym_;\n      pCVar5->reloc_type_ = uVar8;\n      pCVar5->relobj_ = pSVar7;\n      pCVar5->shndx_ = uVar6;\n      iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_;\n    }" { (expression_statement "pCVar5 = iVar1._M_current;" (assignment_expression "pCVar5 = iVar1._M_current" identifier = (field_expression "iVar1._M_current" identifier . field_identifier)) ;) (expression_statement "pCVar2 = pCVar3;" (assignment_expression "pCVar2 = pCVar3" identifier = identifier) ;) (expression_statement "pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_;" (assignment_expression "pCVar3 = (Copy_reloc_entry *)&pCVar2->output_section_" identifier = (cast_expression "(Copy_reloc_entry *)&pCVar2->output_section_" ( (type_descriptor "Copy_reloc_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar2->output_section_" & (field_expression "pCVar2->output_section_" identifier -> field_identifier)))) ;) (expression_statement "uVar8 = pCVar2->reloc_type_;" (assignment_expression "uVar8 = pCVar2->reloc_type_" identifier = (field_expression "pCVar2->reloc_type_" identifier -> field_identifier)) ;) (expression_statement "pSVar7 = pCVar2->relobj_;" (assignment_expression "pSVar7 = pCVar2->relobj_" identifier = (field_expression "pCVar2->relobj_" identifier -> field_identifier)) ;) (expression_statement "uVar6 = pCVar2->shndx_;" (assignment_expression "uVar6 = pCVar2->shndx_" identifier = (field_expression "pCVar2->shndx_" identifier -> field_identifier)) ;) (expression_statement "pCVar5->sym_ = pCVar2->sym_;" (assignment_expression "pCVar5->sym_ = pCVar2->sym_" (field_expression "pCVar5->sym_" identifier -> field_identifier) = (field_expression "pCVar2->sym_" identifier -> field_identifier)) ;) (expression_statement "pCVar5->reloc_type_ = uVar8;" (assignment_expression "pCVar5->reloc_type_ = uVar8" (field_expression "pCVar5->reloc_type_" identifier -> field_identifier) = identifier) ;) (expression_statement "pCVar5->relobj_ = pSVar7;" (assignment_expression "pCVar5->relobj_ = pSVar7" (field_expression "pCVar5->relobj_" identifier -> field_identifier) = identifier) ;) (expression_statement "pCVar5->shndx_ = uVar6;" (assignment_expression "pCVar5->shndx_ = uVar6" (field_expression "pCVar5->shndx_" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_;" (assignment_expression "iVar1._M_current = (Copy_reloc_entry *)&pCVar5->output_section_" (field_expression "iVar1._M_current" identifier . field_identifier) = (cast_expression "(Copy_reloc_entry *)&pCVar5->output_section_" ( (type_descriptor "Copy_reloc_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar5->output_section_" & (field_expression "pCVar5->output_section_" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pCVar3 != (Copy_reloc_entry *)&local_30.addend_)" ( (binary_expression "pCVar3 != (Copy_reloc_entry *)&local_30.addend_" identifier != (cast_expression "(Copy_reloc_entry *)&local_30.addend_" ( (type_descriptor "Copy_reloc_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30.addend_" & (field_expression "local_30.addend_" identifier . field_identifier)))) )) ;) (expression_statement "uVar4 = *(undefined4 *)&pCVar2->field_0x14;" (assignment_expression "uVar4 = *(undefined4 *)&pCVar2->field_0x14" identifier = (pointer_expression "*(undefined4 *)&pCVar2->field_0x14" * (cast_expression "(undefined4 *)&pCVar2->field_0x14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar2->field_0x14" & (field_expression "pCVar2->field_0x14" identifier -> field_identifier))))) ;) (expression_statement "pCVar5->output_section_ = *(Output_section **)pCVar3;" (assignment_expression "pCVar5->output_section_ = *(Output_section **)pCVar3" (field_expression "pCVar5->output_section_" identifier -> field_identifier) = (pointer_expression "*(Output_section **)pCVar3" * (cast_expression "(Output_section **)pCVar3" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined4 *)&pCVar5->field_0x14 = uVar4;" (assignment_expression "*(undefined4 *)&pCVar5->field_0x14 = uVar4" (pointer_expression "*(undefined4 *)&pCVar5->field_0x14" * (cast_expression "(undefined4 *)&pCVar5->field_0x14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar5->field_0x14" & (field_expression "pCVar5->field_0x14" identifier -> field_identifier)))) = identifier) ;) (ERROR "(this->entries_).\n    super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::" (comma_expression "(this->entries_).\n    super__Vector_base<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "(this->entries_).\n    super__Vector_base<gold::Copy_relocs<4" (binary_expression "(this->entries_).\n    super__Vector_base<gold" (field_expression "(this->entries_).\n    super__Vector_base" (parenthesized_expression "(this->entries_)" ( (field_expression "this->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Copy_relocs" : : identifier) < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish = __position._M_current + 1;" (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish = __position._M_current + 1" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish = __position._M_current + 1" identifier , (assignment_expression "_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish = __position._M_current + 1" (field_expression "_false>::Copy_reloc_entry>_>\n    ._M_impl._M_finish" (field_expression "_false>::Copy_reloc_entry>_>\n    ._M_impl" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)))) ;) (return_statement "return;" return ;) })) (labeled_statement "std::\n  vector<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n  ::_M_realloc_insert<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>\n            (&this->entries_,__position,&local_30);" statement_identifier (ERROR "::\n  vector<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std::allocator<gold::Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n  ::_M_realloc_insert<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry,_std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry,_std" identifier , (comma_expression "_false>::Copy_reloc_entry,_std" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>_>\n  ::_M_realloc_insert<gold" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>_>\n  ::_M_realloc_insert<gold" identifier , (binary_expression "_false>::Copy_reloc_entry>_>\n  ::_M_realloc_insert<gold" (binary_expression "_false>::Copy_reloc_entry>_>\n  ::_M_realloc_insert" (binary_expression "_false>::Copy_reloc_entry>_" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > identifier) > (ERROR "::" : :) identifier) < identifier))) :) : (expression_statement "Copy_relocs<4,_64,_false>::Copy_reloc_entry>\n            (&this->entries_,__position,&local_30);" (comma_expression "Copy_relocs<4,_64,_false>::Copy_reloc_entry>\n            (&this->entries_,__position,&local_30)" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "_64,_false>::Copy_reloc_entry>\n            (&this->entries_,__position,&local_30)" identifier , (binary_expression "_false>::Copy_reloc_entry>\n            (&this->entries_,__position,&local_30)" (binary_expression "_false>::Copy_reloc_entry" identifier > (ERROR "::" : :) identifier) > (parenthesized_expression "(&this->entries_,__position,&local_30)" ( (comma_expression "&this->entries_,__position,&local_30" (pointer_expression "&this->entries_" & (field_expression "this->entries_" identifier -> field_identifier)) , (comma_expression "__position,&local_30" identifier , (pointer_expression "&local_30" & identifier))) ))))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void gold::Copy_relocs<4,64,false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4 *puVar1;\n  Sized_relobj_file **ppSVar2;\n  Sized_relobj_file **ppSVar3;\n  undefined4 *puVar4;\n  Sized_relobj_file *pSVar5;\n  Sized_relobj_file *pSVar6;\n  Sized_relobj_file *pSVar7;\n  undefined4 *puVar8;\n  Sized_relobj_file *local_30 [2];\n  uint local_28;\n  Output_section *local_24;\n  uint local_20;\n  ulonglong local_18;\n  longlong local_10;\n  \n  puVar8 = *(undefined4 **)(param_1 + 4);\n  local_28 = param_3;\n  local_24 = param_4;\n  local_18 = param_6;\n  local_30[0] = param_2;\n  local_20 = param_5;\n  local_10 = param_7;\n  if (puVar8 != *(undefined4 **)(param_1 + 8)) {\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }\n  std::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);\n  return;\n}\n\n" (declaration "void gold::Copy_relocs<4,64,false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4 *puVar1;" primitive_type (ERROR "gold::" identifier : :) identifier (ERROR "<4,64" < number_literal , number_literal) , (ERROR "false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4" (function_declarator "false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)" identifier (ERROR ">::save" > : : identifier) (parameter_list "(Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)" ( (parameter_declaration "Symbol *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Sized_relobj_file *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "Output_section *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "ulonglong param_6" type_identifier identifier) , (parameter_declaration "longlong param_7" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "Sized_relobj_file **ppSVar2;" type_identifier (pointer_declarator "**ppSVar2" * (pointer_declarator "*ppSVar2" * identifier)) ;) (declaration "Sized_relobj_file **ppSVar3;" type_identifier (pointer_declarator "**ppSVar3" * (pointer_declarator "*ppSVar3" * identifier)) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "Sized_relobj_file *pSVar5;" type_identifier (pointer_declarator "*pSVar5" * identifier) ;) (declaration "Sized_relobj_file *pSVar6;" type_identifier (pointer_declarator "*pSVar6" * identifier) ;) (declaration "Sized_relobj_file *pSVar7;" type_identifier (pointer_declarator "*pSVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "Sized_relobj_file *local_30 [2];" type_identifier (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "Output_section *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "uint local_20;" type_identifier identifier ;) (declaration "ulonglong local_18;" type_identifier identifier ;) (declaration "longlong local_10;" type_identifier identifier ;) (expression_statement "puVar8 = *(undefined4 **)(param_1 + 4);" (assignment_expression "puVar8 = *(undefined4 **)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_28 = param_3;" (assignment_expression "local_28 = param_3" identifier = identifier) ;) (expression_statement "local_24 = param_4;" (assignment_expression "local_24 = param_4" identifier = identifier) ;) (expression_statement "local_18 = param_6;" (assignment_expression "local_18 = param_6" identifier = identifier) ;) (expression_statement "local_30[0] = param_2;" (assignment_expression "local_30[0] = param_2" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_20 = param_5;" (assignment_expression "local_20 = param_5" identifier = identifier) ;) (expression_statement "local_10 = param_7;" (assignment_expression "local_10 = param_7" identifier = identifier) ;) (if_statement "if (puVar8 != *(undefined4 **)(param_1 + 8)) {\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }" if (parenthesized_expression "(puVar8 != *(undefined4 **)(param_1 + 8))" ( (binary_expression "puVar8 != *(undefined4 **)(param_1 + 8)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 8)" * (cast_expression "(undefined4 **)(param_1 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }" { (expression_statement "ppSVar3 = local_30;" (assignment_expression "ppSVar3 = local_30" identifier = identifier) ;) (expression_statement "puVar1 = puVar8;" (assignment_expression "puVar1 = puVar8" identifier = identifier) ;) (do_statement "do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);" do (compound_statement "{\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    }" { (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" identifier = identifier) ;) (expression_statement "ppSVar2 = ppSVar3;" (assignment_expression "ppSVar2 = ppSVar3" identifier = identifier) ;) (expression_statement "ppSVar3 = ppSVar2 + 4;" (assignment_expression "ppSVar3 = ppSVar2 + 4" identifier = (binary_expression "ppSVar2 + 4" identifier + number_literal)) ;) (expression_statement "pSVar7 = ppSVar2[1];" (assignment_expression "pSVar7 = ppSVar2[1]" identifier = (subscript_expression "ppSVar2[1]" identifier [ number_literal ])) ;) (expression_statement "pSVar6 = ppSVar2[2];" (assignment_expression "pSVar6 = ppSVar2[2]" identifier = (subscript_expression "ppSVar2[2]" identifier [ number_literal ])) ;) (expression_statement "pSVar5 = ppSVar2[3];" (assignment_expression "pSVar5 = ppSVar2[3]" identifier = (subscript_expression "ppSVar2[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = *ppSVar2;" (assignment_expression "*puVar4 = *ppSVar2" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*ppSVar2" * identifier)) ;) (expression_statement "puVar4[1] = pSVar7;" (assignment_expression "puVar4[1] = pSVar7" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = pSVar6;" (assignment_expression "puVar4[2] = pSVar6" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = pSVar5;" (assignment_expression "puVar4[3] = pSVar5" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppSVar3 != (Sized_relobj_file **)&local_10)" ( (binary_expression "ppSVar3 != (Sized_relobj_file **)&local_10" identifier != (cast_expression "(Sized_relobj_file **)&local_10" ( (type_descriptor "Sized_relobj_file **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_10" & identifier))) )) ;) (expression_statement "pSVar5 = ppSVar2[5];" (assignment_expression "pSVar5 = ppSVar2[5]" identifier = (subscript_expression "ppSVar2[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = *ppSVar3;" (assignment_expression "puVar4[4] = *ppSVar3" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (pointer_expression "*ppSVar3" * identifier)) ;) (expression_statement "puVar4[5] = pSVar5;" (assignment_expression "puVar4[5] = pSVar5" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 4) = puVar8 + 10;" (assignment_expression "*(undefined4 **)(param_1 + 4) = puVar8 + 10" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "puVar8 + 10" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (labeled_statement "std::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);" statement_identifier (ERROR "::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold:" : : (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry,std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry,std" number_literal , (comma_expression "false>::Copy_reloc_entry,std" (binary_expression "false>::Copy_reloc_entry" false > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" number_literal , (binary_expression "false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" (binary_expression "false>::Copy_reloc_entry>>\n  ::_M_realloc_insert" false > (ERROR "::" : :) (binary_expression "Copy_reloc_entry>>\n  ::_M_realloc_insert" identifier >> (ERROR "::" : :) identifier)) < identifier))) :) : (expression_statement "Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);" (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" number_literal , (binary_expression "false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (binary_expression "false>::Copy_reloc_entry" false > (ERROR "::" : :) identifier) > (parenthesized_expression "((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" ( (parenthesized_expression "(vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" ( (ERROR "vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry,std" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry,std" number_literal , (comma_expression "false>::Copy_reloc_entry,std" (binary_expression "false>::Copy_reloc_entry" false > (ERROR "::" : :) identifier) , identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" (binary_expression "Copy_relocs<4" identifier < number_literal) , (comma_expression "64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" number_literal , (comma_expression "false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" (binary_expression "false>::Copy_reloc_entry>>\n              *)param_1" false > (ERROR "::" : :) (binary_expression "Copy_reloc_entry>>\n              *)param_1" identifier >> (pointer_expression "*)param_1" * (ERROR ")" )) identifier))) , (comma_expression "puVar8,local_30" identifier , identifier)))) )) ))))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : :) IDENT (ERROR < LIT , LIT) , (ERROR (function_declarator IDENT (ERROR > : : IDENT) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) { IDENT) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (return_statement return ;) })) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < LIT) , (comma_expression LIT , (comma_expression (binary_expression BOOL > (ERROR : :) IDENT) , IDENT))) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < LIT) , (comma_expression LIT , (binary_expression (binary_expression BOOL > (ERROR : :) (binary_expression IDENT >> (ERROR : :) IDENT)) < IDENT))) :) : (expression_statement (comma_expression (binary_expression IDENT < LIT) , (comma_expression LIT , (binary_expression (binary_expression BOOL > (ERROR : :) IDENT) > (parenthesized_expression ( (parenthesized_expression ( (ERROR (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < LIT) , (comma_expression LIT , (comma_expression (binary_expression BOOL > (ERROR : :) IDENT) , IDENT))) : : (binary_expression IDENT < IDENT) : :) (comma_expression (binary_expression IDENT < LIT) , (comma_expression LIT , (comma_expression (binary_expression BOOL > (ERROR : :) (binary_expression IDENT >> (pointer_expression * (ERROR )) IDENT))) , (comma_expression IDENT , IDENT)))) )) ))))) ;)) (return_statement return ;) (ERROR }))
(declaration "void gold::Copy_relocs<4,64,false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4 *puVar1;" (primitive_type "void") (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "Copy_relocs") (ERROR "<4,64" (< "<") (number_literal "4") (, ",") (number_literal "64")) (, ",") (ERROR "false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)\n\n{\n  undefined4" (function_declarator "false>::save\n               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)" (identifier "false") (ERROR ">::save" (> ">") (: ":") (: ":") (identifier "save")) (parameter_list "(Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,\n               uint param_5,ulonglong param_6,longlong param_7)" (( "(") (parameter_declaration "Symbol *param_1" (type_identifier "Symbol") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Sized_relobj_file *param_2" (type_identifier "Sized_relobj_file") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "Output_section *param_4" (type_identifier "Output_section") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "ulonglong param_6" (type_identifier "ulonglong") (identifier "param_6")) (, ",") (parameter_declaration "longlong param_7" (type_identifier "longlong") (identifier "param_7")) () ")"))) ({ "{") (identifier "undefined4")) (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "Sized_relobj_file **ppSVar2;" (type_identifier "Sized_relobj_file") (pointer_declarator "**ppSVar2" (* "*") (pointer_declarator "*ppSVar2" (* "*") (identifier "ppSVar2"))) (; ";")) (declaration "Sized_relobj_file **ppSVar3;" (type_identifier "Sized_relobj_file") (pointer_declarator "**ppSVar3" (* "*") (pointer_declarator "*ppSVar3" (* "*") (identifier "ppSVar3"))) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "Sized_relobj_file *pSVar5;" (type_identifier "Sized_relobj_file") (pointer_declarator "*pSVar5" (* "*") (identifier "pSVar5")) (; ";")) (declaration "Sized_relobj_file *pSVar6;" (type_identifier "Sized_relobj_file") (pointer_declarator "*pSVar6" (* "*") (identifier "pSVar6")) (; ";")) (declaration "Sized_relobj_file *pSVar7;" (type_identifier "Sized_relobj_file") (pointer_declarator "*pSVar7" (* "*") (identifier "pSVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "Sized_relobj_file *local_30 [2];" (type_identifier "Sized_relobj_file") (pointer_declarator "*local_30 [2]" (* "*") (array_declarator "local_30 [2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "Output_section *local_24;" (type_identifier "Output_section") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "uint local_20;" (type_identifier "uint") (identifier "local_20") (; ";")) (declaration "ulonglong local_18;" (type_identifier "ulonglong") (identifier "local_18") (; ";")) (declaration "longlong local_10;" (type_identifier "longlong") (identifier "local_10") (; ";")) (expression_statement "puVar8 = *(undefined4 **)(param_1 + 4);" (assignment_expression "puVar8 = *(undefined4 **)(param_1 + 4)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_28 = param_3;" (assignment_expression "local_28 = param_3" (identifier "local_28") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_24 = param_4;" (assignment_expression "local_24 = param_4" (identifier "local_24") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_18 = param_6;" (assignment_expression "local_18 = param_6" (identifier "local_18") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_30[0] = param_2;" (assignment_expression "local_30[0] = param_2" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_20 = param_5;" (assignment_expression "local_20 = param_5" (identifier "local_20") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_10 = param_7;" (assignment_expression "local_10 = param_7" (identifier "local_10") (= "=") (identifier "param_7")) (; ";")) (if_statement "if (puVar8 != *(undefined4 **)(param_1 + 8)) {\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }" (if "if") (parenthesized_expression "(puVar8 != *(undefined4 **)(param_1 + 8))" (( "(") (binary_expression "puVar8 != *(undefined4 **)(param_1 + 8)" (identifier "puVar8") (!= "!=") (pointer_expression "*(undefined4 **)(param_1 + 8)" (* "*") (cast_expression "(undefined4 **)(param_1 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n    ppSVar3 = local_30;\n    puVar1 = puVar8;\n    do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);\n    pSVar5 = ppSVar2[5];\n    puVar4[4] = *ppSVar3;\n    puVar4[5] = pSVar5;\n    *(undefined4 **)(param_1 + 4) = puVar8 + 10;\n    return;\n  }" ({ "{") (expression_statement "ppSVar3 = local_30;" (assignment_expression "ppSVar3 = local_30" (identifier "ppSVar3") (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar1 = puVar8;" (assignment_expression "puVar1 = puVar8" (identifier "puVar1") (= "=") (identifier "puVar8")) (; ";")) (do_statement "do {\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    } while (ppSVar3 != (Sized_relobj_file **)&local_10);" (do "do") (compound_statement "{\n      puVar4 = puVar1;\n      ppSVar2 = ppSVar3;\n      ppSVar3 = ppSVar2 + 4;\n      pSVar7 = ppSVar2[1];\n      pSVar6 = ppSVar2[2];\n      pSVar5 = ppSVar2[3];\n      *puVar4 = *ppSVar2;\n      puVar4[1] = pSVar7;\n      puVar4[2] = pSVar6;\n      puVar4[3] = pSVar5;\n      puVar1 = puVar4 + 4;\n    }" ({ "{") (expression_statement "puVar4 = puVar1;" (assignment_expression "puVar4 = puVar1" (identifier "puVar4") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "ppSVar2 = ppSVar3;" (assignment_expression "ppSVar2 = ppSVar3" (identifier "ppSVar2") (= "=") (identifier "ppSVar3")) (; ";")) (expression_statement "ppSVar3 = ppSVar2 + 4;" (assignment_expression "ppSVar3 = ppSVar2 + 4" (identifier "ppSVar3") (= "=") (binary_expression "ppSVar2 + 4" (identifier "ppSVar2") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pSVar7 = ppSVar2[1];" (assignment_expression "pSVar7 = ppSVar2[1]" (identifier "pSVar7") (= "=") (subscript_expression "ppSVar2[1]" (identifier "ppSVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pSVar6 = ppSVar2[2];" (assignment_expression "pSVar6 = ppSVar2[2]" (identifier "pSVar6") (= "=") (subscript_expression "ppSVar2[2]" (identifier "ppSVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pSVar5 = ppSVar2[3];" (assignment_expression "pSVar5 = ppSVar2[3]" (identifier "pSVar5") (= "=") (subscript_expression "ppSVar2[3]" (identifier "ppSVar2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar4 = *ppSVar2;" (assignment_expression "*puVar4 = *ppSVar2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*ppSVar2" (* "*") (identifier "ppSVar2"))) (; ";")) (expression_statement "puVar4[1] = pSVar7;" (assignment_expression "puVar4[1] = pSVar7" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pSVar7")) (; ";")) (expression_statement "puVar4[2] = pSVar6;" (assignment_expression "puVar4[2] = pSVar6" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "pSVar6")) (; ";")) (expression_statement "puVar4[3] = pSVar5;" (assignment_expression "puVar4[3] = pSVar5" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "pSVar5")) (; ";")) (expression_statement "puVar1 = puVar4 + 4;" (assignment_expression "puVar1 = puVar4 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppSVar3 != (Sized_relobj_file **)&local_10)" (( "(") (binary_expression "ppSVar3 != (Sized_relobj_file **)&local_10" (identifier "ppSVar3") (!= "!=") (cast_expression "(Sized_relobj_file **)&local_10" (( "(") (type_descriptor "Sized_relobj_file **" (type_identifier "Sized_relobj_file") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_10" (& "&") (identifier "local_10")))) () ")")) (; ";")) (expression_statement "pSVar5 = ppSVar2[5];" (assignment_expression "pSVar5 = ppSVar2[5]" (identifier "pSVar5") (= "=") (subscript_expression "ppSVar2[5]" (identifier "ppSVar2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar4[4] = *ppSVar3;" (assignment_expression "puVar4[4] = *ppSVar3" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*ppSVar3" (* "*") (identifier "ppSVar3"))) (; ";")) (expression_statement "puVar4[5] = pSVar5;" (assignment_expression "puVar4[5] = pSVar5" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "pSVar5")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 4) = puVar8 + 10;" (assignment_expression "*(undefined4 **)(param_1 + 4) = puVar8 + 10" (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar8 + 10" (identifier "puVar8") (+ "+") (number_literal "10"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "std::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);" (statement_identifier "std") (ERROR "::\n  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold:" (: ":") (: ":") (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry,std" (binary_expression "Copy_relocs<4" (identifier "Copy_relocs") (< "<") (number_literal "4")) (, ",") (comma_expression "64,false>::Copy_reloc_entry,std" (number_literal "64") (, ",") (comma_expression "false>::Copy_reloc_entry,std" (binary_expression "false>::Copy_reloc_entry" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Copy_reloc_entry")) (, ",") (identifier "std")))) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" (binary_expression "Copy_relocs<4" (identifier "Copy_relocs") (< "<") (number_literal "4")) (, ",") (comma_expression "64,false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" (number_literal "64") (, ",") (binary_expression "false>::Copy_reloc_entry>>\n  ::_M_realloc_insert<gold" (binary_expression "false>::Copy_reloc_entry>>\n  ::_M_realloc_insert" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (binary_expression "Copy_reloc_entry>>\n  ::_M_realloc_insert" (identifier "Copy_reloc_entry") (>> ">>") (ERROR "::" (: ":") (: ":")) (identifier "_M_realloc_insert"))) (< "<") (identifier "gold")))) (: ":")) (: ":") (expression_statement "Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30);" (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (binary_expression "Copy_relocs<4" (identifier "Copy_relocs") (< "<") (number_literal "4")) (, ",") (comma_expression "64,false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (number_literal "64") (, ",") (binary_expression "false>::Copy_reloc_entry>\n            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (binary_expression "false>::Copy_reloc_entry" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Copy_reloc_entry")) (> ">") (parenthesized_expression "((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (( "(") (parenthesized_expression "(vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30)" (( "(") (ERROR "vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::" (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry,std" (binary_expression "Copy_relocs<4" (identifier "Copy_relocs") (< "<") (number_literal "4")) (, ",") (comma_expression "64,false>::Copy_reloc_entry,std" (number_literal "64") (, ",") (comma_expression "false>::Copy_reloc_entry,std" (binary_expression "false>::Copy_reloc_entry" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Copy_reloc_entry")) (, ",") (identifier "std")))) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":")) (comma_expression "Copy_relocs<4,64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" (binary_expression "Copy_relocs<4" (identifier "Copy_relocs") (< "<") (number_literal "4")) (, ",") (comma_expression "64,false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" (number_literal "64") (, ",") (comma_expression "false>::Copy_reloc_entry>>\n              *)param_1,puVar8,local_30" (binary_expression "false>::Copy_reloc_entry>>\n              *)param_1" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (binary_expression "Copy_reloc_entry>>\n              *)param_1" (identifier "Copy_reloc_entry") (>> ">>") (pointer_expression "*)param_1" (* "*") (ERROR ")" () ")")) (identifier "param_1")))) (, ",") (comma_expression "puVar8,local_30" (identifier "puVar8") (, ",") (identifier "local_30"))))) () ")")) () ""))))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: void save(Copy_relocs<4,_64,_false> * this, Symbol * sym,
   Sized_relobj_file<64,_false> * object, uint shndx, Output_section * output_section, uint r_type,
   Elf_Addr r_offset, Elf_Swxword r_addend) */

void __thiscall
var_2::var_4<4,_64,var_5>::save
          (var_4<4,_64,var_5> *this,Symbol *sym,var_1<64,var_5> *object,
          type_3 shndx,type_5 *output_section,type_3 r_type,Elf_Addr r_offset,
          Elf_Swxword r_addend)

{
  type_4 iVar1;
  type_1 *pCVar2;
  type_1 *var_6;
  type_2 uVar4;
  type_1 *pCVar5;
  type_3 uVar6;
  var_1<64,var_5> *pSVar7;
  type_3 uVar8;
  type_4 __position;
  type_1 local_30;
  
  __position._M_current =
       (this->entries_).
       super__Vector_base<var_2::var_4<4,_64,var_5>::type_1,_std::allocator<var_2::var_4<4,_64,var_5>::type_1>var_3>
       ._M_impl._M_finish;
  local_30.relobj_ = object;
  local_30.shndx_ = shndx;
  local_30.reloc_type_ = r_type;
  local_30.address_ = r_offset;
  local_30.sym_ = sym;
  local_30.output_section_ = output_section;
  local_30.addend_ = r_addend;
  if (__position._M_current !=
      (this->entries_).
      super__Vector_base<var_2::var_4<4,_64,var_5>::type_1,_std::allocator<var_2::var_4<4,_64,var_5>::type_1>var_3>
      ._M_impl._M_end_of_storage) {
    var_6 = &local_30;
    iVar1._M_current = __position._M_current;
    do {
      pCVar5 = iVar1._M_current;
      pCVar2 = var_6;
      var_6 = (type_1 *)&pCVar2->output_section_;
      uVar8 = pCVar2->reloc_type_;
      pSVar7 = pCVar2->relobj_;
      uVar6 = pCVar2->shndx_;
      pCVar5->sym_ = pCVar2->sym_;
      pCVar5->reloc_type_ = uVar8;
      pCVar5->relobj_ = pSVar7;
      pCVar5->shndx_ = uVar6;
      iVar1._M_current = (type_1 *)&pCVar5->output_section_;
    } while (var_6 != (type_1 *)&local_30.addend_);
    uVar4 = *(type_2 *)&pCVar2->field_0x14;
    pCVar5->output_section_ = *(type_5 **)var_6;
    *(type_2 *)&pCVar5->field_0x14 = uVar4;
    (this->entries_).
    super__Vector_base<var_2::var_4<4,_64,var_5>::type_1,_std::allocator<var_2::var_4<4,_64,var_5>::type_1>var_3>
    ._M_impl._M_finish = __position._M_current + 1;
    return;
  }
  std::
  vector<var_2::var_4<4,_64,var_5>::type_1,_std::allocator<var_2::var_4<4,_64,var_5>::type_1>var_3>
  ::_M_realloc_insert<var_2::var_4<4,_64,var_5>::type_1>
            (&this->entries_,__position,&local_30);
  return;
}


(translation_unit (declaration type: (primitive_type) (ERROR (identifier)) declarator: (identifier) (ERROR (number_literal) (number_literal)) (ERROR (function_declarator declarator: (identifier) (ERROR (identifier)) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (number_literal) right: (comma_expression left: (binary_expression left: (false) (ERROR) right: (identifier)) right: (identifier)))) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (number_literal) right: (binary_expression left: (binary_expression left: (false) (ERROR) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) right: (identifier))))) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (number_literal) right: (binary_expression left: (binary_expression left: (false) (ERROR) right: (identifier)) right: (parenthesized_expression (parenthesized_expression (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (number_literal) right: (comma_expression left: (binary_expression left: (false) (ERROR) right: (identifier)) right: (identifier)))) (binary_expression left: (identifier) right: (identifier))) (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (number_literal) right: (comma_expression left: (binary_expression left: (false) (ERROR) right: (binary_expression left: (identifier) right: (pointer_expression (ERROR) argument: (identifier)))) right: (comma_expression left: (identifier) right: (identifier)))))) (MISSING ")"))))))) (return_statement) (ERROR))

/* gold::Copy_relocs<4, 64, false>::MASKED(gold::Symbol*, gold::Sized_relobj_file<64, false>*,
   unsigned int, gold::Output_section*, unsigned int, unsigned long long, long long) */

void gold::Copy_relocs<4,64,false>::MASKED
               (Symbol *param_1,Sized_relobj_file *param_2,uint param_3,Output_section *param_4,
               uint param_5,ulonglong param_6,longlong param_7)

{
  undefined4 *puVar1;
  Sized_relobj_file **ppSVar2;
  Sized_relobj_file **ppSVar3;
  undefined4 *puVar4;
  Sized_relobj_file *pSVar5;
  Sized_relobj_file *pSVar6;
  Sized_relobj_file *pSVar7;
  undefined4 *puVar8;
  Sized_relobj_file *local_30 [2];
  uint local_28;
  Output_section *local_24;
  uint local_20;
  ulonglong local_18;
  longlong local_10;
  
  puVar8 = *(undefined4 **)(param_1 + 4);
  local_28 = param_3;
  local_24 = param_4;
  local_18 = param_6;
  local_30[0] = param_2;
  local_20 = param_5;
  local_10 = param_7;
  if (puVar8 != *(undefined4 **)(param_1 + 8)) {
    ppSVar3 = local_30;
    puVar1 = puVar8;
    do {
      puVar4 = puVar1;
      ppSVar2 = ppSVar3;
      ppSVar3 = ppSVar2 + 4;
      pSVar7 = ppSVar2[1];
      pSVar6 = ppSVar2[2];
      pSVar5 = ppSVar2[3];
      *puVar4 = *ppSVar2;
      puVar4[1] = pSVar7;
      puVar4[2] = pSVar6;
      puVar4[3] = pSVar5;
      puVar1 = puVar4 + 4;
    } while (ppSVar3 != (Sized_relobj_file **)&local_10);
    pSVar5 = ppSVar2[5];
    puVar4[4] = *ppSVar3;
    puVar4[5] = pSVar5;
    *(undefined4 **)(param_1 + 4) = puVar8 + 10;
    return;
  }
  std::
  vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>
  ::_M_realloc_insert<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>
            ((vector<gold::Copy_relocs<4,64,false>::Copy_reloc_entry,std::allocator<gold::Copy_relocs<4,64,false>::Copy_reloc_entry>>
              *)param_1,puVar8,local_30);
  return;
}

