public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/116767] New: C const function pointer no code generated (or optimized out)
@ 2024-09-18 16:40 raffaellobertini at gmail dot com
  2024-09-18 16:40 ` [Bug c/116767] " raffaellobertini at gmail dot com
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: raffaellobertini at gmail dot com @ 2024-09-18 16:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

            Bug ID: 116767
           Summary: C const function pointer no code generated (or
                    optimized out)
           Product: gcc
           Version: 14.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: raffaellobertini at gmail dot com
  Target Milestone: ---

Created attachment 59139
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59139&action=edit
sample C program

- gcc version: 14.2.1
- compiler flags: -Wall -Wextra
- OS: Fedora 40
- gcc has been installed from dnf default Fedora 40 repositories
- gcc output:
==============================================================================
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/14/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap
--enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,m2,lto --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared
--enable-threads=posix --enable-checking=release --enable-multilib
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id
--with-gcc-major-version-only --enable-libstdcxx-backtrace
--with-libstdcxx-zoneinfo=/usr/share/zoneinfo --with-linker-hash-style=gnu
--enable-plugin --enable-initfini-array
--with-isl=/builddir/build/BUILD/gcc-14.2.1-20240801/obj-x86_64-redhat-linux/isl-install
--enable-offload-targets=nvptx-none,amdgcn-amdhsa --enable-offload-defaulted
--without-cuda-driver --enable-gnu-indirect-function --enable-cet
--with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
--with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 14.2.1 20240801 (Red Hat 14.2.1-1) (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-mtune=generic'
'-march=x86-64' '-dumpdir' 'a-'
 /usr/libexec/gcc/x86_64-redhat-linux/14/cc1 -E -quiet -v audio_test.c
-mtune=generic -march=x86-64 -Wall -Wextra -fpch-preprocess -o a-audio_test.i
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-redhat-linux/14/include-fixed"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-redhat-linux/14/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-redhat-linux/14/include
 /usr/local/include
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-mtune=generic'
'-march=x86-64' '-dumpdir' 'a-'
 /usr/libexec/gcc/x86_64-redhat-linux/14/cc1 -fpreprocessed a-audio_test.i
-quiet -dumpdir a- -dumpbase audio_test.c -dumpbase-ext .c -mtune=generic
-march=x86-64 -Wall -Wextra -version -o a-audio_test.s
GNU C17 (GCC) version 14.2.1 20240801 (Red Hat 14.2.1-1) (x86_64-redhat-linux)
        compiled by GNU C version 14.2.1 20240801 (Red Hat 14.2.1-1), GMP
version 6.2.1, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.24-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 7983ab47815232989bed61515b77d1c7
funct_ptr_sample.c: In function ‘main’:
funct_ptr_sample.c:25:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
   25 | int main(int argc, char* argv[])
      |          ~~~~^~~~
funct_ptr_sample.c:25:26: warning: unused parameter ‘argv’ [-Wunused-parameter]
   25 | int main(int argc, char* argv[])
      |                    ~~~~~~^~~~~~
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-mtune=generic'
'-march=x86-64' '-dumpdir' 'a-'
 as -v --64 -o a-audio_test.o a-audio_test.s
GNU assembler version 2.41 (x86_64-redhat-linux) using BFD version version
2.41-37.fc40
COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/14/:/usr/libexec/gcc/x86_64-redhat-linux/14/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/14/:/usr/lib/gcc/x86_64-redhat-linux/
LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/14/:/usr/lib/gcc/x86_64-redhat-linux/14/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/14/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-mtune=generic'
'-march=x86-64' '-dumpdir' 'a.'
 /usr/libexec/gcc/x86_64-redhat-linux/14/collect2 -plugin
/usr/libexec/gcc/x86_64-redhat-linux/14/liblto_plugin.so
-plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/14/lto-wrapper
-plugin-opt=-fresolution=a.res -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id
--no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker
/lib64/ld-linux-x86-64.so.2
/usr/lib/gcc/x86_64-redhat-linux/14/../../../../lib64/crt1.o
/usr/lib/gcc/x86_64-redhat-linux/14/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-redhat-linux/14/crtbegin.o
-L/usr/lib/gcc/x86_64-redhat-linux/14
-L/usr/lib/gcc/x86_64-redhat-linux/14/../../../../lib64 -L/lib/../lib64
-L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/14/../../..
a-audio_test.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc
--push-state --as-needed -lgcc_s --pop-state
/usr/lib/gcc/x86_64-redhat-linux/14/crtend.o
/usr/lib/gcc/x86_64-redhat-linux/14/../../../../lib64/crtn.o
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-Wextra' '-mtune=generic'
'-march=x86-64' '-dumpdir' 'a.'

==============================================================================
- 




Given this sample C program: (see attachment, containing the preprocessed files
too)


the generated code has optimized out the call to the function pointer.
in x86 asm terms the block of the `call` instruction is not generated at all.


if removing the const keyword at line 7:
const MyFunc* g_f = my_func; -----> MyFunc* g_f = my_func;


the resulting generated code is what is expected (calling the function
pointer).


In my perspective in this case rather than not generating the code that calls
the function pointer, gcc should discard the const keyword and generate a
warning telling to the user that that keyword is ignored as I don't see any
reason why someone would like to define a const function pointer when there is
no code generated for those statements.
As by mistake a const keyword could be put there and a warning telling
something can be catched up, the not generated asm block might be more
challenging to be found as a programming error.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
@ 2024-09-18 16:40 ` raffaellobertini at gmail dot com
  2024-09-18 17:23 ` muecker at gwdg dot de
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: raffaellobertini at gmail dot com @ 2024-09-18 16:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #1 from Raffaello Bertini <raffaellobertini at gmail dot com> ---
for simplicity sake i am writing here the C sample code:

================================================================================
#include <stddef.h>

typedef void MyFunc(void);

const MyFunc my_func;

const MyFunc* g_f = my_func;

void my_func()
{
    int i = 0;
    i++;
}

int main(int argc, char* argv[])
{
    if (g_f != NULL)
        g_f();

    return 0;
}

================================================================================

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
  2024-09-18 16:40 ` [Bug c/116767] " raffaellobertini at gmail dot com
@ 2024-09-18 17:23 ` muecker at gwdg dot de
  2024-09-18 17:38 ` jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: muecker at gwdg dot de @ 2024-09-18 17:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

Martin Uecker <muecker at gwdg dot de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |muecker at gwdg dot de

--- Comment #2 from Martin Uecker <muecker at gwdg dot de> ---
I agree the behavior is not ideal. 
Simplified some more:

typedef void MyFunc(void);

// the forward decl. suppresses the warning one would otherwise get
static const MyFunc my_func;
static void my_func() { }

#if 1
const MyFunc* g_f = my_func;
#else
MyFunc* g_f = my_func;
#endif

int main(int argc, char* argv[])
{
    g_f();
}


https://godbolt.org/z/rcodcqWPn

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
  2024-09-18 16:40 ` [Bug c/116767] " raffaellobertini at gmail dot com
  2024-09-18 17:23 ` muecker at gwdg dot de
@ 2024-09-18 17:38 ` jakub at gcc dot gnu.org
  2024-09-18 17:47 ` muecker at gwdg dot de
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2024-09-18 17:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I bet const on the function type is treated as __attribute__((const)) on it,
because the latter uses TREE_READONLY on the FUNCTION_TYPE.
Of course, the function really is const in the testcase, so optimizing the call
away is just fine, but bet if you change it such that it has side-effects it
would be miscompiled.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (2 preceding siblings ...)
  2024-09-18 17:38 ` jakub at gcc dot gnu.org
@ 2024-09-18 17:47 ` muecker at gwdg dot de
  2024-09-18 19:18 ` pinskia at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: muecker at gwdg dot de @ 2024-09-18 17:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #4 from Martin Uecker <muecker at gwdg dot de> ---

You are right about both. It gets miscompiled also with side effects and if you
are remove the forward declaration, you get:

<source>:10:21: warning: initialization makes '__attribute__((const))'
qualified function pointer from unqualified [-Wdiscarded-qualifiers]
   10 | const MyFunc* g_f = my_func;

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (3 preceding siblings ...)
  2024-09-18 17:47 ` muecker at gwdg dot de
@ 2024-09-18 19:18 ` pinskia at gcc dot gnu.org
  2024-09-18 19:26 ` pinskia at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-09-18 19:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This extension is documented:
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Const-and-Volatile-Functions.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (4 preceding siblings ...)
  2024-09-18 19:18 ` pinskia at gcc dot gnu.org
@ 2024-09-18 19:26 ` pinskia at gcc dot gnu.org
  2024-09-18 19:53 ` muecker at gwdg dot de
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-09-18 19:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
And with -pedantic-errors we get:
```
<source>:6:21: error: ISO C forbids qualified function types [-Wpedantic]
    6 | static const MyFunc my_func;
      |                     ^~~~~~~
```

So there is nothing to fix here. As the extension is very well documented
(though only again since GCC 14 due to it being mistakely removed, see PR
107942 for details on that one) and this extension has existed since at least
2.95.3 (most likely earlier before attributes were around).

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (5 preceding siblings ...)
  2024-09-18 19:26 ` pinskia at gcc dot gnu.org
@ 2024-09-18 19:53 ` muecker at gwdg dot de
  2024-09-18 21:22 ` schwab@linux-m68k.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: muecker at gwdg dot de @ 2024-09-18 19:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #7 from Martin Uecker <muecker at gwdg dot de> ---

I wonder whether there should be a warning when a declaration has the "const"
attribute, but the actual definition does not.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (6 preceding siblings ...)
  2024-09-18 19:53 ` muecker at gwdg dot de
@ 2024-09-18 21:22 ` schwab@linux-m68k.org
  2024-09-19  8:32 ` raffaellobertini at gmail dot com
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: schwab@linux-m68k.org @ 2024-09-18 21:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #8 from Andreas Schwab <schwab@linux-m68k.org> ---
That feature probably existed since the beginning, as a comment the glibc
sources from 1994 in misc/sys/cdefs.h suggests.

/* In GCC versions before 2.5, the `volatile' and `const' keywords have
   special meanings when applied to functions.  In versions 2.5 and 2.6,
   the `__attribute__' syntax used below does not work properly.  */

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (7 preceding siblings ...)
  2024-09-18 21:22 ` schwab@linux-m68k.org
@ 2024-09-19  8:32 ` raffaellobertini at gmail dot com
  2024-09-19  9:01 ` jakub at gcc dot gnu.org
  2024-09-19  9:25 ` raffaellobertini at gmail dot com
  10 siblings, 0 replies; 12+ messages in thread
From: raffaellobertini at gmail dot com @ 2024-09-19  8:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #9 from Raffaello Bertini <raffaellobertini at gmail dot com> ---
More than to fix something,
it was a suggestion to evolve or add a warning to tell the user that those kind
of statements are basically like not written at all, ignored as the final
result.

so more than a fix, a small improvements on the compiler.

for e.g. doing the same operation with clang (default installation from Fedora
40):


clang test.c
=================================================================================
test.c:15:1: warning: 'const' qualifier on function type 'MyFunc' (aka 'void
(void)') has unspecified behavior
   15 | const MyFunc my_func;
      | ^~~~~
test.c:17:1: warning: 'const' qualifier on function type 'MyFunc' (aka 'void
(void)') has unspecified behavior
   17 | const MyFunc* g_f = my_func;
      | ^~~~~
2 warnings generated.


=================================================================================

clang -Wall -Werror test.c
================================================================================
test.c:15:1: error: 'const' qualifier on function type 'MyFunc' (aka 'void
(void)') has unspecified behavior [-Werror]
   15 | const MyFunc my_func;
      | ^~~~~
test.c:17:1: error: 'const' qualifier on function type 'MyFunc' (aka 'void
(void)') has unspecified behavior [-Werror]
   17 | const MyFunc* g_f = my_func;
      | ^~~~~
test.c:21:9: error: variable 'i' set but not used
[-Werror,-Wunused-but-set-variable]
   21 |     int i = 0;
      |         ^
3 errors generated.


================================================================================

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (8 preceding siblings ...)
  2024-09-19  8:32 ` raffaellobertini at gmail dot com
@ 2024-09-19  9:01 ` jakub at gcc dot gnu.org
  2024-09-19  9:25 ` raffaellobertini at gmail dot com
  10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2024-09-19  9:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Raffaello Bertini from comment #9)
> More than to fix something,
> it was a suggestion to evolve or add a warning to tell the user that those
> kind of statements are basically like not written at all, ignored as the
> final result.

That is not what happens.
We do have the -Wpedantic/-pedantic/-pedantic-errors diagnostics shown above,
and otherwise it is well defined, same as if you wrote
MyFunc my_func __attribute__((const));

MyFunc __attribute__((const)) * g_f = my_func;
instead.  Just with the attribute syntax you get an extra warning:
warning: ‘const’ attribute on function returning ‘void’ [-Wattributes]

But if the function returned anything but int, there would be no warning and it
would behave like any other const attributed function, i.e. if the result is
unused, it can be dead code eliminated, if it is called multiple times, the
compiler can CSE those calls into one, assume they don't have any observable
side-effect other than the return value, ...
Just when the function returns void and is declared const, it means it is
totally useless because it can't have any side-effects nor dependencies on
global memory and the return value is the only thing that matters.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug c/116767] C const function pointer no code generated (or optimized out)
  2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
                   ` (9 preceding siblings ...)
  2024-09-19  9:01 ` jakub at gcc dot gnu.org
@ 2024-09-19  9:25 ` raffaellobertini at gmail dot com
  10 siblings, 0 replies; 12+ messages in thread
From: raffaellobertini at gmail dot com @ 2024-09-19  9:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116767

--- Comment #11 from Raffaello Bertini <raffaellobertini at gmail dot com> ---

> MyFunc __attribute__((const)) * g_f = my_func;
> instead.  Just with the attribute syntax you get an extra warning:
> warning: ‘const’ attribute on function returning ‘void’ [-Wattributes]


That's fine for me. even as it is now.  I was just writing that would be a
little more user-friendly if the warning would be also reported when using the
keyword const and not only with the attribute. As i understood also that
keyword is converted as attribute, gcc should be able to generate that warning
too.


> But if the function returned anything but int,

That's true if returning int the code will be generated it is only on the const
void func ptr situation.



.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-09-19  9:25 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-18 16:40 [Bug c/116767] New: C const function pointer no code generated (or optimized out) raffaellobertini at gmail dot com
2024-09-18 16:40 ` [Bug c/116767] " raffaellobertini at gmail dot com
2024-09-18 17:23 ` muecker at gwdg dot de
2024-09-18 17:38 ` jakub at gcc dot gnu.org
2024-09-18 17:47 ` muecker at gwdg dot de
2024-09-18 19:18 ` pinskia at gcc dot gnu.org
2024-09-18 19:26 ` pinskia at gcc dot gnu.org
2024-09-18 19:53 ` muecker at gwdg dot de
2024-09-18 21:22 ` schwab@linux-m68k.org
2024-09-19  8:32 ` raffaellobertini at gmail dot com
2024-09-19  9:01 ` jakub at gcc dot gnu.org
2024-09-19  9:25 ` raffaellobertini at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).