Simon South created THRIFT-3273: ----------------------------------- Summary: 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
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 does not try to use function pointers where data (void) pointers are expected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)