Hi, All Can gatekeeper help review this fix?
This bug is happens in wn_lower phase, more detailed info please refer to https://bugs.open64.net/show_bug.cgi?id=591. Attached is the patch. The failure is due to one whirl node address attached by two nodes. The main cause is that in wn_lower.cxx:7741:lower_complex_expr(block, WN_kid0(tree), actions, &realexp, &imagexp), WN_kid0(tree) was deleted in the function, , howerver in 7783, the node deleted again , so if there are other new node created between line 7741and 7783, it may reuse the deleted node address, and will be wrongly deleted by line 7783. The fix is modified function lower_complex_expr, delete all "WN_Delete(tree);". 7741 lower_complex_expr(block, WN_kid0(tree), actions, &realexp, &imagexp); 7742 ...... 7762 realexpN = AssignExpr(block, realexp, realTY); 7763 realexp_copy = WN_LdidPreg(realTY, realexpN); 7764 ....... 7783 WN_Delete(WN_kid0(tree)); 7784 WN_kid0(tree) = WN_Ldid(MTYPE_F8, 0, c4temp_st, MTYPE_To_TY(MTYPE_F8)); Best Regards, Zhu Qing
bug591.patch
Description: Binary data
------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel