[
https://issues.apache.org/jira/browse/THRIFT-2560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14014588#comment-14014588
]
Randy Abernethy commented on THRIFT-2560:
-----------------------------------------
I agree, it should be a warning everywhere. It is legal code though. The string
literal is squirreled away in a data segment by the compiler and the address
goes in its place. C++ allows you to do address arithmetic so that is what it
does when it sees: const char * + int. Since throw will accept anything, no
problem throwing an address.
In my experience Clang has by far the best warnings in the business. Would be
great if we could build on Clang as a target.
> Thrift compiler generator tries to concat ints with strings using +
> -------------------------------------------------------------------
>
> Key: THRIFT-2560
> URL: https://issues.apache.org/jira/browse/THRIFT-2560
> Project: Thrift
> Issue Type: Bug
> Components: C# - Compiler, Compiler (General), Delphi - Compiler
> Affects Versions: 0.9.1
> Environment: all
> Reporter: Jens Geyer
> Assignee: Jens Geyer
> Priority: Minor
> Fix For: 0.9.2
>
> Attachments:
> THRIFT-2560-Thrift-compiler-generator-tries-to-conca.patch
>
>
> As reported in THRIFT-2558, at several places in the Thrift language code
> generators an attenpt is made to throw a string by adding a string literal
> ("") and an int (t_base_type::t_base) in several places:
> {code}
> throw "compiler error: no C# name for base type " + tbase->get_base();
> {code}
> Additionally, at several places a wrong language name in these eror messages
> is used, probably due to the fact that most code generators are implemented
> re-using another, similar language's code generator.
--
This message was sent by Atlassian JIRA
(v6.2#6252)