summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-31 23:42:16 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-31 23:42:16 +0000
commit08b216abf13a3c81b1b5312c162d44793677397f (patch)
tree221d362fd2fc26f8f31775effee9e36f3fee8222 /clang/lib/Basic/Targets.cpp
parenta9d1032f9c6e52aea8722be0e270c8adbabeec32 (diff)
downloadbcm5719-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.cpp18
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);
OpenPOWER on IntegriCloud