On Dec 6, 2010, at 2:34 PM, Douglas Gregor wrote:
> On Dec 6, 2010, at 10:33 AM, John McCall wrote:
>> It could be dependent if we implemented overloading on it. :)
>> 
>> I'm not sure why __attribute__((cleanup("foo"))) is different from, say, an 
>> explicit call to (foo)(x), or &foo.  In all of these cases, from the user's 
>> perspective the function is used, because their code probably won't compile 
>> if you remove the declaration.  So you should still use 
>> MarkDeclarationReferenced, and if we want to teach MarkDeclarationReferenced 
>> about this user notion of a dependent use, we've got one place to change.
> 
> I disagree with "from the user's perspective the function is used". The 
> function declaration is needed, sure, but that's very different from "used" 
> in the ODR sense, which implies that we need to have a definition. And I 
> think that user's don't expect to need definitions for something that's only 
> used in an uninstantiated template.

Right, so we clearly wouldn't want this "user" sense of "used" to cause 
instantiation, much less code emission.  But it would be nice for 
-Wunused-function not to suggest removing function definitions when doing so 
will cause the code to stop compiling.

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

Reply via email to