diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Frontend/RewriteObjC.cpp | 9 | 
1 files changed, 3 insertions, 6 deletions
diff --git a/clang/lib/Frontend/RewriteObjC.cpp b/clang/lib/Frontend/RewriteObjC.cpp index 419011e3c86..253e0816581 100644 --- a/clang/lib/Frontend/RewriteObjC.cpp +++ b/clang/lib/Frontend/RewriteObjC.cpp @@ -4508,14 +4508,14 @@ void RewriteObjC::RewriteByRefVar(VarDecl *ND) {    // {0, &ND, some_flag, __size=sizeof(struct __Block_byref_ND),     //  initializer-if-any};    bool hasInit = (ND->getInit() != 0); +  unsigned flags = 0; +  if (HasCopyAndDispose) +    flags |= BLOCK_HAS_COPY_DISPOSE;    Name = ND->getNameAsString();    ByrefType = "struct __Block_byref_" + Name;    if (!hasInit) {      ByrefType += " " + Name + " = ";      ByrefType += "{0, &" + Name + ", "; -    unsigned flags = 0; -    if (HasCopyAndDispose) -      flags |= BLOCK_HAS_COPY_DISPOSE;      ByrefType += utostr(flags);      ByrefType += ", ";      ByrefType += "sizeof(struct __Block_byref_" + Name + ")"; @@ -4535,9 +4535,6 @@ void RewriteObjC::RewriteByRefVar(VarDecl *ND) {      ReplaceText(DeclLoc, endBuf-startBuf,                   ByrefType.c_str(), ByrefType.size());      ByrefType = " = {0, &" + Name + ", "; -    unsigned flags = 0; -    if (HasCopyAndDispose) -      flags |= BLOCK_HAS_COPY_DISPOSE;      ByrefType += utostr(flags);      ByrefType += ", ";      ByrefType += "sizeof(struct __Block_byref_" + Name + "), ";  | 

