diff options
author | George Rimar <grimar@accesssoftek.com> | 2017-07-31 09:26:50 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2017-07-31 09:26:50 +0000 |
commit | e36d7a6d68705020fe755d5b23f48dea247643cb (patch) | |
tree | d16f09a638d398d570f7d125ece9dd3d68440c11 /llvm/unittests/Support/GlobPatternTest.cpp | |
parent | 7ef3a19337c69772e1f95e6be322fa27388f0f34 (diff) | |
download | bcm5719-llvm-e36d7a6d68705020fe755d5b23f48dea247643cb.tar.gz bcm5719-llvm-e36d7a6d68705020fe755d5b23f48dea247643cb.zip |
[Support/GlobPattern] - Do not crash when pattern has characters with int value < 0.
Found it during work on LLD, it would crash on following
linker script:
SECTIONS { .foo : { *("*®") } }
That happens because ® has int value -82. And chars are used as
array index in code, and are signed by default.
Differential revision: https://reviews.llvm.org/D35891
llvm-svn: 309549
Diffstat (limited to 'llvm/unittests/Support/GlobPatternTest.cpp')
-rw-r--r-- | llvm/unittests/Support/GlobPatternTest.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/unittests/Support/GlobPatternTest.cpp b/llvm/unittests/Support/GlobPatternTest.cpp index 44d77266db1..d7016ab218d 100644 --- a/llvm/unittests/Support/GlobPatternTest.cpp +++ b/llvm/unittests/Support/GlobPatternTest.cpp @@ -67,4 +67,13 @@ TEST_F(GlobPatternTest, Invalid) { EXPECT_FALSE((bool)Pat1); handleAllErrors(Pat1.takeError(), [&](ErrorInfoBase &EIB) {}); } + +TEST_F(GlobPatternTest, ExtSym) { + Expected<GlobPattern> Pat1 = GlobPattern::create("a*\xFF"); + EXPECT_TRUE((bool)Pat1); + EXPECT_TRUE(Pat1->match("axxx\xFF")); + Expected<GlobPattern> Pat2 = GlobPattern::create("[\xFF-\xFF]"); + EXPECT_TRUE((bool)Pat2); + EXPECT_TRUE(Pat2->match("\xFF")); +} } |