semanticdb typecache error

Vyacheslav Gonakhchyan <[email protected]> Sat, 3 Sep 2016 10:56:18 +0300
Newsgroups gmane.emacs.semantic
Message-ID <[email protected]>
Hi,

Culprit file has declaration:
typedef PRInt64 PRTime;

When semanticdb file is freshly created:
("PRTime" type
                (:typedef ("PRInt64" type (:type "class") nil nil)
                 :type "typedef")
                 nil [3439 3462])

After some time it is transformed into:
((((0) (0) "PRTime")) type (:superclasses ("PRInt64" type (:type 
"class") nil nil) :type "typedef") nil [3439 3462])

This makes semantic spew errors like this one when doing idle work:
Debugger entered--Lisp error: (wrong-type-argument stringp (((0) (0) 
"PRUnichar")))
   semantic-tag-lessp-name-then-type(((((0) (0) "PRUnichar")) type 
(:superclasses
     #[(a b) "\302   \"\207" [a b semantic-tag-lessp-name-then-type] 
3](((((0) (0
     sort((((((0) (0) "PRUword")) type (:superclasses ("unsigned long") 
:type "type
   semantic-sort-tags-by-name-then-type-increasing((((((0) (0) 
"PRUword")) type (
   semanticdb-typecache-merge-streams((((((0) (0) "PRUword")) type 
(:superclasses
   semanticdb-table([object semanticdb-table "prtypes.h" [object 
semanticdb-proje
   apply(semanticdb-table [object semanticdb-table "prtypes.h" [object 
semanticdb
   eieio-generic-call-primary-only(semanticdb-typecache-file-tags 
([object semant
   semanticdb-typecache-file-tags([object semanticdb-table "prtypes.h" 
[object se
   semanticdb-table([object semanticdb-table "prtime.h" [object 
semanticdb-projec
   apply(semanticdb-table [object semanticdb-table "prtime.h" [object 
semanticdb-
   eieio-generic-call-primary-only(semanticdb-typecache-include-tags 
([object sem
   semanticdb-typecache-include-tags([object semanticdb-table "prtime.h" 
[object
   semanticdb-typecache-refresh-for-buffer(#<buffer prtime.h>)
   semantic-idle-work-for-one-buffer(#<buffer prtime.h>)
   byte-code("\306p\307p\307\306\310\311\312 \"\"\"\306\211 ;\205
   semantic-idle-work-core-handler()
   semantic-debug-idle-work-function()
   call-interactively(semantic-debug-idle-work-function record nil)
   command-execute(semantic-debug-idle-work-function record)
   helm-M-x(nil "semantic-debug-idle-work-function")
   call-interactively(helm-M-x nil nil)
   command-execute(helm-M-x)

This time it is for PRUnichar but you get the picture. How to solve this?

Files to reproduce:
https://dl.dropboxusercontent.com/u/36526089/nspr%21semantic.cache
https://dl.dropboxusercontent.com/u/36526089/prtime.h
https://dl.dropboxusercontent.com/u/36526089/semantic_backtrace.txt

System:
Linux tenebrae 4.7.2-1-ARCH,
GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.20.6),
CEDET Version:    2.0
               Requested    File        Loaded
   Package        Version        Version        Version
   ----------------------------------------------------------
   cedet:        2.0        ok        ok
   eieio:        1.4        nil        ok
   semantic:        2.2        ok        ok
   srecode:        1.2        ok        ok
   ede:            1.2        2.0        2.0
   cogre:        1.2        ok        ok
   cedet-contrib:    1.2        nil        Not Loaded

Regards,
Vyacheslav


------------------------------------------------------------------------------