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:
main.Append(CCFLAGS=['-fsanitize=address,undefined',
'-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address,undefined')
LINKFLAGS='-fsanitize=address,undefined')
else:
main.Append(CCFLAGS=['-fsanitize=address',
'-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address')
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.
@@ -541,16 +541,16 @@ elif main['CLANG']:
# versions here.
if GetOption('with_ubsan'):
if GetOption('with_asan'):
env.Append(CCFLAGS=['-fsanitize=address,undefined',
'-fno-omit-frame-pointer'],
main.Append(CCFLAGS=['-fsanitize=address,undefined',
'-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address,undefined')
else:
env.Append(CCFLAGS='-fsanitize=undefined',
LINKFLAGS='-fsanitize=undefined')
main.Append(CCFLAGS='-fsanitize=undefined',
LINKFLAGS='-fsanitize=undefined')
elif GetOption('with_asan'):
env.Append(CCFLAGS=['-fsanitize=address',
'-fno-omit-frame-pointer'],
main.Append(CCFLAGS=['-fsanitize=address',
'-fno-omit-frame-pointer'],
LINKFLAGS='-fsanitize=address')
else:

View File

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

View File

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