From: Martin Sebor Date: Wed, 31 Mar 2021 16:39:24 +0000 (-0600) Subject: PR middle-end/65182 - -Wuninitialized fails when pointer to variable later passed... X-Git-Tag: basepoints/gcc-12~325 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31199d95de1304e200554bbf98b2d8a6a7298bec;p=thirdparty%2Fgcc.git PR middle-end/65182 - -Wuninitialized fails when pointer to variable later passed to function gcc/testsuite: PR middle-end/65182 * gcc.dg/uninit-pr65182.c: New test. --- diff --git a/gcc/testsuite/gcc.dg/uninit-pr65182.c b/gcc/testsuite/gcc.dg/uninit-pr65182.c new file mode 100644 index 000000000000..45b538d1a2fd --- /dev/null +++ b/gcc/testsuite/gcc.dg/uninit-pr65182.c @@ -0,0 +1,44 @@ +/* PR middle-end/65182 - -Wuninitialized fails when pointer to variable + later passed to function + { dg-do compile } + { dg-options "-O0 -Wall" } */ + +void bar (int *a); + +int baz (void); + +__attribute__ ((noipa)) void foo_O0 (int *b) +{ + int a; + + if (a) // { dg-warning "\\\[-Wuninitialized" } + { + *b = 0; + return; + } + + bar (&a); + + a = baz (); + + *b = a + 2; +} + +#pragma GCC optimize ("2") + +__attribute__ ((noipa)) void foo_O2 (int *b) +{ + int a; + + if (a) // { dg-warning "\\\[-Wuninitialized" } + { + *b = 0; + return; + } + + bar (&a); + + a = baz (); + + *b = a + 3; +}