mf-runtime.c (__mfu_check): Respect ignore_reads configuration.
2005-03-17 Frank Ch. Eigler <fche@redhat.com> * mf-runtime.c (__mfu_check): Respect ignore_reads configuration. * testsuite/libmudflap.c/{pass56,fail39}-frag.c: New tests. From-SVN: r96620
This commit is contained in:
parent
0c103070f3
commit
0ee4e76d11
4 changed files with 42 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2005-03-17 Frank Ch. Eigler <fche@redhat.com>
|
||||
|
||||
* mf-runtime.c (__mfu_check): Respect ignore_reads configuration.
|
||||
* testsuite/libmudflap.c/{pass56,fail39}-frag.c: New tests.
|
||||
|
||||
2005-02-13 Frank Ch. Eigler <fche@redhat.com>
|
||||
|
||||
PR mudflap/19319
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Mudflap: narrow-pointer bounds-checking by tree rewriting.
|
||||
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
Contributed by Frank Ch. Eigler <fche@redhat.com>
|
||||
and Graydon Hoare <graydon@redhat.com>
|
||||
Splay Tree code originally by Mark Mitchell <mark@markmitchell.com>,
|
||||
|
@ -813,6 +813,8 @@ void __mfu_check (void *ptr, size_t sz, int type, const char *location)
|
|||
|
||||
if (UNLIKELY (__mf_opts.sigusr1_report))
|
||||
__mf_sigusr1_respond ();
|
||||
if (UNLIKELY (__mf_opts.ignore_reads && type == 0))
|
||||
return;
|
||||
|
||||
TRACE ("check ptr=%p b=%u size=%lu %s location=`%s'\n",
|
||||
ptr, entry_idx, (unsigned long)sz,
|
||||
|
|
20
libmudflap/testsuite/libmudflap.c/fail39-frag.c
Normal file
20
libmudflap/testsuite/libmudflap.c/fail39-frag.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main ()
|
||||
{
|
||||
volatile int *k = (int *) malloc (sizeof (int));
|
||||
volatile int l;
|
||||
if (k == NULL) abort ();
|
||||
*k = 5;
|
||||
free ((void *) k);
|
||||
__mf_set_options ("-ignore-reads");
|
||||
l = *k; /* Should not trip, even though memory region just freed. */
|
||||
__mf_set_options ("-no-ignore-reads");
|
||||
l = *k; /* Should trip now. */
|
||||
return 0;
|
||||
}
|
||||
/* { dg-output "mudflap violation 1.*check/read.*" } */
|
||||
/* { dg-output "Nearby object 1.*" } */
|
||||
/* { dg-output "mudflap dead object.*malloc region.*" } */
|
||||
/* { dg-do run { xfail *-*-* } } */
|
14
libmudflap/testsuite/libmudflap.c/pass56-frag.c
Normal file
14
libmudflap/testsuite/libmudflap.c/pass56-frag.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main ()
|
||||
{
|
||||
volatile int *k = (int *) malloc (sizeof (int));
|
||||
volatile int l;
|
||||
if (k == NULL) abort ();
|
||||
*k = 5;
|
||||
free ((void *) k);
|
||||
__mf_set_options ("-ignore-reads");
|
||||
l = *k; /* Should not trip, even though memory region just freed. */
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue