Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.old-deja/g++.brendan/crash24.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
// { dg-do assemble } // { dg-options "-O" } // GROUPS passed old-abort // gcc puts the array into a register, and then the store_bit_field () code // in expmed.c gets confused when it tries to store zero past the end of the // register (because the index is past the array bounds). It ends up calling // store_split_bit_field, which then aborts, because we don't have a split bit // field. // // Seems easiest to detect this case in the front end, i.e. access outside the // array bounds, and then force the array to be allocated on the stack instead // of a register. int main() { char i[1]; i[1] = 0; return 0; }