On Thu, Jun 20, 2019 at 04:43:58PM +0000, Joseph Myers wrote:
> This (commit r272486) introduces an ICE building libstdc++-v3 for 
> sh4-linux-gnu.
> 
> libtool: compile:  
> /scratch/jmyers/glibc-bot/build/compilers/sh4-linux-gnu/gcc/./gcc/xgcc 
> -shared-libgcc 
> -B/scratch/jmyers/glibc-bot/build/compilers/sh4-linux-gnu/gcc/./gcc 
> -nostdinc++ 
> -L/scratch/jmyers/glibc-bot/build/compilers/sh4-linux-gnu/gcc/sh4-glibc-linux-gnu/libstdc++-v3/src
>  
> -L/scratch/jmyers/glibc-bot/build/compilers/sh4-linux-gnu/gcc/sh4-glibc-linux-gnu/libstdc++-v3/src/.libs
>  
> -L/scratch/jmyers/glibc-bot/build/compilers/sh4-linux-gnu/gcc/sh4-glibc-linux-gnu/libstdc++-v3/libsupc++/.libs
>  
> -B/scratch/jmyers/glibc-bot/install/compilers/sh4-linux-gnu/sh4-glibc-linux-gnu/bin/
>  
> -B/scratch/jmyers/glibc-bot/install/compilers/sh4-linux-gnu/sh4-glibc-linux-gnu/lib/
>  
> -isystem 
> /scratch/jmyers/glibc-bot/install/compilers/sh4-linux-gnu/sh4-glibc-linux-gnu/include
>  
> -isystem 
> /scratch/jmyers/glibc-bot/install/compilers/sh4-linux-gnu/sh4-glibc-linux-gnu/sys-include
>  
> -I/scratch/jmyers/glibc-bot/src/gcc/libstdc++-v3/../libgcc 
> -I/scratch/jmyers/glibc-bot/build/compilers/sh4-linux-gnu/gcc/sh4-glibc-linux-gnu/libstdc++-v3/include/sh4-glibc-linux-gnu
>  
> -I/scratch/jmyers/glibc-bot/build/compilers/sh4-linux-gnu/gcc/sh4-glibc-linux-gnu/libstdc++-v3/include
>  
> -I/scratch/jmyers/glibc-bot/src/gcc/libstdc++-v3/libsupc++ 
> -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings 
> -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections 
> -fdata-sections -frandom-seed=new_opa.lo -g -O2 -D_GNU_SOURCE -std=gnu++1z 
> -c /scratch/jmyers/glibc-bot/src/gcc/libstdc++-v3/libsupc++/new_opa.cc  
> -fPIC -DPIC -D_GLIBCXX_SHARED -o new_opa.o
> during RTL pass: final
> /scratch/jmyers/glibc-bot/src/gcc/libstdc++-v3/libsupc++/new_opa.cc: In 
> function 'void* operator new(std::size_t, std::align_val_t)':
> /scratch/jmyers/glibc-bot/src/gcc/libstdc++-v3/libsupc++/new_opa.cc:132:1: 
> internal compiler error: tree check: expected identifier_node, have tree_list 
> in is_attribute_p, at attribs.h:155
>   132 | }
>       | ^
> 0x5b320d tree_check_failed(tree_node const*, char const*, int, char const*, 
> ...)
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/tree.c:9899
> 0x5b3f0d tree_check(tree_node const*, char const*, int, char const*, 
> tree_code)
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/tree.h:3453
> 0x5b3f0d is_attribute_p
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/attribs.h:155
> 0x11884c3 is_attribute_p
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/tree.h:3197
> 0x11884c3 sh2a_function_vector_p
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/config/sh/sh.c:8649
> 0x1188527 sh_encode_section_info
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/config/sh/sh.c:1570
> 0x1153ba8 make_decl_rtl(tree_node*)
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/varasm.c:1524
> 0x115460c get_fnname_from_decl(tree_node*)
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/varasm.c:1720
> 0xab2aa9 rest_of_handle_final
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/final.c:4648
> 0xab2aa9 execute
>         /scratch/jmyers/glibc-bot/src/gcc/gcc/final.c:4737
> Please submit a full bug report,
> with preprocessed source if appropriate.
> Please include the complete backtrace with any bug report.
> See <https://gcc.gnu.org/bugs/> for instructions.
> Makefile:960: recipe for target 'new_opa.lo' failed
> make[5]: *** [new_opa.lo] Error 1

Sorry about that.  Does this patch work?

2019-06-20  Marek Polacek  <pola...@redhat.com>

        * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.

diff --git gcc/config/sh/sh.c gcc/config/sh/sh.c
index 07d5b3c1df5..dfaeab55142 100644
--- gcc/config/sh/sh.c
+++ gcc/config/sh/sh.c
@@ -8646,7 +8646,7 @@ sh2a_function_vector_p (tree func)
     return false;
 
   for (tree list = SH_ATTRIBUTES (func); list; list = TREE_CHAIN (list))
-    if (is_attribute_p ("function_vector", TREE_PURPOSE (list)))
+    if (is_attribute_p ("function_vector", get_attribute_name (list)))
       return true;
 
   return false;

Reply via email to