Synopsis - Issue Tracker

Bug153 Editing

Title Cpp parser crashes on boost headers
Created on 2008-12-13.00:52:39 by foxcub, last changed 2008-12-18.01:52:20 by stefan.
assigned to stefan priority normal
type behavior severity normal
components Cpp parser platform GNU/Linux
status open resolution
depends on superseded by
Add Comment:
File
CC List:? foxcub, stefan

Messages
Author: foxcub Date: 2008-12-13.00:52:37
Synopsis 0.10 (revision 1951) reports all sorts of errors if one runs it with Cxx parser on any header file that includes

    boost/utility.hpp or boost/serialization/serialization.hpp

Removing those includes, removes the errors. I've found this with Boost 1.36.
Author: stefan Date: 2008-12-18.01:10:45
I had a look into this issue, and it turns out this is not an issue with the C++ parser, but a known problem with the Cpp (ucpp) preprocessor.

My attempt to solve the issue has been to write a new preprocessor, based on boost.wave. Unfortunately, it turns out boost.wave has a serious bug preventing Synopsis from using it for now. (Hartmut Kaiser is aware of this issue.)

Thanks,
Author: foxcub Date: 2008-12-18.01:17:18
I have no idea about Synopsis' internals, but I'm fairly certain that when I try the same input files with Cpp parser rather than Cxx parser, Synopsis doesn't crash. It doesn't produce any meaningful output, but it doesn't crash either.
Author: stefan Date: 2008-12-18.01:52:19
Dmitriy via synopsis issue tracker wrote:
> Dmitriy <dev@foxcub.org> added the comment:
> 
> I have no idea about Synopsis' internals, but I'm fairly certain that when I try the same input files with Cpp parser rather than Cxx parser, Synopsis doesn't crash. It doesn't produce any meaningful output, but it doesn't crash either.

That's right: it just doesn't expand certain macros, which then cause 
the C++ parser to fall over. :-)

(Try 'synopsis -p Cpp -Wp,--cpp_output=test.ii ...' instead of 'synopsis 
-p C++ ...', and then search test.ii for BOOST_PP_ENUM_PARAMS_M. You 
will see that the preprocessed file is in fact not valid C++.)

Regards,
		Stefan

-- 

       ...ich hab' noch einen Koffer in Berlin...
History
Date User Action Args
2008-12-13 00:52:44foxcubcreate
2008-12-18 01:10:57stefansetstatus: new
title: Cxx parser crashes on boost headers
nosy: + stefan
messages: + msg735
assignedto: (no value)
bug_type: crash
components: + Cpp parser, - C++ parser
2008-12-18 01:17:22foxcubsetmessages: + msg736
2008-12-18 01:52:20stefansetmessages: + msg737