-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathrun_sanitizer.sh
More file actions
executable file
·50 lines (43 loc) · 1.47 KB
/
run_sanitizer.sh
File metadata and controls
executable file
·50 lines (43 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/sh
OPTS="-Wall -Werror -Wextra -Wno-pointer-to-int-cast"
LIB="../mapcodelib/mapcoder.o"
export ASAN_OPTIONS=debug=true:strict_string_checks=1:detect_stack_use_after_return=true:detect_invalid_pointer_pairs=99999:detect_container_overflow=true:detect_odr_violation=2:check_initialization_order=true:strict_init_order=true
TEST=`which clang`
if [ "$TEST" = "" ]
then
echo "No clang found on this machine - skipping script..."
exit 1
fi
echo "!! -------------------------------------------------------------"
echo "Run address sanitizer..."
date
echo "!! -------------------------------------------------------------"
# No optimize
echo ""
echo "Run address sanitizer with: -O0"
cd ../mapcodelib
gcc $OPTS -O0 -DDEBUG -c mapcoder.c
cd ../test
gcc $OPTS -O0 -DDEBUG unittest.c -lm -lpthread -fsanitize=address -o unittest $LIB
./unittest
echo "!! -------------------------------------------------------------"
# Optimize 2
echo ""
echo "Run address sanitizer with: -O2"
cd ../mapcodelib
gcc $OPTS -O2 -c mapcoder.c
cd ../test
gcc $OPTS -O2 unittest.c -lm -lpthread -fsanitize=address -o unittest $LIB
./unittest
echo "!! -------------------------------------------------------------"
# Optimize 3
echo ""
echo "Run address sanitizer with: -O3"
cd ../mapcodelib
gcc $OPTS -O3 -c mapcoder.c
cd ../test
gcc $OPTS -O3 unittest.c -lm -lpthread -fsanitize=address -o unittest $LIB
./unittest
echo "!! -------------------------------------------------------------"
echo ""
echo "Report in: $REPORT"