+2016-10-06 Matthew Fortune <matthew.fortune@imgtec.com>
+
+ PR gas/20648
+ * dw2gencfi.c (dot_cfi_sections): Refine the check for
+ inconsistent .cfi_sections to only consider compact vs non
+ compact forms.
+ * testsuite/gas/cfi/cfi-common-9.d: New file.
+ * testsuite/gas/cfi/cfi-common-9.s: New file.
+ * testsuite/gas/cfi/cfi.exp: Run new test.
+
2016-10-06 Alan Modra <amodra@gmail.com>
* app.c: Add missing fall through comments.
}
demand_empty_rest_of_line ();
- if (cfi_sections_set && cfi_sections != sections)
+ if (cfi_sections_set
+ && (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))
+ && (cfi_sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))
+ != (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact)))
as_bad (_("inconsistent uses of .cfi_sections"));
cfi_sections = sections;
}
--- /dev/null
+#objdump: -Wf
+#name: CFI common 9
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: .*
+ Data alignment factor: .*
+ Return address column: .*
+ Augmentation data: [01]b
+
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+00000014 0+00(10|18|1c|20) 0+0018 FDE cie=0+0000 pc=.*
+
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+#...
--- /dev/null
+ .cfi_sections .eh_frame
+ .cfi_startproc simple
+ .cfi_sections .debug_frame
+ .cfi_endproc
}
run_dump_test "cfi-common-7"
run_dump_test "cfi-common-8"
+ run_dump_test "cfi-common-9"
}