https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83764

            Bug ID: 83764
           Summary: internal compiler error: in
                    gimple_get_virt_method_for_vtable
           Product: gcc
           Version: 7.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lesliezhai at llvm dot org.cn
  Target Milestone: ---

Hi GCC developers,

When I use Linaro GCC 7.2-2017.11 arm-linux-gnueabihf cross-compile
toolchain[1] to build L4Re and L4Linux[2] 

Toolchain thrown such error:
/data/project/xiangzhai/l4re/l4/pkg/io/io/server/src/virt/vmsi.cc:28:1:
internal compiler error: in gimple_get_virt_method_for_vtable, at
gimple-fold.c:6467
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.


l4re/l4/pkg/io/io/server/src/virt/vmsi.cc:28 define a static variable in an
anonymous namespace[3]

26 namespace {                                                                  
27   static Vi::Resource_factory_t<Vi::Msi_resource, Hw::Msi_resource>
__vmsifactory;
28 }


Linaro gcc-7.2.1/gcc/gimple-fold.c:6467 call gcc_assert[4]

6460   /* The virtual tables should always be born with constructors            
6461      and we always should assume that they are avaialble for               
6462      folding.  At the moment we do not stream them in all cases,           
6463      but it should never happen that ctor seem unreachable.  */            
6464   gcc_assert (init);                                                       
6465   if (init == error_mark_node)                                             
6466     {                                                                      
6467       gcc_assert (in_lto_p);                                               
6468       /* Pass down that we lost track of the target.  */                   
6469       if (can_refer)                                                       
6470     *can_refer = false;                                                    
6471       return NULL_TREE;                                                    
6472     }

I have no idea why `in_lto_p` is NULL?
Please give me some suggestion, thanks a lot!

[1]
https://releases.linaro.org/components/toolchain/binaries/latest/arm-linux-gnueabihf/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
[2] http://os.inf.tu-dresden.de/pipermail/l4-hackers/2018/008189.html
[3]
https://svn.l4re.org/repos/oc/l4re/trunk/l4/pkg/io/io/server/src/virt/vmsi.cc
[4]
https://releases.linaro.org/components/toolchain/gcc-linaro/latest/gcc-linaro-7.2-2017.11.tar.xz

Regards,
Leslie Zhai

Reply via email to