[all-commits] [llvm/llvm-project] 794543: [clang] Add support for omitting only global destr...

Shoaib Meenai via All-commits all-commits at lists.llvm.org
Mon Aug 26 13:11:26 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7945435f46c4b0a9fd08c6d76eee8ea8f5e37bca
      https://github.com/llvm/llvm-project/commit/7945435f46c4b0a9fd08c6d76eee8ea8f5e37bca
  Author: Shoaib Meenai <smeenai at fb.com>
  Date:   2024-08-26 (Mon, 26 Aug 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Basic/LangOptions.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/AST/Decl.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/CodeGenCXX/always_destroy.cpp
    M clang/test/CodeGenCXX/attr-no-destroy-d54344.cpp
    A clang/test/Driver/cxx-static-destructors.cpp
    M clang/test/SemaCXX/no_destroy.cpp

  Log Message:
  -----------
  [clang] Add support for omitting only global destructors (#104899)

For mobile applications, it's common for global destructors to never be
called (because the applications have their own lifecycle independent of
the standard C runtime), but threads are created and destroyed as normal
and so thread-local destructors are still called. -fno-static-c++-destructors
omits unnecessary global destructors, which is useful for code size, but
it also omits thread-local destructors, which is unsuitable. Add a
ternary `-fc++-static-destructors={all,none,thread-local}` option
instead to allow omitting only global destructors.



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