From 46326d9cdfa70c9ccbc58ca4ec67cc1d083530bc Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 25 Apr 2003 02:50:45 +0000 Subject: [PATCH] Allow for easy detection of when a "default" TargetData is created by the passmanager, which is never the right thing to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5922 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/TargetData.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/Target/TargetData.cpp b/lib/Target/TargetData.cpp index 701b36640ec..a0a3b82d24f 100644 --- a/lib/Target/TargetData.cpp +++ b/lib/Target/TargetData.cpp @@ -91,6 +91,13 @@ TargetData::TargetData(const std::string &TargetName, : AID(AnnotationManager::getID("TargetData::" + TargetName)) { AnnotationManager::registerAnnotationFactory(AID, TypeAnFactory, this); + // If this assert triggers, a pass "required" TargetData information, but the + // top level tool did not provide once for it. We do not want to default + // construct, or else we might end up using a bad endianness or pointer size! + // + assert(!TargetName.empty() && + "ERROR: Tool did not specify a target data to use!"); + LittleEndian = isLittleEndian; SubWordDataSize = SubWordSize; IntegerRegSize = IntRegSize;