bug-global
[Top][All Lists]
Advanced

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

[PATCH] fix handling of enum typedef


From: Hideki IWAMOTO
Subject: [PATCH] fix handling of enum typedef
Date: Sat, 18 Feb 2012 11:54:09 +0900

C/C++ parser cannot handle typedef of the form of 
 typedef enum tag_name TYPEDEF_NAME;
correctly. 
The attached patch corrects this bug.

diffstat:
 libparser/C.c   |    7 +++++--
 libparser/Cpp.c |    7 +++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

=== example ===

$ cat -n b.c
     1  typedef enum { X } BAR, *BAZ;
     2  typedef enum foo { X } BAR, *BAZ;
     3  typedef enum foo BAR, *BAZ;

[ version 6.2 and current CVS version ]
$ global -f b.c
X                   1 b.c              typedef enum { X } BAR, *BAZ;
BAR                 1 b.c              typedef enum { X } BAR, *BAZ;
BAZ                 1 b.c              typedef enum { X } BAR, *BAZ;
foo                 2 b.c              typedef enum foo { X } BAR, *BAZ;
X                   2 b.c              typedef enum foo { X } BAR, *BAZ;
BAR                 2 b.c              typedef enum foo { X } BAR, *BAZ;
BAZ                 2 b.c              typedef enum foo { X } BAR, *BAZ;
$ global -frs b.c
foo                 3 b.c              typedef enum foo BAR, *BAZ;
BAR                 3 b.c              typedef enum foo BAR, *BAZ;
BAZ                 3 b.c              typedef enum foo BAR, *BAZ;

[ patched version ]
$ global -f b.c
X                   1 b.c              typedef enum { X } BAR, *BAZ;
BAR                 1 b.c              typedef enum { X } BAR, *BAZ;
BAZ                 1 b.c              typedef enum { X } BAR, *BAZ;
foo                 2 b.c              typedef enum foo { X } BAR, *BAZ;
X                   2 b.c              typedef enum foo { X } BAR, *BAZ;
BAR                 2 b.c              typedef enum foo { X } BAR, *BAZ;
BAZ                 2 b.c              typedef enum foo { X } BAR, *BAZ;
BAR                 3 b.c              typedef enum foo BAR, *BAZ;
BAZ                 3 b.c              typedef enum foo BAR, *BAZ;
$ global -frs b.c
foo                 3 b.c              typedef enum foo BAR, *BAZ;

-- 
Hideki IWAMOTO <address@hidden>

Attachment: 20120217-enum_typedef.patch
Description: Binary data


reply via email to

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