[
https://issues.apache.org/jira/browse/THRIFT-3273?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14645042#comment-14645042
]
Jens Geyer commented on THRIFT-3273:
------------------------------------
While revieweing the changes in the compiler code I found some funny constants
in the code (they already existed before):
@line 1972: the number {{23}} is added to some string length - Illuminati,
anyone?
@line 2386 args_indent = indent() + string(53, ' '); - why {{53}} and not
{{42}}?
Maybe these numbers should be given some descriptive names on occasion.
> 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
>
> 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)