[ https://issues.apache.org/jira/browse/THRIFT-3273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer resolved THRIFT-3273. -------------------------------- Resolution: Fixed Fix Version/s: 0.9.3 Committed, many thanks. > c_glib: Generated code tries to convert between function and void pointers > -------------------------------------------------------------------------- > > Key: THRIFT-3273 > URL: https://issues.apache.org/jira/browse/THRIFT-3273 > Project: Thrift > Issue Type: Bug > Components: C glib - Compiler > Affects Versions: 0.9.3 > Environment: Fedora 22 (gcc 5.1.1) on x86_64 > Reporter: Simon South > Assignee: Simon South > Priority: Minor > Labels: c_glib, compiler > Fix For: 0.9.3 > > > In code generated by the compiler for C (GLib), a service's processor class > incorrectly treats function and void pointers as interchangeable: When adding > to the {{process_map}} hash table it supplies a pointer to a function, while > {{g_hash_table_insert}} expects a {{gpointer}} (effectively {{void *}}) to a > data object. > ISO C explicitly forbids this conversion as it is not compatible with all > architectures, and with its {{-pedantic}} option enabled gcc will generate > warnings like > {code} > gen-c_glib/calculator.c: In function 'calculator_processor_init': > gen-c_glib/calculator.c:1231:24: warning: ISO C forbids passing argument 3 of > 'g_hash_table_insert' between function pointer and 'void *' [-Wpedantic] > calculator_processor_process_ping); > {code} > The compiler needs to be fixed so the code it generates does not try to use > function pointers where data (void) pointers are expected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)