That looks like a problem with the C/C++ parser. It knows that t is a
struct, but claims it is a prototype. I think you are missing a change
from a short series of checkins ending on 2010-03-14 that deal with the
way compound tags (where you have a named struct, AND a declaration of a
variable t) are dealt with.

I'll take a wild guess that semantic-c.el was not imported right.
Eric
On 09/25/2010 07:28 PM, Chong Yidong wrote:

"Eric M. Ludlam"<address@hidden> writes:

You example works with the CEDET from the CEDET repository. There
have been no changes in that area since CEDET 1.0.
A good place to start is with M-x semantic-analyze-debug-assist RET
which will point at the problem area. Perhaps something has been
translated into Emacs incorrectly.

I probably goofed up somewhere during the merge. Here's the output of
semantic-analyze-debug-assist from the built-in CEDET, followed by the
output from stand-alone CEDET.
========= built-in CEDET =======================
Unable to find datatype for: "struct a t".
Declared type is: "struct a {}"
Raw data type is: ("a" type (:prototype t :type "struct") nil nil)
Semantic could not find this data type in any of its global tables.
Semantic locates datatypes through either the local scope, or the global
typecache.
Local Scope Information:
* Tag Class Constraint against SCOPE: (type)
* No known parents in current scope.
* No known symbols currently in scope.
* No known symbols declared locally.
Semantic creates and maintains a type cache for each buffer.
If the type is a global type, then it should appear in they typecache.
To examine the typecache, type:
M-x semanticdb-typecache-dump RET [ Do It ]
Current typecache Statistics:
1 types global in this file
0 types from includes.
If the datatype is not in the typecache, then your include
path may be incorrect.
Include Path Summary:
The system include path is:
/usr/include
/usr/local/include/
/usr/lib/gcc/i486-linux-gnu/4.4.3/include/
/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/
/usr/include/
Include Summary: /home/cyd/tmp/foo.c
foo.c contains 0 includes.
No unknown includes.
========= stand-along CEDET =======================
Cannot find symbol "" in datatype:
struct a {}
Semantic has found the datatype struct a {}
and its list of members. Semantic knows of some
possible completions for "".
Possible completions are:
int k
Known members of a:
int k
char b
When there are known members that would make good completion
candidates that are not in the completion list, then the most likely
cause is a type constraint. Semantic has determined that there is a
type constraint looking for the type "int {}".