[cfe-commits] r168411 - /cfe/trunk/lib/AST/Decl.cpp

Rafael EspĂ­ndola rafael.espindola at gmail.com
Mon Nov 26 14:54:08 PST 2012


debugging, thanks!

On 26 November 2012 16:36, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Tue, Nov 20, 2012 at 6:53 PM, Rafael Espindola
> <rafael.espindola at gmail.com> 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



More information about the cfe-commits mailing list