From: Fariborz Jahanian Date: Wed, 25 Apr 2012 17:56:48 +0000 (+0000) Subject: modern objc rewriter: fixes a bug writing X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=041895354a5c4280f00a86082e4218312dd44467;p=clang modern objc rewriter: fixes a bug writing a const qualified static c-function. // rdar://11314329 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155564 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Rewrite/RewriteModernObjC.cpp b/lib/Rewrite/RewriteModernObjC.cpp index 9cefa5ed2d..705a046223 100644 --- a/lib/Rewrite/RewriteModernObjC.cpp +++ b/lib/Rewrite/RewriteModernObjC.cpp @@ -4133,7 +4133,9 @@ void RewriteModernObjC::SynthesizeBlockLiterals(SourceLocation FunLocStart, } void RewriteModernObjC::InsertBlockLiteralsWithinFunction(FunctionDecl *FD) { - SourceLocation FunLocStart = getFunctionSourceLocation(*this, FD); + SourceLocation FunLocStart = + (!Blocks.empty()) ? getFunctionSourceLocation(*this, FD) + : FD->getTypeSpecStartLoc(); StringRef FuncName = FD->getName(); SynthesizeBlockLiterals(FunLocStart, FuncName); diff --git a/test/Rewriter/rewrite-modern-extern-c-func-decl.mm b/test/Rewriter/rewrite-modern-extern-c-func-decl.mm index 1c8fbfbca4..590a4d4346 100644 --- a/test/Rewriter/rewrite-modern-extern-c-func-decl.mm +++ b/test/Rewriter/rewrite-modern-extern-c-func-decl.mm @@ -68,3 +68,5 @@ static void initStatics2() { }); } +// rdar://11314329 +static inline const void *auto_zone_base_pointer(void *zone, const void *ptr) { return 0; }