[Top][All Lists]
[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>
20120217-enum_typedef.patch
Description: Binary data
- [PATCH] fix handling of enum typedef,
Hideki IWAMOTO <=