[Bug tree-optimization/103050] [12 Regression] 520.omnetpp_r miscompiled after r12-4787-gb8ef019ab938471f

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Nov 2 20:06:35 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103050

--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> ---
So the only 2 transform happen here:

(gdb) bt
#0  gimple_call_retslot_flags (stmt=0x7ffff4543b40) at
/home/marxin/Programming/gcc/gcc/gimple.c:1644
#1  0x0000000000ff6128 in handle_rhs_call (stmt=0x7ffff4543b40,
results=0x7fffffffc750, implicit_eaf_flags=0, writes_global_memory=<optimized
out>, reads_global_memory=<optimized out>) at
/home/marxin/Programming/gcc/gcc/tree-ssa-structalias.c:4266
#2  0x0000000000ff9103 in find_func_aliases_for_call (t=<optimized out>,
fn=<optimized out>) at
/home/marxin/Programming/gcc/gcc/tree-ssa-structalias.c:4921
#3  find_func_aliases (fn=<optimized out>, origt=<optimized out>) at
/home/marxin/Programming/gcc/gcc/tree-ssa-structalias.c:5024
#4  0x0000000000ffac9b in compute_points_to_sets () at
/home/marxin/Programming/gcc/gcc/tree-ssa-structalias.c:7440
#5  compute_may_aliases () at
/home/marxin/Programming/gcc/gcc/tree-ssa-structalias.c:7948
#6  0x0000000000cf2f2d in execute_function_todo (fn=0x7ffff7133f00,
data=<optimized out>) at /home/marxin/Programming/gcc/gcc/passes.c:2014
#7  0x0000000000cf347c in execute_todo (flags=1572864) at
/home/marxin/Programming/gcc/gcc/passes.c:2096
#8  0x0000000000cf60fe in execute_one_pass (pass=0x282cae0) at
/home/marxin/Programming/gcc/gcc/passes.c:2560
#9  0x0000000000cf6a13 in execute_pass_list_1 (pass=0x282cae0) at
/home/marxin/Programming/gcc/gcc/passes.c:2656
#10 0x0000000000cf6a25 in execute_pass_list_1 (pass=0x282ba00) at
/home/marxin/Programming/gcc/gcc/passes.c:2657
#11 0x0000000000cf6a56 in execute_pass_list (fn=0x7ffff7133f00, pass=<optimized
out>) at /home/marxin/Programming/gcc/gcc/passes.c:2667
#12 0x00000000009424f5 in cgraph_node::expand (this=0x7ffff730ddd0) at
/home/marxin/Programming/gcc/gcc/context.h:48
#13 cgraph_node::expand (this=0x7ffff730ddd0) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:1781
#14 0x0000000000943b6f in expand_all_functions () at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:1992
#15 symbol_table::compile (this=0x7ffff765a000) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2356
#16 symbol_table::compile (this=0x7ffff765a000) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2267
#17 0x0000000000896c80 in lto_main () at
/home/marxin/Programming/gcc/gcc/lto/lto.c:653
#18 0x0000000000ddcd24 in compile_file () at
/home/marxin/Programming/gcc/gcc/toplev.c:452
#19 0x000000000086d91b in do_compile (no_backend=false) at
/home/marxin/Programming/gcc/gcc/toplev.c:2154
#20 toplev::main (this=this@entry=0x7fffffffccfe, argc=<optimized out>,
argc@entry=198, argv=<optimized out>, argv@entry=0x7fffffffce48) at
/home/marxin/Programming/gcc/gcc/toplev.c:2306
#21 0x0000000000870fd5 in main (argc=198, argv=0x7fffffffce48) at
/home/marxin/Programming/gcc/gcc/main.c:39

(gdb) p debug_gimple_stmt(stmt)
# .MEM_271 = VDEF <.MEM_270>
D.31174 = opp_quotestr (name_22); [return slot optimization]

(gdb) p debug_function(cfun->decl, 0)
void recordScalar (struct cFileOutputScalarManager * const this, struct
cComponent * component, const char * name, double value, struct opp_string_map
* attributes)
{
  const char * s;
  const char * s;
  struct _Rb_tree_node_base * const it$_M_node;
  struct string D.31180;
  struct string D.31179;
  struct string D.31178;
  struct string D.31177;
  struct string D.31176;
  struct string D.31175;
  struct string D.31174;
  struct string D.31173;
  struct basic_string D.31172;
  struct basic_string D.31171;
  bool _1;
  struct FILE * _2;
  char _3;
  int (*__vtbl_ptr_type) () * _4;
  int (*__vtbl_ptr_type) () _5;
  int (*__vtbl_ptr_type) () * _6;
  int (*__vtbl_ptr_type) () _7;
  struct cConfigOption * _8;
  struct cObject * _9;
  int (*__vtbl_ptr_type) () * _11;
  int (*__vtbl_ptr_type) () _12;
  int _13;
  int (*__vtbl_ptr_type) () * _14;
  int (*__vtbl_ptr_type) () _15;
  int (*__vtbl_ptr_type) () * _16;
  int (*__vtbl_ptr_type) () _17;
  int (*__vtbl_ptr_type) () * _18;
  int (*__vtbl_ptr_type) () _19;
  struct FILE * _20;
  struct FILE * _21;
  const char * _23;
  bool _24;
  const char * _25;
  bool _26;
  bool _27;
  bool _28;
  bool _29;
  bool _30;
  const char * _31;
  bool _32;
  bool _33;
  const char * _34;
  bool _35;
  bool _36;
  char * _67;
  struct cConfiguration * _69;
  long unsigned int _74;
  bool _76;
  bool _81;
  long unsigned int _83;
  bool _86;
  char * _88;
  char * _90;
  char * _92;
  int _95;
  struct cEnvir * _102;
  char * _103;
  char * _104;
  char * _107;
  long unsigned int _108;
  long unsigned int _109;
  long unsigned int _110;
  long unsigned int _112;
  bool _114;
  char * _115;
  char * _116;
  long unsigned int _117;
  long unsigned int _119;
  int _121;
  void * _126;
  char * _127;
  void * _133;
  char * _134;
  long unsigned int _144;
  long unsigned int _145;
  char * _146;
  long unsigned int _147;
  long unsigned int _148;
  char * _149;
  long unsigned int _150;
  long unsigned int _151;
  char * _152;
  long unsigned int _153;
  long unsigned int _154;
  char * _155;
  const char * _156;
  struct _Rb_tree_node_base * _157;
  char * _158;
  char * _162;
  char * _165;
  char _167;
  char * _169;
  char * _171;
  long unsigned int _172;
  long unsigned int _173;
  char * _174;
  long unsigned int _175;
  long unsigned int _176;
  char * _177;
  const char * _178;
  struct _Rb_tree_node_base * _179;
  char * _181;
  long unsigned int _182;
  long unsigned int _183;
  char * _184;
  long unsigned int _185;
  long unsigned int _186;
  char * _187;
  long unsigned int _188;
  long unsigned int _189;
  char * _190;
  long unsigned int _191;
  long unsigned int _192;
  char * _193;
  long unsigned int _194;
  long unsigned int _195;
  char * _196;
  long unsigned int _197;
  long unsigned int _198;
  char * _199;
  long unsigned int _200;
  long unsigned int _201;
  char * _202;
  long unsigned int _203;
  long unsigned int _204;
  char * _205;
  long unsigned int _206;
  long unsigned int _207;
  char * _208;
  long unsigned int _209;
  long unsigned int _210;
  struct _Rb_tree_node_base * _239;
  bool _259;
  void * PROF_336;
  struct cConfiguration * _338;
  struct cConfiguration * _340;
  char * _344;
  const char[16] * _345;
  uint128_t _346;
  long unsigned int _347;
  long unsigned int _348;
  long unsigned int _350;
  char _351;
  struct basic_string & _352;
  bool _354;
  char _355;
  char * _356;
  const char[16] * _357;
  uint128_t _358;
  long unsigned int _359;
  long unsigned int _360;
  long unsigned int _361;
  long unsigned int _362;
  long unsigned int _363;
  struct basic_string & _364;
  bool _366;
  bool _367;
  char _369;
  unsigned char _370;
  int _371;
  int _372;
  int _373;
  bool _379;
  bool _380;
  char _381;
  unsigned char _382;
  int _383;
  int _384;
  int _385;
  char _416;
  bool _422;
  const char * _425;
  bool _426;
  const char * _427;
  bool _428;

  <bb 2> [local count: 624228568]:
  _1 = this_64(D)->run.initialized;
  if (_1 != 0)
    goto <bb 4>; [67.00%]
  else
    goto <bb 3>; [33.00%]

  <bb 3> [local count: 205995424]:
  init (this_64(D));

  <bb 4> [local count: 624228568]:
  _2 = this_64(D)->f;
  if (_2 == 0B)
    goto <bb 98>; [18.09%]
  else
    goto <bb 5>; [81.91%]

  <bb 5> [local count: 511305619]:
  if (name_66(D) == 0B)
    goto <bb 7>; [30.00%]
  else
    goto <bb 6>; [70.00%]

  <bb 6> [local count: 357913935]:
  _3 = *name_66(D);
  if (_3 == 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 7> [local count: 332348652]:

  <bb 8> [local count: 511305619]:
  # name_22 = PHI <name_66(D)(6), "(unnamed)"(7)>
  _102 = evPtr;
  _4 = _102->_vptr.cEnvir;
  _5 = MEM[(int (*__vtbl_ptr_type) () *)_4 + 248B];
  PROF_336 = [obj_type_ref] OBJ_TYPE_REF(_5;(struct cEnvir)_102->31);
  if (PROF_336 == getConfig)
    goto <bb 9>; [80.00%]
  else
    goto <bb 10>; [20.00%]

  <bb 9> [local count: 409044496]:
  _340 = MEM[(struct EnvirBase *)_102].cfg;
  goto <bb 11>; [100.00%]

  <bb 10> [local count: 102261128]:
  _338 = OBJ_TYPE_REF(_5;(struct cEnvir)_102->31) (_102);

  <bb 11> [local count: 511305619]:
  # _69 = PHI <_338(10), _340(9)>
  _6 = _69->D.4955._vptr.cObject;
  _7 = MEM[(int (*__vtbl_ptr_type) () *)_6 + 264B];
  _8 = CFGID_SCALAR_RECORDING;
  _9 = &component_70(D)->D.5106.D.5083.D.4983.D.4767.D.4758;
  _11 = component_70(D)->D.5106.D.5083.D.4983.D.4767.D.4758._vptr.cObject;
  _12 = MEM[(int (*__vtbl_ptr_type) () *)_11 + 64B];
  D.31173 = OBJ_TYPE_REF(_12;(struct cObject)_9->8) (_9); [return slot
optimization]
  _350 = D.31173._M_string_length;
  if (_350 == 4611686018427387903)
    goto <bb 12>; [0.04%]
  else
    goto <bb 13>; [99.96%]

  <bb 12> [local count: 204523]:
  __throw_length_error ("basic_string::append");

  <bb 13> [local count: 511101096]:
  _352 = _M_append (&D.31173, ".", 1);

  <bb 14> [local count: 511101096]:
  MEM[(struct _Alloc_hider *)&D.31172]._M_p = &MEM <char[16]> [(void *)&D.31172
+ 16B];
  _344 = MEM[(const struct basic_string *)_352]._M_dataplus._M_p;
  _345 = &MEM[(const struct basic_string *)_352].D.4725._M_local_buf;
  if (_344 == _345)
    goto <bb 15>; [30.00%]
  else
    goto <bb 16>; [70.00%]

  <bb 15> [local count: 153330329]:
  _346 = MEM <uint128_t> [(char * {ref-all})_352 + 16B];
  MEM <uint128_t> [(char * {ref-all})&D.31172 + 16B] = _346;
  goto <bb 17>; [100.00%]

  <bb 16> [local count: 357770767]:
  D.31172._M_dataplus._M_p = _344;
  _347 = *_352.D.4725._M_allocated_capacity;
  D.31172.D.4725._M_allocated_capacity = _347;

  <bb 17> [local count: 511101096]:
  _348 = MEM[(const struct basic_string *)_352]._M_string_length;
  D.31172._M_string_length = _348;
  *_352._M_dataplus._M_p = _345;
  *_352._M_string_length = 0;
  MEM[(char_type &)_352 + 16] = 0;
  _361 = __builtin_strlen (name_22);
  _362 = D.31172._M_string_length;
  _363 = 4611686018427387903 - _362;
  if (_361 > _363)
    goto <bb 18>; [0.04%]
  else
    goto <bb 19>; [99.96%]

  <bb 18> [local count: 204439]:
  __throw_length_error ("basic_string::append");

  <bb 19> [local count: 510896657]:
  _364 = _M_append (&D.31172, name_22, _361);

  <bb 20> [local count: 510896657]:
  MEM[(struct _Alloc_hider *)&D.31171]._M_p = &MEM <char[16]> [(void *)&D.31171
+ 16B];
  _356 = MEM[(const struct basic_string *)_364]._M_dataplus._M_p;
  _357 = &MEM[(const struct basic_string *)_364].D.4725._M_local_buf;
  if (_356 == _357)
    goto <bb 21>; [30.00%]
  else
    goto <bb 22>; [70.00%]

  <bb 21> [local count: 153268996]:
  _358 = MEM <uint128_t> [(char * {ref-all})_364 + 16B];
  MEM <uint128_t> [(char * {ref-all})&D.31171 + 16B] = _358;
  goto <bb 23>; [100.00%]

  <bb 22> [local count: 357627661]:
  D.31171._M_dataplus._M_p = _356;
  _359 = *_364.D.4725._M_allocated_capacity;
  D.31171.D.4725._M_allocated_capacity = _359;

  <bb 23> [local count: 510896657]:
  _360 = MEM[(const struct basic_string *)_364]._M_string_length;
  D.31171._M_string_length = _360;
  *_364._M_dataplus._M_p = _357;
  *_364._M_string_length = 0;
  MEM[(char_type &)_364 + 16] = 0;
  _127 = D.31171._M_dataplus._M_p;
  _76 = OBJ_TYPE_REF(_7;(struct cConfiguration)_69->33) (_69, _127, _8, 0);

  <bb 24> [local count: 510896657]:
  _107 = D.31171._M_dataplus._M_p;
  if (&D.31171.D.4725._M_local_buf != _107)
    goto <bb 25>; [53.47%]
  else
    goto <bb 26>; [46.53%]

  <bb 25> [local count: 273176442]:
  _110 = D.31171.D.4725._M_allocated_capacity;
  _109 = _110 + 1;
  operator delete (_107, _109);

  <bb 26> [local count: 510896657]:
  D.31171 ={v} {CLOBBER};
  D.31171 ={v} {CLOBBER};
  _116 = D.31172._M_dataplus._M_p;
  if (&D.31172.D.4725._M_local_buf != _116)
    goto <bb 27>; [53.47%]
  else
    goto <bb 28>; [46.53%]

  <bb 27> [local count: 273176442]:
  _112 = D.31172.D.4725._M_allocated_capacity;
  _108 = _112 + 1;
  operator delete (_116, _108);

  <bb 28> [local count: 510896657]:
  D.31172 ={v} {CLOBBER};
  D.31172 ={v} {CLOBBER};
  _115 = D.31173._M_dataplus._M_p;
  if (&D.31173.D.4725._M_local_buf != _115)
    goto <bb 29>; [53.47%]
  else
    goto <bb 30>; [46.53%]

  <bb 29> [local count: 273176442]:
  _119 = D.31173.D.4725._M_allocated_capacity;
  _117 = _119 + 1;
  operator delete (_115, _117);

  <bb 30> [local count: 510896657]:
  D.31173 ={v} {CLOBBER};
  D.31173 ={v} {CLOBBER};
  if (_76 != 0)
    goto <bb 31>; [33.00%]
  else
    goto <bb 98>; [67.00%]

  <bb 31> [local count: 168595896]:
  _13 = this_64(D)->prec;
  _81 = opp_needsquotes (name_22);
  if (_81 != 0)
    goto <bb 32>; [33.00%]
  else
    goto <bb 33>; [67.00%]

  <bb 32> [local count: 55636644]:
  D.31174 = opp_quotestr (name_22); [return slot optimization]
  _104 = D.31174._M_dataplus._M_p;

  <bb 33> [local count: 168595896]:
  # _23 = PHI <name_22(31), _104(32)>
  # _24 = PHI <0(31), 1(32)>
  _14 = component_70(D)->D.5106.D.5083.D.4983.D.4767.D.4758._vptr.cObject;
  _15 = MEM[(int (*__vtbl_ptr_type) () *)_14 + 64B];
  D.31175 = OBJ_TYPE_REF(_15;(struct cObject)_9->8) (_9); [return slot
optimization]

  <bb 34> [local count: 168595896]:
  _103 = D.31175._M_dataplus._M_p;
  _86 = opp_needsquotes (_103);
  if (_86 != 0)
    goto <bb 35>; [50.00%]
  else
    goto <bb 38>; [50.00%]

  <bb 35> [local count: 84297948]:
  _16 = component_70(D)->D.5106.D.5083.D.4983.D.4767.D.4758._vptr.cObject;
  _17 = MEM[(int (*__vtbl_ptr_type) () *)_16 + 64B];
  D.31177 = OBJ_TYPE_REF(_17;(struct cObject)_9->8) (_9); [return slot
optimization]

  <bb 36> [local count: 84297948]:
  _134 = D.31177._M_dataplus._M_p;
  D.31176 = opp_quotestr (_134); [return slot optimization]

  <bb 37> [local count: 84297948]:
  _88 = D.31176._M_dataplus._M_p;
  goto <bb 40>; [100.00%]

  <bb 38> [local count: 84297948]:
  _18 = component_70(D)->D.5106.D.5083.D.4983.D.4767.D.4758._vptr.cObject;
  _19 = MEM[(int (*__vtbl_ptr_type) () *)_18 + 64B];
  D.31178 = OBJ_TYPE_REF(_19;(struct cObject)_9->8) (_9); [return slot
optimization]

  <bb 39> [local count: 84297948]:
  _92 = D.31178._M_dataplus._M_p;

  <bb 40> [local count: 168595896]:
  # _25 = PHI <_88(37), _92(39)>
  # _26 = PHI <1(37), 0(39)>
  # _29 = PHI <0(37), 1(39)>
  _20 = this_64(D)->f;
  _95 = fprintf (_20, "scalar %s \t%s \t%.*g\n", _25, _23, _13, value_93(D));

  <bb 41> [local count: 168595896]:
  if (_29 != 0)
    goto <bb 42>; [50.00%]
  else
    goto <bb 45>; [50.00%]

  <bb 42> [local count: 84297948]:
  _90 = D.31178._M_dataplus._M_p;
  if (&D.31178.D.4725._M_local_buf != _90)
    goto <bb 43>; [53.47%]
  else
    goto <bb 44>; [46.53%]

  <bb 43> [local count: 45074110]:
  _83 = D.31178.D.4725._M_allocated_capacity;
  _74 = _83 + 1;
  operator delete (_90, _74);

  <bb 44> [local count: 84297948]:
  D.31178 ={v} {CLOBBER};

  <bb 45> [local count: 168595896]:
  D.31178 ={v} {CLOBBER};
  if (_26 != 0)
    goto <bb 47>; [50.00%]
  else
    goto <bb 46>; [50.00%]

  <bb 46> [local count: 84297948]:
  D.31176 ={v} {CLOBBER};
  goto <bb 52>; [100.00%]

  <bb 47> [local count: 84297948]:
  _67 = D.31176._M_dataplus._M_p;
  if (&D.31176.D.4725._M_local_buf != _67)
    goto <bb 48>; [53.47%]
  else
    goto <bb 49>; [46.53%]

  <bb 48> [local count: 45074110]:
  _144 = D.31176.D.4725._M_allocated_capacity;
  _145 = _144 + 1;
  operator delete (_67, _145);

  <bb 49> [local count: 84297948]:
  D.31176 ={v} {CLOBBER};
  D.31176 ={v} {CLOBBER};
  _146 = D.31177._M_dataplus._M_p;
  if (&D.31177.D.4725._M_local_buf != _146)
    goto <bb 50>; [53.47%]
  else
    goto <bb 51>; [46.53%]

  <bb 50> [local count: 45074110]:
  _147 = D.31177.D.4725._M_allocated_capacity;
  _148 = _147 + 1;
  operator delete (_146, _148);

  <bb 51> [local count: 84297948]:
  D.31177 ={v} {CLOBBER};

  <bb 52> [local count: 168595896]:
  D.31177 ={v} {CLOBBER};
  _149 = D.31175._M_dataplus._M_p;
  if (&D.31175.D.4725._M_local_buf != _149)
    goto <bb 53>; [53.47%]
  else
    goto <bb 54>; [46.53%]

  <bb 53> [local count: 90148226]:
  _150 = D.31175.D.4725._M_allocated_capacity;
  _151 = _150 + 1;
  operator delete (_149, _151);

  <bb 54> [local count: 168595896]:
  D.31175 ={v} {CLOBBER};
  D.31175 ={v} {CLOBBER};
  if (_24 != 0)
    goto <bb 55>; [50.00%]
  else
    goto <bb 58>; [50.00%]

  <bb 55> [local count: 84297948]:
  _152 = D.31174._M_dataplus._M_p;
  if (&D.31174.D.4725._M_local_buf != _152)
    goto <bb 56>; [53.47%]
  else
    goto <bb 57>; [46.53%]

  <bb 56> [local count: 45074110]:
  _153 = D.31174.D.4725._M_allocated_capacity;
  _154 = _153 + 1;
  operator delete (_152, _154);

  <bb 57> [local count: 84297948]:
  D.31174 ={v} {CLOBBER};

  <bb 58> [local count: 168595896]:
  D.31174 ={v} {CLOBBER};
  if (_95 < 0)
    goto <bb 59>; [0.00%]
  else
    goto <bb 63>; [100.00%]

  <bb 59> [count: 0]:
  _133 = __cxa_allocate_exception (128);
  _155 = MEM[(const struct opp_string *)this_64(D) + 120B].str;
  if (_155 != 0B)
    goto <bb 61>; [0.00%]
  else
    goto <bb 60>; [0.00%]

  <bb 60> [count: 0]:

  <bb 61> [count: 0]:
  # _156 = PHI <""(60), _155(59)>
  __ct_comp  (_133, "Cannot write output scalar file `%s\'", _156);

  <bb 62> [count: 0]:
  __cxa_throw (_133, &_ZTI13cRuntimeError, __dt_comp );

  <bb 63> [local count: 168595896]:
  if (attributes_101(D) != 0B)
    goto <bb 64>; [70.00%]
  else
    goto <bb 98>; [30.00%]

  <bb 64> [local count: 118017131]:
  _157 = MEM[(struct _Rb_tree
*)attributes_101(D)]._M_impl.D.5999._M_header._M_left;
  _239 = &MEM[(struct _Rb_tree *)attributes_101(D)]._M_impl.D.5999._M_header;
  if (_157 != _239)
    goto <bb 152>; [89.00%]
  else
    goto <bb 98>; [11.00%]

  <bb 152> [local count: 105035247]:

  <bb 65> [local count: 954866036]:
  # it$_M_node_246 = PHI <_179(153), _157(152)>
  _158 = MEM[(const struct opp_string *)it$_M_node_246 + 40B].str;
  if (_158 != 0B)
    goto <bb 66>; [70.00%]
  else
    goto <bb 72>; [30.00%]

  <bb 66> [local count: 668406230]:
  _416 = MEM[(const char *)_158];
  if (_416 == 0)
    goto <bb 72>; [34.00%]
  else
    goto <bb 67>; [66.00%]

  <bb 67> [local count: 441148109]:

  <bb 68> [local count: 5855175980]:
  # _351 = PHI <_369(155), _416(67)>
  # s_349 = PHI <s_375(155), _158(67)>
  _370 = (unsigned char) _351;
  _371 = (int) _370;
  _372 = isspace (_371);
  _114 = _351 == 92;
  _380 = _372 != 0;
  _426 = _114 | _380;
  _366 = _351 == 34;
  _354 = _366 | _426;
  if (_354 != 0)
    goto <bb 71>; [6.46%]
  else
    goto <bb 69>; [93.54%]

  <bb 69> [local count: 5477173733]:
  _373 = iscntrl (_371);
  if (_373 != 0)
    goto <bb 71>; [2.20%]
  else
    goto <bb 70>; [97.80%]

  <bb 70> [local count: 5545739396]:
  s_375 = s_349 + 1;
  _369 = *s_375;
  if (_369 != 0)
    goto <bb 155>; [97.80%]
  else
    goto <bb 71>; [2.20%]

  <bb 155> [local count: 5423733130]:
  goto <bb 68>; [100.00%]

  <bb 71> [local count: 620506333]:
  # _367 = PHI <1(69), 0(70), 1(68)>
  if (_367 != 0)
    goto <bb 72>; [50.79%]
  else
    goto <bb 74>; [49.21%]

  <bb 72> [local count: 477433021]:
  # _425 = PHI <_158(71), _158(66), ""(65)>
  D.31179 = opp_quotestr (_425); [return slot optimization]

  <bb 73> [local count: 477433021]:
  _162 = D.31179._M_dataplus._M_p;

  <bb 74> [local count: 954866047]:
  # _31 = PHI <_162(73), _158(71)>
  # _32 = PHI <1(73), 0(71)>
  _165 = MEM[(const struct opp_string *)it$_M_node_246 + 32B].str;
  if (_165 != 0B)
    goto <bb 75>; [70.00%]
  else
    goto <bb 81>; [30.00%]

  <bb 75> [local count: 668406236]:
  _355 = MEM[(const char *)_165];
  if (_355 == 0)
    goto <bb 81>; [34.00%]
  else
    goto <bb 76>; [66.00%]

  <bb 76> [local count: 441148113]:

  <bb 77> [local count: 5855176046]:
  # _167 = PHI <_381(154), _355(76)>
  # s_463 = PHI <s_387(154), _165(76)>
  _382 = (unsigned char) _167;
  _383 = (int) _382;
  _384 = isspace (_383);
  _428 = _167 == 92;
  _259 = _384 != 0;
  _27 = _259 | _428;
  _28 = _167 == 34;
  _30 = _27 | _28;
  if (_30 != 0)
    goto <bb 80>; [6.46%]
  else
    goto <bb 78>; [93.54%]

  <bb 78> [local count: 5477173800]:
  _385 = iscntrl (_383);
  if (_385 != 0)
    goto <bb 80>; [2.20%]
  else
    goto <bb 79>; [97.80%]

  <bb 79> [local count: 5545739454]:
  s_387 = s_463 + 1;
  _381 = *s_387;
  if (_381 != 0)
    goto <bb 154>; [97.80%]
  else
    goto <bb 80>; [2.20%]

  <bb 154> [local count: 5423733187]:
  goto <bb 77>; [100.00%]

  <bb 80> [local count: 620506340]:
  # _379 = PHI <1(78), 0(79), 1(77)>
  if (_379 != 0)
    goto <bb 81>; [50.79%]
  else
    goto <bb 83>; [49.21%]

  <bb 81> [local count: 477433026]:
  # _427 = PHI <_165(80), _165(75), ""(74)>
  D.31180 = opp_quotestr (_427); [return slot optimization]

  <bb 82> [local count: 477433026]:
  _169 = D.31180._M_dataplus._M_p;

  <bb 83> [local count: 954866058]:
  # _34 = PHI <_169(82), _165(80)>
  # _35 = PHI <1(82), 0(80)>
  _21 = this_64(D)->f;
  _121 = fprintf (_21, "attr %s  %s\n", _34, _31);

  <bb 84> [local count: 954866058]:
  if (_35 != 0)
    goto <bb 85>; [50.00%]
  else
    goto <bb 88>; [50.00%]

  <bb 85> [local count: 477433026]:
  _171 = D.31180._M_dataplus._M_p;
  if (&D.31180.D.4725._M_local_buf != _171)
    goto <bb 86>; [53.47%]
  else
    goto <bb 87>; [46.53%]

  <bb 86> [local count: 255283437]:
  _172 = D.31180.D.4725._M_allocated_capacity;
  _173 = _172 + 1;
  operator delete (_171, _173);

  <bb 87> [local count: 477433026]:
  D.31180 ={v} {CLOBBER};

  <bb 88> [local count: 954866058]:
  D.31180 ={v} {CLOBBER};
  if (_32 != 0)
    goto <bb 89>; [50.00%]
  else
    goto <bb 92>; [50.00%]

  <bb 89> [local count: 477433026]:
  _174 = D.31179._M_dataplus._M_p;
  if (&D.31179.D.4725._M_local_buf != _174)
    goto <bb 90>; [53.47%]
  else
    goto <bb 91>; [46.53%]

  <bb 90> [local count: 255283437]:
  _175 = D.31179.D.4725._M_allocated_capacity;
  _176 = _175 + 1;
  operator delete (_174, _176);

  <bb 91> [local count: 477433026]:
  D.31179 ={v} {CLOBBER};

  <bb 92> [local count: 954866058]:
  D.31179 ={v} {CLOBBER};
  if (_121 < 0)
    goto <bb 93>; [0.00%]
  else
    goto <bb 97>; [100.00%]

  <bb 93> [count: 0]:
  _126 = __cxa_allocate_exception (128);
  _177 = MEM[(const struct opp_string *)this_64(D) + 120B].str;
  if (_177 != 0B)
    goto <bb 95>; [0.00%]
  else
    goto <bb 94>; [0.00%]

  <bb 94> [count: 0]:

  <bb 95> [count: 0]:
  # _178 = PHI <""(94), _177(93)>
  __ct_comp  (_126, "Cannot write output scalar file `%s\'", _178);

  <bb 96> [count: 0]:
  __cxa_throw (_126, &_ZTI13cRuntimeError, __dt_comp );

  <bb 97> [local count: 954866058]:
  _179 = _Rb_tree_increment (it$_M_node_246);
  if (_179 != _239)
    goto <bb 153>; [89.00%]
  else
    goto <bb 98>; [11.00%]

  <bb 153> [local count: 849830792]:
  goto <bb 65>; [100.00%]

  <bb 98> [local count: 623819628]:
  return;

  <bb 99> [count: 0]:
<L0>:
  _181 = D.31171._M_dataplus._M_p;
  if (&D.31171.D.4725._M_local_buf != _181)
    goto <bb 100>; [0.00%]
  else
    goto <bb 101>; [0.00%]

  <bb 100> [count: 0]:
  _182 = D.31171.D.4725._M_allocated_capacity;
  _183 = _182 + 1;
  operator delete (_181, _183);

  <bb 101> [count: 0]:
  D.31171 ={v} {CLOBBER};
  resx 6

  <bb 102> [count: 0]:
<L1>:
  D.31171 ={v} {CLOBBER};
  _184 = D.31172._M_dataplus._M_p;
  if (&D.31172.D.4725._M_local_buf != _184)
    goto <bb 103>; [0.00%]
  else
    goto <bb 104>; [0.00%]

  <bb 103> [count: 0]:
  _185 = D.31172.D.4725._M_allocated_capacity;
  _186 = _185 + 1;
  operator delete (_184, _186);

  <bb 104> [count: 0]:
  D.31172 ={v} {CLOBBER};
  resx 4

  <bb 105> [count: 0]:
<L2>:
  D.31172 ={v} {CLOBBER};
  _187 = D.31173._M_dataplus._M_p;
  if (&D.31173.D.4725._M_local_buf != _187)
    goto <bb 106>; [0.00%]
  else
    goto <bb 107>; [0.00%]

  <bb 106> [count: 0]:
  _188 = D.31173.D.4725._M_allocated_capacity;
  _189 = _188 + 1;
  operator delete (_187, _189);

  <bb 107> [count: 0]:
  D.31173 ={v} {CLOBBER};
  resx 2

  <bb 108> [count: 0]:
<L14>:
  resx 22

  <bb 109> [count: 0]:
<L13>:
  D.31178 ={v} {CLOBBER};
  resx 20

  <bb 110> [count: 0]:
<L19>:
  D.31176 ={v} {CLOBBER};
  goto <bb 131>; [100.00%]

  <bb 111> [count: 0]:
<L16>:
  resx 22

  <bb 112> [count: 0]:
<L15>:
  D.31178 ={v} {CLOBBER};
  resx 20

  <bb 113> [count: 0]:
<L18>:
  D.31176 ={v} {CLOBBER};
  goto <bb 131>; [100.00%]

  <bb 114> [count: 0]:
<L17>:
  resx 22

  <bb 115> [count: 0]:
<L20>:
  D.31178 ={v} {CLOBBER};
  resx 20

  <bb 116> [count: 0]:
<L21>:
  D.31176 ={v} {CLOBBER};
  goto <bb 128>; [100.00%]

  <bb 117> [count: 0]:
<L3>:
  if (_29 != 0)
    goto <bb 118>; [0.00%]
  else
    goto <bb 121>; [0.00%]

  <bb 118> [count: 0]:
  _190 = D.31178._M_dataplus._M_p;
  if (&D.31178.D.4725._M_local_buf != _190)
    goto <bb 119>; [0.00%]
  else
    goto <bb 120>; [0.00%]

  <bb 119> [count: 0]:
  _191 = D.31178.D.4725._M_allocated_capacity;
  _192 = _191 + 1;
  operator delete (_190, _192);

  <bb 120> [count: 0]:
  D.31178 ={v} {CLOBBER};

  <bb 121> [count: 0]:
  resx 22

  <bb 122> [count: 0]:
<L4>:
  D.31178 ={v} {CLOBBER};
  if (_26 != 0)
    goto <bb 123>; [0.00%]
  else
    goto <bb 126>; [0.00%]

  <bb 123> [count: 0]:
  _193 = D.31176._M_dataplus._M_p;
  if (&D.31176.D.4725._M_local_buf != _193)
    goto <bb 124>; [0.00%]
  else
    goto <bb 125>; [0.00%]

  <bb 124> [count: 0]:
  _194 = D.31176.D.4725._M_allocated_capacity;
  _195 = _194 + 1;
  operator delete (_193, _195);

  <bb 125> [count: 0]:
  D.31176 ={v} {CLOBBER};

  <bb 126> [count: 0]:
  # _422 = PHI <_26(122), 1(125)>
  resx 20

  <bb 127> [count: 0]:
<L5>:
  D.31176 ={v} {CLOBBER};
  if (_422 != 0)
    goto <bb 128>; [0.00%]
  else
    goto <bb 131>; [0.00%]

  <bb 128> [count: 0]:
  _196 = D.31177._M_dataplus._M_p;
  if (&D.31177.D.4725._M_local_buf != _196)
    goto <bb 129>; [0.00%]
  else
    goto <bb 130>; [0.00%]

  <bb 129> [count: 0]:
  _197 = D.31177.D.4725._M_allocated_capacity;
  _198 = _197 + 1;
  operator delete (_196, _198);

  <bb 130> [count: 0]:
  D.31177 ={v} {CLOBBER};

  <bb 131> [count: 0]:
  resx 18

  <bb 132> [count: 0]:
<L6>:
  D.31177 ={v} {CLOBBER};
  _199 = D.31175._M_dataplus._M_p;
  if (&D.31175.D.4725._M_local_buf != _199)
    goto <bb 133>; [0.00%]
  else
    goto <bb 134>; [0.00%]

  <bb 133> [count: 0]:
  _200 = D.31175.D.4725._M_allocated_capacity;
  _201 = _200 + 1;
  operator delete (_199, _201);

  <bb 134> [count: 0]:
  D.31175 ={v} {CLOBBER};
  resx 16

  <bb 135> [count: 0]:
<L7>:
  D.31175 ={v} {CLOBBER};
  if (_24 != 0)
    goto <bb 136>; [0.00%]
  else
    goto <bb 139>; [0.00%]

  <bb 136> [count: 0]:
  _202 = D.31174._M_dataplus._M_p;
  if (&D.31174.D.4725._M_local_buf != _202)
    goto <bb 137>; [0.00%]
  else
    goto <bb 138>; [0.00%]

  <bb 137> [count: 0]:
  _203 = D.31174.D.4725._M_allocated_capacity;
  _204 = _203 + 1;
  operator delete (_202, _204);

  <bb 138> [count: 0]:
  D.31174 ={v} {CLOBBER};

  <bb 139> [count: 0]:
<L8>:
  resx 14

  <bb 140> [count: 0]:
<L9>:
  __cxa_free_exception (_133);
  resx 33

  <bb 141> [count: 0]:
  # _36 = PHI <0(81), _35(83)>
<L10>:
  if (_36 != 0)
    goto <bb 142>; [0.00%]
  else
    goto <bb 145>; [0.00%]

  <bb 142> [count: 0]:
  _205 = D.31180._M_dataplus._M_p;
  if (&D.31180.D.4725._M_local_buf != _205)
    goto <bb 143>; [0.00%]
  else
    goto <bb 144>; [0.00%]

  <bb 143> [count: 0]:
  _206 = D.31180.D.4725._M_allocated_capacity;
  _207 = _206 + 1;
  operator delete (_205, _207);

  <bb 144> [count: 0]:
  D.31180 ={v} {CLOBBER};

  <bb 145> [count: 0]:
  resx 39

  <bb 146> [count: 0]:
  # _33 = PHI <0(72), _32(145)>
<L11>:
  D.31180 ={v} {CLOBBER};
  if (_33 != 0)
    goto <bb 147>; [0.00%]
  else
    goto <bb 150>; [0.00%]

  <bb 147> [count: 0]:
  _208 = D.31179._M_dataplus._M_p;
  if (&D.31179.D.4725._M_local_buf != _208)
    goto <bb 148>; [0.00%]
  else
    goto <bb 149>; [0.00%]

  <bb 148> [count: 0]:
  _209 = D.31179.D.4725._M_allocated_capacity;
  _210 = _209 + 1;
  operator delete (_208, _210);

  <bb 149> [count: 0]:
  D.31179 ={v} {CLOBBER};

  <bb 150> [count: 0]:
  resx 37

  <bb 151> [count: 0]:
<L12>:
  __cxa_free_exception (_126);
  resx 44

}


and here:

(gdb) bt
#0  gimple_call_arg_flags (stmt=0x7ffff574dd10, arg=2) at
/home/marxin/Programming/gcc/gcc/gimple.c:1610
#1  0x0000000000b9883b in analyze_ssa_name_flags (name=0x7ffff5d38d80,
lattice=..., depth=3, ipa=false) at
/home/marxin/Programming/gcc/gcc/ipa-modref.c:1825
#2  0x0000000000b98bd5 in analyze_ssa_name_flags (name=0x7ffff5d38c60,
lattice=..., depth=2, ipa=false) at
/home/marxin/Programming/gcc/gcc/ipa-modref.c:1933
#3  0x0000000000b98ddb in analyze_ssa_name_flags (name=0x7ffff57cdc60,
lattice=..., depth=1, ipa=false) at
/home/marxin/Programming/gcc/gcc/ipa-modref.c:1940
#4  0x0000000000b98fc7 in merge_call_lhs_flags (call=<optimized out>,
arg=<optimized out>, index=<optimized out>, deref=<optimized out>, lattice=...,
depth=0, ipa=false) at /home/marxin/Programming/gcc/gcc/ipa-modref.c:1684
#5  0x0000000000b98829 in merge_call_lhs_flags (ipa=<optimized out>,
depth=<optimized out>, lattice=..., deref=<optimized out>, index=<optimized
out>, arg=<optimized out>, call=<optimized out>) at
/home/marxin/Programming/gcc/gcc/ipa-modref.c:1838
#6  analyze_ssa_name_flags (name=0x7ffff57cd750, lattice=..., depth=0,
ipa=false) at /home/marxin/Programming/gcc/gcc/ipa-modref.c:1859
#7  0x0000000000b9de6e in analyze_parms (ipa=<optimized out>, summary_lto=0x0,
summary=0x7ffff6eed9c0) at /home/marxin/Programming/gcc/gcc/ipa-modref.c:2051
#8  analyze_function (f=<optimized out>, ipa=<optimized out>) at
/home/marxin/Programming/gcc/gcc/ipa-modref.c:2227
#9  0x0000000000b9fa02 in (anonymous namespace)::pass_modref::execute
(this=<optimized out>, f=<optimized out>) at
/home/marxin/Programming/gcc/gcc/ipa-modref.c:3087
#10 0x0000000000cf611a in execute_one_pass (pass=0x282e820) at
/home/marxin/Programming/gcc/gcc/passes.c:2567
#11 0x0000000000cf6a13 in execute_pass_list_1 (pass=0x282e820) at
/home/marxin/Programming/gcc/gcc/passes.c:2656
#12 0x0000000000cf6a25 in execute_pass_list_1 (pass=0x282ba00) at
/home/marxin/Programming/gcc/gcc/passes.c:2657
#13 0x0000000000cf6a56 in execute_pass_list (fn=0x7ffff71339c0, pass=<optimized
out>) at /home/marxin/Programming/gcc/gcc/passes.c:2667
#14 0x00000000009424f5 in cgraph_node::expand (this=0x7ffff6f58880) at
/home/marxin/Programming/gcc/gcc/context.h:48
#15 cgraph_node::expand (this=0x7ffff6f58880) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:1781
#16 0x0000000000943b6f in expand_all_functions () at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:1992
#17 symbol_table::compile (this=0x7ffff765a000) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2356
#18 symbol_table::compile (this=0x7ffff765a000) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2267
#19 0x0000000000896c80 in lto_main () at
/home/marxin/Programming/gcc/gcc/lto/lto.c:653
#20 0x0000000000ddcd24 in compile_file () at
/home/marxin/Programming/gcc/gcc/toplev.c:452
#21 0x000000000086d91b in do_compile (no_backend=false) at
/home/marxin/Programming/gcc/gcc/toplev.c:2154
#22 toplev::main (this=this@entry=0x7fffffffccfe, argc=<optimized out>,
argc@entry=198, argv=<optimized out>, argv@entry=0x7fffffffce48) at
/home/marxin/Programming/gcc/gcc/toplev.c:2306
#23 0x0000000000870fd5 in main (argc=198, argv=0x7fffffffce48) at
/home/marxin/Programming/gcc/gcc/main.c:39

(gdb) p debug_gimple_stmt(stmt)
# .MEM_110 = VDEF <.MEM_68>
_M_construct.constprop (_30(D), s_88, _92);

__attribute__((abi_tag ("cxx11")))
struct string getAsString (struct cConfiguration * const this, const char *
objectFullPath, struct cConfigOption * option, const char * fallbackValue)
{
  long int D.32273;
  const char * s;
  int (*__vtbl_ptr_type) () * _1;
  int (*__vtbl_ptr_type) () _2;
  int (*__vtbl_ptr_type) () * _3;
  int (*__vtbl_ptr_type) () _4;
  struct cNamedObject * _5;
  int (*__vtbl_ptr_type) () * _6;
  int (*__vtbl_ptr_type) () _7;
  void * _8;
  int (*__vtbl_ptr_type) () * _9;
  int (*__vtbl_ptr_type) () _10;
  const char * _11;
  struct cNamedObject * _12;
  int (*__vtbl_ptr_type) () * _13;
  int (*__vtbl_ptr_type) () _14;
  long unsigned int _22;
  const char * _24;
  const char * _26;
  const char * _29;
  struct string & _30(D);
  struct exception * _34;
  void * _36;
  const char * _39;
  char * _44;
  const char * _45;
  void * PROF_63;
  const char * _65;
  void * PROF_67;
  const char * _69;
  const char * _71;
  int (*__vtbl_ptr_type) () * _73;
  int (*__vtbl_ptr_type) () _74;
  const struct KeyValue2 & _75;
  const struct KeyValue1 * _76;
  int (*__vtbl_ptr_type) () * _77;
  int (*__vtbl_ptr_type) () _78;
  const char * _79;
  char * _80;
  void * PROF_82;
  const char * _84;
  char * _86;
  char _89;
  long unsigned int _91;
  const char * _92;
  char[16] * _99;
  long int _113;

  <bb 2> [local count: 1073741824]:
  assertType (option_19(D), 1, 3);
  _1 = this_21(D)->D.4954._vptr.cObject;
  _2 = MEM[(int (*__vtbl_ptr_type) () *)_1 + 152B];
  _22 = MEM[(const struct basic_string *)option_19(D) + 80B]._M_string_length;
  if (_22 == 0)
    goto <bb 43>; [29.00%]
  else
    goto <bb 3>; [71.00%]

  <bb 43> [local count: 311385128]:
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 762356697]:
  _44 = MEM[(const struct basic_string *)option_19(D) + 80B]._M_dataplus._M_p;

  <bb 4> [local count: 1073741824]:
  # _45 = PHI <0B(43), _44(3)>
  _24 = OBJ_TYPE_REF(_2;(struct cConfiguration)this_21(D)->19) (this_21(D),
_45);

  <bb 5> [local count: 1073741824]:
  _3 = this_21(D)->D.4954._vptr.cObject;
  _4 = MEM[(int (*__vtbl_ptr_type) () *)_3 + 176B];
  _5 = &option_19(D)->D.5508.D.4983.D.4767;
  _6 = option_19(D)->D.5508.D.4983.D.4767.D.4758._vptr.cObject;
  _7 = MEM[(int (*__vtbl_ptr_type) () *)_6 + 48B];
  PROF_63 = [obj_type_ref] OBJ_TYPE_REF(_7;(struct cNamedObject)_5->6);
  if (PROF_63 == getName)
    goto <bb 6>; [80.00%]
  else
    goto <bb 7>; [20.00%]

  <bb 6> [local count: 858993457]:
  _71 = MEM[(const struct cNamedObject *)option_19(D)].namep;
  if (_71 != 0B)
    goto <bb 44>; [70.00%]
  else
    goto <bb 9>; [30.00%]

  <bb 44> [local count: 601295422]:
  goto <bb 10>; [100.00%]

  <bb 7> [local count: 214748368]:
  _65 = OBJ_TYPE_REF(_7;(struct cNamedObject)_5->6) (_5);

  <bb 45> [local count: 214748368]:
  goto <bb 10>; [100.00%]

  <bb 8> [count: 0]:
<L6>:
  goto <bb 32>; [100.00%]

  <bb 9> [local count: 257698035]:

  <bb 10> [local count: 1073741824]:
  # _26 = PHI <_65(45), _71(44), ""(9)>
  PROF_67 = [obj_type_ref] OBJ_TYPE_REF(_4;(struct
cConfiguration)this_21(D)->22);
  if (PROF_67 == getPerObjectConfigValue)
    goto <bb 11>; [80.00%]
  else
    goto <bb 20>; [20.00%]

  <bb 11> [local count: 858993457]:
  _73 = MEM[(const struct SectionBasedConfiguration
*)this_21(D)].D.5740.D.4958.D.4955._vptr.cObject;
  _74 = MEM[(int (*__vtbl_ptr_type) () *)_73 + 184B];
  _75 = OBJ_TYPE_REF(_74;(struct SectionBasedConfiguration)this_21(D)->23)
(this_21(D), objectFullPath_27(D), _26);
  goto <bb 13>; [100.00%]

  <bb 12> [count: 0]:
<L7>:
  goto <bb 32>; [100.00%]

  <bb 13> [local count: 858993457]:
  _76 = &_75->D.10348;
  _77 = _75->D.10348.D.5862._vptr.KeyValue;
  _78 = MEM[(int (*__vtbl_ptr_type) () *)_77 + 16B];
  PROF_82 = [obj_type_ref] OBJ_TYPE_REF(_78;(struct KeyValue1)_76->2);
  if (PROF_82 == what)
    goto <bb 14>; [80.00%]
  else
    goto <bb 15>; [20.00%]

  <bb 14> [local count: 687194763]:
  _86 = MEM[(const struct basic_string *)_75 + 16B]._M_dataplus._M_p;
  goto <bb 17>; [100.00%]

  <bb 15> [local count: 171798694]:
  _84 = OBJ_TYPE_REF(_78;(struct KeyValue1)_76->2) (_76);
  goto <bb 46>; [100.00%]

  <bb 16> [count: 0]:
<L8>:
  goto <bb 32>; [100.00%]

  <bb 46> [local count: 171798694]:

  <bb 17> [local count: 858993457]:
  # _79 = PHI <_84(46), _86(14)>
  if (_79 != 0B)
    goto <bb 19>; [85.10%]
  else
    goto <bb 47>; [14.90%]

  <bb 47> [local count: 127990022]:

  <bb 18> [local count: 322122544]:
  if (_24 == 0B)
    goto <bb 23>; [17.43%]
  else
    goto <bb 48>; [82.57%]

  <bb 19> [local count: 731003435]:
  _80 = MEM[(const struct basic_string *)_75 + 48B]._M_dataplus._M_p;
  goto <bb 22>; [100.00%]

  <bb 20> [local count: 214748368]:
  _69 = OBJ_TYPE_REF(_4;(struct cConfiguration)this_21(D)->22) (this_21(D),
objectFullPath_27(D), _26);
  goto <bb 49>; [100.00%]

  <bb 21> [count: 0]:
<L9>:
  goto <bb 32>; [100.00%]

  <bb 49> [local count: 214748368]:

  <bb 22> [local count: 945751802]:
  # _29 = PHI <_69(49), _80(19)>
  if (_29 == 0B)
    goto <bb 50>; [19.04%]
  else
    goto <bb 51>; [80.96%]

  <bb 51> [local count: 765641716]:
  goto <bb 26>; [100.00%]

  <bb 50> [local count: 180110086]:
  goto <bb 18>; [100.00%]

  <bb 23> [local count: 56145959]:
  __ct_base .constprop (_30(D), fallbackValue_31(D));
  goto <bb 52>; [100.00%]

  <bb 24> [count: 0]:
<L10>:
  goto <bb 32>; [100.00%]

  <bb 52> [local count: 56145959]:

  <bb 25> [local count: 1073741825]:
  return _30(D);

  <bb 48> [local count: 265976585]:

  <bb 26> [local count: 1017595866]:
  # s_88 = PHI <_29(51), _24(48)>
  _89 = *s_88;
  if (_89 == 34)
    goto <bb 27>; [34.00%]
  else
    goto <bb 29>; [66.00%]

  <bb 27> [local count: 345982598]:
  *_30(D) = opp_parsequotedstr (s_88); [return slot optimization]

  <bb 53> [local count: 345982598]:
  goto <bb 25>; [100.00%]

  <bb 28> [count: 0]:
<L11>:
  goto <bb 32>; [100.00%]

  <bb 29> [local count: 671613268]:
  _99 = &MEM[(struct basic_string *)_30(D)].D.4725._M_local_buf;
  MEM[(struct _Alloc_hider *)_30(D)]._M_p = _99;
  _91 = __builtin_strlen (s_88);
  _92 = s_88 + _91;
  _M_construct.constprop (_30(D), s_88, _92);

  <bb 54> [local count: 671613268]:
  goto <bb 25>; [100.00%]

  <bb 30> [count: 0]:
<L12>:
  goto <bb 32>; [100.00%]

  <bb 31> [count: 0]:
<L5>:

  <bb 32> [count: 0]:
<L0>:
  _113 = __builtin_eh_filter (1);
  if (_113 == 1)
    goto <bb 34>; [0.00%]
  else
    goto <bb 33>; [0.00%]

  <bb 33> [count: 0]:
<L4>:
  resx 1

  <bb 34> [count: 0]:
<L1>:
  _8 = __builtin_eh_pointer (1);
  _34 = __cxa_begin_catch (_8);
  _36 = __cxa_allocate_exception (128);
  _9 = _34->_vptr.exception;
  _10 = MEM[(int (*__vtbl_ptr_type) () *)_9 + 16B];
  _11 = OBJ_TYPE_REF(_10;(struct exception)_34->2) (_34);
  _12 = &option_19(D)->D.5508.D.4983.D.4767;
  _13 = option_19(D)->D.5508.D.4983.D.4767.D.4758._vptr.cObject;
  _14 = MEM[(int (*__vtbl_ptr_type) () *)_13 + 48B];
  _39 = OBJ_TYPE_REF(_14;(struct cNamedObject)_12->6) (_12);

  <bb 35> [count: 0]:
  __ct_comp  (_36, "Error getting option %s= from the configuration: %s", _39,
_11);
  goto <bb 37>; [0.00%]

  <bb 36> [count: 0]:
<L14>:
  goto <bb 39>; [100.00%]

  <bb 37> [count: 0]:
  __cxa_throw (_36, &_ZTI13cRuntimeError, __dt_comp );

  <bb 38> [count: 0]:
<L13>:

  <bb 39> [count: 0]:
<L2>:
  __cxa_free_exception (_36);
  resx 3

  <bb 40> [count: 0]:
<L16>:
  goto <bb 42>; [100.00%]

  <bb 41> [count: 0]:
<L15>:

  <bb 42> [count: 0]:
<L3>:
  __cxa_end_catch ();
  resx 2

}


More information about the Gcc-bugs mailing list