Hi,

Would a gatekeeper please review my change for bug 759?
https://bugs.open64.net/show_bug.cgi?id=759

The issue is segmentation fault in DCE when we turned on WSSA for compiling
254.gap.

The problem seems obvious. Inside the opt_dce.cxx (Remove_dead_statements),
it examines
"bb->Succ()->Node()->Phi_list()->Is_Empty()". While,
bb->Succ()->Node()->Phi_list() could be NULL,
thus segmentation fault happens.

The fix is to check whether bb->Succ()->Node()->Phi_list is NULL before
checking it is empty.

(The reason it happens with -OPT:wssa=on is that WSSA enables an extra DCE
before emit WHIRL.)

Thanks,

Min

Index: opt_dce.cxx
===================================================================
--- opt_dce.cxx (revision 3533)
+++ opt_dce.cxx (working copy)
@@ -1,4 +1,8 @@
 /*
+ * Copyright (C) 2011, Hewlett-Packard Development Company, L.P. All Rights
Reserved.
+ */
+
+/*
  * Copyright (C) 2009-2010 Advanced Micro Devices, Inc.  All Rights
Reserved.
  */

@@ -4895,7 +4899,7 @@
         bb = bb->Succ()->Node();
         if (bb->Succ()->Len() == 1 &&
             bb->Succ()->Node()->Pred()->Len() == 1 &&
-            bb->Succ()->Node()->Phi_list()->Is_Empty() &&
+            (bb->Succ()->Node()->Phi_list()== NULL ||
bb->Succ()->Node()->Phi_list()->Is_Empty()) &&
             bb->Phi_list() != NULL)
           bb = NULL;
       }
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to