re PR bootstrap/81470 (Bootstrap comparison failures in gcc/ada)
authorTristan Gingold <gingold@adacore.com>
Fri, 8 Dec 2017 09:33:08 +0000 (09:33 +0000)
committerOlivier Hainque <hainque@gcc.gnu.org>
Fri, 8 Dec 2017 09:33:08 +0000 (09:33 +0000)
2017-06-08  Tristan Gingold  <gindold@adacore.com>

PR ada/81470
* dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
.cfi_personality or .cfi_lsda if the eh data format is dwarf2.

From-SVN: r255501

gcc/ChangeLog
gcc/dwarf2out.c

index 4112576..e34e182 100644 (file)
@@ -1,3 +1,9 @@
+2017-06-08  Tristan Gingold  <gindold@adacore.com>
+
+       PR ada/81470
+       * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
+       .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
+
 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
index ae3d962..876e53f 100644 (file)
@@ -963,10 +963,16 @@ dwarf2out_do_cfi_startproc (bool second)
 {
   int enc;
   rtx ref;
-  rtx personality = get_personality_function (current_function_decl);
 
   fprintf (asm_out_file, "\t.cfi_startproc\n");
 
+  /* .cfi_personality and .cfi_lsda are only relevant to DWARF2
+     eh unwinders.  */
+  if (targetm_common.except_unwind_info (&global_options) != UI_DWARF2)
+    return;
+
+  rtx personality = get_personality_function (current_function_decl);
+
   if (personality)
     {
       enc = ASM_PREFERRED_EH_DATA_FORMAT (/*code=*/2, /*global=*/1);