[all-commits] [llvm/llvm-project] c51a59: [libc++][format] Updates feature-test macros.

Shoaib Meenai via All-commits all-commits at lists.llvm.org
Tue Sep 13 23:15:49 PDT 2022


  Branch: refs/heads/release/15.x
  Home:   https://github.com/llvm/llvm-project
  Commit: c51a59d8a9470bb06edc9305135c59c19de96011
      https://github.com/llvm/llvm-project/commit/c51a59d8a9470bb06edc9305135c59c19de96011
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2022-09-14 (Wed, 14 Sep 2022)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/include/version
    M libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][format] Updates feature-test macros.

During the discussion on the SG-10 mailinglist regarding the format
feature-test macros voted in during the last plenary it turns out libc++
can't mark the format feature-test macro as implemented.

According to
  https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations#__cpp_lib_format
the not yet implemented paper
  P1361R2 Integration of chrono with text formatting
affects the feature test macro.

Note that P1361R2 doesn't mention the feature-test macro nor is there an
LWG-issue to address the issue. The reporter of the issue didn't recall
where this requirement exactly has been decided.

Reviewed By: ldionne, #libc

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


  Commit: a5ae700c67ec3d814249b1edfb40e6ca39b94eac
      https://github.com/llvm/llvm-project/commit/a5ae700c67ec3d814249b1edfb40e6ca39b94eac
  Author: Shoaib Meenai <smeenai at fb.com>
  Date:   2022-09-14 (Wed, 14 Sep 2022)

  Changed paths:
    M lld/MachO/InputFiles.cpp
    A lld/test/MachO/eh-frame-dead-strip.s

  Log Message:
  -----------
  [MachO] Fix dead-stripping __eh_frame

This section is marked S_ATTR_LIVE_SUPPORT in input files, which meant
that on arm64, we were unnecessarily preserving FDEs if we e.g. had
multiple weak definitions for a function. Worse, we would actually
produce an invalid `__eh_frame` section in that case, because the CIE
associated with the unnecessary FDE would still get dead-stripped and
we'd end up with a dangling FDE. We set up associations from functions
to their FDEs, so dead-stripping will just work naturally, and we can
clear S_ATTR_LIVE_SUPPORT from our input `__eh_frame` sections to fix
dead-stripping.

Reviewed By: #lld-macho, int3

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

(cherry picked from commit a745e47900dde15c180d5caea7a1d292ca809eb1)


  Commit: 6fe69891d15c69e2832e8158987f9d6179ce43bf
      https://github.com/llvm/llvm-project/commit/6fe69891d15c69e2832e8158987f9d6179ce43bf
  Author: Shoaib Meenai <smeenai at fb.com>
  Date:   2022-09-14 (Wed, 14 Sep 2022)

  Changed paths:
    M lld/MachO/UnwindInfoSection.cpp
    A lld/test/MachO/compact-unwind-lsda-folding.s

  Log Message:
  -----------
  [MachO] Don't fold compact unwind entries with LSDA

Folding them will cause the unwinder to compute the incorrect function
start address for the folded entries, which in turn will cause the
personality function to interpret the LSDA incorrectly and break
exception handling.

You can verify the end-to-end flow by creating a simple C++ file:
```
void h();
int main() { h(); }
```

and then linking this file against the liblsda.dylib produced by the
test case added here. Before this change, running the resulting program
would result in a program termination with an uncaught exception.
Afterwards, it works correctly.

Reviewed By: #lld-macho, thevinster

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

(cherry picked from commit 56bd3185cdd8d79731acd6c75bf41869284a12ed)


Compare: https://github.com/llvm/llvm-project/compare/92e7ef99303f...6fe69891d15c


More information about the All-commits mailing list