Skip to content

Commit b2aa7cb

Browse files
Address sanitizer testing.
1 parent 7de78c6 commit b2aa7cb

File tree

10 files changed

+46
-9
lines changed

10 files changed

+46
-9
lines changed

Makefile

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ ifdef AEGIS
1414
TRAVIS=1
1515
endif
1616

17+
ifdef ASAN
18+
FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1
19+
endif
20+
1721
ifdef TRAVIS
1822
FLAGS+=-Werror -Wall -Wno-unused-variable -Wno-unused-function -std=c++98
1923
endif

RESTProcessExample/Makefile

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ LIBS+=-L/usr/local/lib64 -lboost_thread -lpthread
55
VPATH=..
66
EXES=RESTProcess SimpleBuffer
77

8+
ifdef ASAN
9+
CFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1
10+
endif
11+
812
all: $(EXES)
913

1014
RESTProcess: RESTProcessExample.o
11-
g++ $^ $(LIBS) -o $@
15+
g++ $^ $(CFLAGS) $(LIBS) -o $@
1216

1317
SimpleBuffer: SimpleBufferExample.o
14-
g++ $^ $(LIBS) -o $@
18+
g++ $^ $(CFLAGS) $(LIBS) -o $@
1519

1620
.h.cd:
1721
../classdesc -I .. -nodef -typeName -use_mbr_pointers -respect_private json_pack json_unpack <$< >$@

classdesc.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1450,7 +1450,7 @@ int main(int argc, char* argv[])
14501450
}
14511451
if (basef!=NULL)
14521452
{
1453-
while ((nconv=fscanf(basef,"#pragma omit %1024[^\n]",tname))!=EOF)
1453+
while ((nconv=fscanf(basef,"#pragma omit %1023[^\n]",tname))!=EOF)
14541454
{
14551455
if (nconv==1)
14561456
{omit[rm_space(tname)]=1;}

examples/Makefile

+4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ ifdef GCOV
1313
CFLAGS+=-fprofile-arcs -ftest-coverage
1414
endif
1515

16+
ifdef ASAN
17+
CFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1
18+
endif
19+
1620
DIRS=$(HOME)/usr /usr/local /usr
1721
LIBS+=$(foreach dir,$(DIRS),-L$(dir)/lib) -lm
1822
CFLAGS+=$(foreach dir,$(DIRS),-I$(dir)/include)

examples/graphnode.cc

+13-2
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,27 @@ first, but occupying a different part of the heap. */
2020
#include "graphnode.cd"
2121
#include "classdesc_epilogue.h"
2222

23+
#include <memory>
24+
using namespace std;
25+
2326
using namespace classdesc;
2427

2528
int foonode::nodecntr=0;
2629

30+
// register in static object to get around leak detector
31+
vector<shared_ptr<foonode>> store;
32+
33+
foonode* newFoonode() {
34+
store.push_back(make_shared<foonode>());
35+
return store.back().get();
36+
}
37+
2738
foonode * generate_graph()
2839
{
2940
const int N=20;
3041
foonode *graphbegin, *rowbegin, *lastrow=NULL, *left, *current;
3142
int i,j;
32-
for (graphbegin=current=new foonode, i=0; i<N; i++, current=new foonode)
43+
for (graphbegin=current=newFoonode(), i=0; i<N; i++, current=newFoonode())
3344
{
3445
if (lastrow)
3546
{
@@ -39,7 +50,7 @@ foonode * generate_graph()
3950
for (rowbegin=current, j=1; j<N; j++)
4051
{
4152
left=current;
42-
current=new foonode;
53+
current=newFoonode();
4354
current->left=left;
4455
left->right=current;
4556
if (lastrow)

mpi-examples/Makefile

+5-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ LIBS=-L.. -L$(HOME)/usr/lib
1313
VPATH=..
1414

1515
ifdef GCOV
16-
FLAGS+=-fprofile-arcs -ftest-coverage
16+
CFLAGS+=-fprofile-arcs -ftest-coverage
17+
endif
18+
19+
ifdef ASAN
20+
CFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1
1721
endif
1822

1923
ifndef NOGUI

test/Makefile

+3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ ifdef AEGIS
2727
CFLAGS+=-Werror -Wall -Wno-unused-variable -Wno-unused-function -Wno-unused-local-typedefs -std=c++98
2828
endif
2929

30+
ifdef ASAN
31+
CFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1
32+
endif
3033

3134
DIRS=$(HOME)/usr /usr/local /usr
3235
LIBS+=$(foreach dir,$(DIRS),-L$(dir)/lib) ../xdr_pack.o -lm

test/c++11/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ ifdef AEGIS
1818
CFLAGS+=-Werror -Wall -Wno-unused-variable -Wno-unused-function
1919
endif
2020

21-
21+
ifdef ASAN
22+
CFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1
23+
endif
2224

2325
DIRS=$(HOME)/usr /usr/local /usr
2426
LIBS+=$(foreach dir,$(DIRS),-L$(dir)/lib) ../../xdr_pack.o -lm

test/c++17/Makefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ ifdef AEGIS
1818
CFLAGS+=-Werror -Wall -Wno-unused-variable
1919
endif
2020

21-
21+
ifdef ASAN
22+
CFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1
23+
endif
2224

2325
DIRS=$(HOME)/usr /usr/local /usr
2426
LIBS+=$(foreach dir,$(DIRS),-L$(dir)/lib) ../../xdr_pack.o -lm

test/testExclude.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,15 @@
99
#include "testExclude.h"
1010
#include <classdesc_epilogue.h>
1111
#include <assert.h>
12+
#include <memory>
13+
using namespace std;
1214

1315
int main()
1416
{
1517
pack_t b;
1618
foo f;
17-
f.unpackable=new bar;
19+
shared_ptr<bar> barPtr=make_shared<bar>();
20+
f.unpackable=barPtr.get();
1821
f.unpackable->barfoo();
1922
f.foosbar.barfoo();
2023
b<<f;

0 commit comments

Comments
 (0)