blob: 9fee03088bd849d8ee0f9acc9f97d19ce679fa5f [file] [log] [blame]
njn25e49d8e72002-09-23 09:36:25 +00001/* This exercises the code that was causing this bug:
2
3 valgrind: vg_cachesim.c:389 (get_BBCC): Assertion `((Bool)0) == remove'
4 failed.
5
6 in Cachegrind 1.0.0 and 1.0.1, that was caused by unloading symbols before
7 invalidating translations.
8*/
9
10#include <stdio.h>
11#include <stdlib.h>
12#include <dlfcn.h>
13
14int main(int argc, char **argv) {
15 void *handle;
16 void (*myprint)(void);
17 char *error;
18
19 handle = dlopen ("./myprint.so", RTLD_LAZY);
20 if (!handle) {
21 fputs (dlerror(), stderr);
22 exit(1);
23 }
24
25 myprint = dlsym(handle, "myprint");
26 if ((error = dlerror()) != NULL) {
27 fprintf (stderr, "%s\n", error);
28 exit(1);
29 }
30
31 (*myprint)();
32
33 /* Assertion failure was happening here */
34 dlclose(handle);
35
36 return 0;
37}
38