+2020-09-24  Jim Wilson  <jimw@sifive.com>
+
+       PR 26400
+       * config/tc-riscv.c (append_insn): If in absolute section, emit
+       error before add_relaxed_insn call.
+       * testsuite/gas/riscv/absolute-sec.d: New.
+       * testsuite/gas/riscv/absolute-sec.l: New.
+       * testsuite/gas/riscv/absolute-sec.s: New.
+
 2020-09-23  Mark Wielaard  <mark@klomp.org>
 
        * testsuite/gas/elf/dwarf-5-cu.d: Adjust expected output.
 
          int j = reloc_type == BFD_RELOC_RISCV_JMP;
          int best_case = riscv_insn_length (ip->insn_opcode);
          unsigned worst_case = relaxed_branch_length (NULL, NULL, 0);
+
+         if (now_seg == absolute_section)
+           {
+             as_bad (_("relaxable branches not supported in absolute section"));
+             return;
+           }
+
          add_relaxed_insn (ip, worst_case, best_case,
                            RELAX_BRANCH_ENCODE (j, best_case == 2, worst_case),
                            address_expr->X_add_symbol,