[PATCH] D18014: Allows to build libc++ with -DLLVM_USE_SANITIZER="Address;Undefined" on OSX

Mehdi Amini via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 9 17:00:55 PST 2016


Thanks, that's a lot cleaner indeed.  I'll update.

-- 
Mehdi

> On Mar 9, 2016, at 4:02 PM, Chris Bieneman <beanz at apple.com> wrote:
> 
> beanz added inline comments.
> 
> ================
> Comment at: lib/CMakeLists.txt:51
> @@ -50,2 +50,3 @@
> if (APPLE AND LLVM_USE_SANITIZER)
> -  if ("${LLVM_USE_SANITIZER}" STREQUAL "Address")
> +  if ("${LLVM_USE_SANITIZER}" STREQUAL "Address" OR
> +      "${LLVM_USE_SANITIZER}" STREQUAL "Address;Undefined" OR
> ----------------
> Rather than doing this as a STREQUAL where you have to check both possible orders, maybe we should iterate over the list?
> 
> Something more like:
> 
> 
> ```
> foreach(sanitizer in ${LLVM_USE_SANITIZER})
>  if(sanitizer STREQUAL "Address")
>    set(enable_address On)
>  endif()
>  if(sanitizer STREQUAL "Undefined")
>    set(enable_ub On)
>  endif()
>  ... <other sanitizers>
> endforeach()
> 
> if(enable_address and enable_undefined)
> ...
> elseif(...)
> endif()
> ```
> 
> I think doing it this way makes the code more adaptable to future changes.
> 
> Alternatively you can get rid of needing to check both orders by using the list(FIND ...) CMake command, which might be cleaner too.
> 
> 
> Repository:
>  rL LLVM
> 
> http://reviews.llvm.org/D18014
> 
> 
> 



More information about the cfe-commits mailing list