On Wed, Nov 28, 2012 at 12:59 PM, Eli Friedman <[email protected]>wrote:
> On Wed, Nov 28, 2012 at 9:17 AM, Rafael Espíndola > <[email protected]> wrote: > > Thanks Richard for pointing me some missing cases. The attached patch > > takes a step back and merge only the return types. > > > > Richard suggested avoiding the merging when the new Decl is a k&r > > definition, but at this point of the code we haven't attached the body > > yet. It would also be nice if we could handle both definitions and > > declarations uniformly. > > > > I debugged why CodeGen was complaining and the problem is that by > > merging just the function types we end up with a ParmVarDecl whose > > type doesn't match the corresponding type in the FunctionProtoType and > > CodeGen asserts. Two options that would still let us merge the full > > types is making CodeGen cope with it (produce a llvm cast) or patching > > the type of the ParmVarDecl too. Do you think we should do it? > > Patching the type of the ParmVarDecl would be appropriate. Given: int f(int); int f(a) char a; { return sizeof(a); } I would expect 1 to be returned, not 4.
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
