Skip to content
  • Ismail Donmez's avatar
    Clang: Do not mistake clang-cl 6.0 for GNU-like clang · f969f1a9
    Ismail Donmez authored
    The check added by commit v3.10.0-rc2~2^2 (Clang: Diagnose unsupported
    GNU-like clang targeting MSVC ABI, 2017-10-10) is incorrectly detecting
    clang-cl 6.0 as GNU-like.  Currently cmake is testing if the clang
    compiler accepts `--version` to see if it accepts GNU style flags.
    However, with the latest llvm snapshot this also works for clang-cl:
    
        > clang-cl --version
        clang version 6.0.0 (trunk)
        Target: x86_64-pc-windows-msvc
        Thread model: posix
        InstalledDir: C:\Program Files\LLVM\bin
    
    So instead we should use the `/?` flag which fails with clang but
    works with clang-cl:
    
        > clang-cl /? &> /dev/null; echo $?
        0
        > clang /? &> /dev/null; echo $?
        1
    
    Fixes: #17518
    f969f1a9