summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2012-09-13 23:35:30 +0000
committerSean Callanan <scallanan@apple.com>2012-09-13 23:35:30 +0000
commita199e82cb91b5f5a607375bf2e0fd59e3c697568 (patch)
tree7005ea3dcc0857c6641de5ba4a993043c1cca723
parentb83dba2b840ef6dfb6f368ac88346cb80ffa110a (diff)
downloadbcm5719-llvm-a199e82cb91b5f5a607375bf2e0fd59e3c697568.tar.gz
bcm5719-llvm-a199e82cb91b5f5a607375bf2e0fd59e3c697568.zip
Fixed the #defines for YES and NO, and centralized
them in one place rather than having them replicated across all the potential function wrappers. <rdar://problem/12293880> llvm-svn: 163857
-rw-r--r--lldb/source/Expression/ExpressionSourceCode.cpp68
1 files changed, 35 insertions, 33 deletions
diff --git a/lldb/source/Expression/ExpressionSourceCode.cpp b/lldb/source/Expression/ExpressionSourceCode.cpp
index 7004d28fa4c..e33fd2db69e 100644
--- a/lldb/source/Expression/ExpressionSourceCode.cpp
+++ b/lldb/source/Expression/ExpressionSourceCode.cpp
@@ -13,6 +13,20 @@
using namespace lldb_private;
+static const char *global_defines = "#undef NULL \n"
+ "#undef Nil \n"
+ "#undef nil \n"
+ "#undef YES \n"
+ "#undef NO \n"
+ "#define NULL ((int)0) \n"
+ "#define Nil ((Class)0) \n"
+ "#define nil ((id)0) \n"
+ "#define YES ((BOOL)1) \n"
+ "#define NO ((BOOL)0) \n"
+ "typedef int BOOL; \n"
+ "typedef unsigned short unichar; \n";
+
+
bool ExpressionSourceCode::GetText (std::string &text, lldb::LanguageType wrapping_language, bool const_object, bool static_method) const
{
if (m_wrap)
@@ -35,33 +49,27 @@ bool ExpressionSourceCode::GetText (std::string &text, lldb::LanguageType wrappi
break;
case lldb::eLanguageTypeC:
wrap_stream.Printf("%s \n"
- "#undef NULL \n"
- "#define NULL 0 \n"
- "#undef nil \n"
- "#define nil (id)0 \n"
- "typedef unsigned short unichar;\n"
+ "%s \n"
"void \n"
"%s(void *$__lldb_arg) \n"
"{ \n"
" %s; \n"
"} \n",
m_prefix.c_str(),
+ global_defines,
m_name.c_str(),
m_body.c_str());
break;
case lldb::eLanguageTypeC_plus_plus:
wrap_stream.Printf("%s \n"
- "#undef NULL \n"
- "#define NULL 0 \n"
- "#undef nil \n"
- "#define nil (id)0 \n"
- "typedef unsigned short unichar; \n"
+ "%s \n"
"void \n"
"$__lldb_class::%s(void *$__lldb_arg) %s\n"
"{ \n"
" %s; \n"
"} \n",
m_prefix.c_str(),
+ global_defines,
m_name.c_str(),
(const_object ? "const" : ""),
m_body.c_str());
@@ -70,33 +78,26 @@ bool ExpressionSourceCode::GetText (std::string &text, lldb::LanguageType wrappi
if (static_method)
{
wrap_stream.Printf("%s \n"
- "#undef NULL \n"
- "#define NULL 0 \n"
- "#undef nil \n"
- "#define nil (id)0 \n"
- "typedef unsigned short unichar; \n"
- "@interface $__lldb_objc_class ($__lldb_category) \n"
- "+(void)%s:(void *)$__lldb_arg; \n"
- "@end \n"
- "@implementation $__lldb_objc_class ($__lldb_category) \n"
- "+(void)%s:(void *)$__lldb_arg \n"
- "{ \n"
- " %s; \n"
- "} \n"
- "@end \n",
- m_prefix.c_str(),
- m_name.c_str(),
- m_name.c_str(),
- m_body.c_str());
+ "%s \n"
+ "@interface $__lldb_objc_class ($__lldb_category) \n"
+ "+(void)%s:(void *)$__lldb_arg; \n"
+ "@end \n"
+ "@implementation $__lldb_objc_class ($__lldb_category) \n"
+ "+(void)%s:(void *)$__lldb_arg \n"
+ "{ \n"
+ " %s; \n"
+ "} \n"
+ "@end \n",
+ m_prefix.c_str(),
+ global_defines,
+ m_name.c_str(),
+ m_name.c_str(),
+ m_body.c_str());
}
else
{
wrap_stream.Printf("%s \n"
- "#undef NULL \n"
- "#define NULL 0 \n"
- "#undef nil \n"
- "#define nil (id)0 \n"
- "typedef unsigned short unichar; \n"
+ "%s \n"
"@interface $__lldb_objc_class ($__lldb_category) \n"
"-(void)%s:(void *)$__lldb_arg; \n"
"@end \n"
@@ -107,6 +108,7 @@ bool ExpressionSourceCode::GetText (std::string &text, lldb::LanguageType wrappi
"} \n"
"@end \n",
m_prefix.c_str(),
+ global_defines,
m_name.c_str(),
m_name.c_str(),
m_body.c_str());
OpenPOWER on IntegriCloud