[llvm] r280339 - [LLVM/Support] - Create no-arguments constructor for llvm::Regex

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 1 01:00:29 PDT 2016


Author: grimar
Date: Thu Sep  1 03:00:28 2016
New Revision: 280339

URL: http://llvm.org/viewvc/llvm-project?rev=280339&view=rev
Log:
[LLVM/Support] - Create no-arguments constructor for llvm::Regex

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

Modified:
    llvm/trunk/lib/Support/Regex.cpp
    llvm/trunk/unittests/Support/RegexTest.cpp

Modified: llvm/trunk/lib/Support/Regex.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Regex.cpp?rev=280339&r1=280338&r2=280339&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Regex.cpp (original)
+++ llvm/trunk/lib/Support/Regex.cpp Thu Sep  1 03:00:28 2016
@@ -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();

Modified: llvm/trunk/unittests/Support/RegexTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/RegexTest.cpp?rev=280339&r1=280338&r2=280339&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/RegexTest.cpp (original)
+++ llvm/trunk/unittests/Support/RegexTest.cpp Thu Sep  1 03:00:28 2016
@@ -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));
+}
+
 }




More information about the llvm-commits mailing list