rprichard added a comment.

As an aside, it seems interesting that 
libcxxabi/test/forced_unwind[12].pass.cpp don't compile for ARM EHABI when used 
with Clang's unwind.h. AFAICT it's been that way for a long time?

  $ /x/clang14/bin/clang -target arm-linux-gnueabi 
/x/llvm-upstream/llvm-project/libcxxabi/test/forced_unwind1.pass.cpp -c -I 
/x/llvm-upstream/llvm-project/libcxxabi/include
  /x/llvm-upstream/llvm-project/libcxxabi/test/forced_unwind1.pass.cpp:42:42: 
error: typedef '_Unwind_Exception' cannot be referenced with a struct specifier
                                    struct _Unwind_Exception*,
                                           ^
  
/x/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/clang/14.0.0/include/unwind.h:67:38:
 note: declared here
  typedef struct _Unwind_Control_Block _Unwind_Exception; /* Alias */
                                       ^
  /x/llvm-upstream/llvm-project/libcxxabi/test/forced_unwind1.pass.cpp:50:49: 
error: typedef '_Unwind_Exception' cannot be referenced with a struct specifier
  static void cleanup(_Unwind_Reason_Code, struct _Unwind_Exception* exc) {
                                                  ^
  
/x/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/clang/14.0.0/include/unwind.h:67:38:
 note: declared here
  typedef struct _Unwind_Control_Block _Unwind_Exception; /* Alias */
                                       ^
  2 errors generated.

Clang uses its own unwind.h rather than libunwind's unwind.h:

  $ /x/clang14/bin/clang -target arm-linux-gnueabi 
/x/llvm-upstream/llvm-project/libcxxabi/test/forced_unwind1.pass.cpp -c -I 
/x/llvm-upstream/llvm-project/libcxxabi/include -H 2>&1 | grep unwind.h$
  . 
/x/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/clang/14.0.0/include/unwind.h
  $ head -15 
/x/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/clang/14.0.0/include/unwind.h
  /*===---- unwind.h - Stack unwinding 
----------------------------------------===
   *
   * Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
   * See https://llvm.org/LICENSE.txt for license information.
   * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
   *
   
*===-----------------------------------------------------------------------===
   */
  
  /* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/
  
  #ifndef __CLANG_UNWIND_H
  #define __CLANG_UNWIND_H
  
  #if defined(__APPLE__) && __has_include_next(<unwind.h>)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139503/new/

https://reviews.llvm.org/D139503

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to