Skip to content

Commit

Permalink
Add example where better privatization helps
Browse files Browse the repository at this point in the history
  • Loading branch information
michael-schwarz committed Nov 21, 2023
1 parent 8d55024 commit ca61360
Showing 1 changed file with 33 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//PARAM: --set ana.malloc.unique_address_count 1 --set ana.activated[+] memLeak --set ana.base.privatization mutex-meet-tid --set ana.path_sens[+] threadflag
#include <stdlib.h>
#include <pthread.h>

int *g;
int *m1;
int *m2;

void *f1(void *arg) {
m1 = malloc(sizeof(int));
// Thread t1 leaks m1 here
pthread_exit(NULL); //WARN
}

void *f2(void *arg) {
m2 = malloc(sizeof(int));
free(m2); // No leak for thread t2, since it calls free before exiting
pthread_exit(NULL); //NOWARN
}

int main(int argc, char const *argv[]) {
g = malloc(sizeof(int));
pthread_t t1;
pthread_create(&t1, NULL, f1, NULL);

pthread_t t2;
pthread_create(&t2, NULL, f2, NULL);

free(g);

// main thread is not leaking anything
return 0; //NOWARN
}

0 comments on commit ca61360

Please sign in to comment.