public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/111788] New: g++ DWARF for void foo(...) missing unspecified parameters DIE
@ 2023-10-12 16:00 gprocida at google dot com
2023-10-12 16:05 ` [Bug c++/111788] " pinskia at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: gprocida at google dot com @ 2023-10-12 16:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111788
Bug ID: 111788
Summary: g++ DWARF for void foo(...) missing unspecified
parameters DIE
Product: gcc
Version: 13.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: gprocida at google dot com
Target Milestone: ---
I'm putting this in component c++ rather than debug, because the debug
information is correct for C compilation.
FWIW, clang++-15 does emit DW_TAG_unspecified_parameters.
$ cat v.c
int foo1(int x, int y, ...) { return x + y; }
int foo2(int x, ...) { return x; }
int foo3(...) { return 0; }
$ gcc -Wall -Wextra -g -c v.c v.o
# DWARF for foo3 includes DW_TAG_unspecified_parameters
$ g++ -Wall -Wextra -g -c v.c v.o
# DWARF for foo3 does NOT include DW_TAG_unspecified_parameters
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 13.2.0-4'
--with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr
--with-gcc-major-version-only --program-suffix=-13
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib
--enable-libphobos-checking=release --with-target-system-zlib=auto
--enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet
--with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32
--enable-multilib --with-tune=generic
--enable-offload-targets=nvptx-none=/build/gcc-13-oyarai/gcc-13-13.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-oyarai/gcc-13-13.2.0/debian/tmp-gcn/usr
--enable-offload-defaulted --without-cuda-driver --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
--with-build-config=bootstrap-lto-lean --enable-link-serialization=28
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.2.0 (Debian 13.2.0-4)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/111788] g++ DWARF for void foo(...) missing unspecified parameters DIE
2023-10-12 16:00 [Bug c++/111788] New: g++ DWARF for void foo(...) missing unspecified parameters DIE gprocida at google dot com
@ 2023-10-12 16:05 ` pinskia at gcc dot gnu.org
2023-10-13 6:50 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-10-12 16:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111788
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2023-10-12
Ever confirmed|0 |1
Known to fail| |4.1.2
Status|UNCONFIRMED |NEW
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed, does not look like a regression either.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/111788] g++ DWARF for void foo(...) missing unspecified parameters DIE
2023-10-12 16:00 [Bug c++/111788] New: g++ DWARF for void foo(...) missing unspecified parameters DIE gprocida at google dot com
2023-10-12 16:05 ` [Bug c++/111788] " pinskia at gcc dot gnu.org
@ 2023-10-13 6:50 ` rguenth at gcc dot gnu.org
2023-10-13 7:02 ` gprocida at google dot com
2023-11-08 11:13 ` gprocida at google dot com
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-10-13 6:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111788
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jason at gcc dot gnu.org
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
I wonder if foo (...) is a GNU extension (it was for C).
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/111788] g++ DWARF for void foo(...) missing unspecified parameters DIE
2023-10-12 16:00 [Bug c++/111788] New: g++ DWARF for void foo(...) missing unspecified parameters DIE gprocida at google dot com
2023-10-12 16:05 ` [Bug c++/111788] " pinskia at gcc dot gnu.org
2023-10-13 6:50 ` rguenth at gcc dot gnu.org
@ 2023-10-13 7:02 ` gprocida at google dot com
2023-11-08 11:13 ` gprocida at google dot com
3 siblings, 0 replies; 5+ messages in thread
From: gprocida at google dot com @ 2023-10-13 7:02 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111788
--- Comment #3 from Giuliano Procida <gprocida at google dot com> ---
https://en.cppreference.com/w/cpp/language/variadic_arguments (see introduction
and Notes)
It's been allowed for longer than in C, but there is no portable way of
accessing the arguments.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/111788] g++ DWARF for void foo(...) missing unspecified parameters DIE
2023-10-12 16:00 [Bug c++/111788] New: g++ DWARF for void foo(...) missing unspecified parameters DIE gprocida at google dot com
` (2 preceding siblings ...)
2023-10-13 7:02 ` gprocida at google dot com
@ 2023-11-08 11:13 ` gprocida at google dot com
3 siblings, 0 replies; 5+ messages in thread
From: gprocida at google dot com @ 2023-11-08 11:13 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111788
--- Comment #4 from Giuliano Procida <gprocida at google dot com> ---
Also worth noting that while Clang gives virtual table entries (for struct X)
this type in DWARF:
int(** _vptr.X)(...)
GCC gives them this type:
int(** _vptr$X)()
The different member names are an unfortunate inconsistency.
Clang is strictly better on the typing, stating that the virtual functions take
an unknown number of arguments. Perhaps even better would have been if the
first argument had been specified as type X*.
In any case, this is likely all cosmetic as debuggers have all the special
knowledge needed.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-11-08 11:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-12 16:00 [Bug c++/111788] New: g++ DWARF for void foo(...) missing unspecified parameters DIE gprocida at google dot com
2023-10-12 16:05 ` [Bug c++/111788] " pinskia at gcc dot gnu.org
2023-10-13 6:50 ` rguenth at gcc dot gnu.org
2023-10-13 7:02 ` gprocida at google dot com
2023-11-08 11:13 ` gprocida at google 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).