[PATCH] Add compiler support for dynamic Asan runtime

Alexey Samsonov samsonov at google.com
Wed Mar 19 08:19:53 PDT 2014

Comment at: lib/Driver/Tools.cpp:1837
@@ -1824,3 +1836,3 @@
   // whole-archive.
-  SmallVector<const char *, 3> LibSanitizerArgs;
+  SmallVector<const char *, 4> LibSanitizerArgs;
The logic is too obscure here. --whole-archive makes no sense for dynamic library.

If we're linking executable, add "--whole-archive X --no-whole-archive", where X is either full asan, or preinit-asan.
Otherwise add libasan.so.

Maybe it would be even simpler to pull this logic to addAsanRT (we handle dynamic runtime for Android there, for instance),
and call addSanitizerRTLinkFlags with either "asan", or "asan-preinit".

Comment at: lib/Driver/SanitizerArgs.cpp:176
@@ +175,3 @@
+      Args.hasFlag(options::OPT_shared_libasan,
+                   options::OPT_shared_libasan,
+                   /* Default */false);
Why not hasArg()?


More information about the llvm-commits mailing list