
/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

Tls_optimization __regparm3 anon_unknown.dwarf_227848::optimize_tls_reloc(bool is_final,int r_type)

{
  if (gold::parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((gold::parameters->options_->shared_).value != false) {
_L416:
    return TLSOPT_NONE;
  }
  switch(r_type) {
  case 0x38:
  case 0x39:
  case 0x3a:
  case 0x3b:
    return !is_final + TLSOPT_TO_LE;
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
    return TLSOPT_TO_LE;
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
    return (uint)is_final * 2;
  case 0x48:
  case 0x49:
    goto _L416;
  default:
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");
  }
}



/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

char __regparm3 FUN_0004b060(undefined4 param_1,undefined4 param_2)

{
  if (*(int *)(DAT_003aa3e8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);
  }
  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {
LAB_0004b0a0:
    return '\0';
  }
  switch(param_2) {
  case 0x38:
  case 0x39:
  case 0x3a:
  case 0x3b:
    return ((char)param_1 == '\0') + '\x02';
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
    return '\x02';
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
    return ((char)param_1 != '\0') * '\x02';
  case 0x48:
  case 0x49:
    goto LAB_0004b0a0;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);
  }
}


CALL 0x0006206f
ADD ECX,0x35ef9b
PUSH EBX
SUB ESP,0x8
LEA EBX,[ECX + 0x3e8]
MOV EBX,dword ptr [EBX]
MOV EBX,dword ptr [EBX + 0x8]
TEST EBX,EBX
JZ 0x0004b0e0
CMP byte ptr [EBX + 0x1a25],0x0
JNZ 0x0004b0a0
SUB EDX,0x38
CMP EDX,0x11
JA 0x0004b0f8
ADD ECX,dword ptr [ECX + EDX*0x4 + 0xffef18c0]
JMP ECX
ADD ESP,0x8
XOR EAX,EAX
POP EBX
RET
LEA EAX,[ECX + 0xffef3e84]
PUSH EDX
MOV EBX,ECX
PUSH EAX
LEA EAX,[ECX + 0xffeec26d]
PUSH 0x5c
PUSH EAX
CALL 0x0007ac80
PUSH EAX
LEA EAX,[ECX + 0xffef3be8]
MOV EBX,ECX
PUSH EAX
LEA EAX,[ECX + 0xffef13c2]
PUSH 0x7c9
PUSH EAX
CALL 0x0007ac80
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nchar __regparm3 FUN_0004b060(undefined4 param_1,undefined4 param_2)\n\n{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}\n\n" comment (function_definition "char __regparm3 FUN_0004b060(undefined4 param_1,undefined4 param_2)\n\n{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004b060(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}" { (if_statement "if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }" if (parenthesized_expression "(*(int *)(DAT_003aa3e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_003aa3e8 + 8) == 0" (pointer_expression "*(int *)(DAT_003aa3e8 + 8)" * (cast_expression "(int *)(DAT_003aa3e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_003aa3e8 + 8)" ( (binary_expression "DAT_003aa3e8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }" { comment (expression_statement "FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" ( (binary_expression "*(int *)(DAT_003aa3e8 + 8) + 0x1a25" (pointer_expression "*(int *)(DAT_003aa3e8 + 8)" * (cast_expression "(int *)(DAT_003aa3e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_003aa3e8 + 8)" ( (binary_expression "DAT_003aa3e8 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004b0a0:\n    return '\0';\n  }" { (labeled_statement "LAB_0004b0a0:\n    return '\0';" statement_identifier : (return_statement "return '\0';" return (char_literal "'\0'" ' escape_sequence ') ;)) })) (switch_statement "switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }" switch (parenthesized_expression "(param_2)" ( identifier )) (compound_statement "{\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }" { (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';" case number_literal : (return_statement "return ((char)param_1 == '\0') + '\x02';" return (binary_expression "((char)param_1 == '\0') + '\x02'" (parenthesized_expression "((char)param_1 == '\0')" ( (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) + (char_literal "'\x02'" ' escape_sequence ')) ;)) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:" case number_literal :) (case_statement "case 0x3e:" case number_literal :) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:\n    return '\x02';" case number_literal : (return_statement "return '\x02';" return (char_literal "'\x02'" ' escape_sequence ') ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:\n    return ((char)param_1 != '\0') * '\x02';" case number_literal : (return_statement "return ((char)param_1 != '\0') * '\x02';" return (binary_expression "((char)param_1 != '\0') * '\x02'" (parenthesized_expression "((char)param_1 != '\0')" ( (binary_expression "(char)param_1 != '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) * (char_literal "'\x02'" ' escape_sequence ')) ;)) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:\n    goto LAB_0004b0a0;" case number_literal : (goto_statement "goto LAB_0004b0a0;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);" default : comment (expression_statement "FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);" (call_expression "FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1)" identifier (argument_list "("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1)" ( (string_literal ""../../gold/sparc.cc"" " string_content ") , number_literal , (string_literal ""optimize_tls_reloc"" " string_content ") , identifier ))) ;)) })) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n\nTls_optimization __regparm3 anon_unknown.dwarf_227848::optimize_tls_reloc(bool is_final,int r_type)\n\n{\n  if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((gold::parameters->options_->shared_).value != false) {\n_L416:\n    return TLSOPT_NONE;\n  }\n  switch(r_type) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return !is_final + TLSOPT_TO_LE;\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return TLSOPT_TO_LE;\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return (uint)is_final * 2;\n  case 0x48:\n  case 0x49:\n    goto _L416;\n  default:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");\n  }\n}\n\n" comment comment comment (declaration "Tls_optimization __regparm3" type_identifier identifier ;) (ERROR "anon_unknown.dwarf_227848::optimize_tls_reloc(bool is_final,int r_type)" (field_expression "anon_unknown.dwarf_227848" identifier . field_identifier) : : (macro_type_specifier "optimize_tls_reloc(bool" identifier ( (type_descriptor "bool" primitive_type) )) identifier , identifier identifier )) (compound_statement "{\n  if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((gold::parameters->options_->shared_).value != false) {\n_L416:\n    return TLSOPT_NONE;\n  }\n  switch(r_type) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return !is_final + TLSOPT_TO_LE;\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return TLSOPT_TO_LE;\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return (uint)is_final * 2;\n  case 0x48:\n  case 0x49:\n    goto _L416;\n  default:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");\n  }\n}" { (if_statement "if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if ((gold::parameters->options_->shared_).value != false) {\n_L416:\n    return TLSOPT_NONE;\n  }" if (parenthesized_expression "((gold::parameters->options_->shared_).value != false)" ( (binary_expression "(gold::parameters->options_->shared_).value != false" (field_expression "(gold::parameters->options_->shared_).value" (parenthesized_expression "(gold::parameters->options_->shared_)" ( (ERROR "gold::" identifier : :) (field_expression "parameters->options_->shared_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n_L416:\n    return TLSOPT_NONE;\n  }" { (labeled_statement "_L416:\n    return TLSOPT_NONE;" statement_identifier : (return_statement "return TLSOPT_NONE;" return identifier ;)) })) (switch_statement "switch(r_type) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return !is_final + TLSOPT_TO_LE;\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return TLSOPT_TO_LE;\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return (uint)is_final * 2;\n  case 0x48:\n  case 0x49:\n    goto _L416;\n  default:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");\n  }" switch (parenthesized_expression "(r_type)" ( identifier )) (compound_statement "{\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return !is_final + TLSOPT_TO_LE;\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return TLSOPT_TO_LE;\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return (uint)is_final * 2;\n  case 0x48:\n  case 0x49:\n    goto _L416;\n  default:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");\n  }" { (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:\n    return !is_final + TLSOPT_TO_LE;" case number_literal : (return_statement "return !is_final + TLSOPT_TO_LE;" return (binary_expression "!is_final + TLSOPT_TO_LE" (unary_expression "!is_final" ! identifier) + identifier) ;)) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:" case number_literal :) (case_statement "case 0x3e:" case number_literal :) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:\n    return TLSOPT_TO_LE;" case number_literal : (return_statement "return TLSOPT_TO_LE;" return identifier ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:\n    return (uint)is_final * 2;" case number_literal : (return_statement "return (uint)is_final * 2;" return (binary_expression "(uint)is_final * 2" (cast_expression "(uint)is_final" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ;)) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:\n    goto _L416;" case number_literal : (goto_statement "goto _L416;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");" default : comment (labeled_statement "gold::do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");" (call_expression "do_gold_unreachable("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc")" identifier (argument_list "("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc")" ( (string_literal ""../../gold/sparc.cc"" " string_content ") , number_literal , (string_literal ""optimize_tls_reloc"" " string_content ") ))) ;))) })) }))
(translation_unit "char __regparm3 FUN_0004b060(undefined4 param_1,undefined4 param_2)\n\n{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}\n\n" (function_definition "char __regparm3 FUN_0004b060(undefined4 param_1,undefined4 param_2)\n\n{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004b060(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}" { (if_statement "if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }" if (parenthesized_expression "(*(int *)(DAT_003aa3e8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_003aa3e8 + 8) == 0" (pointer_expression "*(int *)(DAT_003aa3e8 + 8)" * (cast_expression "(int *)(DAT_003aa3e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_003aa3e8 + 8)" ( (binary_expression "DAT_003aa3e8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }" { (expression_statement "FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" ( (binary_expression "*(int *)(DAT_003aa3e8 + 8) + 0x1a25" (pointer_expression "*(int *)(DAT_003aa3e8 + 8)" * (cast_expression "(int *)(DAT_003aa3e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_003aa3e8 + 8)" ( (binary_expression "DAT_003aa3e8 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004b0a0:\n    return '\0';\n  }" { (labeled_statement "LAB_0004b0a0:\n    return '\0';" statement_identifier : (return_statement "return '\0';" return (char_literal "'\0'" ' escape_sequence ') ;)) })) (switch_statement "switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }" switch (parenthesized_expression "(param_2)" ( identifier )) (compound_statement "{\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }" { (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';" case number_literal : (return_statement "return ((char)param_1 == '\0') + '\x02';" return (binary_expression "((char)param_1 == '\0') + '\x02'" (parenthesized_expression "((char)param_1 == '\0')" ( (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) + (char_literal "'\x02'" ' escape_sequence ')) ;)) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:" case number_literal :) (case_statement "case 0x3e:" case number_literal :) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x40:" case number_literal :) (case_statement "case 0x41:" case number_literal :) (case_statement "case 0x42:\n    return '\x02';" case number_literal : (return_statement "return '\x02';" return (char_literal "'\x02'" ' escape_sequence ') ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x44:" case number_literal :) (case_statement "case 0x45:" case number_literal :) (case_statement "case 0x46:" case number_literal :) (case_statement "case 0x47:\n    return ((char)param_1 != '\0') * '\x02';" case number_literal : (return_statement "return ((char)param_1 != '\0') * '\x02';" return (binary_expression "((char)param_1 != '\0') * '\x02'" (parenthesized_expression "((char)param_1 != '\0')" ( (binary_expression "(char)param_1 != '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) * (char_literal "'\x02'" ' escape_sequence ')) ;)) (case_statement "case 0x48:" case number_literal :) (case_statement "case 0x49:\n    goto LAB_0004b0a0;" case number_literal : (goto_statement "goto LAB_0004b0a0;" goto statement_identifier ;)) (case_statement "default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);" default : (expression_statement "FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);" (call_expression "FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1)" identifier (argument_list "("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1)" ( (string_literal ""../../gold/sparc.cc"" " string_content ") , number_literal , (string_literal ""optimize_tls_reloc"" " string_content ") , identifier ))) ;)) })) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 ") , IDENT ))) ;) })) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (return_statement return (char_literal ' escape_sequence ') ;)) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) + (char_literal ' escape_sequence ')) ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (return_statement return (char_literal ' escape_sequence ') ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) * (char_literal ' escape_sequence ')) ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) })))
(function_definition "char __regparm3 FUN_0004b060(undefined4 param_1,undefined4 param_2)\n\n{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}" (primitive_type "char") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0004b060(undefined4 param_1,undefined4 param_2)" (identifier "FUN_0004b060") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }\n  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }\n  switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }\n}" ({ "{") (if_statement "if (*(int *)(DAT_003aa3e8 + 8) == 0) {\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_003aa3e8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_003aa3e8 + 8) == 0" (pointer_expression "*(int *)(DAT_003aa3e8 + 8)" (* "*") (cast_expression "(int *)(DAT_003aa3e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_003aa3e8 + 8)" (( "(") (binary_expression "DAT_003aa3e8 + 8" (identifier "DAT_003aa3e8") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);\n  }" ({ "{") (expression_statement "FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);" (call_expression "FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2)" (identifier "FUN_0007ac80") (argument_list "("../../gold/parameters.h",0x5c,"options",param_2)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {\nLAB_0004b0a0:\n    return '\0';\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_003aa3e8 + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(DAT_003aa3e8 + 8) + 0x1a25" (pointer_expression "*(int *)(DAT_003aa3e8 + 8)" (* "*") (cast_expression "(int *)(DAT_003aa3e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_003aa3e8 + 8)" (( "(") (binary_expression "DAT_003aa3e8 + 8" (identifier "DAT_003aa3e8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0004b0a0:\n    return '\0';\n  }" ({ "{") (labeled_statement "LAB_0004b0a0:\n    return '\0';" (statement_identifier "LAB_0004b0a0") (: ":") (return_statement "return '\0';" (return "return") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")) (; ";"))) (} "}"))) (switch_statement "switch(param_2) {\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }" (switch "switch") (parenthesized_expression "(param_2)" (( "(") (identifier "param_2") () ")")) (compound_statement "{\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';\n  case 0x3c:\n  case 0x3d:\n  case 0x3e:\n  case 0x3f:\n  case 0x40:\n  case 0x41:\n  case 0x42:\n    return '\x02';\n  case 0x43:\n  case 0x44:\n  case 0x45:\n  case 0x46:\n  case 0x47:\n    return ((char)param_1 != '\0') * '\x02';\n  case 0x48:\n  case 0x49:\n    goto LAB_0004b0a0;\n  default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);\n  }" ({ "{") (case_statement "case 0x38:" (case "case") (number_literal "0x38") (: ":")) (case_statement "case 0x39:" (case "case") (number_literal "0x39") (: ":")) (case_statement "case 0x3a:" (case "case") (number_literal "0x3a") (: ":")) (case_statement "case 0x3b:\n    return ((char)param_1 == '\0') + '\x02';" (case "case") (number_literal "0x3b") (: ":") (return_statement "return ((char)param_1 == '\0') + '\x02';" (return "return") (binary_expression "((char)param_1 == '\0') + '\x02'" (parenthesized_expression "((char)param_1 == '\0')" (( "(") (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (+ "+") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";"))) (case_statement "case 0x3c:" (case "case") (number_literal "0x3c") (: ":")) (case_statement "case 0x3d:" (case "case") (number_literal "0x3d") (: ":")) (case_statement "case 0x3e:" (case "case") (number_literal "0x3e") (: ":")) (case_statement "case 0x3f:" (case "case") (number_literal "0x3f") (: ":")) (case_statement "case 0x40:" (case "case") (number_literal "0x40") (: ":")) (case_statement "case 0x41:" (case "case") (number_literal "0x41") (: ":")) (case_statement "case 0x42:\n    return '\x02';" (case "case") (number_literal "0x42") (: ":") (return_statement "return '\x02';" (return "return") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")) (; ";"))) (case_statement "case 0x43:" (case "case") (number_literal "0x43") (: ":")) (case_statement "case 0x44:" (case "case") (number_literal "0x44") (: ":")) (case_statement "case 0x45:" (case "case") (number_literal "0x45") (: ":")) (case_statement "case 0x46:" (case "case") (number_literal "0x46") (: ":")) (case_statement "case 0x47:\n    return ((char)param_1 != '\0') * '\x02';" (case "case") (number_literal "0x47") (: ":") (return_statement "return ((char)param_1 != '\0') * '\x02';" (return "return") (binary_expression "((char)param_1 != '\0') * '\x02'" (parenthesized_expression "((char)param_1 != '\0')" (( "(") (binary_expression "(char)param_1 != '\0'" (cast_expression "(char)param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_1")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";"))) (case_statement "case 0x48:" (case "case") (number_literal "0x48") (: ":")) (case_statement "case 0x49:\n    goto LAB_0004b0a0;" (case "case") (number_literal "0x49") (: ":") (goto_statement "goto LAB_0004b0a0;" (goto "goto") (statement_identifier "LAB_0004b0a0") (; ";"))) (case_statement "default:\n                    \n    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);" (default "default") (: ":") (expression_statement "FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);" (call_expression "FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1)" (identifier "FUN_0007ac80") (argument_list "("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1)" (( "(") (string_literal ""../../gold/sparc.cc"" (" """) (string_content "../../gold/sparc.cc") (" """)) (, ",") (number_literal "0x7c9") (, ",") (string_literal ""optimize_tls_reloc"" (" """) (string_content "optimize_tls_reloc") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";"))) (} "}"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

type_1 __regparm3 anon_unknown.dwarf_227848::optimize_tls_reloc(bool is_final,int r_type)

{
  if (gold::parameters->options_ == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::var_1("../../gold/parameters.h",0x5c,"options");
  }
  if ((gold::parameters->options_->shared_).value != false) {
_L416:
    return TLSOPT_NONE;
  }
  switch(r_type) {
  case 0x38:
  case 0x39:
  case 0x3a:
  case 0x3b:
    return !is_final + var_2;
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
    return var_2;
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
    return (type_3)is_final * 2;
  case 0x48:
  case 0x49:
    goto _L416;
  default:
                    /* WARNING: Subroutine does not return */
    gold::var_1("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc");
  }
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (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: (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)) (identifier)))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (return_statement (char_literal (escape_sequence)))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (char_literal (escape_sequence))))) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (return_statement (char_literal (escape_sequence)))) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (char_literal (escape_sequence))))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier))))))))))

/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

char __regparm3 MASKED(undefined4 param_1,undefined4 param_2)

{
  if (*(int *)(DAT_003aa3e8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0007ac80("../../gold/parameters.h",0x5c,"options",param_2);
  }
  if (*(char *)(*(int *)(DAT_003aa3e8 + 8) + 0x1a25) != '\0') {
LAB_0004b0a0:
    return '\0';
  }
  switch(param_2) {
  case 0x38:
  case 0x39:
  case 0x3a:
  case 0x3b:
    return ((char)param_1 == '\0') + '\x02';
  case 0x3c:
  case 0x3d:
  case 0x3e:
  case 0x3f:
  case 0x40:
  case 0x41:
  case 0x42:
    return '\x02';
  case 0x43:
  case 0x44:
  case 0x45:
  case 0x46:
  case 0x47:
    return ((char)param_1 != '\0') * '\x02';
  case 0x48:
  case 0x49:
    goto LAB_0004b0a0;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0007ac80("../../gold/sparc.cc",0x7c9,"optimize_tls_reloc",param_1);
  }
}

