summaryrefslogtreecommitdiff
path: root/unittests
diff options
context:
space:
mode:
authorFlorian Hahn <florian.hahn@arm.com>2017-12-20 11:32:43 +0000
committerFlorian Hahn <florian.hahn@arm.com>2017-12-20 11:32:43 +0000
commita392df933c938997631db2e7b8df729fb258f193 (patch)
treebd0533735a699e9b432ecc5451613b291238b2db /unittests
parent395b7777955e0c0d999a4dd0260a662b7dc16f4f (diff)
[TargetParser] Check size before accessing architecture version.
Summary: This fixes a crash when invalid -march options like `armv` are provided. Based on a patch by Will Lovett. Reviewers: rengolin, samparker, mcrosier Reviewed By: samparker Subscribers: aemerson, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D41429 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321166 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r--unittests/Support/TargetParserTest.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/unittests/Support/TargetParserTest.cpp b/unittests/Support/TargetParserTest.cpp
index dcef40345f0..48fffca1aa1 100644
--- a/unittests/Support/TargetParserTest.cpp
+++ b/unittests/Support/TargetParserTest.cpp
@@ -278,6 +278,12 @@ TEST(TargetParserTest, testARMCPU) {
"7-S"));
}
+TEST(TargetParserTest, testInvalidARMArch) {
+ auto InvalidArchStrings = {"armv", "armv99", "noarm"};
+ for (const char* InvalidArch : InvalidArchStrings)
+ EXPECT_EQ(ARM::parseArch(InvalidArch), ARM::ArchKind::INVALID);
+}
+
bool testARMArch(StringRef Arch, StringRef DefaultCPU, StringRef SubArch,
unsigned ArchAttr) {
ARM::ArchKind AK = ARM::parseArch(Arch);