bug-global
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gtags fail to index C++ exported class


From: Shigio YAMAGUCHI
Subject: Re: gtags fail to index C++ exported class
Date: Mon, 8 Dec 2014 07:46:08 +0900

I have committed the patch.
What you have done is a big improvement
rather than just a bug fix.
Thank you very much.

Shigio


2014-12-07 10:57 GMT+09:00 Jason Hood <address@hidden>:
On 6/12/2014 10:40, Shigio YAMAGUCHI wrote:

> I'm very sorry for my making many requests. But, ... just one more.

I'm very sorry you've had to.

> New parser ignores some symbols which are not definition.

Fixed, and referenced forward declarations and specs (this patch is based on the previous one).  There'll be a problem if you use relational or shift operators within a template instantiation, but I'm guessing that's unlikely.

C:\test>cat -n test.cc
     1  a() {
     2          struct menu *menu = NULL;
     3
     4          connect(configList, SIGNAL(menuSelected(struct menu *)),
     5                  SLOT(changeMenu(struct menu *)));
     6  }
     7
     8  struct S1 <int, SR1, SR2, float> {
     9    int m1;
    10  };
    11
    12  struct S2 : SR3 {
    13    float m2;
    14  };
    15
    16  template struct SR4<int>;
    17
    18  class {};
    19  class CR1;
    20  class EXTERN CR2;
    21  class C1 {};
    22  class IMPORT C2 {};
    23  class
    24  {};
    25  class
    26  C3 {};
    27  class
    28  C4
    29  {};
    30  class
    31  EXPORT
    32  C5
    33  {};

C:\test>gtags

C:\test>global -x .*
C1                 21 test.cc          class C1 {};
C2                 22 test.cc          class IMPORT C2 {};
C3                 26 test.cc          C3 {};
C4                 28 test.cc          C4
C5                 32 test.cc          C5
S1                  8 test.cc          struct S1 <int, SR1, SR2, float> {
S2                 12 test.cc          struct S2 : SR3 {
a                   1 test.cc          a() {

C:\test>global -xrs .*
CR1                19 test.cc          class CR1;
CR2                20 test.cc          class EXTERN CR2;
EXPORT             31 test.cc          EXPORT
EXTERN             20 test.cc          class EXTERN CR2;
IMPORT             22 test.cc          class IMPORT C2 {};
NULL                2 test.cc           struct menu *menu = NULL;
SIGNAL              4 test.cc           connect(configList, SIGNAL(menuSelected(struct menu *)),
SLOT                5 test.cc                   SLOT(changeMenu(struct menu *)));
SR1                 8 test.cc          struct S1 <int, SR1, SR2, float> {
SR2                 8 test.cc          struct S1 <int, SR1, SR2, float> {
SR3                12 test.cc          struct S2 : SR3 {
SR4                16 test.cc          template struct SR4<int>;
changeMenu          5 test.cc                   SLOT(changeMenu(struct menu *)));
configList          4 test.cc           connect(configList, SIGNAL(menuSelected(struct menu *)),
connect             4 test.cc           connect(configList, SIGNAL(menuSelected(struct menu *)),
m1                  9 test.cc            int m1;
m2                 13 test.cc            float m2;
menu                2 test.cc           struct menu *menu = NULL;
menu                4 test.cc           connect(configList, SIGNAL(menuSelected(struct menu *)),
menu                5 test.cc                   SLOT(changeMenu(struct menu *)));
menuSelected        4 test.cc           connect(configList, SIGNAL(menuSelected(struct menu *)),

--
Jason.



--
Shigio YAMAGUCHI <address@hidden>
PGP fingerprint: D1CB 0B89 B346 4AB6 5663  C4B6 3CA5 BBB3 57BE DDA3

reply via email to

[Prev in Thread] Current Thread [Next in Thread]