[PATCH] D40787: [clang-tidy] Replace the usage of std::uncaught_exception with std::uncaught_exceptions
Jonas Toth via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 4 08:41:28 PST 2017
JonasToth added inline comments.
================
Comment at: clang-tidy/modernize/ReplaceUncaughtExceptionCheck.cpp:20
+
+static const char *MatchText = "::std::uncaught_exception";
+
----------------
Could that be a local variable in `registerMatchers`? Even though its static and const it might be best to reduce its scope as much as possible.
================
Comment at: clang-tidy/modernize/ReplaceUncaughtExceptionCheck.cpp:32
+ Finder->addMatcher(
+ declRefExpr(to(functionDecl(hasName(MatchText)))).bind("call_expr"),
+ this);
----------------
Interesting. Did you consider `callExpr` as well? I never used `declRefExpr` in this context but it might be a good choice too. Would it catch taking a function pointer to `std::uncaught_exception` too? If so, i need to overthink some of my code :)
================
Comment at: clang-tidy/modernize/ReplaceUncaughtExceptionCheck.cpp:45
+ } else {
+ const auto *U = Result.Nodes.getNodeAs<UsingDecl>("using_decl");
+ BeginLoc = U->getNameInfo().getBeginLoc();
----------------
The implicit assumption here is that one of both must have been matched which is true now.
But adding an `assert` on `U` might still be a good thing. You never known how the code evolves and what bugs might come alive.
That just ensures that there is no possible way to dereference a `nullptr`.
================
Comment at: clang-tidy/modernize/ReplaceUncaughtExceptionCheck.cpp:59
+ if (!BeginLoc.isMacroID()) {
+ Diag << FixItHint::CreateInsertion(BeginLoc.getLocWithOffset(TextLength),
+ "s");
----------------
Could the location not simply be `EndLoc`?
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D40787
More information about the cfe-commits
mailing list