Author: dgilmore Date: 2012-04-02 18:49:39 -0400 (Mon, 02 Apr 2012) New Revision: 3898
Modified: trunk/osprey/be/cg/x8664/ebo_special.cxx Log: This is a fix for a bug found by adding new fields to the OP structure which caused a segmentation fault during the code generation phase when building SPEC dealII. The Base() member function of a POINTS_TO structure only returns a valid ST pointer when the base kind is fixed (for debugging purposes, during alias information construction pointers to different structures are placed in _base when the base kind is dynamic). For consistency sake, in this source file I changed the other check to determine whether the base kind is fixed to use the Based_is_fixed() member function. CR: Jian-Xin Lai. Modified: trunk/osprey/be/cg/x8664/ebo_special.cxx =================================================================== --- trunk/osprey/be/cg/x8664/ebo_special.cxx 2012-04-01 01:17:16 UTC (rev 3897) +++ trunk/osprey/be/cg/x8664/ebo_special.cxx 2012-04-02 22:49:39 UTC (rev 3898) @@ -6150,7 +6150,7 @@ WN *mem_wn = (WN*) OP_MAP_Get(OP_to_WN_map, op); if (mem_wn) { POINTS_TO *pt = Points_to(Alias_Manager, mem_wn); - if (pt->Expr_kind() == EXPR_IS_ADDR && pt->Base_kind() == BASE_IS_FIXED) { + if (pt->Expr_kind() == EXPR_IS_ADDR && pt->Base_is_fixed()) { st = pt->Base(); } else if (pt->F_param() && pt->Based_sym() != NULL) { st = pt->Based_sym(); @@ -8874,7 +8874,7 @@ return ret_val; } - if (load_data && load_data->Base()) { + if (load_data && load_data->Base_is_fixed()) { ST *load_sym = load_data->Base(); // we can only proceed when processing vars ------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel