Bug 9732 - [ppc32] Wrong code with -O2 -fPIC
Summary: [ppc32] Wrong code with -O2 -fPIC
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 3.2.2
: P3 normal
Target Milestone: ---
Assignee: Franz Sirl
URL:
Keywords: wrong-code
Depends on:
Blocks:
 
Reported: 2003-02-17 21:06 UTC by franz.sirl-kernel
Modified: 2003-07-25 17:33 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
20030217-1.c (1.03 KB, text/x-c )
2003-05-21 15:17 UTC, franz.sirl-kernel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description franz.sirl-kernel 2003-02-17 21:06:00 UTC
The attached testcase segfaults on execution if compiled with -O2 -fPIC on powerpc-linux-gnu.
This is a regression from gcc-2.95.4

Release:
gcc-3.2.2
Comment 1 Franz Sirl 2003-02-17 21:09:51 UTC
Responsible-Changed-From-To: unassigned->sirl
Responsible-Changed-Why: Patch in progress.
Comment 2 Franz Sirl 2003-02-17 21:09:51 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Patch in progress.
Comment 3 Franz Sirl 2003-02-25 23:11:59 UTC
From: sirl@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: target/9732
Date: 25 Feb 2003 23:11:59 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Changes by:	sirl@gcc.gnu.org	2003-02-25 23:11:58
 
 Modified files:
 	gcc/config/rs6000: rs6000.c rs6000.h 
 	gcc            : ChangeLog 
 
 Log message:
 	2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 	
 	PR target/9732
 	* config/rs6000/rs6000.c (first_reg_to_save): Handle
 	PIC_OFFSET_TABLE_REGNUM for -fPIC too.
 	(rs6000_emit_prologue): Likewise.
 	(rs6000_emit_epilogue): Likewise.
 	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
 	PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&r1=1.426&r2=1.427
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?cvsroot=gcc&r1=1.252&r2=1.253
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=1.16843&r2=1.16844
 

Comment 4 Franz Sirl 2003-02-25 23:13:43 UTC
From: sirl@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: target/9732
Date: 25 Feb 2003 23:13:43 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Changes by:	sirl@gcc.gnu.org	2003-02-25 23:13:43
 
 Modified files:
 	gcc/testsuite  : ChangeLog 
 Added files:
 	gcc/testsuite/gcc.dg: 20030225-1.c 
 
 Log message:
 	2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 	
 	PR target/9732
 	* gcc.dg/20030225-1.c: New test.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20030225-1.c.diff?cvsroot=gcc&r1=1.1&r2=1.2
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.2445&r2=1.2446
 

Comment 5 Franz Sirl 2003-02-25 23:18:58 UTC
From: sirl@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: target/9732
Date: 25 Feb 2003 23:18:58 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Branch: 	gcc-3_3-branch
 Changes by:	sirl@gcc.gnu.org	2003-02-25 23:18:58
 
 Modified files:
 	gcc/config/rs6000: rs6000.c rs6000.h 
 	gcc            : ChangeLog 
 
 Log message:
 	2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 	
 	PR target/9732
 	* config/rs6000/rs6000.c (first_reg_to_save): Handle
 	PIC_OFFSET_TABLE_REGNUM for -fPIC too.
 	(rs6000_emit_prologue): Likewise.
 	(rs6000_emit_epilogue): Likewise.
 	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
 	PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.403.2.3&r2=1.403.2.4
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.237.2.3&r2=1.237.2.4
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.227&r2=1.16114.2.228
 

Comment 6 Franz Sirl 2003-02-25 23:20:15 UTC
From: sirl@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: target/9732
Date: 25 Feb 2003 23:20:15 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Branch: 	gcc-3_3-branch
 Changes by:	sirl@gcc.gnu.org	2003-02-25 23:20:15
 
 Modified files:
 	gcc/testsuite  : ChangeLog 
 Added files:
 	gcc/testsuite/gcc.dg: 20030225-1.c 
 
 Log message:
 	2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 	
 	PR target/9732
 	* gcc.dg/20030225-1.c: New test.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20030225-1.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=NONE&r2=1.2.2.1
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.2261.2.64&r2=1.2261.2.65
 

Comment 7 Franz Sirl 2003-02-25 23:22:56 UTC
From: sirl@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: target/9732
Date: 25 Feb 2003 23:22:56 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Branch: 	gcc-3_2-branch
 Changes by:	sirl@gcc.gnu.org	2003-02-25 23:22:56
 
 Modified files:
 	gcc/config/rs6000: rs6000.c rs6000.h 
 	gcc            : ChangeLog 
 
 Log message:
 	2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 	
 	PR target/9732
 	* config/rs6000/rs6000.c (first_reg_to_save): Handle
 	PIC_OFFSET_TABLE_REGNUM for -fPIC too.
 	(rs6000_emit_prologue): Likewise.
 	(rs6000_emit_epilogue): Likewise.
 	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
 	PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.291.2.13.2.14&r2=1.291.2.13.2.15
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.184.2.10.2.3&r2=1.184.2.10.2.4
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.13152.2.657.2.239&r2=1.13152.2.657.2.240
 

Comment 8 Franz Sirl 2003-02-25 23:24:08 UTC
From: sirl@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: target/9732
Date: 25 Feb 2003 23:24:08 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Branch: 	gcc-3_2-branch
 Changes by:	sirl@gcc.gnu.org	2003-02-25 23:24:08
 
 Modified files:
 	gcc/testsuite  : ChangeLog 
 Added files:
 	gcc/testsuite/gcc.dg: 20030225-1.c 
 
 Log message:
 	2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 	
 	PR target/9732
 	* gcc.dg/20030225-1.c: New test.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20030225-1.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=NONE&r2=1.2.4.1
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.1672.2.166.2.101&r2=1.1672.2.166.2.102
 
Comment 9 Franz Sirl 2003-02-25 23:30:24 UTC
State-Changed-From-To: analyzed->closed
State-Changed-Why: Patch committed.