Update MCLinker to work with LLVM 3.4. This corresponds to merging upstream MCLinker with the following SHA: 6dcbf36cdb146d6f175ba2f18a9004753cafeaff Change-Id: I1bc8c2ce4accc563450bc71ee295a6e47a0c0469
diff --git a/include/mcld/Script/OutputFormatCmd.h b/include/mcld/Script/OutputFormatCmd.h new file mode 100644 index 0000000..b716e81 --- /dev/null +++ b/include/mcld/Script/OutputFormatCmd.h
@@ -0,0 +1,63 @@ +//===- OutputFormatCmd.h --------------------------------------------------===// +// +// The MCLinker Project +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +#ifndef MCLD_SCRIPT_OUTPUTFORMATCMD_H +#define MCLD_SCRIPT_OUTPUTFORMATCMD_H +#ifdef ENABLE_UNITTEST +#include <gtest.h> +#endif + +#include <mcld/Script/ScriptCommand.h> +#include <string> +#include <vector> + +namespace mcld +{ + +class Module; + +/** \class OutputFormatCmd + * \brief This class defines the interfaces to OutputFormat command. + */ + +class OutputFormatCmd : public ScriptCommand +{ +public: + typedef std::vector<std::string> FormatList; + typedef FormatList::const_iterator const_iterator; + typedef FormatList::iterator iterator; + +public: + OutputFormatCmd(const std::string& pFormat); + OutputFormatCmd(const std::string& pDefault, + const std::string& pBig, + const std::string& pLittle); + ~OutputFormatCmd(); + + const_iterator begin() const { return m_FormatList.begin(); } + iterator begin() { return m_FormatList.begin(); } + const_iterator end() const { return m_FormatList.end(); } + iterator end() { return m_FormatList.end(); } + + void dump() const; + + static bool classof(const ScriptCommand* pCmd) + { + return pCmd->getKind() == ScriptCommand::OUTPUT_FORMAT; + } + + void activate(Module& pModule); + +private: + FormatList m_FormatList; +}; + +} // namespace of mcld + +#endif +