From a1e5fccd64d5693d6209dbc5a9fc406648d74a5d Mon Sep 17 00:00:00 2001 From: Earl Ou Date: Fri, 7 Sep 2018 15:16:53 +0800 Subject: 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 Reviewed-by: Anthony Gutierrez Maintainer: Anthony Gutierrez --- SConstruct | 16 ++++++++-------- src/arch/arm/isa.hh | 2 +- src/cpu/reg_class.hh | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/SConstruct b/SConstruct index 79522e46f..f689b556a 100755 --- a/SConstruct +++ b/SConstruct @@ -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: diff --git a/src/arch/arm/isa.hh b/src/arch/arm/isa.hh index 0521c43f9..7b39682f9 100644 --- a/src/arch/arm/isa.hh +++ b/src/arch/arm/isa.hh @@ -461,7 +461,7 @@ namespace ArmISA return INTREG_SP0; default: panic("Invalid exception level"); - break; + return 0; // Never happens. } } else { return flattenIntRegModeIndex(reg); diff --git a/src/cpu/reg_class.hh b/src/cpu/reg_class.hh index 617d17e35..69da9cf7e 100644 --- a/src/cpu/reg_class.hh +++ b/src/cpu/reg_class.hh @@ -84,7 +84,7 @@ class RegId { static constexpr size_t Scale = TheISA::NumVecElemPerVecReg; friend struct std::hash; public: - RegId() {}; + RegId() : regClass(IntRegClass), regIdx(0), elemIdx(-1) {} RegId(RegClass reg_class, RegIndex reg_idx) : regClass(reg_class), regIdx(reg_idx), elemIdx(-1) { -- cgit v1.2.3