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
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel