[Cython] GCC 4.6 unused-but-set-variable warnings

Stefan Behnel stefan_ml at behnel.de
Fri Jul 29 08:50:59 CEST 2011


Vitja Makarov, 29.07.2011 08:38:
> 2011/7/29 Vitja Makarov:
>> 2011/7/29 Stefan Behnel:
>>> Nikolaus Rath, 13.06.2011 16:59:
>>>> $ gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
>>>> -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c test.c -o test.o
>>>> -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -Werror -Wall -Wextra
>>>> -Wconversion -Wno-unused-parameter -Wno-sign-conversion -fno-strict-aliasing
>>>> test.c:
>>>> test.c:454:13: warning: variable ‘__pyx_v_exc’ set but not used
>>>> [-Wunused-but-set-variable]
>>>> test.c:453:13: warning: variable ‘__pyx_v_fn’ set but not used
>>>> [-Wunused-but-set-variable]
>>>> test.c:452:13: warning: variable ‘__pyx_v_self’ set but not used
>>>> [-Wunused-but-set-variable]
>>>
>>> http://trac.cython.org/cython_trac/ticket/704
>>>
>>> I think this is something that the control flow analysis could deal with.
>>> Basically, every parameter that turns out to be unused in the function (and
>>> this most likely only happens with parameters) could be ignored, unless it
>>> requires a type conversion with potential side effects. In that (unlikely)
>>> case, we could still drop the final assignment to the variable itself.
>>
>> There is entry.cf_unused flag it's set when the whole entry is not used.
>
> ((6af313c...)) vitja at vitja-laptop:~/work/cython-vitek$ python
> cython.py -X warn.unused_arg=True test.pyx
> warning: test.pyx:2:19: Unused argument 'self'
> warning: test.pyx:2:25: Unused argument 'fn'
> warning: test.pyx:2:29: Unused argument 'exc'

Cool. That's what I expected. :)

Want to give it a try? The argument unpacking code has traditionally been 
my domain, and it's somewhat complex, but it should still be easy to stick 
this in. Note that there is more than one place where this needs to be 
handled, as the code is structured into different cases based on the type 
of signature.

Otherwise, I can see if I find a bit of time over the weekend.

Stefan


More information about the cython-devel mailing list