https://gcc.gnu.org/g:3a05f190ffd40098e44e6fc08d58313c6d7782a1

commit r16-6769-g3a05f190ffd40098e44e6fc08d58313c6d7782a1
Author: Jakub Jelinek <[email protected]>
Date:   Wed Jan 14 15:56:29 2026 +0100

    defaults: Use argument in default EH_RETURN_DATA_REGNO definition [PR123115]
    
    All targets use the EH_RETURN_DATA_REGNO macro argument except for
    NVPTX which uses the default.
    The problem is that we get then -Wunused-but-set-variable warning
    when building df-scan.cc for NVPTX target with GCC 16 (post r16-2258
    PR44677) on:
          unsigned int i;
          /* Mark the registers that will contain data for the handler.  */
          for (i = 0; ; ++i)
            {
              unsigned regno = EH_RETURN_DATA_REGNO (i);
              if (regno == INVALID_REGNUM)
                break;
    If it were multiple targets suffering from this, I'd think about
    adding something to use i in loops like this, but as it is
    just the default definition, the following patch fixes it by
    using the argument.
    
    2026-01-14  Jakub Jelinek  <[email protected]>
    
            PR middle-end/123115
            * defaults.h (EH_RETURN_DATA_REGNO): Add void (N) to the macro
            definition inside of a comma expression before INVALID_REGNUM.

Diff:
---
 gcc/defaults.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/defaults.h b/gcc/defaults.h
index 8aed0545751e..6364216d9681 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -390,7 +390,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  
If not, see
 /* Provide defaults for stuff that may not be defined when using
    sjlj exceptions.  */
 #ifndef EH_RETURN_DATA_REGNO
-#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM
+#define EH_RETURN_DATA_REGNO(N) (void (N), INVALID_REGNUM)
 #endif
 
 /* Offset between the eh handler address and entry in eh tables.  */

Reply via email to