[LLVM/Support] - Create no-arguments constructor for llvm::Regex
authorGeorge Rimar <grimar@accesssoftek.com>
Thu, 1 Sep 2016 08:00:28 +0000 (08:00 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Thu, 1 Sep 2016 08:00:28 +0000 (08:00 +0000)
This is useful when need to defer the construction,
e.g. using Regex as a member of class.

Differential revision: https://reviews.llvm.org/D24101

llvm-svn: 280339

llvm/lib/Support/Regex.cpp
llvm/unittests/Support/RegexTest.cpp

index e8344ef..60ce528 100644 (file)
@@ -19,6 +19,8 @@
 #include <string>
 using namespace llvm;
 
+Regex::Regex() : error(REG_BADPAT), preg(nullptr) {}
+
 Regex::Regex(StringRef regex, unsigned Flags) {
   unsigned flags = 0;
   preg = new llvm_regex();
index c045c49..7b61a03 100644 (file)
@@ -153,4 +153,13 @@ TEST_F(RegexTest, MoveAssign) {
   EXPECT_TRUE(r2.match("916"));
 }
 
+TEST_F(RegexTest, NoArgConstructor) {
+  std::string Error;
+  Regex r1;
+  EXPECT_FALSE(r1.isValid(Error));
+  EXPECT_EQ("invalid regular expression", Error);
+  r1 = Regex("abc");
+  EXPECT_TRUE(r1.isValid(Error));
+}
+
 }