[LLVMdev] Ada support for llvm-gcc4

Duncan Sands baldrick at free.fr
Fri Jan 12 00:51:57 PST 2007


Hi Anton,

> > 3-fortran.diff
> > 	Get fortran to compile: use the common stubs and rip out
> > the incomplete collection of dummy routines someone already put in.
> > With this patch, the fortran build dies at this point:
> > 
> > cc1: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:367: void llvm::ScheduleDAG::AddOperand(llvm:
> > :MachineInstr*, llvm::SDOperand, unsigned int, const llvm::TargetInstrDescriptor*, std::map<llvm::SDNode*, unsign
> > ed int, std::less<llvm::SDNode*>, std::allocator<std::pair<llvm::SDNode* const, unsigned int> > >&): Assertion `R
> > egMap->getRegClass(VReg) == RC && "Register class of operand and regclass of use don't agree!"' failed.
> > ./../../gcc.llvm.master/libgfortran/runtime/environ.c:619: internal compiler error: Aborted
> This looks like PR879. Will you try to build with -D__NO_MATH_INLINES and check, whether the assertion still exists?

you are right: a build with -D__NO_MATH_INLINES does not trigger that assertion.
Instead it triggers this one later on:

llvm-convert.cpp:4243: static llvm::Constant* TreeConstantToLLVM::Convert(tree_node*):
	Assertion `((__extension__ ({ const tree __t = (exp); char const __c = tree_code_type[(int)
	(((enum tree_code) (__t)->common.code))]; if (!((__c) != tcc_type)) tree_class_check_failed
	(__t, tcc_type, "../../gcc.llvm.master/gcc/llvm-convert.cpp", 4243, __FUNCTION__); __t; })
	->common.constant_flag) || ((enum tree_code) (exp)->common.code) == STRING_CST) &&
	"Isn't a constant!"' failed.

libgfortran/intrinsics/selected_int_kind.f90: In function 'selected_int_kind':
libgfortran/intrinsics/selected_int_kind.f90:22: internal compiler error: Aborted

Best wishes,

Duncan.



More information about the llvm-dev mailing list