# HG changeset patch # User Kaito Tokumori # Date 1380986251 -32400 # Node ID 5abb684876c4fdaccda14eac7b1c06f3bad4b077 # Parent 5e1f5bc2763498b0b45c7386d85014467decfecd report error when code segment's tail call flag was changed false diff -r 5e1f5bc27634 -r 5abb684876c4 lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Sat Oct 05 22:04:18 2013 +0900 +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Sun Oct 06 00:17:31 2013 +0900 @@ -5296,6 +5296,12 @@ "Non-null chain expected with non-tail call!"); assert((Result.second.getNode() || !Result.first.getNode()) && "Null value expected with tail call!"); +#ifndef noCbC + // if code segment's tail call flag was changed false , we report it on error. + if (CLI.RetTy->is__CodeTy() && CS.getCaller()->getReturnType()->is__CodeTy() && !isTailCall) + DAG.getContext()->emitError(CS.getInstruction(),CS.getCalledFunction()->getName() + + " is code segment which called by code segment but its tail call flag was changed false!"); +#endif if (Result.first.getNode()) { setValue(CS.getInstruction(), Result.first); } else if (!CanLowerReturn && Result.second.getNode()) {