SuccessChanges

Summary

  1. [Sema] SequenceChecker: Fix handling of operator ||, && and ?: (details)
  2. [Sema] SequenceChecker: C++17 sequencing rules for built-in operators (details)
  3. [lldb] Remove unused CompilerDeclContext::IsStructUnionOrClass (details)
Commit 8a571538dff6dbc1b7f4fed6aed8be7ec1a00a8d by riccibrun
[Sema] SequenceChecker: Fix handling of operator ||, && and ?:
The current handling of the operators ||, && and ?: has a number of
false positive and false negative. The issues for operator || and &&
are:
1. We need to add sequencing regions for the LHS and RHS as is done for
the
  comma operator. Not doing so causes false positives in expressions
like
  `((a++, false) || (a++, false))` (from PR39779, see PR22197 for
another
   example).
2. In the current implementation when the evaluation of the LHS fails,
the RHS
  is added to a worklist to be processed later. This results in false
negatives
  in expressions like `(a && a++) + a`.
Fix these issues by introducing sequencing regions for the LHS and RHS,
and by not deferring the visitation of the RHS.
The issues with the ternary operator ?: are similar, with the added
twist that we should not warn on expressions like `(x ? y += 1 : y +=
2)` since exactly one of the 2nd and 3rd expression is going to be
evaluated, but we should still warn on expressions like `(x ? y += 1 : y
+= 2) = y`.
Differential Revision: https://reviews.llvm.org/D57747
Reviewed By: rsmith
The file was modifiedclang/test/SemaCXX/warn-unsequenced.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/Sema/warn-unsequenced.c
Commit 7394c15178ed9cb7bd04585526a1e73396e60e17 by riccibrun
[Sema] SequenceChecker: C++17 sequencing rules for built-in operators
<<, >>, .*, ->*, =, op=
Implement the C++17 sequencing rules for the built-in operators <<, >>,
.*,
->*, = and op=.
Differential Revision: https://reviews.llvm.org/D58297
Reviewed By: rsmith
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/CXX/drs/dr2xx.cpp
The file was modifiedclang/test/CXX/drs/dr6xx.cpp
The file was modifiedclang/test/SemaCXX/warn-unsequenced.cpp
Commit 218601ada1496f920fadddae9a21f7d6ccf48da5 by Raphael Isemann
[lldb] Remove unused CompilerDeclContext::IsStructUnionOrClass
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h
The file was modifiedlldb/source/Symbol/CompilerDeclContext.cpp
The file was modifiedlldb/include/lldb/Symbol/TypeSystem.h
The file was modifiedlldb/include/lldb/Symbol/CompilerDeclContext.h
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp