On January 9, 2015 4:10:44 PM CET, Bernd Edlinger <bernd.edlin...@hotmail.de> 
wrote:
>On Fri, 9 Jan 2015 14:04:27, Richard Biener wrote:
>>
>>>
>>> FYI: the VIEW_CONVERT_EXPR did not fail in the
>>> gcc_checking_assert (is_gimple_addressable (base))
>>> but much later, somewhere in tree-cfg.c it dropped out.
>>
>> How did it fail there? It doesn't look like &VIEW_CONVERT_EXPR
>> is forbidden.
>
>without that patch the following ICE happened,
>which also happened without the bit-fields patch.
>So this had never been working before:
>
>
>/home/ed/gnu/gcc-build/gcc/xgcc -c -B/home/ed/gnu/gcc-build/gcc/
>-gnatws -O2 -fsanitize=thread -gnato -gnatE check_file.adb
>check_file.adb: In function 'CHECK_FILE':
>check_file.adb:44:1: error: invalid operand in unary operation
>_498 = (character[1:15] *) &MEM[(character[1:D.5362]
>*)S38b.54_315][_321 ...]{lb: 1 sz: 1};
>check_file.adb:44:1: error: invalid operand in unary operation
>_503 = (character[1:15] *) &MEM[(character[1:D.5261]
>*)S75b.39_360][_366 ...]{lb: 1 sz: 1};
>check_file.adb:44:1: error: invalid operand in unary operation
>_510 = (character[1:10] *) &*S112b.17_112[_120 ...]{lb: 1 sz: 1};
>check_file.adb:44:1: error: invalid operand in unary operation
>_508 = (character[1:5] *) &*S112b.17_112[_123 ...]{lb: 1 sz: 1};
>+===========================GNAT BUG
>DETECTED==============================+
>| 5.0.0 20150108 (experimental) (x86_64-unknown-linux-gnu) GCC
>error:      |
>| verify_gimple
>failed                                                     |
>| Error detected around
>check_file.adb:44:1                                |
>| Please submit a bug report; see
>http://gcc.gnu.org/bugs.html.            |
>| Use a subject line meaningful to you and us to track the
>bug.            |
>| Include the entire contents of this bug box in the
>report.               |
>| Include the exact command that you
>entered.                              |
>| Also include sources listed
>below.                                       |
>+==========================================================================+
>
>Please include these source files with error report
>Note that list may not be accurate in some cases,
>so please double check that the problem can still
>be reproduced with the set of files listed.
>Consider also -gnatd.n switch (see debug.adb).
>
>
>so it must be this check in verify_gimple_assign_unary:
>
>  if (!is_gimple_val (rhs1))
>    {
>      error ("invalid operand in unary operation");
>      return true;
>    }

Yes. As said, you generally need to run folding results through 
force_gimple_operand.

Richard.

>
>Bernd.
>                                         


Reply via email to