aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2019-05-04 05:20:14 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2019-05-04 05:20:14 +0000
commit5dbfa7633421d84685990c7582c346350b2657d3 (patch)
treebc3f6d7f5812809ce3c26b0c8fb41ef88f7d756f /clang/lib/Sema/SemaChecking.cpp
parent51d1415a169f5786e1061750915af7f298626c4d (diff)
downloadllvm-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.cpp9
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;
}