Hello all,
Compiling a fresh version of Gem5 (master, 
ad9a233ff9fdaadbbdebef32af242c8e3c05bfd4) generates the following compilation 
error when doing a cross compilation from Ubuntu x86 to Debian x86 (Jessie) 
(tl;dr variable "__storage" is not initialized before used):

schroot -c jessie -- scons -j8 build/ARM/gem5.opt

In file included from build/ARM/sim/eventq.hh:53:0,
                 from build/ARM/sim/sim_object.hh:57,
                 from build/ARM/cpu/intr_control.hh:39,
                 from build/ARM/dev/arm/gic_v2.hh:55,
                 from build/ARM/dev/arm/gic_v2.cc:44:
build/ARM/sim/serialize.hh: In function 'void arrayParamIn(CheckpointIn&, const 
string&, T*, unsigned int) [with T = 
BitfieldBackend::BitUnionOperators<GicV2::BitfieldUnderlyingClassesCTLR>; 
std::string = std::basic_string<char>]':
build/ARM/sim/serialize.hh:292:58: error: 
'scalar_value.BitfieldBackend::BitUnionOperators<GicV2::BitfieldUnderlyingClassesCTLR>::<anonymous>.GicV2::BitfieldUnderlyingClassesCTLR::<anonymous>.GicV2::BitfieldUnderlyingClassesCTLR::<anonymous
 union>::__storage' may be used uninitialized in this function 
[-Werror=maybe-uninitialized]
     auto storage = static_cast<BitUnionBaseType<T>>(value);
                                                          ^
build/ARM/sim/serialize.hh:507:11: note: 
'scalar_value.BitfieldBackend::BitUnionOperators<GicV2::BitfieldUnderlyingClassesCTLR>::<anonymous>.GicV2::BitfieldUnderlyingClassesCTLR::<anonymous>.GicV2::BitfieldUnderlyingClassesCTLR::<anonymous
 union>::__storage' was declared here
         T scalar_value;


schroot's "g++ -v":

COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10+deb8u1' 
--with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs 
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr 
--program-suffix=-4.9 --enable-shared --enable-linker-build-id 
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix 
--with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls 
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug 
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify 
--enable-plugin --with-system-zlib --disable-browser-plugin 
--enable-java-awt=gtk --enable-gtk-cairo 
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home 
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar 
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic 
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu 
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Debian 4.9.2-10+deb8u1) 


I tried fixing within the desirable file (i.e., bitunion.hh), but the code 
there is confusing, so I couldn't make it work there. As I don't want to add a 
dirty/broken fix (i.e., add a call to value.setter in parseParam before the 
static cast; it seems to work, but I don't want to risk it since I don't know 
if the param can be of BitfieldROType at that point), I would like to ask those 
who are more familiar with this part of the code to take a look at it.
Regards,Daniel
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to