diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-05-04 05:20:14 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-05-04 05:20:14 +0000 |
commit | 5dbfa7633421d84685990c7582c346350b2657d3 (patch) | |
tree | bc3f6d7f5812809ce3c26b0c8fb41ef88f7d756f /clang/lib/Sema/SemaChecking.cpp | |
parent | 51d1415a169f5786e1061750915af7f298626c4d (diff) | |
download | llvm-5dbfa7633421d84685990c7582c346350b2657d3.zip llvm-5dbfa7633421d84685990c7582c346350b2657d3.tar.gz llvm-5dbfa7633421d84685990c7582c346350b2657d3.tar.bz2 |
Use DiagRuntimeBehavior for -Wunsequenced to weed out false positives
where either the modification or the other access is unreachable.
llvm-svn: 359962
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 4c2d1dc..d0479b8 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -12155,10 +12155,11 @@ class SequenceChecker : public EvaluatedExprVisitor<SequenceChecker> { if (OtherKind == UK_Use) std::swap(Mod, ModOrUse); - SemaRef.Diag(Mod->getExprLoc(), - IsModMod ? diag::warn_unsequenced_mod_mod - : diag::warn_unsequenced_mod_use) - << O << SourceRange(ModOrUse->getExprLoc()); + SemaRef.DiagRuntimeBehavior( + Mod->getExprLoc(), {Mod, ModOrUse}, + SemaRef.PDiag(IsModMod ? diag::warn_unsequenced_mod_mod + : diag::warn_unsequenced_mod_use) + << O << SourceRange(ModOrUse->getExprLoc())); UI.Diagnosed = true; } |