1f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===- AssertCmd.cpp ------------------------------------------------------===// 2f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 3f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// The MCLinker Project 4f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 5f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// This file is distributed under the University of Illinois Open Source 6f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// License. See LICENSE.TXT for details. 7f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 8f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Script/AssertCmd.h" 10f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerScript.h" 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Module.h" 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Script/RpnExpr.h" 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Support/raw_ostream.h" 1537b74a387bb3993387029859c2d9d051c41c724eStephen Hines 1637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld { 17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 18f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// AssertCmd 20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 21f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesAssertCmd::AssertCmd(RpnExpr& pRpnExpr, const std::string& pMessage) 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hines : ScriptCommand(ScriptCommand::ASSERT), 2337b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_RpnExpr(pRpnExpr), 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Message(pMessage) { 25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 2737b74a387bb3993387029859c2d9d051c41c724eStephen HinesAssertCmd::~AssertCmd() { 28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 3037b74a387bb3993387029859c2d9d051c41c724eStephen HinesAssertCmd& AssertCmd::operator=(const AssertCmd& pAssertCmd) { 31f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return *this; 32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 3437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid AssertCmd::dump() const { 35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines mcld::outs() << "Assert ( "; 36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines m_RpnExpr.dump(); 38f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines mcld::outs() << " , " << m_Message << " )\n"; 40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid AssertCmd::activate(Module& pModule) { 43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines pModule.getScript().assertions().push_back(*this); 44f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hines 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 47