diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2012-07-25 21:48:36 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-07-25 21:48:36 +0000 |
| commit | 1a11252f60f11e4aada3f8f39cea20275c5909d9 (patch) | |
| tree | 3faf722de8af39b48a56038f3c7757b83d1d9238 /clang/lib/Rewrite/RewriteModernObjC.cpp | |
| parent | abd254e1b6691fd755b14ee0422b216e48378aef (diff) | |
| download | bcm5719-llvm-1a11252f60f11e4aada3f8f39cea20275c5909d9.tar.gz bcm5719-llvm-1a11252f60f11e4aada3f8f39cea20275c5909d9.zip | |
objective-c modern translator. Provide declaration of
"memset' lazily when is needed in translation of
struct-valued methods which require checkinf of nil receivers
outside their bodies. // rdar://11847319
llvm-svn: 160759
Diffstat (limited to 'clang/lib/Rewrite/RewriteModernObjC.cpp')
| -rw-r--r-- | clang/lib/Rewrite/RewriteModernObjC.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/clang/lib/Rewrite/RewriteModernObjC.cpp b/clang/lib/Rewrite/RewriteModernObjC.cpp index 256984d881b..9f42fcacfab 100644 --- a/clang/lib/Rewrite/RewriteModernObjC.cpp +++ b/clang/lib/Rewrite/RewriteModernObjC.cpp @@ -3103,7 +3103,9 @@ Expr *RewriteModernObjC::SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFla // build type for containing the objc_msgSend_stret object. static unsigned stretCount=0; std::string name = "__Stret"; name += utostr(stretCount); - std::string str = "struct "; str += name; + std::string str = + "extern \"C\" void * __cdecl memset(void *_Dst, int _Val, size_t _Size);\n"; + str += "struct "; str += name; str += " {\n\t"; str += name; str += "(id receiver, SEL sel"; @@ -5959,11 +5961,6 @@ void RewriteModernObjC::Initialize(ASTContext &context) { Preamble += "#define __block\n"; Preamble += "#define __weak\n"; } - Preamble += "\n#if defined(_MSC_VER)\n"; - Preamble += "#include <string.h>\n"; - Preamble += "#else\n"; - Preamble += "extern \"C\" void * memset(void *b, int c, unsigned long len);\n"; - Preamble += "#endif\n"; // Declarations required for modern objective-c array and dictionary literals. Preamble += "\n#include <stdarg.h>\n"; |

