global c++ parser misses C++11 type alias (using)

Evghenii Gaburov <[email protected]>
Newsgroups gmane.comp.gnu.global.bugs
Message-ID <[email protected]>
OS: Linux Ubuntu 14.04LTS & Mac OS X 10.10.2
GLOBAL: v6.5, built from source via configure && make && make install
COMMAND : gtags -v
EXPECT: detect C++11 type alias (using A = B;)
RESULT: C++11 type alias is not tagged

Here is the reproducer:
—————————————
$ cat > cvt.cpp
using my_type1 = double;
typedef float my_type2;

my_type2 cvt(my_type1 x)
{
   return static_cast<my_type2>(x);
}
^C
$ gtags --version
gtags (GNU GLOBAL) 6.5
Copyright (c) 2015 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ gtags -v
[Wed Jul 08 13:11:29 CEST 2015] Gtags started.
[Wed Jul 08 13:11:29 CEST 2015] Creating 'GTAGS' and 'GRTAGS'.
 [1] extracting tags of cvt.cpp
[Wed Jul 08 13:11:29 CEST 2015] Done.
$ global -x my_type1
$ global -x my_type2
my_type2            2 cvt.cpp          typedef float my_type2;
$ 

Attached is a simple patch [by no means complete] that seems to fix the problem:
—————————————————
$ patch -p1 < global-6.5-using.patch 
patching file libparser/Cpp.c
$ make && make install
$ rm -rf G*
$ gtags -v
[Wed Jul 08 13:14:09 CEST 2015] Gtags started.
[Wed Jul 08 13:14:09 CEST 2015] Creating 'GTAGS' and 'GRTAGS'.
 [1] extracting tags of cvt.cpp
[Wed Jul 08 13:14:09 CEST 2015] Done.
$ global -x my_type1
my_type1            1 cvt.cpp          using my_type1 = double;
$ global -x my_type2
my_type2            2 cvt.cpp          typedef float my_type2;


Cheers,
  Evghenii

_______________________________________________
Bug-global mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-global
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.