diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-31 23:42:16 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-31 23:42:16 +0000 |
commit | 08b216abf13a3c81b1b5312c162d44793677397f (patch) | |
tree | 221d362fd2fc26f8f31775effee9e36f3fee8222 /clang/lib/Basic/Targets.cpp | |
parent | a9d1032f9c6e52aea8722be0e270c8adbabeec32 (diff) | |
download | bcm5719-llvm-08b216abf13a3c81b1b5312c162d44793677397f.tar.gz bcm5719-llvm-08b216abf13a3c81b1b5312c162d44793677397f.zip |
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)
- <rdar://problem/6599098> [irgen] linker requires objc string data
to go into cstring
llvm-svn: 68160
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
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<char> &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<char> &Defines) const { X86_64TargetInfo::getTargetDefines(Opts, Defines); |