From 0e15c9aef62a835c6d111dee723d22fbba5398b8 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sun, 30 May 2010 00:07:30 +0000 Subject: Accept '#pragma options align=mac68k' on Darwin/PPC and Darwin/PPC64. llvm-svn: 105116 --- clang/lib/Basic/Targets.cpp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'clang/lib') diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 92fd417173b..255c71d9b78 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -600,6 +600,27 @@ public: }; } // end anonymous namespace. + +namespace { +class DarwinPPCTargetInfo : + public DarwinTargetInfo { +public: + DarwinPPCTargetInfo(const std::string& triple) + : DarwinTargetInfo(triple) { + HasAlignMac68kSupport = true; + } +}; + +class DarwinPPC64TargetInfo : + public DarwinTargetInfo { +public: + DarwinPPC64TargetInfo(const std::string& triple) + : DarwinTargetInfo(triple) { + HasAlignMac68kSupport = true; + } +}; +} // end anonymous namespace. + namespace { // MBlaze abstract base class class MBlazeTargetInfo : public TargetInfo { @@ -2327,14 +2348,14 @@ static TargetInfo *AllocateTarget(const std::string &T) { case llvm::Triple::ppc: if (os == llvm::Triple::Darwin) - return new DarwinTargetInfo(T); + return new DarwinPPCTargetInfo(T); else if (os == llvm::Triple::FreeBSD) return new FreeBSDTargetInfo(T); return new PPC32TargetInfo(T); case llvm::Triple::ppc64: if (os == llvm::Triple::Darwin) - return new DarwinTargetInfo(T); + return new DarwinPPC64TargetInfo(T); else if (os == llvm::Triple::Lv2) return new PS3PPUTargetInfo(T); else if (os == llvm::Triple::FreeBSD) -- cgit v1.2.3