From 696651429d7ee8f9a48a1b289b7ac410c069a7ea Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Wed, 9 Jan 2013 19:54:57 +0000 Subject: [PATCH] unwind.h: Add include guards and don't mess with visibility if HIDE_EXPORTS is specified. For GCC compatibility. llvm-svn: 171991 --- clang/lib/Headers/unwind.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/clang/lib/Headers/unwind.h b/clang/lib/Headers/unwind.h index 55ebd54a67ab..dbdbaf477723 100644 --- a/clang/lib/Headers/unwind.h +++ b/clang/lib/Headers/unwind.h @@ -23,6 +23,9 @@ /* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/ +#ifndef __CLANG_UNWIND_H +#define __CLANG_UNWIND_H + #if __has_include_next() /* Darwin and libunwind provide an unwind.h. If that's available, use * it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE, @@ -59,7 +62,9 @@ extern "C" { /* It is a bit strange for a header to play with the visibility of the symbols it declares, but this matches gcc's behavior and some programs depend on it */ +#ifndef HIDE_EXPORTS #pragma GCC visibility push(default) +#endif struct _Unwind_Context; typedef enum { @@ -115,10 +120,14 @@ uintptr_t _Unwind_GetIP(struct _Unwind_Context* context); typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context*, void*); _Unwind_Reason_Code _Unwind_Backtrace(_Unwind_Trace_Fn, void*); +#ifndef HIDE_EXPORTS #pragma GCC visibility pop +#endif #ifdef __cplusplus } #endif #endif + +#endif /* __CLANG_UNWIND_H */