
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void add_undefined_symbol_from_command_line<32>(Symbol_table * this,
   char * name) */

void __thiscall
gold::Symbol_table::add_undefined_symbol_from_command_line<32>(Symbol_table *this,char *name)

{
  Symbol *pSVar1;
  Sized_symbol<32> *this_00;
  char *local_30 [2];
  bool resolve_oldsym;
  char *version;
  Sized_symbol<32> *oldsym;
  
  local_30[0] = name;
  pSVar1 = lookup(this,name,(char *)0x0);
  if (pSVar1 != (Symbol *)0x0) {
    return;
  }
  version = (char *)0x0;
  if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  if (parameters->target_->pti_->is_big_endian != false) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");
  }
  this_00 = define_special_symbol<32,_false>
                      (this,local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false);
  if (oldsym == (Sized_symbol<32> *)0x0) {
    Sized_symbol<32>::init_undefined
              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0');
    this->saw_undefined_ = this->saw_undefined_ + 1;
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");
}



long FUN_002541d0(long *param_1,undefined8 param_2)

{
  long lVar1;
  undefined8 uVar2;
  undefined8 local_30 [2];
  undefined1 local_19;
  undefined8 local_18;
  long local_10;
  
  local_30[0] = param_2;
  lVar1 = FUN_0024cba0(param_1,param_2,0);
  if (lVar1 != 0) {
    return lVar1;
  }
  local_18 = 0;
  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/parameters.h",0x69,"target");
  }
  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");
  }
  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);
  if (local_10 == 0) {
    lVar1 = 0;
    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);
    *param_1 = *param_1 + 1;
    return lVar1;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");
}


PUSH RBX
XOR EDX,EDX
MOV RBX,RDI
SUB RSP,0x30
MOV qword ptr [RSP + 0x8],RSI
CALL 0x0024cba0
TEST RAX,RAX
JZ 0x002541f0
ADD RSP,0x30
POP RBX
RET
MOV qword ptr [RSP + 0x20],0x0
MOV RAX,qword ptr [0x003f85c0]
MOV RAX,qword ptr [RAX + 0x18]
TEST RAX,RAX
JZ 0x0025426e
MOV RAX,qword ptr [RAX + 0x8]
CMP byte ptr [RAX + 0x4],0x0
JNZ 0x00254286
LEA RDX,[RSP + 0x20]
LEA RSI,[RSP + 0x8]
PUSH 0x0
XOR ECX,ECX
XOR R8D,R8D
MOV RDI,RBX
LEA RAX,[RSP + 0x27]
PUSH RAX
LEA R9,[RSP + 0x38]
CALL 0x002533b0
POP RCX
POP RSI
CMP qword ptr [RSP + 0x28],0x0
JNZ 0x0025429e
PUSH 0x0
MOV RDI,RAX
MOV R9D,0x1
XOR R8D,R8D
PUSH 0x0
MOV RDX,qword ptr [RSP + 0x30]
XOR ECX,ECX
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x0024e030
POP RAX
POP RDX
ADD qword ptr [RBX],0x1
ADD RSP,0x30
POP RBX
RET
LEA RDX,[0x3516cb]
MOV ESI,0x69
LEA RDI,[0x333279]
CALL 0x00199900
LEA RDX,[0x351340]
MOV ESI,0x9d1
LEA RDI,[0x350af1]
CALL 0x00199900
LEA RDX,[0x351340]
MOV ESI,0x9e2
LEA RDI,[0x350af1]
CALL 0x00199900
(translation_unit "long FUN_002541d0(long *param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}\n\n" (function_definition "long FUN_002541d0(long *param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}" (sized_type_specifier "long" long) (function_declarator "FUN_002541d0(long *param_1,undefined8 param_2)" identifier (parameter_list "(long *param_1,undefined8 param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 local_30 [2];" type_identifier (array_declarator "local_30 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_19;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (declaration "long local_10;" (sized_type_specifier "long" long) 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 "lVar1 = FUN_0024cba0(param_1,param_2,0);" (assignment_expression "lVar1 = FUN_0024cba0(param_1,param_2,0)" identifier = (call_expression "FUN_0024cba0(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (lVar1 != 0) {\n    return lVar1;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return lVar1;\n  }" { (return_statement "return lVar1;" return identifier ;) })) (expression_statement "local_18 = 0;" (assignment_expression "local_18 = 0" identifier = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x18)" ( (binary_expression "PTR_DAT_003f85c0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "FUN_00199900("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_00199900("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" if (parenthesized_expression "(*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0')" ( (binary_expression "*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0'" (pointer_expression "*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" * (cast_expression "(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" ( (binary_expression "*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4" (pointer_expression "*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x18)" ( (binary_expression "PTR_DAT_003f85c0 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" { comment (expression_statement "FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");" (call_expression "FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" identifier (argument_list "("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_undefined_symbol_from_command_line"" " string_content ") ))) ;) })) (expression_statement "uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);" (assignment_expression "uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" identifier = (call_expression "FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" identifier (argument_list "(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" ( identifier , identifier , (pointer_expression "&local_18" & identifier) , number_literal , number_literal , (pointer_expression "&local_10" & identifier) , (pointer_expression "&local_19" & identifier) , number_literal )))) ;) (if_statement "if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }" if (parenthesized_expression "(local_10 == 0)" ( (binary_expression "local_10 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }" { (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) (expression_statement "FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);" (call_expression "FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0)" identifier (argument_list "(uVar2,local_30[0],local_18,0,0,1,0,0)" ( identifier , (subscript_expression "local_30[0]" identifier [ number_literal ]) , identifier , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "*param_1 = *param_1 + 1;" (assignment_expression "*param_1 = *param_1 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + 1" (pointer_expression "*param_1" * identifier) + number_literal)) ;) (return_statement "return lVar1;" return identifier ;) })) comment (expression_statement "FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");" (call_expression "FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" identifier (argument_list "("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_undefined_symbol_from_command_line"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* DWARF original prototype: void add_undefined_symbol_from_command_line<32>(Symbol_table * this,\n   char * name) */\n\nvoid __thiscall\ngold::Symbol_table::add_undefined_symbol_from_command_line<32>(Symbol_table *this,char *name)\n\n{\n  Symbol *pSVar1;\n  Sized_symbol<32> *this_00;\n  char *local_30 [2];\n  bool resolve_oldsym;\n  char *version;\n  Sized_symbol<32> *oldsym;\n  \n  local_30[0] = name;\n  pSVar1 = lookup(this,name,(char *)0x0);\n  if (pSVar1 != (Symbol *)0x0) {\n    return;\n  }\n  version = (char *)0x0;\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  if (parameters->target_->pti_->is_big_endian != false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  this_00 = define_special_symbol<32,_false>\n                      (this,local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false);\n  if (oldsym == (Sized_symbol<32> *)0x0) {\n    Sized_symbol<32>::init_undefined\n              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0');\n    this->saw_undefined_ = this->saw_undefined_ + 1;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}\n\n" comment comment comment comment comment (declaration "void __thiscall\ngold::Symbol_table::add_undefined_symbol_from_command_line<32>(Symbol_table *this,char *name)\n\n{\n  Symbol *pSVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::add_undefined_symbol_from_command_line<32>(Symbol_table" identifier : : identifier : : identifier < number_literal > ( identifier) (pointer_declarator "*this" * identifier) , (ERROR "char *name)\n\n{\n  Symbol" identifier (pointer_declarator "*name" * identifier) ) { identifier) (pointer_declarator "*pSVar1" * identifier) ;) (expression_statement "Sized_symbol<32> *this_00;" (update_expression "Sized_symbol<32> *this_00" (binary_expression "Sized_symbol<32> *this_00" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "char *local_30 [2];" primitive_type (pointer_declarator "*local_30 [2]" * (array_declarator "local_30 [2]" identifier [ number_literal ])) ;) (declaration "bool resolve_oldsym;" primitive_type identifier ;) (declaration "char *version;" primitive_type (pointer_declarator "*version" * identifier) ;) (expression_statement "Sized_symbol<32> *oldsym;" (update_expression "Sized_symbol<32> *oldsym" (binary_expression "Sized_symbol<32> *oldsym" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*oldsym" * identifier)) --) ;) (expression_statement "local_30[0] = name;" (assignment_expression "local_30[0] = name" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pSVar1 = lookup(this,name,(char *)0x0);" (assignment_expression "pSVar1 = lookup(this,name,(char *)0x0)" identifier = (call_expression "lookup(this,name,(char *)0x0)" identifier (argument_list "(this,name,(char *)0x0)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (pSVar1 != (Symbol *)0x0) {\n    return;\n  }" if (parenthesized_expression "(pSVar1 != (Symbol *)0x0)" ( (binary_expression "pSVar1 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "version = (char *)0x0;" (assignment_expression "version = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if (parameters->target_->pti_->is_big_endian != false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" if (parenthesized_expression "(parameters->target_->pti_->is_big_endian != false)" ( (binary_expression "parameters->target_->pti_->is_big_endian != false" (field_expression "parameters->target_->pti_->is_big_endian" (field_expression "parameters->target_->pti_" (field_expression "parameters->target_" identifier -> field_identifier) -> field_identifier) -> field_identifier) != false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" identifier (argument_list "("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_undefined_symbol_from_command_line"" " string_content ") ))) ;) })) (expression_statement "this_00 = define_special_symbol<32,_false>\n                      (this,local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false);" (update_expression "this_00 = define_special_symbol<32,_false>\n                      (this,local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false)" (binary_expression "this_00 = define_special_symbol<32,_false>\n                      (this,local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false)" (assignment_expression "this_00 = define_special_symbol<32" identifier = (binary_expression "define_special_symbol<32" identifier < number_literal)) (ERROR ",_false" , identifier) > (parenthesized_expression "(this,local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false)" ( (comma_expression "this,local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false" identifier , (comma_expression "local_30,&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false" identifier , (comma_expression "&version,false,STV_DEFAULT,&oldsym,&resolve_oldsym,false" (pointer_expression "&version" & identifier) , (comma_expression "false,STV_DEFAULT,&oldsym,&resolve_oldsym,false" false , (comma_expression "STV_DEFAULT,&oldsym,&resolve_oldsym,false" identifier , (comma_expression "&oldsym,&resolve_oldsym,false" (pointer_expression "&oldsym" & identifier) , (comma_expression "&resolve_oldsym,false" (pointer_expression "&resolve_oldsym" & identifier) , false))))))) ))) --) ;) (if_statement "if (oldsym == (Sized_symbol<32> *)0x0) {\n    Sized_symbol<32>::init_undefined\n              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0');\n    this->saw_undefined_ = this->saw_undefined_ + 1;\n    return;\n  }" if (parenthesized_expression "(oldsym == (Sized_symbol<32> *)0x0)" ( (binary_expression "oldsym == (Sized_symbol<32> *)0x0)" identifier == (parenthesized_expression "(Sized_symbol<32> *)0x0)" ( (binary_expression "Sized_symbol<32> *)0x0" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n    Sized_symbol<32>::init_undefined\n              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0');\n    this->saw_undefined_ = this->saw_undefined_ + 1;\n    return;\n  }" { (expression_statement "Sized_symbol<32>::init_undefined\n              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0');" (binary_expression "Sized_symbol<32>::init_undefined\n              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0')" (binary_expression "Sized_symbol<32" identifier < number_literal) > (ERROR "::" : :) (call_expression "init_undefined\n              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0')" identifier (argument_list "(this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0')" ( identifier , (subscript_expression "local_30[0]" identifier [ number_literal ]) , identifier , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') )))) ;) (expression_statement "this->saw_undefined_ = this->saw_undefined_ + 1;" (assignment_expression "this->saw_undefined_ = this->saw_undefined_ + 1" (field_expression "this->saw_undefined_" identifier -> field_identifier) = (binary_expression "this->saw_undefined_ + 1" (field_expression "this->saw_undefined_" identifier -> field_identifier) + number_literal)) ;) (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" identifier (argument_list "("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_undefined_symbol_from_command_line"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "long FUN_002541d0(long *param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    \n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}\n\n" (function_definition "long FUN_002541d0(long *param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    \n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}" (sized_type_specifier "long" long) (function_declarator "FUN_002541d0(long *param_1,undefined8 param_2)" identifier (parameter_list "(long *param_1,undefined8 param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    \n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 local_30 [2];" type_identifier (array_declarator "local_30 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_19;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (declaration "long local_10;" (sized_type_specifier "long" long) 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 "lVar1 = FUN_0024cba0(param_1,param_2,0);" (assignment_expression "lVar1 = FUN_0024cba0(param_1,param_2,0)" identifier = (call_expression "FUN_0024cba0(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (lVar1 != 0) {\n    return lVar1;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return lVar1;\n  }" { (return_statement "return lVar1;" return identifier ;) })) (expression_statement "local_18 = 0;" (assignment_expression "local_18 = 0" identifier = number_literal) ;) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x18) == 0)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x18)" ( (binary_expression "PTR_DAT_003f85c0 + 0x18" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }" { (expression_statement "FUN_00199900("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_00199900("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" if (parenthesized_expression "(*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0')" ( (binary_expression "*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0'" (pointer_expression "*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" * (cast_expression "(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" ( (binary_expression "*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4" (pointer_expression "*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" ( (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x18)" * (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_003f85c0 + 0x18)" ( (binary_expression "PTR_DAT_003f85c0 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" { (expression_statement "FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");" (call_expression "FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" identifier (argument_list "("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_undefined_symbol_from_command_line"" " string_content ") ))) ;) })) (expression_statement "uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);" (assignment_expression "uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" identifier = (call_expression "FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" identifier (argument_list "(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" ( identifier , identifier , (pointer_expression "&local_18" & identifier) , number_literal , number_literal , (pointer_expression "&local_10" & identifier) , (pointer_expression "&local_19" & identifier) , number_literal )))) ;) (if_statement "if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }" if (parenthesized_expression "(local_10 == 0)" ( (binary_expression "local_10 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }" { (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" identifier = number_literal) ;) (expression_statement "FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);" (call_expression "FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0)" identifier (argument_list "(uVar2,local_30[0],local_18,0,0,1,0,0)" ( identifier , (subscript_expression "local_30[0]" identifier [ number_literal ]) , identifier , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "*param_1 = *param_1 + 1;" (assignment_expression "*param_1 = *param_1 + 1" (pointer_expression "*param_1" * identifier) = (binary_expression "*param_1 + 1" (pointer_expression "*param_1" * identifier) + number_literal)) ;) (return_statement "return lVar1;" return identifier ;) })) (expression_statement "FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");" (call_expression "FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" identifier (argument_list "("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_undefined_symbol_from_command_line"" " string_content ") ))) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT , LIT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , LIT , LIT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "long FUN_002541d0(long *param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    \n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_002541d0(long *param_1,undefined8 param_2)" (identifier "FUN_002541d0") (parameter_list "(long *param_1,undefined8 param_2)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  undefined8 local_30 [2];\n  undefined1 local_19;\n  undefined8 local_18;\n  long local_10;\n  \n  local_30[0] = param_2;\n  lVar1 = FUN_0024cba0(param_1,param_2,0);\n  if (lVar1 != 0) {\n    return lVar1;\n  }\n  local_18 = 0;\n  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }\n  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }\n  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);\n  if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }\n                    \n  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 local_30 [2];" (type_identifier "undefined8") (array_declarator "local_30 [2]" (identifier "local_30") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_19;" (type_identifier "undefined1") (identifier "local_19") (; ";")) (declaration "undefined8 local_18;" (type_identifier "undefined8") (identifier "local_18") (; ";")) (declaration "long local_10;" (sized_type_specifier "long" (long "long")) (identifier "local_10") (; ";")) (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 "lVar1 = FUN_0024cba0(param_1,param_2,0);" (assignment_expression "lVar1 = FUN_0024cba0(param_1,param_2,0)" (identifier "lVar1") (= "=") (call_expression "FUN_0024cba0(param_1,param_2,0)" (identifier "FUN_0024cba0") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (lVar1 != 0) {\n    return lVar1;\n  }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return lVar1;\n  }" ({ "{") (return_statement "return lVar1;" (return "return") (identifier "lVar1") (; ";")) (} "}"))) (expression_statement "local_18 = 0;" (assignment_expression "local_18 = 0" (identifier "local_18") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x18) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x18) == 0" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x18" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/parameters.h",0x69,"target");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_00199900("../../gold/parameters.h",0x69,"target")" (identifier "FUN_00199900") (argument_list "("../../gold/parameters.h",0x69,"target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0'" (pointer_expression "*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" (* "*") (cast_expression "(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4)" (( "(") (binary_expression "*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4" (pointer_expression "*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" (* "*") (cast_expression "(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8)" (( "(") (binary_expression "*(long *)(PTR_DAT_003f85c0 + 0x18) + 8" (pointer_expression "*(long *)(PTR_DAT_003f85c0 + 0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_003f85c0 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_003f85c0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003f85c0 + 0x18" (identifier "PTR_DAT_003f85c0") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");" (call_expression "FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" (identifier "FUN_00199900") (argument_list "("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x9d1") (, ",") (string_literal ""add_undefined_symbol_from_command_line"" (" """) (string_content "add_undefined_symbol_from_command_line") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);" (assignment_expression "uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" (identifier "uVar2") (= "=") (call_expression "FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" (identifier "FUN_002533b0") (argument_list "(param_1,local_30,&local_18,0,0,&local_10,&local_19,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_30") (, ",") (pointer_expression "&local_18" (& "&") (identifier "local_18")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_10" (& "&") (identifier "local_10")) (, ",") (pointer_expression "&local_19" (& "&") (identifier "local_19")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (local_10 == 0) {\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }" (if "if") (parenthesized_expression "(local_10 == 0)" (( "(") (binary_expression "local_10 == 0" (identifier "local_10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar1 = 0;\n    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);\n    *param_1 = *param_1 + 1;\n    return lVar1;\n  }" ({ "{") (expression_statement "lVar1 = 0;" (assignment_expression "lVar1 = 0" (identifier "lVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);" (call_expression "FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0)" (identifier "FUN_0024e030") (argument_list "(uVar2,local_30[0],local_18,0,0,1,0,0)" (( "(") (identifier "uVar2") (, ",") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_18") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*param_1 = *param_1 + 1;" (assignment_expression "*param_1 = *param_1 + 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "*param_1 + 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "1"))) (; ";")) (return_statement "return lVar1;" (return "return") (identifier "lVar1") (; ";")) (} "}"))) (expression_statement "FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");" (call_expression "FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" (identifier "FUN_00199900") (argument_list "("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x9e2") (, ",") (string_literal ""add_undefined_symbol_from_command_line"" (" """) (string_content "add_undefined_symbol_from_command_line") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void add_undefined_symbol_from_command_line<32>(Symbol_table * this,
   char * name) */

void __thiscall
gold::Symbol_table::add_undefined_symbol_from_command_line<32>(Symbol_table *this,char *name)

{
  type_1 *var_3;
  var_1<32> *this_00;
  char *local_30 [2];
  bool resolve_oldsym;
  char *version;
  var_1<32> *var_6;
  
  local_30[0] = name;
  var_3 = var_2(this,name,(char *)0x0);
  if (var_3 != (type_1 *)0x0) {
    return;
  }
  version = (char *)0x0;
  if (parameters->target_ == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/parameters.h",0x69,"target");
  }
  if (parameters->target_->pti_->is_big_endian != false) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");
  }
  this_00 = var_5<32,_false>
                      (this,local_30,&version,false,STV_DEFAULT,&var_6,&resolve_oldsym,false);
  if (var_6 == (var_1<32> *)0x0) {
    var_1<32>::var_7
              (this_00,local_30[0],version,0,STT_NOTYPE,STB_GLOBAL,STV_DEFAULT,'\0');
    this->saw_undefined_ = this->saw_undefined_ + 1;
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_4("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (number_literal) (number_literal) (number_literal) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))))

long MASKED(long *param_1,undefined8 param_2)

{
  long lVar1;
  undefined8 uVar2;
  undefined8 local_30 [2];
  undefined1 local_19;
  undefined8 local_18;
  long local_10;
  
  local_30[0] = param_2;
  lVar1 = FUN_0024cba0(param_1,param_2,0);
  if (lVar1 != 0) {
    return lVar1;
  }
  local_18 = 0;
  if (*(long *)(PTR_DAT_003f85c0 + 0x18) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/parameters.h",0x69,"target");
  }
  if (*(char *)(*(long *)(*(long *)(PTR_DAT_003f85c0 + 0x18) + 8) + 4) != '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/symtab.cc",0x9d1,"add_undefined_symbol_from_command_line");
  }
  uVar2 = FUN_002533b0(param_1,local_30,&local_18,0,0,&local_10,&local_19,0);
  if (local_10 == 0) {
    lVar1 = 0;
    FUN_0024e030(uVar2,local_30[0],local_18,0,0,1,0,0);
    *param_1 = *param_1 + 1;
    return lVar1;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00199900("../../gold/symtab.cc",0x9e2,"add_undefined_symbol_from_command_line");
}

