[ 
https://issues.apache.org/jira/browse/THRIFT-1695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ben Craig updated THRIFT-1695:
------------------------------

    Attachment: platform_direct.patch
                libthrift_warning_purge.patch
                compiler_unused_locals.patch
                compiler_switch_default.patch
                compiler_is_dir.patch

libthrift_warning_purge is very similar in spirit to James K. Lowden's patch.  
On the plus side, I believe it handles the socket types better.  On the down 
side, it handles the cast overflows in a one-off fashion, instead of making a 
centralized macro.

compiler_is_dir, compiler_unused_locals, and platform_direct are all there to 
make the compiler build without warnings.

compiler_switch_default changes generated C++ code so that consumers of that 
code don't have warnings in their build.
                
> allow warning-free compilation in VS 2012 and GNU 4.6
> -----------------------------------------------------
>
>                 Key: THRIFT-1695
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1695
>             Project: Thrift
>          Issue Type: Improvement
>          Components: C++ - Library
>    Affects Versions: 0.9
>         Environment: Windows and any Unix
>            Reporter: James K. Lowden
>              Labels: patch
>             Fix For: 0.9
>
>         Attachments: compiler_is_dir.patch, compiler_switch_default.patch, 
> compiler_unused_locals.patch, libthrift_warning_purge.patch, 
> platform_direct.patch, thrift.warningfree.pax.gz
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> The patches allow the current trunk of Thrift C++ to
> build without warnings in Visual Studio and GNU gcc.  
> I introduce THRIFT_SAFE_CAST in Thrift.h, which tests narrowing
> conversions for fit.  Would-be overflows throw std::runtime_error.  
> Some functions have been modified or overloaded to allow size_t
> parameters.  SOCKET is dealt with intelligently.  
> IMO every public thrift function should have a form accepting normal
> types -- including e.g. short, int, long, and size_t -- and apply casts
> as necessary.  In particular size_t is important because std
> constainers have size() members that usually return something like
> size_t.  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to