kastiglione added inline comments.
================ Comment at: lldb/source/Utility/CMakeLists.txt:29 + PROPERTIES COMPILE_OPTIONS + "-fcxx-exceptions" +) ---------------- the `std::regex` constructor throws `std::regex_error` if the pattern is invalid. For this reason, exceptions are enabled for this one file. ================ Comment at: lldb/source/Utility/RegularExpression.cpp:51 +bool RegularExpression::IsValid() const { + return !m_regex_text.empty() && !m_regex_error; +} ---------------- `llvm::Regex` considers the empty string to be an invalid pattern, while `std::regex` does not. ================ Comment at: lldb/source/Utility/RegularExpression.cpp:58 + if (!IsValid()) { + std::string error = m_regex_error ? m_regex_error->what() : "empty regex"; return llvm::make_error<llvm::StringError>(error, ---------------- `llvm::Regex` considers the empty string to be an invalid pattern, while `std::regex` does not. ================ Comment at: lldb/test/API/commands/breakpoint/set/func-regex/TestBreakpointRegexError.py:11-21 + substrs=["error: Function name regular expression could " + "not be compiled: The expression contained mismatched ( and )."]) # Point out if looks like the user provided a globbing expression. self.expect("breakpoint set --func-regex *a", error=True, - substrs=["error: Function name regular expression could " + - "not be compiled: repetition-operator operand invalid", + substrs=["error: Function name regular expression could " + "not be compiled: One of *?+{ was not preceded by a valid regular expression.", ---------------- the error messages have changed. ================ Comment at: lldb/test/API/functionalities/breakpoint/source_regexp/TestSourceRegexBreakpoints.py:37 - source_regex = "Set . breakpoint here" + source_regex = r"Set \w\d? breakpoint here" main_break = target.BreakpointCreateBySourceRegex( ---------------- exercise the features that aren't supported by `llvm::Regex` ================ Comment at: lldb/test/API/functionalities/breakpoint/source_regexp/TestSourceRegexBreakpoints.py:69 target_files.Append(lldb.SBFileSpec("main.c")) - source_regex = "Set . breakpoint here" + source_regex = r"Set \w\d? breakpoint here" main_break = target.BreakpointCreateBySourceRegex( ---------------- exercise the features that aren't supported by `llvm::Regex` ================ Comment at: lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/multiset/TestDataFormatterGenericMultiSet.py:132 (self.target, process, _, bkpt) = lldbutil.run_to_source_breakpoint( - self, "Stop here to check by ref and ptr.", + self, "Stop here to check by ref and ptr", lldb.SBFileSpec("main.cpp", False)) ---------------- previously, there was a `.`, which `llvm::Regex` matched to a newline, while `std::regex` does not, resulting in no match. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D132307/new/ https://reviews.llvm.org/D132307 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits