475a476,494
> # The address sanitizer is available for gcc >= 4.8
> if GetOption('with_asan'):
> if GetOption('with_ubsan') and \
> compareVersions(env['GCC_VERSION'], '4.9') >= 0:
> env.Append(CCFLAGS=['-fsanitize=address,undefined',
> '-fno-omit-frame-pointer'],
> LINKFLAGS='-fsanitize=address,undefined')
> else:
> env.Append(CCFLAGS=['-fsanitize=address',
> '-fno-omit-frame-pointer'],
> LINKFLAGS='-fsanitize=address')
> # Only gcc >= 4.9 supports UBSan, so check both the version
> # and the command-line option before adding the compiler and
> # linker flags.
> elif GetOption('with_ubsan') and \
> compareVersions(env['GCC_VERSION'], '4.9') >= 0:
> env.Append(CCFLAGS='-fsanitize=undefined')
> env.Append(LINKFLAGS='-fsanitize=undefined')
>
515a535,550
> # We require clang >= 3.1, so there is no need to check any
> # versions here.
> if GetOption('with_ubsan'):
> if GetOption('with_asan'):
> env.Append(CCFLAGS=['-fsanitize=address,undefined',
> '-fno-omit-frame-pointer'],
> LINKFLAGS='-fsanitize=address,undefined')
> else:
> env.Append(CCFLAGS='-fsanitize=undefined',
> LINKFLAGS='-fsanitize=undefined')
>
> elif GetOption('with_asan'):
> env.Append(CCFLAGS=['-fsanitize=address',
> '-fno-omit-frame-pointer'],
> LINKFLAGS='-fsanitize=address')
>