[all-commits] [llvm/llvm-project] 9523cf: [AST] Fix handling of long double and bool in __bu...

Erik Pilkington via All-commits all-commits at lists.llvm.org
Wed Sep 2 12:09:11 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 9523cf02c22a83bece8d81080693a0cbf4098bb5
      https://github.com/llvm/llvm-project/commit/9523cf02c22a83bece8d81080693a0cbf4098bb5
  Author: Erik Pilkington <erik.pilkington at gmail.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticASTKinds.td
    M clang/lib/AST/ExprConstant.cpp
    M clang/test/SemaCXX/constexpr-builtin-bit-cast.cpp

  Log Message:
  -----------
  [AST] Fix handling of long double and bool in __builtin_bit_cast

On x86, long double has 6 unused trailing bytes. This patch changes the
constant evaluator to treat them as though they were padding bytes, so reading
from them results in an indeterminate value, and nothing is written for them.
Also, fix a similar bug with bool, but instead of treating the unused bits as
padding, enforce that they're zero.

Differential revision: https://reviews.llvm.org/D76323


  Commit: 2d11ae0a40e209a7b91aeff0c9cf28fe41dce93c
      https://github.com/llvm/llvm-project/commit/2d11ae0a40e209a7b91aeff0c9cf28fe41dce93c
  Author: Erik Pilkington <erik.pilkington at gmail.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp

  Log Message:
  -----------
  Fix a -Wparenthesis warning in 8ff44e644bb7, NFC


Compare: https://github.com/llvm/llvm-project/compare/e0e7eb2e2648...2d11ae0a40e2


More information about the All-commits mailing list