Review Request: "noexcept" keyword parsing

Ivan Shapovalov intelfx100 at gmail.com
Sat Apr 7 11:53:58 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104498/
-----------------------------------------------------------

(Updated April 7, 2012, 11:53 a.m.)


Review request for KDevelop.


Changes
-------

Fixed preprocessor bug when numeric values ending with "L" failed to parse correctly.


Description (updated)
-------

Adds initial parser support for "noexcept" and "noexcept(...)" declaration specifiers in KDevelop C++ parser.
This is particularly useful with new GCC toolchain version 4.7.0, where these keywords are frequently used throughout STL.

UPDATE: Also, fixed preprocessor bug when numeric values ending with "L" failed to parse correctly. This is also related to GCC 4.7.0 toolchain support
since there exist constructions like "#if __cplusplus", where __cplusplus is defined to 201103L.


This addresses bug 297604.
    http://bugs.kde.org/show_bug.cgi?id=297604


Diffs (updated)
-----

  languages/cpp/parser/ast.h 46ecac7 
  languages/cpp/parser/codegenerator.cpp 962fe5b 
  languages/cpp/parser/default_visitor.cpp 174e5d9 
  languages/cpp/parser/lexer.cpp 0cdad1e 
  languages/cpp/parser/parser.cpp 50c09a8 
  languages/cpp/parser/rpp/pp-engine.cpp 2d0e9ea 
  languages/cpp/parser/tokens.h 3e73330 
  languages/cpp/parser/tokens.cpp 3d8c05f 

Diff: http://git.reviewboard.kde.org/r/104498/diff/


Testing
-------

A test file with intensive STL usage is uploaded.

Steps to reproduce:
1) Open the test file in KDevelop 4.3.60 compiled from branch 'master' (commit 8c73677)
See that "std::pair<>" is resolved as function with no return type; "std::map<>" and "std::vector<>" are not highlighted at all.

2) Apply patches, rebuild KDevelop and clear your current DUChain cache
# rm -rf ~/.kdevduchain

3) Reopen the test file
See that all STL typedefs and method calls are parsed and highlighted correctly.


Thanks,

Ivan Shapovalov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120407/37e623f0/attachment.html>


More information about the KDevelop-devel mailing list