wrong-type-argument when parsing CPP using symbols from bovine/gcc
Daniel Eklöf <[email protected]> Wed, 12 Aug 2015 14:21:52 +0200
| Newsgroups | gmane.emacs.semantic |
|---|---|
| Message-ID | <7202703.IPvSnSy1np@eklof> |
Hi,
I'm having some problems with #defines defined by gcc (and thus picked up by bovine/gcc?).
See version info below.
Parsing this .h-file
/* #undef __INT_MAX__ */
/* #define __INT_MAX__ 0x7fffffff */
#if __INT_MAX__ == 12345678
#endif
results in the following error:
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p "0x7fffffff")
hif-equal("0x7fffffff" 12345678)
eval((hif-equal (hif-lookup (quote __INT_MAX__)) 12345678))
semantic-c-do-lex-if()
semantic-c-lexer(1 97 nil nil)
semantic-lex(1 97 nil)
semantic-parse-region-default(1 97 nil nil nil)
semantic-parse-region-c-mode(1 97 nil nil nil)
semantic-parse-region(1 97)
semantic-fetch-tags()
byte-code("\212\212\300 \210*\301\207" [semantic-fetch-tags nil] 1)
semantic-idle-scheduler-refresh-tags()
byte-code(...)
semantic-idle-core-handler()
semantic-debug-idle-function()
call-interactively(semantic-debug-idle-function record nil)
command-execute(semantic-debug-idle-function record)
execute-extended-command(nil "semantic-debug-idle-function")
call-interactively(execute-extended-command nil nil)
command-execute(execute-extended-command)
It would seem like the value of __INT_MAX__ is, incorrectly, treated as a
string rather than a number? The relevant(?) output of cpp:
$ cpp -E -dM -x c++ < /dev/null|grep __INT_MAX__
#define __INT_MAX__ 0x7fffffff
Un-commenting the first two lines in the header file (#undef/#define)
makes the error go away.
Any ideas? Or suggestions on how to dig deeper?
Versions:
emacs 24.5.1
cedet 2.0 (the one bundled with emacs)
Requested File Loaded
Package Version Version Version
----------------------------------------------------------
cedet: 2.0 nil ok
eieio: 1.4 nil ok
semantic: 2.2 nil ok
srecode: 1.2 nil Not Loaded
ede: 1.2 nil ok
Thanks,
Daniel
------------------------------------------------------------------------------