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).