summaryrefslogtreecommitdiff
path: root/gcc/ada/tracebak.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-18 21:07:29 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-18 21:07:29 +0000
commitc9c6b44448f79fe37968e1b09eb7c38a9491ceec (patch)
treef2861eecfa6b0488315f2456fb04f1e73db719f7 /gcc/ada/tracebak.c
parent6f843f0d43a1ce22f7f53cb6b607f2bafb28032b (diff)
downloadgcc-c9c6b44448f79fe37968e1b09eb7c38a9491ceec.tar.gz
* tracebak.c (i386): Use GCC unwinder on Linux with GCC > 4.5.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163352 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/tracebak.c')
-rw-r--r--gcc/ada/tracebak.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/tracebak.c b/gcc/ada/tracebak.c
index 9e5366a78cc..cd9693969c1 100644
--- a/gcc/ada/tracebak.c
+++ b/gcc/ada/tracebak.c
@@ -303,7 +303,14 @@ struct layout
#define IS_BAD_PTR(ptr) 0
#endif
+/* Starting with GCC 4.6, -fomit-frame-pointer is turned on by default for
+ 32-bit x86/Linux as well and DWARF 2 unwind tables are emitted instead.
+ See the x86-64 case below for the drawbacks with this approach. */
+#if defined (linux) && (__GNUC__ * 10 + __GNUC_MINOR__ > 45)
+#define USE_GCC_UNWINDER
+#else
#define USE_GENERIC_UNWINDER
+#endif
struct layout
{