[all-commits] [llvm/llvm-project] 6b1e2f: [FE] Manipulate the first byte of guard variable t...

xling-liao via All-commits all-commits at lists.llvm.org
Mon Feb 8 08:16:41 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6b1e2fc89327a64c9300d543e00f12435c32dfcf
      https://github.com/llvm/llvm-project/commit/6b1e2fc89327a64c9300d543e00f12435c32dfcf
  Author: Xiangling Liao <Xiangling.Liao at ibm.com>
  Date:   2021-02-08 (Mon, 08 Feb 2021)

  Changed paths:
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/test/CodeGenCXX/aix-static-init-temp-spec-and-inline-var.cpp
    M clang/test/CodeGenCXX/aix-static-init.cpp
    M clang/test/CodeGenCXX/cxx11-thread-local.cpp
    M clang/test/CodeGenCXX/global-init.cpp
    M clang/test/CodeGenCXX/static-data-member.cpp

  Log Message:
  -----------
  [FE] Manipulate the first byte of guard variable type in both load and store operation

As Itanium ABI[http://itanium-cxx-abi.github.io/cxx-abi/abi.html#once-ctor]
points out:

"The size of the guard variable is 64 bits. The first byte (i.e. the byte at
the address of the full variable) shall contain the value 0 prior to
initialization of the associated variable, and 1 after initialization is complete."

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




More information about the All-commits mailing list