Chun-Chen TK Hsu has submitted this change and it was merged. (
https://gem5-review.googlesource.com/9101 )
Change subject: arch, arm: Fix implicit-fallthrough GCC warnings
......................................................................
arch, arm: Fix implicit-fallthrough GCC warnings
GCC 7 generates spurious fallthrough warnings in nested switch blocks
where the inner switch block return. There is already a GCC fix [1]
submitted for review but, until it is merged into GCC trunk, GEM5 will
not build with GCC 7 due to these fallthrough warnings. This patch
silences the spurious fallthrough warnings by appending a M5_UNREACHABLE
statement in the outer switch cases.
Note there is another GEM5 patch [2] to fix other fallthrough warnings.
[1] https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01105.html
[2] https://gem5-review.googlesource.com/c/public/gem5/+/8541
Change-Id: I97cd8bfa90a88e93cee60cf27a8c93611d11a242
Signed-off-by: Chun-Chen Hsu <[email protected]>
Reviewed-on: https://gem5-review.googlesource.com/9101
Reviewed-by: Giacomo Travaglini <[email protected]>
Maintainer: Giacomo Travaglini <[email protected]>
---
M src/arch/arm/isa/formats/aarch64.isa
M src/arch/isa_parser.py
2 files changed, 7 insertions(+), 2 deletions(-)
Approvals:
Giacomo Travaglini: Looks good to me, approved; Looks good to me, approved
diff --git a/src/arch/arm/isa/formats/aarch64.isa
b/src/arch/arm/isa/formats/aarch64.isa
index 1b9a86c..7752ba0 100644
--- a/src/arch/arm/isa/formats/aarch64.isa
+++ b/src/arch/arm/isa/formats/aarch64.isa
@@ -1897,6 +1897,7 @@
return new Unknown64(machInst);
}
}
+ M5_UNREACHABLE;
case 0x1:
{
if (bits(machInst, 31) ||
@@ -2005,7 +2006,7 @@
M5_UNREACHABLE;
}
}
- return new FailUnimplemented("Unhandled Case4", machInst);
+ M5_UNREACHABLE;
}
}
}};
diff --git a/src/arch/isa_parser.py b/src/arch/isa_parser.py
index 6817349..a65149f 100755
--- a/src/arch/isa_parser.py
+++ b/src/arch/isa_parser.py
@@ -1565,6 +1565,9 @@
# decoder method - cannot be split
file = 'decoder.cc'
with self.open(file) as f:
+ fn = 'base/compiler.hh'
+ f.write('#include "%s"\n' % fn)
+
fn = 'decoder-g.cc.inc'
assert(fn in self.files)
f.write('#include "%s"\n' % fn)
@@ -2206,7 +2209,8 @@
codeObj = t[3]
# just wrap the decoding code from the block as a case in the
# outer switch statement.
- codeObj.wrap_decode_block('\n%s\n' % ''.join(case_list))
+ codeObj.wrap_decode_block('\n%s\n' % ''.join(case_list),
+ 'M5_UNREACHABLE;\n')
codeObj.has_decode_default = (case_list == ['default:'])
t[0] = codeObj
--
To view, visit https://gem5-review.googlesource.com/9101
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I97cd8bfa90a88e93cee60cf27a8c93611d11a242
Gerrit-Change-Number: 9101
Gerrit-PatchSet: 10
Gerrit-Owner: Chun-Chen TK Hsu <[email protected]>
Gerrit-Assignee: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Andreas Sandberg <[email protected]>
Gerrit-Reviewer: Chun-Chen TK Hsu <[email protected]>
Gerrit-Reviewer: Gabe Black <[email protected]>
Gerrit-Reviewer: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Nikos Nikoleris <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev