This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: many -Wincompatible-pointer-types on clang with gdb-7.9


Pedro,
     I see...

#ifdef BUILDING_LIBGUILE
typedef SCM (* scm_t_subr) ();
#else
typedef void (*scm_t_subr)();
#endif

for the current guile 2.0.11 release.

On Fri, Feb 27, 2015 at 4:07 PM, Pedro Alves <palves@redhat.com> wrote:
> On 02/27/2015 06:55 PM, Jack Howarth wrote:
>> On gdb-7.9, we are seeing a large number of warnings from
>> -Wincompatible-pointer-types with clang...
>>
>> ./guile/guile.c:474:25: warning: incompatible pointer types
>> initializing 'scm_t_subr' (aka 'void (*)()') with an expression of
>> type 'SCM (SCM, SCM)'
>>       [-Wincompatible-pointer-types]
>>   { "execute", 1, 0, 1, gdbscm_execute_gdb_command,
>>                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> ./guile/guile.c:487:32: warning: incompatible pointer types
>> initializing 'scm_t_subr' (aka 'void (*)()') with an expression of
>> type 'SCM (void)'
>>       [-Wincompatible-pointer-types]
>>   { "data-directory", 0, 0, 0, gdbscm_data_directory,
>>                                ^~~~~~~~~~~~~~~~~~~~~
>> ./guile/guile.c:491:38: warning: incompatible pointer types
>> initializing 'scm_t_subr' (aka 'void (*)()') with an expression of
>> type 'SCM (void)'
>>       [-Wincompatible-pointer-types]
>>   { "guile-data-directory", 0, 0, 0, gdbscm_guile_data_directory,
>>                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> These all are associated with the guile/scm-*.c files.
>>            Jack
>>
>
> Curious.  I see that on C++ mode too.
>
> I've attached my current patch to address this.  I think you'll
> just need to do something like this on top:
>
>  #else
>
>  /* In C, just do an implicit conversion.  */
>  -#define as_a_scm_t_subr(func) func
>  +#define as_a_scm_t_subr(func) (scm_t_subr) func
>
>  #endif
>
>
> Did guile change the type of scm_t_subr again?
> Here it says 'void (*)()' :
>
>> initializing 'scm_t_subr' (aka 'void (*)()') with an expression of
>> type 'SCM (SCM, SCM)'
>
> On my copy (guile 2.0, Fedora 20), in
> /usr/include/guile/2.0/libguile/__scm.h, I see:
>
> #ifdef BUILDING_LIBGUILE
> typedef SCM (* scm_t_subr) ();
> #else
> typedef void *scm_t_subr;
> #endif
>
> Thanks,
> Pedro Alves
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]