diff options
author | Florian Hahn <florian.hahn@arm.com> | 2017-12-20 11:32:43 +0000 |
---|---|---|
committer | Florian Hahn <florian.hahn@arm.com> | 2017-12-20 11:32:43 +0000 |
commit | a392df933c938997631db2e7b8df729fb258f193 (patch) | |
tree | bd0533735a699e9b432ecc5451613b291238b2db /unittests | |
parent | 395b7777955e0c0d999a4dd0260a662b7dc16f4f (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.cpp | 6 |
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); |