goto cleanup;
}
+ /* Add the implicit subsets implied by the merged subset list, then
+ check if the result is conflicting. */
+ riscv_parse_subset_t riscv_rps_ld_merged =
+ {&merged_subsets, _bfd_error_handler, &xlen_in, NULL, false};
+ riscv_parse_add_implicit_subsets (&riscv_rps_ld_merged);
+ if (!riscv_parse_check_conflicts (&riscv_rps_ld_merged))
+ goto cleanup;
+
/* Free the previous merged_arch_str which called xmalloc. */
free (merged_arch_str);
--- /dev/null
+#source: attr-merge-arch-failed-01a.s
+#source: attr-merge-arch-failed-01b.s
+#as: -mabi=ilp32
+#ld: -r -m[riscv_choose_ilp32_emul]
+#error_output: attr-merge-arch-failed-01.l
--- /dev/null
+.*: `zfinx' conflicts with the `f/d/q/zfh/zfhmin' extension
+.*: failed to merge target specific data of file .*
--- /dev/null
+ .attribute arch, "rv32i_zfinx"
--- /dev/null
+ .attribute arch, "rv32if"
--- /dev/null
+#source: attr-merge-arch-failed-02a.s
+#source: attr-merge-arch-failed-02b.s
+#as: -mabi=ilp32
+#ld: -r -m[riscv_choose_ilp32_emul]
+#error_output: attr-merge-arch-failed-02.l
--- /dev/null
+.*: zcmp' is incompatible with `d' and `c', or `zcd' extension
+.*: failed to merge target specific data of file .*
--- /dev/null
+ .attribute arch, "rv32i_zcmp"
--- /dev/null
+ .attribute arch, "rv32i_zcd"
--- /dev/null
+#source: attr-merge-arch-failed-03a.s
+#source: attr-merge-arch-failed-03b.s
+#as: -mabi=ilp32
+#ld: -r -m[riscv_choose_ilp32_emul]
+#error_output: attr-merge-arch-failed-03.l
--- /dev/null
+.*: `zclsd' conflicts with the `c\+f'/`zcf' extension
+.*: failed to merge target specific data of file .*
--- /dev/null
+ .attribute arch, "rv32i_zclsd"
--- /dev/null
+ .attribute arch, "rv32i_zcf"
--- /dev/null
+#source: attr-merge-arch-failed-04a.s
+#source: attr-merge-arch-failed-04b.s
+#as: -mabi=ilp32
+#ld: -r -m[riscv_choose_ilp32_emul]
+#error_output: attr-merge-arch-failed-04.l
--- /dev/null
+.*: zcmp' is incompatible with `d' and `c', or `zcd' extension
+.*: failed to merge target specific data of file .*
--- /dev/null
+ .attribute arch, "rv32ic"
--- /dev/null
+ .attribute arch, "rv32id_zcmp"
run_dump_test "attr-merge-arch-01"
run_dump_test "attr-merge-arch-02"
run_dump_test "attr-merge-arch-03"
+ run_dump_test "attr-merge-arch-failed-01"
+ run_dump_test "attr-merge-arch-failed-02"
+ run_dump_test "attr-merge-arch-failed-03"
+ run_dump_test "attr-merge-arch-failed-04"
run_dump_test "attr-merge-strict-align-01"
run_dump_test "attr-merge-strict-align-02"
run_dump_test "attr-merge-strict-align-03"