Fix SConstruct for asan build

Sometimes it's easier to debug gem5 built with ASan enabled. This CL fixes
some build error when using --with-asan.

Bug: None
Test: ./scripts/build_gem5 --with-asan --with-ubsan build/ARM/gem5.debug

Change-Id: Iaaaaebc3f25749e11f97bf454ddd0153b3de56e7
Reviewed-on: https://gem5-review.googlesource.com/12511
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
This commit is contained in:
Earl Ou
2018-09-07 15:16:53 +08:00
parent 91295ff980
commit a1e5fccd64
3 changed files with 10 additions and 10 deletions

View File

@@ -484,11 +484,11 @@ if main['GCC']:
compareVersions(main['GCC_VERSION'], '4.9') >= 0: compareVersions(main['GCC_VERSION'], '4.9') >= 0:
main.Append(CCFLAGS=['-fsanitize=address,undefined', main.Append(CCFLAGS=['-fsanitize=address,undefined',
'-fno-omit-frame-pointer'], '-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address,undefined') LINKFLAGS='-fsanitize=address,undefined')
else: else:
main.Append(CCFLAGS=['-fsanitize=address', main.Append(CCFLAGS=['-fsanitize=address',
'-fno-omit-frame-pointer'], '-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address') LINKFLAGS='-fsanitize=address')
# Only gcc >= 4.9 supports UBSan, so check both the version # Only gcc >= 4.9 supports UBSan, so check both the version
# and the command-line option before adding the compiler and # and the command-line option before adding the compiler and
# linker flags. # linker flags.
@@ -541,16 +541,16 @@ elif main['CLANG']:
# versions here. # versions here.
if GetOption('with_ubsan'): if GetOption('with_ubsan'):
if GetOption('with_asan'): if GetOption('with_asan'):
env.Append(CCFLAGS=['-fsanitize=address,undefined', main.Append(CCFLAGS=['-fsanitize=address,undefined',
'-fno-omit-frame-pointer'], '-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address,undefined') LINKFLAGS='-fsanitize=address,undefined')
else: else:
env.Append(CCFLAGS='-fsanitize=undefined', main.Append(CCFLAGS='-fsanitize=undefined',
LINKFLAGS='-fsanitize=undefined') LINKFLAGS='-fsanitize=undefined')
elif GetOption('with_asan'): elif GetOption('with_asan'):
env.Append(CCFLAGS=['-fsanitize=address', main.Append(CCFLAGS=['-fsanitize=address',
'-fno-omit-frame-pointer'], '-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address') LINKFLAGS='-fsanitize=address')
else: else:

View File

@@ -461,7 +461,7 @@ namespace ArmISA
return INTREG_SP0; return INTREG_SP0;
default: default:
panic("Invalid exception level"); panic("Invalid exception level");
break; return 0; // Never happens.
} }
} else { } else {
return flattenIntRegModeIndex(reg); return flattenIntRegModeIndex(reg);

View File

@@ -84,7 +84,7 @@ class RegId {
static constexpr size_t Scale = TheISA::NumVecElemPerVecReg; static constexpr size_t Scale = TheISA::NumVecElemPerVecReg;
friend struct std::hash<RegId>; friend struct std::hash<RegId>;
public: public:
RegId() {}; RegId() : regClass(IntRegClass), regIdx(0), elemIdx(-1) {}
RegId(RegClass reg_class, RegIndex reg_idx) RegId(RegClass reg_class, RegIndex reg_idx)
: regClass(reg_class), regIdx(reg_idx), elemIdx(-1) : regClass(reg_class), regIdx(reg_idx), elemIdx(-1)
{ {