[all-commits] [llvm/llvm-project] ec6ada: [AIX] report_fatal_error on `-fregister_global_dto...

xiangling-liao via All-commits all-commits at lists.llvm.org
Fri Jul 17 13:16:36 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ec6ada62643cf7cded8160e04cce163323112ade
      https://github.com/llvm/llvm-project/commit/ec6ada62643cf7cded8160e04cce163323112ade
  Author: Xiangling Liao <Xiangling.Liao at ibm.com>
  Date:   2020-07-17 (Fri, 17 Jul 2020)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    A clang/test/CodeGenCXX/aix-sinit-register-global-dtors-with-atexit.cpp
    M clang/test/Driver/cxa-atexit.cpp

  Log Message:
  -----------
  [AIX] report_fatal_error on `-fregister_global_dtors_with_atexit` for static init

On AIX, the semantic of global_dtors contains __sterm functions associated with C++
cleanup actions and user-declared __attribute__((destructor)) functions. We should
never merely register __sterm with atexit(), so currently
-fregister_global_dtors_with_atexit does not work well on AIX: It would cause
finalization actions to not occur when unloading shared libraries.  We need to figure
out a way to handle that when we start supporting user-declared
__attribute__((destructor)) functions.

Currently we report_fatal_error on this option temporarily.

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




More information about the All-commits mailing list