| |
| /* Test that we get a complaint if a thread exits with error reporting |
| disabled. */ |
| |
| #include <stdlib.h> |
| #include <stdio.h> |
| |
| #include "../include/valgrind.h" |
| |
| char* block = NULL; |
| |
| __attribute__((noinline)) void usechar ( char c ) |
| { |
| // Spook gcc into believing mysterious bad things are |
| // happening behind its back, and that 'c' is definitely |
| // used in some (unknown) way. |
| __asm__ __volatile__("" : : "r"(c) : "memory","cc"); |
| } |
| |
| __attribute__((noinline)) void err ( void ) |
| { |
| usechar( block[5] ); |
| } |
| |
| int main ( void ) |
| { |
| block = malloc(10); |
| free(block); |
| |
| fprintf(stderr, "\n--------- enabled (expect 1) ---------\n\n"); |
| |
| err(); |
| |
| fprintf(stderr, "\n--------- disabled (expect 0) ---------\n\n"); |
| VALGRIND_DISABLE_ERROR_REPORTING; |
| |
| err(); |
| |
| fprintf(stderr, "\n--------- exiting (expect complaint) ---------\n\n"); |
| |
| return 0; |
| } |