[cfe-commits] r55158 - in /cfe/trunk: include/clang/AST/ASTContext.h lib/AST/ASTContext.cpp lib/Sema/SemaDecl.cpp lib/Sema/SemaExpr.cpp
Eli Friedman
eli.friedman at gmail.com
Sat Aug 23 23:38:29 PDT 2008
On Fri, Aug 22, 2008 at 11:47 AM, Daniel Dunbar <daniel at zuster.org> wrote:
> I believe this or a related commit is causing regressions in the LLVM test
> suite. My nightly tester (http://llvm.org/nightlytest/test.php?machine=308&night=7260)
> is showing errors in
> Benchmarks/Dhrystone/dry
> Benchmarks/Dhrystone/fldry
> Benchmarks/MallocBench/cfrac/cfrac
> Benchmarks/McCat/18-imp/imp
>
> and I minimized the cfrac failure to the following test case:
> --
> typedef unsigned short posit;
>
> extern void palloc();
>
> void palloc(posit size) {
> }
> --
> ddunbar at ddunbar2:cfrac$ clang Output/pops.E
> Output/pops.E:5:6: error: conflicting types for 'palloc'
> void palloc(posit size) {
> ^
> Output/pops.E:3:13: error: previous declaration is here
> extern void palloc();
> ^
> 2 diagnostics generated.
> --
>
> Can you investigate?
For the testcase in question, my code is doing the right thing here;
void f(short) and void f() are not compatible because short is a
promotable integer type. Previously, we didn't check for that
restriction. This issue is essentially just PR2586
(http://llvm.org/bugs/show_bug.cgi?id=2586); I think it's just a
matter of degrading the errors in Sema::MergeFunctionDecl to warnings,
although it's possible there are non-obvious issues with that
approach.
-Eli
More information about the cfe-commits
mailing list