Unfortunately I did the check for not-power-of-two in the wrong way.
Committed as obvious. Index: ChangeLog =================================================================== --- ChangeLog (Revision 219151) +++ ChangeLog (Revision 219152) @@ -1,5 +1,9 @@ 2015-01-02 Bernd Edlinger <bernd.edlin...@hotmail.de> + * tsan.c (instrument_expr): corrected previous checkin. + +2015-01-02 Bernd Edlinger <bernd.edlin...@hotmail.de> + Instrument bit field and unaligned accesses for TSAN. * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function. (BUILT_IN_TSAN_WRITE_RANGE): New built-in function. Index: tsan.c =================================================================== --- tsan.c (Revision 219151) +++ tsan.c (Revision 219152) @@ -227,7 +227,7 @@ gimple_set_location (g, loc); gimple_seq_add_stmt_without_update (&seq, g); } - if ((size & (size - 1)) == 0 || size> 16 + if ((size & (size - 1)) != 0 || size> 16 || align < MIN (size, 8) * BITS_PER_UNIT) { builtin_decl = builtin_decl_implicit (is_write