Excerpts from Andreas Schwab's message of Juni 29, 2022 12:09 pm:
> make[3]: Entering directory '/opt/gcc/gcc-20220629/Build/gcc'
> /opt/gcc/gcc-20220629/Build/./prev-gcc/xg++ 
> -B/opt/gcc/gcc-20220629/Build/./prev-gcc/ -B/usr/aarch64-suse-linux/bin/ 
> -nostdinc++ 
> -B/opt/gcc/gcc-20220629/Build/prev-aarch64-suse-linux/libstdc++-v3/src/.libs 
> -B/opt/gcc/gcc-20220629/Build/prev-aarch64-suse-linux/libstdc++-v3/libsupc++/.libs
>   
> -I/opt/gcc/gcc-20220629/Build/prev-aarch64-suse-linux/libstdc++-v3/include/aarch64-suse-linux
>   -I/opt/gcc/gcc-20220629/Build/prev-aarch64-suse-linux/libstdc++-v3/include  
> -I/opt/gcc/gcc-20220629/libstdc++-v3/libsupc++ 
> -L/opt/gcc/gcc-20220629/Build/prev-aarch64-suse-linux/libstdc++-v3/src/.libs 
> -L/opt/gcc/gcc-20220629/Build/prev-aarch64-suse-linux/libstdc++-v3/libsupc++/.libs
>   -fno-PIE -c  -DIN_GCC_FRONTEND -g -O2 -fno-checking -gtoggle -DIN_GCC     
> -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall 
> -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute 
> -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros 
> -Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H -I. -Id 
> -I../../gcc -I../../gcc/d -I../../gcc/../include 
> -I../../gcc/../libcpp/include -I../../gcc/../libcody  
> -I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/bid -I../libdecnumber 
> -I../../gcc/../libbacktrace   -o d/intrinsics.o -MT d/intrinsics.o -MMD -MP 
> -MF d/.deps/intrinsics.TPo ../../gcc/d/intrinsics.cc
> ../../gcc/d/intrinsics.cc: In function 'tree_node* 
> build_shuffle_mask_type(tree)':
> ../../gcc/d/intrinsics.cc:279:42: error: 'nunits' may be used uninitialized 
> [-Werror=maybe-uninitialized]
>   279 |   return build_ctype (TypeVector::create (t->sarrayOf (nunits)));
>       |                       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
> ../../gcc/d/intrinsics.cc:276:26: note: 'nunits' was declared here
>   276 |   unsigned HOST_WIDE_INT nunits;
>       |                          ^~~~~~
> In file included from ../../gcc/d/intrinsics.cc:19:
> ../../gcc/system.h: In function 'tree_node* 
> expand_intrinsic_vec_shufflevector(tree)':
> ../../gcc/system.h:396:29: error: 'v1elems' may be used uninitialized 
> [-Werror=maybe-uninitialized]
>   396 | #define MAX(X,Y) ((X) > (Y) ? (X) : (Y))
>       |                             ^
> ../../gcc/d/intrinsics.cc:1193:35: note: 'v1elems' was declared here
>  1193 |   unsigned HOST_WIDE_INT v0elems, v1elems;
>       |                                   ^~~~~~~
> ../../gcc/d/intrinsics.cc:1193:26: error: 'v0elems' may be used uninitialized 
> [-Werror=maybe-uninitialized]
>  1193 |   unsigned HOST_WIDE_INT v0elems, v1elems;
>       |                          ^~~~~~~
> cc1plus: all warnings being treated as errors
> make[3]: *** [Makefile:1146: d/intrinsics.o] Error 1
> make[3]: Leaving directory '/opt/gcc/gcc-20220629/Build/gcc'
> 

Hi Andreas,

That's unfortunate, though curious why I am not seeing this on x86.
Does the error goes away if you wrap that around gcc_assert?

As I am already checking this a lot earlier before expansion, perhaps
it would be better to use to_constant().

Regards,
Iain.

Reply via email to