]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
x86: i386_cons_align() badly affects diagnostics
authorJan Beulich <jbeulich@suse.com>
Fri, 1 Dec 2023 07:28:45 +0000 (08:28 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 1 Dec 2023 07:28:45 +0000 (08:28 +0100)
Warning without knowing what's going to follow isn't useful, the more
that appropriate warnings are emitted elsewhere in all cases. Not
updating state (file/line in particular) also isn't helpful, as it's
always the last directive ahead of a construct potentially needing
fiddling with that's "guilty" in that fiddling being suppressed.

gas/config/tc-i386.c
gas/testsuite/gas/i386/lfence-byte.e
gas/testsuite/gas/i386/x86-64-lfence-byte.e

index f2f1e3b9f6427dca4f53cd633e0f25b8f1db1333..e984923ec3514da4db984520780548a6928eecfe 100644 (file)
@@ -15491,22 +15491,11 @@ i386_cons_align (int ignore ATTRIBUTE_UNUSED)
   struct last_insn *last_insn
     = &seg_info(now_seg)->tc_segment_info_data.last_insn;
 
-  if (last_insn->kind != last_insn_directive
-      && (bfd_section_flags (now_seg) & SEC_CODE))
+  if (bfd_section_flags (now_seg) & SEC_CODE)
     {
       last_insn->kind = last_insn_directive;
       last_insn->name = "constant directive";
       last_insn->file = as_where (&last_insn->line);
-      if (lfence_before_ret != lfence_before_ret_none)
-       {
-         if (lfence_before_indirect_branch != lfence_branch_none)
-           as_warn (_("constant directive skips -mlfence-before-ret "
-                      "and -mlfence-before-indirect-branch"));
-         else
-           as_warn (_("constant directive skips -mlfence-before-ret"));
-       }
-      else if (lfence_before_indirect_branch != lfence_branch_none)
-       as_warn (_("constant directive skips -mlfence-before-indirect-branch"));
     }
 }
 
index e9475f40a95ad0d23d1adbd178eb27e1478bc6dc..cd3218e52f619466d5bb2daee713f0ddc11f800a 100644 (file)
@@ -1,9 +1,6 @@
 .*: Assembler messages:
 .*:5: Warning: `rep` skips -mlfence-before-ret on `ret`
 .*:7: Warning: `rep` skips -mlfence-before-ret on `ret`
-.*:10: Warning: constant directive skips -mlfence-before-ret and -mlfence-before-indirect-branch
 .*:13: Warning: `rep` skips -mlfence-before-ret on `ret`
-.*:17: Warning: constant directive skips -mlfence-before-ret and -mlfence-before-indirect-branch
-.*:17: Warning: `constant directive` skips -mlfence-before-ret on `ret`
-.*:20: Warning: constant directive skips -mlfence-before-ret and -mlfence-before-indirect-branch
+.*:18: Warning: `constant directive` skips -mlfence-before-ret on `ret`
 .*:20: Warning: `constant directive` skips -mlfence-before-indirect-branch on `call`
index e9475f40a95ad0d23d1adbd178eb27e1478bc6dc..cd3218e52f619466d5bb2daee713f0ddc11f800a 100644 (file)
@@ -1,9 +1,6 @@
 .*: Assembler messages:
 .*:5: Warning: `rep` skips -mlfence-before-ret on `ret`
 .*:7: Warning: `rep` skips -mlfence-before-ret on `ret`
-.*:10: Warning: constant directive skips -mlfence-before-ret and -mlfence-before-indirect-branch
 .*:13: Warning: `rep` skips -mlfence-before-ret on `ret`
-.*:17: Warning: constant directive skips -mlfence-before-ret and -mlfence-before-indirect-branch
-.*:17: Warning: `constant directive` skips -mlfence-before-ret on `ret`
-.*:20: Warning: constant directive skips -mlfence-before-ret and -mlfence-before-indirect-branch
+.*:18: Warning: `constant directive` skips -mlfence-before-ret on `ret`
 .*:20: Warning: `constant directive` skips -mlfence-before-indirect-branch on `call`