[all-commits] [llvm/llvm-project] 8544de: Thread safety analysis: Document how try-acquire i...

Aaron Puchert via All-commits all-commits at lists.llvm.org
Sat Sep 5 05:27:22 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 8544defdcb09bbbbc25c5958e5f5b5762e9b9046
      https://github.com/llvm/llvm-project/commit/8544defdcb09bbbbc25c5958e5f5b5762e9b9046
  Author: Aaron Puchert <aaronpuchert at alice-dsl.net>
  Date:   2020-09-05 (Sat, 05 Sep 2020)

  Changed paths:
    M clang/docs/ThreadSafetyAnalysis.rst

  Log Message:
  -----------
  Thread safety analysis: Document how try-acquire is handled

I don't think this is obvious, since try-acquire seemingly contradicts
our usual requirements of "no conditional locking".

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D87065


  Commit: 16975a638df3cda95c677055120b23e689d96dcd
      https://github.com/llvm/llvm-project/commit/16975a638df3cda95c677055120b23e689d96dcd
  Author: Aaron Puchert <aaronpuchert at alice-dsl.net>
  Date:   2020-09-05 (Sat, 05 Sep 2020)

  Changed paths:
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/test/PCH/cxx1z-decomposition.cpp

  Log Message:
  -----------
  Set InvalidDecl directly when deserializing a Decl

When parsing a C++17 binding declaration, we first create the
BindingDecls in Sema::ActOnDecompositionDeclarator, and then build the
DecompositionDecl in Sema::ActOnVariableDeclarator, so the contained
BindingDecls are never null. But when deserializing, we read the
DecompositionDecl with all properties before filling in the Bindings.
Among other things, reading a declaration reads whether it's invalid,
then calling setInvalidDecl which assumes that all bindings of the
DecompositionDecl are available, but that isn't the case.

Deserialization should just set all properties directly without invoking
subsequent functions, so we just set the flag without using the setter.

Fixes PR34960.

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D86207


Compare: https://github.com/llvm/llvm-project/compare/58b28fa7a2fd...16975a638df3


More information about the All-commits mailing list