Bug 19670 - [4.0 regression] testsuite failure: gcc.c-torture/execute/builtins/strlen-3.c compilation, -O1
Summary: [4.0 regression] testsuite failure: gcc.c-torture/execute/builtins/strlen-3.c...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.0.0
: P2 normal
Target Milestone: 4.0.0
Assignee: Diego Novillo
URL:
Keywords: alias, ice-on-valid-code
: 19695 20001 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-01-28 14:38 UTC by Hans-Peter Nilsson
Modified: 2005-02-16 14:15 UTC (History)
5 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-01-30 11:40:29


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hans-Peter Nilsson 2005-01-28 14:38:44 UTC
With LAST_UPDATED: "Fri Jan 28 05:05:32 UTC 2005" I get:
Running
/home/hp/combined/combined/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
...
FAIL: gcc.c-torture/execute/builtins/strlen-3.c compilation,  -O1

With the message in the gcc.log being:
Executing on host: /home/hp/combined/mmixware-sim/gcc/xgcc
-B/home/hp/combined/mmixware-sim/gcc/ /home/hp/combined/combined/gcc/t\
estsuite/gcc.c-torture/execute/builtins/strlen-3.c
/home/hp/combined/combined/gcc/testsuite/gcc.c-torture/execute/builtins/strlen\
-3-lib.c
/home/hp/combined/combined/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c
gcc_tg.o  -w  -O1   -isystem /home/hp\
/combined/mmixware-sim/mmix-knuth-mmixware/./newlib/targ-include -isystem
/home/hp/combined/combined/newlib/libc/include -L/home/\
hp/combined/mmixware-sim/ld
-B/home/hp/combined/mmixware-sim/mmix-knuth-mmixware/./newlib/
-L/home/hp/combined/mmixware-sim/mmix-\
knuth-mmixware/./newlib -Wl,--defsym,__Stack_start=0x1680a00000000000 
-Wl,-wrap,exit -Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,ab\
ort -lm   -o /home/hp/combined/mmixware-sim/gcc/testsuite/strlen-3.x1   
(timeout = 300)
/home/hp/combined/combined/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c:
In function 'main_test':^M
/home/hp/combined/combined/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c:20:
error: Pointers with a memory tag, should \
have points-to sets or point to malloc^M
foo_28, name memory tag: NMT::4, points-to vars: { }^M
foo, UID 8, const char *^M
/home/hp/combined/combined/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c:20:
internal compiler error: verify_flow_sensi\
tive_alias_info failed.^M

Last known to work on: "Thu Jan 27 12:35:41 UTC 2005".
Comment 1 Andrew Pinski 2005-01-28 14:42:13 UTC
Confirmed, happens every where.
Comment 2 Andrew Pinski 2005-01-29 17:33:14 UTC
*** Bug 19695 has been marked as a duplicate of this bug. ***
Comment 3 Diego Novillo 2005-02-01 17:21:30 UTC
Similar in nature to 19217 but in this case with flow sensitive aliasing.  We
visit a dead PHI which takes the address of several variables, but since it's
dead, the alias analyzer never sees it.

Since we mark foo_28 visited in the verifier, we then fail when we see that the
pointer has no points-to sets.  The immediate solution is to only mark a name
visited if we see it *used* in the IL, not just defined.

If the statement that uses the pointer is itself dead, this would still work
because the alias analyzer would've processed the pointer anyway.

Testing in progress.

Index: tree-ssa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa.c,v
retrieving revision 2.73
diff -d -u -p -r2.73 tree-ssa.c
--- tree-ssa.c  24 Jan 2005 20:47:43 -0000      2.73
+++ tree-ssa.c  1 Feb 2005 17:21:14 -0000
@@ -108,8 +108,6 @@ flush_pending_stmts (edge e)
 static bool
 verify_ssa_name (tree ssa_name, bool is_virtual)
 {
-  TREE_VISITED (ssa_name) = 1;
-
   if (TREE_CODE (ssa_name) != SSA_NAME)
     {
       error ("Expected an SSA_NAME object");
@@ -219,6 +217,7 @@ verify_use (basic_block bb, basic_block
   bool err = false;

   err = verify_ssa_name (ssa_name, is_virtual);
+  TREE_VISITED (ssa_name) = 1;

   if (IS_EMPTY_STMT (SSA_NAME_DEF_STMT (ssa_name))
       && var_ann (SSA_NAME_VAR (ssa_name))->default_def == ssa_name)
Comment 4 CVS Commits 2005-02-01 20:26:44 UTC
Subject: Bug 19670

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	dnovillo@gcc.gnu.org	2005-02-01 20:26:27

Modified files:
	gcc            : ChangeLog tree-ssa.c 

Log message:
	PR tree-optimization/19670
	* tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
	here...
	(verify_use): ... set it here, instead.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7364&r2=2.7365
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&r1=2.73&r2=2.74

Comment 5 Diego Novillo 2005-02-01 20:38:28 UTC
Fix: http://gcc.gnu.org/ml/gcc-patches/2005-02/msg00097.html.
Comment 6 Andrew Pinski 2005-02-16 14:15:19 UTC
*** Bug 20001 has been marked as a duplicate of this bug. ***