On Tue, Nov 20, 2012 at 6:53 PM, Rafael Espindola
<[email protected]> wrote:
> Author: rafael
> Date: Tue Nov 20 20:53:22 2012
> New Revision: 168411
>
> URL: http://llvm.org/viewvc/llvm-project?rev=168411&view=rev
> Log:
> Remove redundant code.
>
> Modified:
>     cfe/trunk/lib/AST/Decl.cpp
>
> Modified: cfe/trunk/lib/AST/Decl.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=168411&r1=168410&r2=168411&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/Decl.cpp (original)
> +++ cfe/trunk/lib/AST/Decl.cpp Tue Nov 20 20:53:22 2012
> @@ -777,12 +777,10 @@
>          if (llvm::Optional<Visibility> Vis = 
> Function->getExplicitVisibility())
>            LV.mergeVisibility(*Vis, true);
>        }
> -
> -      if (const FunctionDecl *Prev = Function->getPreviousDecl()) {
> -        LinkageInfo PrevLV = getLVForDecl(Prev, OnlyTemplate);
> -        if (PrevLV.linkage()) LV.setLinkage(PrevLV.linkage());
> -        LV.mergeVisibility(PrevLV);
> -      }
> +
> +      // Note that Sema::MergeCompatibleFunctionDecls already takes care of
> +      // merging storage classes and visibility attributes, so we don't have 
> to
> +      // look at previous decls in here.

This commit breaks the following testcase (derived from the gcc testsuite):

typedef int IA[];
typedef int A10[10];

static A10 *c18 (void);
void h18 (void)
{
  sizeof(*c18());
  {
    extern IA *c18 (void);
  }
  sizeof(*c18());
}

Please take a look.

-Eli
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to