public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug regression/21897] New: Segementation fault in fold_ternary
@ 2005-06-03 9:13 e9925248 at stud4 dot tuwien dot ac dot at
2005-06-03 13:59 ` [Bug middle-end/21897] [4.1 Regression] " pinskia at gcc dot gnu dot org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: e9925248 at stud4 dot tuwien dot ac dot at @ 2005-06-03 9:13 UTC (permalink / raw)
To: gcc-bugs
Example code:
#define vector64 __attribute__((vector_size(8)))
main(){
vector64 short c;
vector64 short a = {1, -1};
vector64 short b = {2, -2};
c = -a + b*b*(-1LL);
printf("result is %llx\n", (long long)c);
}
If it is compiled with -O3 a Segmentation fault happens.
GNU C version 4.1.0 20050603 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 4.1.0 20050302 (experimental).
GGC heuristics: --param ggc-min-expand=0 --param ggc-min-heapsize=0
gcc (GCC) 4.1.0 20050302 (experimental)
and later (at least till 20050501) can compile this file with -O3.
The fold of this expression causes the segmentation fault:
<bit_field_ref 0xb7f56118
type <integer_type 0xb7ef6438 short int public HI
size <integer_cst 0xb7eee318 constant invariant 16>
unit size <integer_cst 0xb7eee330 constant invariant 2>
align 16 symtab 0 alias set -1 precision 16 min <integer_cst 0xb7eee2b8
-32768> max <integer_cst 0xb7eee2e8 32767>
pointer_to_this <pointer_type 0xb7f069b4>>
arg 0 <vector_cst 0xb7f1d018
type <vector_type 0xb7f06b64 type <integer_type 0xb7ef6438 short int>
sizes-gimplified DI
size <integer_cst 0xb7eee540 constant invariant 64>
unit size <integer_cst 0xb7eee558 constant invariant 8>
align 64 symtab 0 alias set -1 nunits 4>
constant invariant
elt0: <integer_cst 0xb7f07bb8 constant invariant 1>
elt1: <integer_cst 0xb7f0a510 constant invariant -1>> arg 1
<integer_cst 0xb7eee318 16>
arg 2 <integer_cst 0xb7eee408 type <integer_type 0xb7ef6288 bit_size_type>
constant invariant 32>>
The problem is, that fold_ternary wants to access the third element of the
constant vector, which is not present.
The cause of this is, that fold_ternary fails, if it an element of the vector is
not initialized.
The change seem to be done by
2005-06-01 Jakub Jelinek <jakub@redhat.com>
* fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
Replacing (in fold_ternary case BIT_FIELD_REF:)
while (idx-- > 0)
elements = TREE_CHAIN (elements);
return TREE_VALUE (elements);
with
while (idx-- > 0 && elements)
elements = TREE_CHAIN (elements);
if(elements)
return TREE_VALUE (elements);
else return build_int_cst_type(type,0);
should solve the problem.
--
Summary: Segementation fault in fold_ternary
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: e9925248 at stud4 dot tuwien dot ac dot at
CC: gcc-bugs at gcc dot gnu dot org,jakub at redhat dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21897
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/21897] [4.1 Regression] Segementation fault in fold_ternary
2005-06-03 9:13 [Bug regression/21897] New: Segementation fault in fold_ternary e9925248 at stud4 dot tuwien dot ac dot at
@ 2005-06-03 13:59 ` pinskia at gcc dot gnu dot org
2005-06-03 14:02 ` jakub at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-03 13:59 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-03 13:59 -------
Confirmed, only -O1 is needed to cause the ICE.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Component|regression |middle-end
Ever Confirmed| |1
Keywords| |ice-on-valid-code
Last reconfirmed|0000-00-00 00:00:00 |2005-06-03 13:59:22
date| |
Summary|Segementation fault in |[4.1 Regression]
|fold_ternary |Segementation fault in
| |fold_ternary
Target Milestone|--- |4.1.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21897
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/21897] [4.1 Regression] Segementation fault in fold_ternary
2005-06-03 9:13 [Bug regression/21897] New: Segementation fault in fold_ternary e9925248 at stud4 dot tuwien dot ac dot at
2005-06-03 13:59 ` [Bug middle-end/21897] [4.1 Regression] " pinskia at gcc dot gnu dot org
@ 2005-06-03 14:02 ` jakub at gcc dot gnu dot org
2005-06-06 19:26 ` cvs-commit at gcc dot gnu dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu dot org @ 2005-06-03 14:02 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org
|dot org |
Status|NEW |ASSIGNED
Last reconfirmed|2005-06-03 13:59:22 |2005-06-03 14:01:55
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21897
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/21897] [4.1 Regression] Segementation fault in fold_ternary
2005-06-03 9:13 [Bug regression/21897] New: Segementation fault in fold_ternary e9925248 at stud4 dot tuwien dot ac dot at
2005-06-03 13:59 ` [Bug middle-end/21897] [4.1 Regression] " pinskia at gcc dot gnu dot org
2005-06-03 14:02 ` jakub at gcc dot gnu dot org
@ 2005-06-06 19:26 ` cvs-commit at gcc dot gnu dot org
2005-06-07 15:27 ` pinskia at gcc dot gnu dot org
2005-07-08 14:11 ` cvs-commit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-06-06 19:26 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-06-06 19:26 -------
Subject: Bug 21897
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: jakub@gcc.gnu.org 2005-06-06 19:26:10
Modified files:
gcc : ChangeLog fold-const.c
gcc/testsuite : ChangeLog
Added files:
gcc/testsuite/gcc.c-torture/execute: 20050604-1.c
Log message:
* fold-const.c (operand_equal_p): Don't return 1, if element
chains for 2 VECTOR_CSTs are not the same length.
PR regression/21897
* fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
not all VECTOR_CST elements are given.
* gcc.c-torture/execute/20050604-1.c: New test.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9055&r2=2.9056
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fold-const.c.diff?cvsroot=gcc&r1=1.591&r2=1.592
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5603&r2=1.5604
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/20050604-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21897
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/21897] [4.1 Regression] Segementation fault in fold_ternary
2005-06-03 9:13 [Bug regression/21897] New: Segementation fault in fold_ternary e9925248 at stud4 dot tuwien dot ac dot at
` (2 preceding siblings ...)
2005-06-06 19:26 ` cvs-commit at gcc dot gnu dot org
@ 2005-06-07 15:27 ` pinskia at gcc dot gnu dot org
2005-07-08 14:11 ` cvs-commit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-07 15:27 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-07 15:27 -------
Fixed.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21897
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug middle-end/21897] [4.1 Regression] Segementation fault in fold_ternary
2005-06-03 9:13 [Bug regression/21897] New: Segementation fault in fold_ternary e9925248 at stud4 dot tuwien dot ac dot at
` (3 preceding siblings ...)
2005-06-07 15:27 ` pinskia at gcc dot gnu dot org
@ 2005-07-08 14:11 ` cvs-commit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-07-08 14:11 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-07-08 14:11 -------
Subject: Bug 21897
CVSROOT: /cvs/gcc
Module name: gcc
Branch: gcc-4_0-rhl-branch
Changes by: jakub@gcc.gnu.org 2005-07-08 14:10:56
Modified files:
gcc : ChangeLog fold-const.c
gcc/testsuite : ChangeLog
Added files:
gcc/testsuite/gcc.c-torture/execute: 20050604-1.c
Log message:
* fold-const.c (operand_equal_p): Don't return 1, if element
chains for 2 VECTOR_CSTs are not the same length.
PR regression/21897
* fold-const.c (fold) <case BIT_FIELD_REF>: Don't crash if
not all VECTOR_CST elements are given.
* gcc.c-torture/execute/20050604-1.c: New test.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=2.7592.2.10.2.42&r2=2.7592.2.10.2.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fold-const.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=1.517.4.9&r2=1.517.4.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=1.5084.2.9.2.36&r2=1.5084.2.9.2.37
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/20050604-1.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-rhl-branch&r1=NONE&r2=1.1.8.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21897
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-07-08 14:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-03 9:13 [Bug regression/21897] New: Segementation fault in fold_ternary e9925248 at stud4 dot tuwien dot ac dot at
2005-06-03 13:59 ` [Bug middle-end/21897] [4.1 Regression] " pinskia at gcc dot gnu dot org
2005-06-03 14:02 ` jakub at gcc dot gnu dot org
2005-06-06 19:26 ` cvs-commit at gcc dot gnu dot org
2005-06-07 15:27 ` pinskia at gcc dot gnu dot org
2005-07-08 14:11 ` cvs-commit at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).