[cfe-commits] [Patch] Print differences for function pointers.

Richard Trieu rtrieu at google.com
Wed Nov 16 16:14:42 PST 2011


On Wed, Nov 16, 2011 at 12:06 PM, Matthieu Monrocq <
matthieu.monrocq at gmail.com> wrote:

>
>
> Le 15 novembre 2011 21:23, Richard Trieu <rtrieu at google.com> a écrit :
>
> New feature that will print additional information when non-matching
>> function pointers are used.  This will help users more easily distinguish
>> why the function pointers do not match.  The points of difference that will
>> be noted are:
>>
>> Different number of parameters
>> Different parameter type
>> Different return type
>> Different function qualifiers
>>
>> For instance, code like this:
>>
>> double foo(int x) {return 0;};
>> double (*bar)(int, int) = &foo;
>>
>> Will get this error message:
>>
>> function-mismatch.cc:2:10: error: cannot initialize a variable of
>>       type 'double (*)(int, int)' with an rvalue of type 'double (*)(int)'
>>       because of different number of parameters (expected 2 but has 1)
>> double (*bar)(int, int) = &foo;
>>          ^                ~~~~
>>
>> Patch is attached and also available at
>> http://codereview.appspot.com/5369119/
>>
>>
>> Nice!
>
> Do you plan on adding something for a difference of class (for pointer to
> member functions) ? Or perhaps that it already exists...
>
> -- Matthieu
>
> Added a bit to the diagnostic message to say if they are from different
classes, as well as changes in response to comments Richard Smith made on
http://codereview.appspot.com/5369119/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20111116/bcfadf0d/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: function-pointer2.patch
Type: text/x-patch
Size: 21723 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20111116/bcfadf0d/attachment.bin>


More information about the cfe-commits mailing list