cppclean
cppclean copied to clipboard
AST Crash
Traceback (most recent call last):
File "/usr/bin/cppclean", line 145, in <module>
sys.exit(main())
File "/usr/bin/cppclean", line 138, in main
quiet=args.quiet):
File "/usr/lib/python3.6/site-packages/cpp/static_data.py", line 117, in run
_find_warnings(filename, lines, entire_ast, True) +
File "/usr/lib/python3.6/site-packages/cpp/static_data.py", line 67, in _find_warnings
find_static(node)
File "/usr/lib/python3.6/site-packages/cpp/static_data.py", line 48, in find_static
ast.ASTBuilder(iter(tokens), filename).generate())
File "/usr/lib/python3.6/site-packages/cpp/ast.py", line 651, in generate
result = self._generate_one(token)
File "/usr/lib/python3.6/site-packages/cpp/ast.py", line 726, in _generate_one
return self._get_method(temp_tokens, 0, None, False)
File "/usr/lib/python3.6/site-packages/cpp/ast.py", line 1092, in _get_method
(token, return_type_and_name, parameters))
File "/usr/lib/python3.6/site-packages/cpp/ast.py", line 1569, in assert_parse
raise ParseError(message)
cpp.ast.ParseError: (Token(',', 2622, 2623), [], [Token('"color"', 2614, 2621)])
To reproduce:
git clone https://github.com/OSSIA/libossia -b master --depth=1
cppclean libossia/OSSIA/ossia/editor/dataspace/dataspace_visitors.cpp
I get a similar error when running cppclean on the following project: https://github.com/arashpartow/exprtk/
command: cppclean .
Traceback (most recent call last):
File "/usr/local/bin/cppclean", line 145, in <module>
sys.exit(main())
File "/usr/local/bin/cppclean", line 138, in main
quiet=args.quiet):
File "/usr/local/lib/python2.7/dist-packages/cpp/static_data.py", line 117, in run
_find_warnings(filename, lines, entire_ast, True) +
File "/usr/local/lib/python2.7/dist-packages/cpp/static_data.py", line 69, in _find_warnings
_find_warnings(filename, lines, node.body, False)
File "/usr/local/lib/python2.7/dist-packages/cpp/static_data.py", line 69, in _find_warnings
_find_warnings(filename, lines, node.body, False)
File "/usr/local/lib/python2.7/dist-packages/cpp/static_data.py", line 67, in _find_warnings
find_static(node)
File "/usr/local/lib/python2.7/dist-packages/cpp/static_data.py", line 48, in find_static
ast.ASTBuilder(iter(tokens), filename).generate())
File "/usr/local/lib/python2.7/dist-packages/cpp/ast.py", line 647, in generate
if self.namespaces.pop():
IndexError: pop from empty list
I get this error running cppclean on this code snippet:
void do_something (int value) { static const struct { int an_int; int another_int; } a={1,2}; }
Removing the word static avoids the error.
The code compiles in g++ 12.