Suppressed compiler warnings reported by gcc 4.4.x on the source code

of regression tests about intentionally uninitialized variables and
about intentionally freed non-heap memory.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10794
This commit is contained in:
Bart Van Assche 2009-08-12 12:55:56 +00:00
parent 5e1086e053
commit 73db3de513
4 changed files with 59 additions and 4 deletions

View File

@ -1255,6 +1255,29 @@ AC_MSG_RESULT([no])
CFLAGS=$safe_CFLAGS
# does this compiler support -Wno-uninitialized ?
AC_MSG_CHECKING([if gcc accepts -Wno-uninitialized])
safe_CFLAGS=$CFLAGS
CFLAGS="-Wno-uninitialized"
AC_TRY_COMPILE(
[ ],
[
return 0;
],
[
AC_SUBST([FLAG_W_NO_UNINITIALIZED], [-Wno-uninitialized])
AC_MSG_RESULT([yes])
],
[
AC_SUBST([FLAG_W_NO_UNINITIALIZED], [])
AC_MSG_RESULT([no])
])
CFLAGS=$safe_CFLAGS
# does this compiler support -Wextra or the older -W ?
AC_MSG_CHECKING([if gcc accepts -Wextra or -W])

View File

@ -251,8 +251,14 @@ endif
deep_templates_SOURCES = deep_templates.cpp
deep_templates_CXXFLAGS = $(AM_CFLAGS) -O -gstabs
error_counts_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
inits_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
long_namespace_xml_SOURCES = long_namespace_xml.cpp
manuel1_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
memcmptest_CFLAGS = $(AM_CFLAGS) -fno-builtin-memcmp
mismatches_SOURCES = mismatches.cpp
@ -260,6 +266,10 @@ mismatches_SOURCES = mismatches.cpp
new_nothrow_SOURCES = new_nothrow.cpp
new_override_SOURCES = new_override.cpp
origin2_not_quite_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
origin3_no_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
# This requires optimisation in order to get just one resulting error.
origin4_many_CFLAGS = $(AM_CFLAGS) -O

View File

@ -2,7 +2,7 @@
#include <stdio.h>
#include <stdlib.h>
static void* return_arg(void* q);
int main ( void )
{
void* p = (void*)0x87654321;
@ -12,7 +12,18 @@ int main ( void )
free(p);
/* Free a pointer to a stack block */
free(q);
free(return_arg(q));
return 0;
}
/*
* The only purpose of the function below is to make sure that gcc 4.4.x does
* not print the following warning during the compilation of this test program:
* warning: attempt to free a non-heap object
*/
static void* return_arg(void* q)
{
return q;
}

View File

@ -2,7 +2,7 @@
#include <stdlib.h>
#include <stdio.h>
static void* return_arg(void* p);
int frame3 ( void )
{
int *a = malloc(10 * sizeof(int));
@ -25,7 +25,7 @@ int frame3 ( void )
free(a);
// more invalid frees
free(&n);
free(return_arg(&n));
// leak ..
a = malloc(99 * sizeof(int));
@ -48,3 +48,14 @@ int main ( void )
{
return frame1() - 1;
}
/*
* The only purpose of the function below is to make sure that gcc 4.4.x does
* not print the following warning during the compilation of this test program:
* warning: attempt to free a non-heap object
*/
static void* return_arg(void* p)
{
return p;
}