[all-commits] [llvm/llvm-project] 0c1dcd: [clangd] [HeuristicResolver] Protect against infin...

Tom Stellard via All-commits all-commits at lists.llvm.org
Sat Mar 16 18:31:27 PDT 2024


  Branch: refs/heads/revert-85053-omp_386_fix_backoirt
  Home:   https://github.com/llvm/llvm-project
  Commit: 0c1dcd675291f058d530078f9304162ea9d27cd1
      https://github.com/llvm/llvm-project/commit/0c1dcd675291f058d530078f9304162ea9d27cd1
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang-tools-extra/clangd/HeuristicResolver.cpp
    M clang-tools-extra/clangd/HeuristicResolver.h
    M clang-tools-extra/clangd/unittests/FindTargetTests.cpp

  Log Message:
  -----------
  [clangd] [HeuristicResolver] Protect against infinite recursion on DependentNameTypes (#83542)

When resolving names inside templates that implement recursive
compile-time functions (e.g. waldo<N>::type is defined in terms
of waldo<N-1>::type), HeuristicResolver could get into an infinite
recursion, specifically one where resolveDependentNameType() can
be called recursively with the same DependentNameType*.

To guard against this, HeuristicResolver tracks, for each external
call into a HeuristicResolver function, the set of DependentNameTypes
that it has seen, and bails if it sees the same DependentNameType again.

To implement this, a helper class HeuristicResolverImpl is introduced
to store state that persists for the duration of an external call into
HeuristicResolver (but does not persist between such calls).

Fixes https://github.com/clangd/clangd/issues/1951

(cherry picked from commit e6e53ca8470d719882539359ebe3ad8b442a8cb0)


  Commit: 3a06861272d8a0710d1880e8e3d4954a76b7f256
      https://github.com/llvm/llvm-project/commit/3a06861272d8a0710d1880e8e3d4954a76b7f256
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt

  Log Message:
  -----------
  [libc++] Use clang-tidy version that matches the compiler we use in the CI (#85305)

This works around ODR violations in the clang-tidy plugin we use to
perform the modules tests.

Fixes #85242


  Commit: 77e1992e89d3734f20c97ad47b4675219f5b9163
      https://github.com/llvm/llvm-project/commit/77e1992e89d3734f20c97ad47b4675219f5b9163
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M lld/test/COFF/def-export-cpp.s
    M lld/test/COFF/def-export-stdcall.s
    M lld/test/COFF/dllexport.s
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/test/tools/llvm-dlltool/coff-decorated.def
    M llvm/test/tools/llvm-dlltool/coff-exports.def
    M llvm/test/tools/llvm-dlltool/coff-noname.def
    M llvm/test/tools/llvm-dlltool/no-leading-underscore.def
    M llvm/test/tools/llvm-lib/arm64ec-implib.test
    M llvm/test/tools/llvm-readobj/COFF/file-headers.test
    M llvm/tools/llvm-readobj/COFFImportDumper.cpp

  Log Message:
  -----------
  [llvm-readobj][Object][COFF] Print COFF import library symbol export name. (#78769)

getExportName implementation is based on lld-link. In its current form,
it's mostly about convenience, but it will be more useful for EXPORTAS
support, for which export name is not possible to deduce from other
printed properties.


  Commit: 76e1800f356513c491ac3bcebdf952842e7b5a3f
      https://github.com/llvm/llvm-project/commit/76e1800f356513c491ac3bcebdf952842e7b5a3f
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/COFF.h
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Object/COFFModuleDefinition.cpp
    A llvm/test/tools/llvm-lib/exportas.test
    M llvm/tools/llvm-readobj/COFFImportDumper.cpp

  Log Message:
  -----------
  [llvm-lib][llvm-dlltool][Object] Add support for EXPORTAS name types. (#78772)

EXPORTAS is a new name type in import libraries. It's used by default on ARM64EC,
but it's allowed on other platforms as well.


  Commit: 79bc8b32c6ed4fc6e002d6426c04d4de874b07cc
      https://github.com/llvm/llvm-project/commit/79bc8b32c6ed4fc6e002d6426c04d4de874b07cc
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Object/COFF.h
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
    M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/test/tools/llvm-lib/arm64ec-implib.test

  Log Message:
  -----------
  [llvm-lib][Object] Add support for EC importlib symbols. (#81059)

ARM64EC import libraries expose two additional symbols: mangled thunk
symbol (like `#func`) and auxiliary import symbol (like`__imp_aux_func`).
The main functional change with this patch is that those symbols are
properly added to static library ECSYMBOLS.


  Commit: 207ecd684cc6731266e12d8d2df0e3d1d9e1ff8d
      https://github.com/llvm/llvm-project/commit/207ecd684cc6731266e12d8d2df0e3d1d9e1ff8d
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/ArchiveWriter.cpp
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/test/tools/llvm-lib/arm64ec-implib.test

  Log Message:
  -----------
  [Arm64EC] Copy import descriptors to the EC Map (#84834)

As noted in <https://github.com/llvm/llvm-project/pull/78537>, MSVC
places import descriptors in both the EC and regular map - that PR moved
the descriptors to ONLY the regular map, however this causes linking
errors when linking as Arm64EC:

```
bcryptprimitives.lib(bcryptprimitives.dll) : error LNK2001: unresolved external symbol __IMPORT_DESCRIPTOR_bcryptprimitives (EC Symbol)
```

This change copies import descriptors from the regular map to the EC
map, which fixes this linking error.


  Commit: 2f640ad26d176a70c5e7a77c92a899e525e366d9
      https://github.com/llvm/llvm-project/commit/2f640ad26d176a70c5e7a77c92a899e525e366d9
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Object/COFFModuleDefinition.cpp
    M llvm/test/tools/llvm-lib/arm64ec-implib.test
    R llvm/test/tools/llvm-lib/exportas.test

  Log Message:
  -----------
  Remove support for EXPORTAS in def files to maintain ABI compatibility for COFFShortExport


  Commit: b95ea2e51bdfe20c9db6a0675ab068fa59a0b9fe
      https://github.com/llvm/llvm-project/commit/b95ea2e51bdfe20c9db6a0675ab068fa59a0b9fe
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M lld/test/ELF/loongarch-reloc-leb128.s

  Log Message:
  -----------
  [lld][test] Fix sanitizer buildbot failure

Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/5/builds/41530/steps/9/logs/stdio

(cherry picked from commit d9b435c24ddddcc8148fd97b42f6bb1124e52307)


  Commit: edbe7fa5fef93bb747cb58a589dc25901793774b
      https://github.com/llvm/llvm-project/commit/edbe7fa5fef93bb747cb58a589dc25901793774b
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M lld/ELF/Arch/LoongArch.cpp

  Log Message:
  -----------
  [lld][LoongArch] Fix handleUleb128

(cherry picked from commit a41bcb3930534ef1525b4fc30e53e818b39e2b60)


  Commit: bf2eb3b190172be6ff60205231fd7c8965a25ce5
      https://github.com/llvm/llvm-project/commit/bf2eb3b190172be6ff60205231fd7c8965a25ce5
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-03-16 (Sat, 16 Mar 2024)

  Changed paths:
    M clang-tools-extra/clangd/HeuristicResolver.cpp
    M clang-tools-extra/clangd/HeuristicResolver.h
    M clang-tools-extra/clangd/unittests/FindTargetTests.cpp
    M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
    M lld/ELF/Arch/LoongArch.cpp
    M lld/test/COFF/def-export-cpp.s
    M lld/test/COFF/def-export-stdcall.s
    M lld/test/COFF/dllexport.s
    M lld/test/ELF/loongarch-reloc-leb128.s
    M llvm/include/llvm/BinaryFormat/COFF.h
    M llvm/include/llvm/Object/COFF.h
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/lib/Object/ArchiveWriter.cpp
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
    M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/test/tools/llvm-dlltool/coff-decorated.def
    M llvm/test/tools/llvm-dlltool/coff-exports.def
    M llvm/test/tools/llvm-dlltool/coff-noname.def
    M llvm/test/tools/llvm-dlltool/no-leading-underscore.def
    M llvm/test/tools/llvm-lib/arm64ec-implib.test
    M llvm/test/tools/llvm-readobj/COFF/file-headers.test
    M llvm/tools/llvm-readobj/COFFImportDumper.cpp

  Log Message:
  -----------
  Merge branch 'release/18.x' into revert-85053-omp_386_fix_backoirt


Compare: https://github.com/llvm/llvm-project/compare/fc108ac9e491...bf2eb3b19017

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