| From 7cc702c7b5a1ccc2b0091f3effa1391b6c3030fd Mon Sep 17 00:00:00 2001 |
| From: Hongxu Jia <hongxu.jia@windriver.com> |
| Date: Wed, 16 Aug 2017 10:46:28 +0800 |
| Subject: [PATCH 3/4] tests/bench-slope.c: workaround ICE failure on mips with |
| '-O -g' |
| |
| Hit a ICE and could reduce it to the following minimal example: |
| |
| 1. Only the size of array assigned with 2 caused the issue: |
| $ cat > mipgcc-test.c << END |
| |
| int main (int argc, char **argv) |
| { |
| char *pStrArry[ARRAY_SIZE_MAX] = {"hello"}; |
| int i = 0; |
| |
| while(pStrArry[i] && i<ARRAY_SIZE_MAX) |
| { |
| printf("%s\n", pStrArry[i]); |
| i++; |
| } |
| |
| return 0; |
| } |
| |
| END |
| |
| 2. Only -O1 and -g on mips caused the issue: |
| $ mips-poky-linux-gcc -O1 -g -o mipgcc-test mipgcc-test.c |
| mipgcc-test.c: In function 'main': |
| mipgcc-test.c:18:1: internal compiler error: in dwarf2out_var_location, |
| at dwarf2out.c:20810 |
| } |
| ^ |
| Please submit a full bug report, |
| with preprocessed source if appropriate. |
| See <http://gcc.gnu.org/bugs.html> for instructions |
| |
| 3. The quick workround is trying to enlarge the size of array with |
| larger |
| than 2. |
| |
| 4. File a bug to GNU, but it could not be reproduced on there |
| environment. |
| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60643 |
| |
| Upstream-Status: Inappropriate [oe specific] |
| |
| Rebase to 1.8.0 |
| Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
| --- |
| tests/bench-slope.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/tests/bench-slope.c b/tests/bench-slope.c |
| index 75e6e43..4e70842 100644 |
| --- a/tests/bench-slope.c |
| +++ b/tests/bench-slope.c |
| @@ -1463,7 +1463,7 @@ static struct bench_ops hash_ops = { |
| }; |
| |
| |
| -static struct bench_hash_mode hash_modes[] = { |
| +static struct bench_hash_mode hash_modes[3] = { |
| {"", &hash_ops}, |
| {0}, |
| }; |
| @@ -1629,7 +1629,7 @@ static struct bench_ops mac_ops = { |
| }; |
| |
| |
| -static struct bench_mac_mode mac_modes[] = { |
| +static struct bench_mac_mode mac_modes[3] = { |
| {"", &mac_ops}, |
| {0}, |
| }; |
| -- |
| 1.8.3.1 |
| |