diff options
Diffstat (limited to 'defaults/src/vespa/defaults.cpp')
-rw-r--r-- | defaults/src/vespa/defaults.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/defaults/src/vespa/defaults.cpp b/defaults/src/vespa/defaults.cpp index 7d1cd237ecd..a74e513cf4c 100644 --- a/defaults/src/vespa/defaults.cpp +++ b/defaults/src/vespa/defaults.cpp @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "defaults.h" +#include <vespa/config.h> #include <stdlib.h> #include <dirent.h> #include <stdio.h> @@ -10,6 +11,7 @@ #include <unistd.h> #include <atomic> #include <pwd.h> +#include <sstream> namespace { @@ -358,4 +360,36 @@ Defaults::vespaConfigSourcesRpcAddrs() return ret; } +namespace { + +void +append_sanitizer(std::ostringstream& oss, const std::string& value) +{ + if (!oss.str().empty()) { + oss << ","; + } + oss << value; +} + +} + +std::string +Defaults::get_sanitizers() +{ + std::ostringstream oss; +#ifdef VESPA_USE_ADDRESS_SANITIZER + append_sanitizer(oss, "address"); +#endif +#ifdef VESPA_USE_THREAD_SANITIZER + append_sanitizer(oss, "thread"); +#endif +#ifdef VESPA_USE_UNDEFINED_SANITIZER + append_sanitizer(oss, "undefined"); +#endif + if (oss.str().empty()) { + append_sanitizer(oss, "none"); + } + return oss.str(); +} + } // namespace vespa |