[clang-tools-extra] [clang-tidy] Workaround for cppcoreguidelines-pro-type-union-access if memLoc is invalid (PR #104540)
Piotr Zegar via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 16 08:32:21 PDT 2024
================
@@ -23,8 +23,12 @@ void ProTypeUnionAccessCheck::registerMatchers(MatchFinder *Finder) {
void ProTypeUnionAccessCheck::check(const MatchFinder::MatchResult &Result) {
const auto *Matched = Result.Nodes.getNodeAs<MemberExpr>("expr");
- diag(Matched->getMemberLoc(),
- "do not access members of unions; use (boost::)variant instead");
+ if (auto MemberLoc = Matched->getMemberLoc(); MemberLoc.isValid())
+ diag(MemberLoc,
+ "do not access members of unions; use (boost::)variant instead");
+ else
+ diag(Matched->getBeginLoc(),
+ "do not access members of unions; use (boost::)variant instead");
----------------
PiotrZSL wrote:
```suggestion
SourceLocation Loc = Matched->getMemberLoc();
if (Loc.isInvalid())
Loc = Matched->getBeginLoc();
diag(Loc, "do not access members of unions; use (boost::)variant instead");
```
re-format may be needed
https://github.com/llvm/llvm-project/pull/104540
More information about the cfe-commits
mailing list