From 08b216abf13a3c81b1b5312c162d44793677397f Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Tue, 31 Mar 2009 23:42:16 +0000 Subject: Add Target hooks for IRgen of [cf]string literals. - Notably, set section on cfstring literal string data (for now, this is done everywhere because it matches what we were already doing for the CFString data itself) - [irgen] linker requires objc string data to go into cstring llvm-svn: 68160 --- clang/lib/Basic/Targets.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'clang/lib/Basic/Targets.cpp') diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index b3224fe1d2c..ce55ec80465 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -653,11 +653,21 @@ public: "i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-" "a0:0:64-f80:128:128"; } + + virtual const char *getStringSymbolPrefix(bool IsConstant) const { + return IsConstant ? "\01LC" : "\01lC"; + } + + virtual const char *getCFStringSymbolPrefix() const { + return "\01LC"; + } + virtual void getTargetDefines(const LangOptions &Opts, std::vector &Defines) const { X86_32TargetInfo::getTargetDefines(Opts, Defines); getDarwinDefines(Defines, getTargetTriple()); } + /// getDefaultLangOptions - Allow the target to specify default settings for /// various language options. These may be overridden by command line /// options. @@ -796,6 +806,14 @@ public: DarwinX86_64TargetInfo(const std::string& triple) : X86_64TargetInfo(triple) {} + virtual const char *getStringSymbolPrefix(bool IsConstant) const { + return IsConstant ? "\01LC" : "\01lC"; + } + + virtual const char *getCFStringSymbolPrefix() const { + return "\01L_unnamed_cfstring_"; + } + virtual void getTargetDefines(const LangOptions &Opts, std::vector &Defines) const { X86_64TargetInfo::getTargetDefines(Opts, Defines); -- cgit v1.2.3