[Bug c++/87671] New: Incorrect debugging information for unique_ptr passed to a constructor
anton at swarmer dot me
gcc-bugzilla@gcc.gnu.org
Sun Oct 21 01:44:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87671
Bug ID: 87671
Summary: Incorrect debugging information for unique_ptr passed
to a constructor
Product: gcc
Version: 8.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: anton at swarmer dot me
Target Milestone: ---
Created attachment 44866
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44866&action=edit
Source code to reproduce
How to reproduce: compile the attached example with g++. I used:
g++-8 -Wall -Wextra -save-temps bug.cpp -O0 -g -fsanitize=address,undefined
-o ./bug
Run with either gdb or lldb and set a breakpoint on line 7 (std::cout << *ptr).
Print *ptr in the debugger. For me 16 is printed, even though it should be 42.
Continue in debugger, observe that 42 is indeed printed to console.
The issue disappears if instead of a class constructor, I pass unique_ptr to a
normal function.
When compiling with clang++, both gdb and lldb show correct output. When
compiling with g++, both of them show incorrect output - which is why I suspect
that g++ is at fault here.
The system is Linux x86-64.
$ g++-8 -v
Using built-in specs.
COLLECT_GCC=g++-8
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
8.2.0-1ubuntu2~18.04' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr
--with-gcc-major-version-only --program-suffix=-8
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie
--with-system-zlib --with-target-system-zlib --enable-objc-gc=auto
--enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-offload-targets=nvptx-none --without-cuda-driver
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 8.2.0 (Ubuntu 8.2.0-1ubuntu2~18.04)
More information about the Gcc-bugs
mailing list