From f67c829e488e92b110de5a69c60c4fe59f3a58ac Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 29 Mar 2014 12:10:25 +0100 Subject: re PR target/60648 (ICE (segmentation fault) in expand_binop) PR target/60648 * g++.dg/pr60648.C: Move test to... * g++.dg/torture/pr60648.C: ... here. Run on all targets, remove dg-options, add for fpic targets dg-additional-options -fPIC. From-SVN: r208933 --- gcc/testsuite/ChangeLog | 7 ++++ gcc/testsuite/g++.dg/pr60648.C | 73 ---------------------------------- gcc/testsuite/g++.dg/torture/pr60648.C | 70 ++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 73 deletions(-) delete mode 100644 gcc/testsuite/g++.dg/pr60648.C create mode 100644 gcc/testsuite/g++.dg/torture/pr60648.C (limited to 'gcc') diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 63a43c2..3a73109 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2014-03-29 Jakub Jelinek + + PR target/60648 + * g++.dg/pr60648.C: Move test to... + * g++.dg/torture/pr60648.C: ... here. Run on all targets, remove + dg-options, add for fpic targets dg-additional-options -fPIC. + 2014-03-28 Eric Botcazou * gnat.dg/opt33.adb: New testcase. diff --git a/gcc/testsuite/g++.dg/pr60648.C b/gcc/testsuite/g++.dg/pr60648.C deleted file mode 100644 index 80c0561..0000000 --- a/gcc/testsuite/g++.dg/pr60648.C +++ /dev/null @@ -1,73 +0,0 @@ -/* { dg-do compile } */ -/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ -/* { dg-options "-O3 -fPIC -m32" } */ - -enum component -{ - Ex, - Ez, - Hy, - Permeability -}; -enum derived_component -{}; -enum direction -{ - X, - Y, - Z, - R, - P, - NO_DIRECTION -}; -derived_component a; -component *b; -component c; -direction d; -inline direction fn1 (component p1) -{ - switch (p1) - { - case 0: - return Y; - case 1: - return Z; - case Permeability: - return NO_DIRECTION; - } - return X; -} - -inline component fn2 (direction p1) -{ - switch (p1) - { - case 0: - case 1: - return component (); - case Z: - case R: - return component (1); - case P: - return component (3); - } -} - -void fn3 () -{ - direction e; - switch (0) - case 0: - switch (a) - { - case 0: - c = Ex; - b[1] = Hy; - } - e = fn1 (b[1]); - b[1] = fn2 (e); - d = fn1 (c); -} - - - diff --git a/gcc/testsuite/g++.dg/torture/pr60648.C b/gcc/testsuite/g++.dg/torture/pr60648.C new file mode 100644 index 0000000..48cf0af --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr60648.C @@ -0,0 +1,70 @@ +// PR target/60648 +// { dg-do compile } +// { dg-additional-options "-fPIC" { target fpic } } + +enum component +{ + Ex, + Ez, + Hy, + Permeability +}; +enum derived_component +{}; +enum direction +{ + X, + Y, + Z, + R, + P, + NO_DIRECTION +}; +derived_component a; +component *b; +component c; +direction d; +inline direction fn1 (component p1) +{ + switch (p1) + { + case 0: + return Y; + case 1: + return Z; + case Permeability: + return NO_DIRECTION; + } + return X; +} + +inline component fn2 (direction p1) +{ + switch (p1) + { + case 0: + case 1: + return component (); + case Z: + case R: + return component (1); + case P: + return component (3); + } +} + +void fn3 () +{ + direction e; + switch (0) + case 0: + switch (a) + { + case 0: + c = Ex; + b[1] = Hy; + } + e = fn1 (b[1]); + b[1] = fn2 (e); + d = fn1 (c); +} -- cgit v1.1