[PATCH] Enable experimental TSAN support for Ada

Bernd Edlinger bernd.edlinger@hotmail.de
Fri Jan 9 15:27:00 GMT 2015


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;
    }


Bernd.
 		 	   		  


More information about the Gcc-patches mailing list