https://gcc.gnu.org/g:68e64c45380e42657ece999c9fe5b68044847e49

commit r15-6012-g68e64c45380e42657ece999c9fe5b68044847e49
Author: Georg-Johann Lay <a...@gjlay.de>
Date:   Sat Dec 7 19:54:02 2024 +0100

    AVR: Better location for late (during final) diagnostic.
    
    gcc/
            * config/avr/avr.cc (avr_print_operand_address): Use
            avr_insn_location as location for late (during final) diagnostic.

Diff:
---
 gcc/config/avr/avr.cc | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index 3544571d3dfa..7c7736781c8a 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -2538,11 +2538,17 @@ avr_print_operand_address (FILE *file, machine_mode 
/*mode*/, rtx addr)
              fprintf (file, "+" HOST_WIDE_INT_PRINT_DEC ")",
                       2 * INTVAL (XEXP (x, 1)));
              if (AVR_3_BYTE_PC)
-               if (warning (0, "pointer offset from symbol maybe incorrect"))
-                 {
-                   output_addr_const (stderr, addr);
-                   fprintf (stderr, "\n");
-                 }
+               {
+                 location_t loc = avr_insn_location != UNKNOWN_LOCATION
+                   ? avr_insn_location
+                   : input_location;
+                 if (warning_at (loc, 0, "pointer offset from symbol may be"
+                                 " incorrect"))
+                   {
+                     output_addr_const (stderr, addr);
+                     fprintf (stderr, "\n");
+                   }
+               }
            }
          else
            {

Reply via email to