Hi,

   Could a gatekeeper please help review the  fix for bug906?

 http://bugs.open64.net/show_bug.cgi?id=906

Sympton:

   This bug occurs at different phases of wopt, both c-smith [bug906] and
kernel build [bug907, bug913] report this bug,

### Assertion failure at line 653 of
/fc/proj/ctires/open64/o64guru/src/Wed/trunk/osprey/common/com/symtab_defs.h:
### Compiler Error in file test.c during Global Optimization -- Create
CODEMAP
Representation phase: ### non-KIND_POINTER type doesn't point opencc
INTERNAL
ERROR:
/fc/proj/ctires/open64/o64guru/OPEN64_X86_DBG/Wed/bits/lib/gcc-lib/x86_64-open64-linux/5.0/be
returned non-zero status 1
Analyse:

   This is a regression introduced by the volatile patch, the following
statement is unsafe:

wn_simp_code.h

 955          lod_addr_volatile =
TY_is_volatile(TY_pointed(SIMPNODE_load_addr_ty(t1)))
 956              || TY_is_volatile(TY_pointed(SIMPNODE_load_addr_ty(t2)));
when accessing the SIMPNODE_load_addt_ty, we could not grant the result
to be the pointer type arbitary,
 651      {
 652        Is_True(kind == KIND_POINTER,
 653                ("non-KIND_POINTER type doesn't point"));

Solution:

add safe-guard for this statement.

--- a/osprey/common/com/wn_simp_code.h
+++ b/osprey/common/com/wn_simp_code.h
@@ -952,8 +952,12 @@ INT32 SIMPNODE_Simp_Compare_Trees(simpnode t1,
simpnode t2)
           ty_is_volatile = TY_is_volatile(SIMPNODE_ty(t1))
               || TY_is_volatile(SIMPNODE_ty(t2));
-          lod_addr_volatile =
TY_is_volatile(TY_pointed(SIMPNODE_load_addr_ty(t1)))
-              || TY_is_volatile(TY_pointed(SIMPNODE_load_addr_ty(t2)));
+          /* open64.net bug906, guarded type check before TY_pointed */
+          lod_addr_volatile =
+            (TY_kind(SIMPNODE_load_addr_ty(t1)) == KIND_POINTER
+             && TY_is_volatile(TY_pointed(SIMPNODE_load_addr_ty(t1)))) ||
+            (TY_kind(SIMPNODE_load_addr_ty(t2)) == KIND_POINTER
+             && TY_is_volatile(TY_pointed(SIMPNODE_load_addr_ty(t2)))) ;
after the patch, bug906,bug907 pass. merged with asm constraints, bug913
passes.

Regards
Gang
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to