[all-commits] [llvm/llvm-project] 435cb0: [C++23] Fix infinite recursion (Clang 19.x regress...

Fangrui Song via All-commits all-commits at lists.llvm.org
Mon Aug 19 18:17:09 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/driver-default-msmall-data-limit-to-0-and-clean-up-code
  Home:   https://github.com/llvm/llvm-project
  Commit: 435cb0dc5eca08cdd8d9ed0d887fa1693cc2bf33
      https://github.com/llvm/llvm-project/commit/435cb0dc5eca08cdd8d9ed0d887fa1693cc2bf33
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/test/SemaCXX/gh102293.cpp

  Log Message:
  -----------
  [C++23] Fix infinite recursion (Clang 19.x regression) (#104829)

d469794d0cdfd2fea50a6ce0c0e33abb242d744c was fixing an issue with
triggering vtable instantiations, but it accidentally introduced
infinite recursion when the type to be checked is the same as the type
used in a base specifier or field declaration.

Fixes #104802


  Commit: ff2e619dfcd77328812a42d2ba2b11c3ff96f410
      https://github.com/llvm/llvm-project/commit/ff2e619dfcd77328812a42d2ba2b11c3ff96f410
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M llvm/lib/MC/MCAssembler.cpp

  Log Message:
  -----------
  [MC] Remove duplicate getFixupKindInfo calls. NFC

Due to 8728e097dfbec3630a1dd907431c0f14274a1ae8
(`std::unique_ptr<MCAsmBackend> Backend`), the compiler doesn't know
that `Backend` will not be modified across function calls.


  Commit: e732d1ce86783b1d7fe30645fcb30434109505b9
      https://github.com/llvm/llvm-project/commit/e732d1ce86783b1d7fe30645fcb30434109505b9
  Author: Yuxuan Chen <ych at fb.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M clang/lib/Sema/SemaOpenMP.cpp
    A clang/test/SemaOpenMP/gh104810.cpp

  Log Message:
  -----------
  [Clang] Fix ICE in SemaOpenMP with structured binding (#104822)

Fixes https://github.com/llvm/llvm-project/issues/104810.

Clang currently crashes on the following program:
```
struct S {
  int i;
};

auto [a] = S{1};

void foo() {
    a;
}
```
when `-fopenmp` is enabled. 

Because `a` is neither `VarDecl` nor `FieldDecl`. It's a `BindingDecl`
that's not handled in `SemaOpenMP.cpp`'s `getCanonicalDecl`. It appears
to me that this pattern matching is merely just for a refined return
type of the overrides. It can also be achieved with just using the
virtual `Decl::getCanonicalDecl()` instead. Do the final casting should
be safe for `ValueDecl`s.


  Commit: 8a677c194072dc19ef680bebba9aa7eafb05b373
      https://github.com/llvm/llvm-project/commit/8a677c194072dc19ef680bebba9aa7eafb05b373
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M llvm/include/llvm/ADT/STLExtras.h

  Log Message:
  -----------
  [NFC][ADT] Add range wrapper for std::mismatch (#104838)


  Commit: 6a125c7e77cd0e73abc9e60ad1c8eb06e31b11d7
      https://github.com/llvm/llvm-project/commit/6a125c7e77cd0e73abc9e60ad1c8eb06e31b11d7
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    M llvm/test/Instrumentation/AddressSanitizer/asan-funclet.ll
    M llvm/test/Instrumentation/AddressSanitizer/fake-stack.ll
    M llvm/test/Instrumentation/AddressSanitizer/global_metadata.ll
    M llvm/test/Instrumentation/AddressSanitizer/global_metadata_array.ll
    M llvm/test/Instrumentation/AddressSanitizer/global_with_comdat.ll
    M llvm/test/Instrumentation/AddressSanitizer/instrument_global.ll
    M llvm/test/Instrumentation/AddressSanitizer/instrument_late_initializer.ll
    M llvm/test/Instrumentation/AddressSanitizer/local_alias.ll
    M llvm/test/Instrumentation/AddressSanitizer/odr-check-ignore.ll
    M llvm/test/Instrumentation/AddressSanitizer/win-string-literal.ll

  Log Message:
  -----------
  [asan] Better `___asan_gen_` names (#104728)

Use different suffixes for each of 3 types
of objects using `___asan_gen_`.


  Commit: 5af3dfb1d9caee206d080db2afab01006210739f
      https://github.com/llvm/llvm-project/commit/5af3dfb1d9caee206d080db2afab01006210739f
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  Log Message:
  -----------
  [NFC][asan] Create `ModuleName` lazily (#104729)

Avoids tracking conditions when it's needed.


  Commit: fa87eac3bea5b9704522c6b553d0f4a421e8abc9
      https://github.com/llvm/llvm-project/commit/fa87eac3bea5b9704522c6b553d0f4a421e8abc9
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M compiler-rt/test/asan/TestCases/initialization-bug-no-global.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    M llvm/test/Instrumentation/AddressSanitizer/instrument_initializer_without_global.ll

  Log Message:
  -----------
  Reland "[asan] Catch `initialization-order-fiasco` in modules without…" (#104730)

Re-land https://github.com/llvm/llvm-project/pull/104621

After https://github.com/llvm/llvm-project/pull/104729 this patch will
not create unused module names, failing some test checks.

This reverts commit 34f941a2f96b804dd24c2a25770d899b018339ff.


  Commit: 54c6b93bcb4e751ec67ebd69e24c11811b970f1e
      https://github.com/llvm/llvm-project/commit/54c6b93bcb4e751ec67ebd69e24c11811b970f1e
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    A libc/utils/mathtools/worst_case.sollya

  Log Message:
  -----------
  [libc][NFC] Add sollya script to compute worst case range reduction. (#104803)


  Commit: 24052538a0bb0144e6997e6b61687e3b8716b6ac
      https://github.com/llvm/llvm-project/commit/24052538a0bb0144e6997e6b61687e3b8716b6ac
  Author: Michael Park <mcypark at gmail.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M clang-tools-extra/clangd/ParsedAST.cpp

  Log Message:
  -----------
  Emit `BeginSourceFile` failure with `elog`. (#104845)

There are 3 ways in which `ParseAST::build` can fail and return
`std::nullopt`. 2 of the ways we emit the error message using `elog`,
but for the 3rd way, `log` is used. We should emit all 3 of these
reasons with `elog`.


  Commit: 98f2eb7ddab0cadd1eb6e631458ae8406f7d39a1
      https://github.com/llvm/llvm-project/commit/98f2eb7ddab0cadd1eb6e631458ae8406f7d39a1
  Author: jeffreytan81 <jeffreytan at meta.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M lldb/tools/lldb-dap/DAP.h
    M lldb/tools/lldb-dap/lldb-dap.cpp

  Log Message:
  -----------
  Fix StartDebuggingRequestHandler/ReplModeRequestHandler in lldb-dap (#104824)

`SBCommand::AddCommand()` requires `SBCommandPluginInterface` to be heap
based because it will be stored inside
`std::shared_ptr<lldb::SBCommandPluginInterface>` later for reference
counting. But lldb-dap passes
`StartDebuggingRequestHandler/ReplModeRequestHandler` static function
pointer to it which will cause corruption later during destruction.

This PR fixes this issue by making these two handler heap based.

Co-authored-by: jeffreytan81 <jeffreytan at fb.com>


  Commit: c4781396136849e79fe7b0c9ffe1ccb708bb1b67
      https://github.com/llvm/llvm-project/commit/c4781396136849e79fe7b0c9ffe1ccb708bb1b67
  Author: Florian Mayer <fmayer at google.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M compiler-rt/lib/hwasan/scripts/hwasan_symbolize
    A compiler-rt/test/hwasan/TestCases/hwasan_symbolize_stack_overflow.cpp

  Log Message:
  -----------
  Reapply "[HWASan] symbolize stack overflows" (#102951) (#104036)

This reverts commit d4f6fcf5aaa0911a91317c0b06779f13077d6b58.

Relanding with fixed obj_offset calculation (precedence of operations
was wrong),
and the suggestion in
https://github.com/llvm/llvm-project/pull/95308#discussion_r1714317539


  Commit: f5664f585bdc3187461f1dfd78d8f16ed2d990a0
      https://github.com/llvm/llvm-project/commit/f5664f585bdc3187461f1dfd78d8f16ed2d990a0
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M llvm/lib/Support/FormatVariadic.cpp

  Log Message:
  -----------
  [Support] Do not ignore unterminated open { in formatv (#104688)

- When an unterminated open { is detected in the format string, instead
of asserting and ignoring the error, replace that string with another to
indicate the error, and remove the assert as well.
- This will make the error evident in both assert and release builds and
make observing the error more convenient (as several uses of this
function are in TableGen and it is often built in release mode even in
debug builds)


  Commit: 31cc4ccdea92a4fee6a327a07251bb0ed1e6a933
      https://github.com/llvm/llvm-project/commit/31cc4ccdea92a4fee6a327a07251bb0ed1e6a933
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp

  Log Message:
  -----------
  [compiler-rt][fuzzer] implements SetThreadName for fuchsia. (#99953)


  Commit: 5fcd05967aaa0447d8da01b3f19139f2136863b4
      https://github.com/llvm/llvm-project/commit/5fcd05967aaa0447d8da01b3f19139f2136863b4
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/vopd-combine.mir

  Log Message:
  -----------
  [AMDGPU] Add VOPD combine dependency tests. NFC. (#104841)


  Commit: 42ce62800dd24760ab6e400a3d5f898f11fe818a
      https://github.com/llvm/llvm-project/commit/42ce62800dd24760ab6e400a3d5f898f11fe818a
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp

  Log Message:
  -----------
  [ValueTracking] Handle incompatible types instead of asserting in `isKnownNonEqual`; NFC

Downstream hit this assert, since it doesn't really make any
difference, just change code to return false.


  Commit: ea8bb4d633683f5cbfd82491620be3056f347a02
      https://github.com/llvm/llvm-project/commit/ea8bb4d633683f5cbfd82491620be3056f347a02
  Author: estewart08 <ethan.stewart at amd.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M offload/plugins-nextgen/common/CMakeLists.txt

  Log Message:
  -----------
  [offload] - Fix issue with standalone debug offload build (#104647)

Error: CommandLine Error: Option 'attributor-manifest-internal'
registered more than once

During the standalone debug build of offload the above error is seen at
app runtime when using a prebuilt llvm with LLVM_LINK_LLVM_DYLIB=ON.
This is caused by linking both libLLVM.so and various archives that are
found via llvm_map_components_to_libnames for jit support.


  Commit: 43b508566799751aa180f1eaaafc5be693f2f1ae
      https://github.com/llvm/llvm-project/commit/43b508566799751aa180f1eaaafc5be693f2f1ae
  Author: Christopher Bate <cbate at nvidia.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
    M mlir/lib/Conversion/ControlFlowToSCF/CMakeLists.txt
    M mlir/lib/Conversion/ControlFlowToSCF/ControlFlowToSCF.cpp
    M mlir/lib/Conversion/SCFToControlFlow/CMakeLists.txt
    M mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
    M mlir/lib/Conversion/VectorToSCF/CMakeLists.txt
    M mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/Complex/IR/CMakeLists.txt
    M mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/IR/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/TransformOps/CMakeLists.txt
    M mlir/lib/Dialect/Tensor/IR/CMakeLists.txt

  Log Message:
  -----------
  [mlir] NFC: fix dependence of (Tensor|Linalg|MemRef|Complex) dialects on LLVM Dialect and LLVM Core in CMake build (#104832)

This change removes dependencies declared as either 'LINK_LIBS' or
'LINK_COMPONENTS' across several MLIR libraries. The removed
dependencies appear
to be incorrect and may have been required in older versions of the
project.
These dependencies cause many high level dialects to have transitive
dependence on the LLVM dialect and the LLVM 'Core' library
('llvm/lib/IR').

Note that if using the 'Ninja' CMake generator, one can inspect the
dependencies
(including all transitive libraries) of any given MLIR target but using
the command `ninja -C <build dir> -t browse` and navigating to the
library
of interest in a web browser.


  Commit: 27dc247964472aaf92ea55cc37310cda25a002ab
      https://github.com/llvm/llvm-project/commit/27dc247964472aaf92ea55cc37310cda25a002ab
  Author: Joshua Baehring <98630690+JoshuaMBa at users.noreply.github.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/secondary.h
    M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp

  Log Message:
  -----------
  [scudo] Add partial chunk heuristic to retrieval algorithm. (#104807)

Previously the secondary cache retrieval algorithm would not allow
retrievals of memory chunks where the number of unused bytes would be
greater than than `MaxUnusedCachePages * PageSize` bytes. This meant
that even if a memory chunk satisfied the requirements of the optimal
fit algorithm, it may not be returned. This remains true if memory
tagging is enabled. However, if memory tagging is disabled, a new
heuristic has been put in place. Specifically, If a memory chunk is a
non-optimal fit, the cache retrieval algorithm will attempt to release
the excess memory to force a cache hit while keeping RSS down.

In the event that a memory chunk is a non-optimal fit, the retrieval
algorithm will release excess memory as long as the amount of memory to
be released is less than or equal to 16 KB. If the amount of memory to
be released exceeds 16 KB, the retrieval algorithm will not consider
that cached memory chunk valid for retrieval.


  Commit: baa6627a0af6d31ddf57036c6f05a7d0fb31f8f2
      https://github.com/llvm/llvm-project/commit/baa6627a0af6d31ddf57036c6f05a7d0fb31f8f2
  Author: Billy Zhu <billyzhu at modular.com>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Transforms/test-legalize-target-materialization-no-uses.mlir

  Log Message:
  -----------
  [MLIR][Transforms] Fix dialect conversion inverse mapping (#104648)

Inverse mapping needs to be updated for the result that was remapped (it
was previously only updated halfway).


  Commit: b5f3e28eca9bae94412415e5a77f769cf1e4fc61
      https://github.com/llvm/llvm-project/commit/b5f3e28eca9bae94412415e5a77f769cf1e4fc61
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M clang/docs/LanguageExtensions.rst

  Log Message:
  -----------
  [docs] Revise the doc for __builtin_allow_runtime_check

Fix list formatting, improve the wording, and fix the description when
both options (note: prefer "option" to "flag" when arguments are
supported) are specified.

Pull Request: https://github.com/llvm/llvm-project/pull/104886


  Commit: 8fd9d795f52e5c21d1c0531736e25d9ea5568700
      https://github.com/llvm/llvm-project/commit/8fd9d795f52e5c21d1c0531736e25d9ea5568700
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-08-19 (Mon, 19 Aug 2024)

  Changed paths:
    M clang-tools-extra/clangd/ParsedAST.cpp
    M clang/docs/LanguageExtensions.rst
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/test/CodeGen/RISCV/riscv-sdata-module-flag.c
    M clang/test/SemaCXX/gh102293.cpp
    A clang/test/SemaOpenMP/gh104810.cpp
    M compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp
    M compiler-rt/lib/hwasan/scripts/hwasan_symbolize
    M compiler-rt/lib/scudo/standalone/secondary.h
    M compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
    M compiler-rt/test/asan/TestCases/initialization-bug-no-global.cpp
    A compiler-rt/test/hwasan/TestCases/hwasan_symbolize_stack_overflow.cpp
    A libc/utils/mathtools/worst_case.sollya
    M lldb/tools/lldb-dap/DAP.h
    M lldb/tools/lldb-dap/lldb-dap.cpp
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/MC/MCAssembler.cpp
    M llvm/lib/Support/FormatVariadic.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    M llvm/test/CodeGen/AMDGPU/vopd-combine.mir
    M llvm/test/Instrumentation/AddressSanitizer/asan-funclet.ll
    M llvm/test/Instrumentation/AddressSanitizer/fake-stack.ll
    M llvm/test/Instrumentation/AddressSanitizer/global_metadata.ll
    M llvm/test/Instrumentation/AddressSanitizer/global_metadata_array.ll
    M llvm/test/Instrumentation/AddressSanitizer/global_with_comdat.ll
    M llvm/test/Instrumentation/AddressSanitizer/instrument_global.ll
    M llvm/test/Instrumentation/AddressSanitizer/instrument_initializer_without_global.ll
    M llvm/test/Instrumentation/AddressSanitizer/instrument_late_initializer.ll
    M llvm/test/Instrumentation/AddressSanitizer/local_alias.ll
    M llvm/test/Instrumentation/AddressSanitizer/odr-check-ignore.ll
    M llvm/test/Instrumentation/AddressSanitizer/win-string-literal.ll
    M mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
    M mlir/lib/Conversion/ControlFlowToSCF/CMakeLists.txt
    M mlir/lib/Conversion/ControlFlowToSCF/ControlFlowToSCF.cpp
    M mlir/lib/Conversion/SCFToControlFlow/CMakeLists.txt
    M mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
    M mlir/lib/Conversion/VectorToSCF/CMakeLists.txt
    M mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/Complex/IR/CMakeLists.txt
    M mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/IR/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/TransformOps/CMakeLists.txt
    M mlir/lib/Dialect/Tensor/IR/CMakeLists.txt
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Transforms/test-legalize-target-materialization-no-uses.mlir
    M offload/plugins-nextgen/common/CMakeLists.txt

  Log Message:
  -----------
  remove unneeded android test

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/94132fc13f1a...8fd9d795f52e

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list