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//===----------------------------------------------------------------------===// 9f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Script/AssertCmd.h> 10f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Script/RpnExpr.h> 11f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Support/raw_ostream.h> 12f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Module.h> 13f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/LinkerScript.h> 14f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 15f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesusing namespace mcld; 16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 18f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// AssertCmd 19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesAssertCmd::AssertCmd(RpnExpr& pRpnExpr, const std::string& pMessage) 21f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines : ScriptCommand(ScriptCommand::ASSERT), 22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines m_RpnExpr(pRpnExpr), 23f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines m_Message(pMessage) 24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 27f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesAssertCmd::~AssertCmd() 28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 30f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 31f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesAssertCmd& AssertCmd::operator=(const AssertCmd& pAssertCmd) 32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return *this; 34f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesvoid AssertCmd::dump() const 37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 38f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines mcld::outs() << "Assert ( "; 39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines m_RpnExpr.dump(); 41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 42f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines mcld::outs() << " , " << m_Message << " )\n"; 43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 44f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 45f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesvoid AssertCmd::activate(Module& pModule) 46f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 47f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines pModule.getScript().assertions().push_back(*this); 48f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 49