[ubsan] Add bootstrap-ubsan.mk
Marek Polacek
polacek@redhat.com
Tue Jul 30 17:04:00 GMT 2013
On Tue, Jul 30, 2013 at 04:34:14PM +0200, Marek Polacek wrote:
> This adds the bootstrap-ubsan.mk file so that
> --with-build-config=bootstrap-ubsan be possible. I doesn't work yet,
> though :(.
One of the reasons is that we use -Werror and e.g. on the following
testcase
static int x;
void
foo (void)
{
int o = 1;
x = x >> o;
}
with -O -fsanitize=undefined we generate:
c.c:6:9: warning: âx.2â is used uninitialized in this function [-Wuninitialized]
x = x >> o;
while with -O -fno-sanitize=undefined there isn't such warning. When sanitizing,
in .uninit1 we have
int x.3;
int x.2;
<bb 2>:
x.3_3 = x.2_1(D) >> 1;
x = x.3_3;
and when no sanitizing
int x.1;
int x.0;
<bb 2>:
x.0_2 = x;
x.1_3 = x.0_2 >> 1;
x = x.1_3;
The warning comes from warn_uninitialized_vars. The warning here seems
incorrect, but I'm afraid there isn't much to do about this on the
ubsan side of things.
Marek
More information about the Gcc-patches
mailing list