emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master f083625: Teach etags to process ENUM_BF correctly


From: Eli Zaretskii
Subject: [Emacs-diffs] master f083625: Teach etags to process ENUM_BF correctly
Date: Sun, 12 Mar 2017 11:38:45 -0400 (EDT)

branch: master
commit f08362594e2889cb6f7c9b260bda48f518575765
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Teach etags to process ENUM_BF correctly
    
    * lib-src/etags.c (sym_type): New enumeration value st_C_enum_bf.
    (hash): Regenerated values for asso_values[] array.
    (in_word_set): Update values of TOTAL_KEYWORDS and
    MAX_HASH_VALUE.  Add "ENUM_BF" to the wordlist[] array.
    (in_enum_bf): New file-global variable.
    (consider_token): Skip ENUM_BF if not in a macro definition.
    (C_entries): Reset the in_enum_bf flag when past its closing
    parenthesis.
    
    * test/manual/etags/ETAGS.good_1:
    * test/manual/etags/ETAGS.good_2:
    * test/manual/etags/ETAGS.good_3:
    * test/manual/etags/ETAGS.good_4:
    * test/manual/etags/ETAGS.good_5:
    * test/manual/etags/ETAGS.good_6:
    * test/manual/etags/CTAGS.good: Adapt to changes in etags.
---
 lib-src/etags.c                | 93 +++++++++++++++++++++++++++---------------
 test/manual/etags/CTAGS.good   | 74 +++++++++++++++++++++++++++------
 test/manual/etags/ETAGS.good_1 | 16 +-------
 test/manual/etags/ETAGS.good_2 | 19 +++------
 test/manual/etags/ETAGS.good_3 | 76 +++++++++++++++++++++++++++-------
 test/manual/etags/ETAGS.good_4 | 16 +-------
 test/manual/etags/ETAGS.good_5 | 79 ++++++++++++++++++++++++++++-------
 test/manual/etags/ETAGS.good_6 | 79 ++++++++++++++++++++++++++++-------
 8 files changed, 321 insertions(+), 131 deletions(-)

diff --git a/lib-src/etags.c b/lib-src/etags.c
index 39b90cc..015cbbe 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -2458,7 +2458,7 @@ enum sym_type
   st_none,
   st_C_objprot, st_C_objimpl, st_C_objend,
   st_C_gnumacro,
-  st_C_ignore, st_C_attribute,
+  st_C_ignore, st_C_attribute, st_C_enum_bf,
   st_C_javastruct,
   st_C_operator,
   st_C_class, st_C_template,
@@ -2507,6 +2507,7 @@ DEFUN,            0,                      st_C_gnumacro
 SYSCALL,       0,                      st_C_gnumacro
 ENTRY,         0,                      st_C_gnumacro
 PSEUDO,                0,                      st_C_gnumacro
+ENUM_BF,       0,                      st_C_enum_bf
 # These are defined inside C functions, so currently they are not met.
 # EXFUN used in glibc, DEFVAR_* in emacs.
 #EXFUN,                0,                      st_C_gnumacro
@@ -2514,46 +2515,48 @@ PSEUDO,         0,                      st_C_gnumacro
 %]
 and replace lines between %< and %> with its output, then:
  - remove the #if characterset check
- - make in_word_set static and not inline. */
+ - remove any #line directives
+ - make in_word_set static and not inline
+ - remove any 'register' qualifications from variable decls. */
 /*%<*/
 /* C code produced by gperf version 3.0.1 */
-/* Command-line: gperf -m 5  */
+/* Command-line: gperf -m 5 */
 /* Computed positions: -k'2-3' */
 
 struct C_stab_entry { const char *name; int c_ext; enum sym_type type; };
-/* maximum key range = 33, duplicates = 0 */
+/* maximum key range = 34, duplicates = 0 */
 
 static int
 hash (const char *str, int len)
 {
   static char const asso_values[] =
     {
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35,  3,
-      26, 35, 35, 35, 35, 35, 35, 35, 27, 35,
-      35, 35, 35, 24,  0, 35, 35, 35, 35,  0,
-      35, 35, 35, 35, 35,  1, 35, 16, 35,  6,
-      23,  0,  0, 35, 22,  0, 35, 35,  5,  0,
-       0, 15,  1, 35,  6, 35,  8, 19, 35, 16,
-       4,  5, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-      35, 35, 35, 35, 35, 35
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36,  3,
+      27, 36, 36, 36, 36, 36, 36, 36, 26, 36,
+      36, 36, 36, 25,  0,  0, 36, 36, 36,  0,
+      36, 36, 36, 36, 36,  1, 36, 16, 36,  6,
+      23,  0,  0, 36, 22,  0, 36, 36,  5,  0,
+       0, 15,  1, 36,  6, 36,  8, 19, 36, 16,
+       4,  5, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36
     };
   int hval = len;
 
@@ -2574,11 +2577,11 @@ in_word_set (register const char *str, register 
unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 33,
+      TOTAL_KEYWORDS = 34,
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 15,
       MIN_HASH_VALUE = 2,
-      MAX_HASH_VALUE = 34
+      MAX_HASH_VALUE = 35
     };
 
   static struct C_stab_entry wordlist[] =
@@ -2613,8 +2616,9 @@ in_word_set (register const char *str, register unsigned 
int len)
       {"undef",                0,                      st_C_define},
       {"package",      (C_JAVA & ~C_PLPL),     st_C_ignore},
       {"__attribute__",        0,                      st_C_attribute},
-      {"SYSCALL",      0,                      st_C_gnumacro},
       {"ENTRY",                0,                      st_C_gnumacro},
+      {"SYSCALL",      0,                      st_C_gnumacro},
+      {"ENUM_BF",      0,                      st_C_enum_bf},
       {"PSEUDO",               0,                      st_C_gnumacro},
       {"DEFUN",                0,                      st_C_gnumacro}
     };
@@ -2651,6 +2655,11 @@ C_symtype (char *str, int len, int c_ext)
  */
 static bool inattribute;       /* looking at an __attribute__ construct */
 
+/* Ignoring ENUM_BF (type)
+ *
+ */
+static bool in_enum_bf;                /* inside parentheses following ENUM_BF 
*/
+
 /*
  * C functions and variables are recognized using a simple
  * finite automaton.  fvdef is its state variable.
@@ -2891,6 +2900,15 @@ consider_token (char *str, int len, int c, int *c_extp,
       return false;
      }
 
+  /*
+   * Skip ENUM_BF
+   */
+  if (toktype == st_C_enum_bf && definedef == dnone)
+    {
+      in_enum_bf = true;
+      return false;
+    }
+
    /*
     * Advance the definedef state machine.
     */
@@ -3496,7 +3514,8 @@ C_entries (int c_ext, FILE *inf)
          && templatelev == 0
          && (definedef != dnone
              || structdef != scolonseen)
-         && !inattribute)
+         && !inattribute
+         && !in_enum_bf)
        {
          if (midtoken)
            {
@@ -3959,6 +3978,12 @@ C_entries (int c_ext, FILE *inf)
                inattribute = false;
              break;
            }
+         if (in_enum_bf)
+           {
+             if (--parlev == 0)
+               in_enum_bf = false;
+             break;
+           }
          if (definedef != dnone)
            break;
          if (objdef == ocatseen && parlev == 1)
diff --git a/test/manual/etags/CTAGS.good b/test/manual/etags/CTAGS.good
index 380bd9b..13bb37c 100644
--- a/test/manual/etags/CTAGS.good
+++ b/test/manual/etags/CTAGS.good
@@ -340,6 +340,13 @@ CHARTAB_SIZE_BITS_1        c-src/emacs/src/lisp.h  1568
 CHARTAB_SIZE_BITS_2    c-src/emacs/src/lisp.h  1569
 CHARTAB_SIZE_BITS_3    c-src/emacs/src/lisp.h  1570
 CHAR_ALT       c-src/emacs/src/lisp.h  2445
+CHAR_BIT       c-src/emacs/src/lisp.h  2957
+CHAR_BIT       c-src/emacs/src/lisp.h  2959
+CHAR_BIT       c-src/emacs/src/lisp.h  2964
+CHAR_BIT       c-src/emacs/src/lisp.h  2969
+CHAR_BIT       c-src/emacs/src/lisp.h  2974
+CHAR_BIT       c-src/emacs/src/lisp.h  2978
+CHAR_BIT       c-src/emacs/src/lisp.h  2983
 CHAR_CLASS_MAX_LENGTH  c-src/emacs/src/regex.h 593
 CHAR_CLASS_MAX_LENGTH  c-src/emacs/src/regex.h 597
 CHAR_CLASS_MAX_LENGTH  c-src/emacs/src/regex.h 605
@@ -532,19 +539,6 @@ EMACS_UINT c-src/emacs/src/lisp.h  104
 ENTRY  c-src/sysdep.h  /^#define       ENTRY(name)                             
                              \\$/
 ENUM_BF        c-src/emacs/src/lisp.h  /^#define ENUM_BF(TYPE) unsigned int$/
 ENUM_BF        c-src/emacs/src/lisp.h  /^#define ENUM_BF(TYPE) enum TYPE$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^  ENUM_BF (symbol_redirect) redirect 
: 3;$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^  ENUM_BF (Lisp_Misc_Type) type : 16; 
        \/* = Lisp_M/
-ENUM_BF        c-src/emacs/src/lisp.h  /^  ENUM_BF (Lisp_Misc_Type) type : 16; 
        \/* = Lisp_M/
-ENUM_BF        c-src/emacs/src/lisp.h  /^    ENUM_BF (Lisp_Misc_Type) type : 
16;       \/* = Lisp_/
-ENUM_BF        c-src/emacs/src/lisp.h  /^    ENUM_BF (Lisp_Misc_Type) type : 
16;       \/* = Lisp_/
-ENUM_BF        c-src/emacs/src/lisp.h  /^    ENUM_BF (Lisp_Misc_Type) type : 
16;       \/* = Lisp_/
-ENUM_BF        c-src/emacs/src/lisp.h  /^    ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
-ENUM_BF        c-src/emacs/src/lisp.h  /^      ENUM_BF (specbind_tag) kind : 
CHAR_BIT;$/
 EQ     c-src/emacs/src/lisp.h  /^# define EQ(x, y) lisp_h_EQ (x, y)$/
 EQUAL  y-src/cccp.c    12
 ERLSRC make-src/Makefile       /^ERLSRC=gs_dialog.erl lines.erl lists.erl$/
@@ -1288,6 +1282,8 @@ SAVE_OBJECT       c-src/emacs/src/lisp.h  2051
 SAVE_POINTER   c-src/emacs/src/lisp.h  2050
 SAVE_SLOT_BITS c-src/emacs/src/lisp.h  2055
 SAVE_TYPE_BITS c-src/emacs/src/lisp.h  2062
+SAVE_TYPE_BITS c-src/emacs/src/lisp.h  2114
+SAVE_TYPE_BITS c-src/emacs/src/lisp.h  2123
 SAVE_TYPE_FUNCPTR_PTR_OBJ      c-src/emacs/src/lisp.h  2076
 SAVE_TYPE_INT_INT      c-src/emacs/src/lisp.h  2066
 SAVE_TYPE_INT_INT_INT  c-src/emacs/src/lisp.h  2067
@@ -1323,6 +1319,7 @@ SINGLE_LETTER_MOD c-src/emacs/src/keyboard.c      
/^#define SINGLE_LETTER_MOD(BIT)
 SINGLE_LETTER_MOD      c-src/emacs/src/keyboard.c      6763
 SIZEFORMAT     objc-src/PackInsp.m     57
 SPECPDL_BACKTRACE      c-src/emacs/src/lisp.h  2948
+SPECPDL_INDEX  c-src/emacs/src/lisp.h  /^SPECPDL_INDEX (void)$/
 SPECPDL_LET    c-src/emacs/src/lisp.h  2949
 SPECPDL_LET_DEFAULT    c-src/emacs/src/lisp.h  2952
 SPECPDL_LET_LOCAL      c-src/emacs/src/lisp.h  2951
@@ -2516,10 +2513,14 @@ appendix_toc    perl-src/htlmify-cystic 16
 apply_modifiers        c-src/emacs/src/keyboard.c      /^apply_modifiers (int 
modifiers, Lisp_Object base)$/
 apply_modifiers_uncached       c-src/emacs/src/keyboard.c      
/^apply_modifiers_uncached (int modifiers, char *bas/
 aref_addr      c-src/emacs/src/lisp.h  /^aref_addr (Lisp_Object array, 
ptrdiff_t idx)$/
+arg    c-src/emacs/src/lisp.h  2961
+arg    c-src/emacs/src/lisp.h  2966
+arg    c-src/emacs/src/lisp.h  2971
 arg    c-src/h.h       13
 arg_type       c-src/etags.c   250
 arglist        y-src/cccp.y    41
 argno  y-src/cccp.y    45
+args   c-src/emacs/src/lisp.h  2986
 args   c-src/h.h       30
 argsindent     tex-src/texinfo.tex     /^\\newskip\\defargsindent 
\\defargsindent=50pt$/
 argsindent     tex-src/texinfo.tex     /^\\dimen1=\\hsize \\advance \\dimen1 
by -\\defargsindent/
@@ -2615,9 +2616,11 @@ bool_vector_words        c-src/emacs/src/lisp.h  
/^bool_vector_words (EMACS_INT size)$/
 boolvar        c-src/emacs/src/lisp.h  2287
 bracelev       c-src/etags.c   2520
 bsp_DevId      c-src/h.h       25
+bt     c-src/emacs/src/lisp.h  2988
 btowc  c-src/emacs/src/regex.h /^# define btowc(c) c$/
 buffer c-src/etags.c   238
 buffer c-src/emacs/src/regex.h 341
+buffer c-src/emacs/src/lisp.h  2000
 buffer c-src/h.h       119
 build  prol-src/natded.prolog  /^build([],Left,Left).$/
 build_pure_c_string    c-src/emacs/src/lisp.h  /^build_pure_c_string (const 
char *str)$/
@@ -2631,6 +2634,7 @@ button_down_time  c-src/emacs/src/keyboard.c      5218
 byte_stack     c-src/emacs/src/lisp.h  3049
 bytecode_dest  c-src/emacs/src/lisp.h  3037
 bytecode_top   c-src/emacs/src/lisp.h  3036
+bytepos        c-src/emacs/src/lisp.h  2016
 bytes_free     c-src/emacs/src/gmalloc.c       314
 bytes_total    c-src/emacs/src/gmalloc.c       310
 bytes_used     c-src/emacs/src/gmalloc.c       312
@@ -2659,9 +2663,11 @@ cdr      c-src/emacs/src/lisp.h  1159
 cell   y-src/parse.y   279
 cgrep  html-src/software.html  /^cgrep$/
 chain  c-src/emacs/src/lisp.h  1162
+chain  c-src/emacs/src/lisp.h  2206
 chain  c-src/emacs/src/lisp.h  2396
 char_bits      c-src/emacs/src/lisp.h  2443
 char_table_specials    c-src/emacs/src/lisp.h  1692
+charpos        c-src/emacs/src/lisp.h  2011
 charset_unibyte        c-src/emacs/src/regex.h 410
 chartonmstr    pas-src/common.pas      /^function chartonmstr; (*($/
 checkQuotation php-src/lce_functions.php       /^      function 
checkQuotation($str)$/
@@ -2713,6 +2719,7 @@ conalgorithm      html-src/algrthms.html  
/^Convolutionally$/
 concat c-src/etags.c   /^concat (const char *s1, const char *s2, const char/
 concatenatenamestrings pas-src/common.pas      /^function 
concatenatenamestrings; (*($/
 consider_token c-src/etags.c   /^consider_token (char *str, int len, int c, 
int *c_/
+constant       c-src/emacs/src/lisp.h  668
 constant       c-src/h.h       29
 constant       y-src/cccp.y    112
 constant_args  c-src/h.h       27
@@ -2754,7 +2761,9 @@ data      c-src/emacs/src/lisp.h  2129
 data   c-src/emacs/src/lisp.h  2395
 ddefineseen    c-src/etags.c   2462
 debian-bug     html-src/software.html  /^debian-bug.el$/
+debug_on_exit  c-src/emacs/src/lisp.h  2984
 decimalKey     objcpp-src/SimpleCalc.M /^- decimalKey:sender$/
+declared_special       c-src/emacs/src/lisp.h  676
 decode_timer   c-src/emacs/src/keyboard.c      /^decode_timer (Lisp_Object 
timer, struct timespec */
 def    c-src/h.h       35
 def    c-src/h.h       38
@@ -2852,6 +2861,7 @@ egetenv   c-src/emacs/src/lisp.h  /^egetenv (const char 
*var)$/
 emacs_abort    c-src/emacs/src/lisp.h  /^extern _Noreturn void emacs_abort 
(void) NO_INLINE/
 end    c-src/emacs/src/regex.h 432
 end    c-src/emacs/src/keyboard.c      8753
+end    c-src/emacs/src/lisp.h  2039
 endtoken       c-src/etags.c   /^#define       endtoken(c)     (_etk[CHAR 
(c)]) \/* c ends tok/
 enter_critical_section c-src/h.h       116
 entry  perl-src/htlmify-cystic 218
@@ -3053,6 +3063,10 @@ free_var prol-src/natded.prolog  
/^free_var(var(V),var(V)).$/
 freehook       c-src/emacs/src/gmalloc.c       /^freehook (void *ptr)$/
 fresh_vars     prol-src/natded.prolog  /^fresh_vars(var(V),var(V)).$/
 fstartlist     c-src/etags.c   2413
+func   c-src/emacs/src/lisp.h  /^      void (*func) (Lisp_Object);$/
+func   c-src/emacs/src/lisp.h  /^      void (*func) (void *);$/
+func   c-src/emacs/src/lisp.h  /^      void (*func) (int);$/
+func   c-src/emacs/src/lisp.h  /^      void (*func) (void);$/
 func1  c.c     /^int func1$/
 func2  c.c     /^int func2 (a,b$/
 func_key_syms  c-src/emacs/src/keyboard.c      4626
@@ -3063,6 +3077,7 @@ function  c-src/etags.c   194
 function       c-src/emacs/src/lisp.h  694
 function       c-src/emacs/src/lisp.h  1685
 function       c-src/emacs/src/lisp.h  2197
+function       c-src/emacs/src/lisp.h  2985
 functionp      c-src/emacs/src/lisp.h  /^functionp (Lisp_Object object)$/
 fval   forth-src/test-forth.fth        /^fconst fvalue fval$/
 fvar   forth-src/test-forth.fth        /^fvariable fvar$/
@@ -3078,6 +3093,11 @@ gather   pyt-src/server.py       /^    def 
gather(self):$/
 gather pyt-src/server.py       /^    def gather(self):$/
 gc_aset        c-src/emacs/src/lisp.h  /^gc_aset (Lisp_Object array, ptrdiff_t 
idx, Lisp_Ob/
 gcmarkbit      c-src/emacs/src/lisp.h  656
+gcmarkbit      c-src/emacs/src/lisp.h  1974
+gcmarkbit      c-src/emacs/src/lisp.h  1981
+gcmarkbit      c-src/emacs/src/lisp.h  2035
+gcmarkbit      c-src/emacs/src/lisp.h  2113
+gcmarkbit      c-src/emacs/src/lisp.h  2204
 gcpro  c-src/emacs/src/lisp.h  3042
 gcpro  c-src/emacs/src/lisp.h  3132
 gen_help_event c-src/emacs/src/keyboard.c      /^gen_help_event (Lisp_Object 
help, Lisp_Object fram/
@@ -3202,6 +3222,7 @@ input_pending     c-src/emacs/src/keyboard.c      239
 input_polling_used     c-src/emacs/src/keyboard.c      /^input_polling_used 
(void)$/
 input_was_pending      c-src/emacs/src/keyboard.c      287
 insert-abbrev-table-description        c-src/abbrev.c  /^DEFUN 
("insert-abbrev-table-description", Finsert_/
+insertion_type c-src/emacs/src/lisp.h  1989
 insertname     pas-src/common.pas      /^function insertname;(*($/
 instance_method        ruby-src/test.rb        /^        def instance_method$/
 instance_method_equals=        ruby-src/test.rb        /^        def 
instance_method_equals=$/
@@ -3221,6 +3242,7 @@ interface_locate  c-src/c.c       
/^interface_locate(void)$/
 intern c-src/emacs/src/lisp.h  /^intern (const char *str)$/
 intern_c_string        c-src/emacs/src/lisp.h  /^intern_c_string (const char 
*str)$/
 internal_last_event_frame      c-src/emacs/src/keyboard.c      228
+interned       c-src/emacs/src/lisp.h  672
 interpreters   c-src/etags.c   197
 interrupt_input        c-src/emacs/src/keyboard.c      328
 interrupt_input_blocked        c-src/emacs/src/keyboard.c      76
@@ -3330,6 +3352,7 @@ len       c-src/etags.c   237
 length c-src/etags.c   2495
 length y-src/cccp.y    44
 length y-src/cccp.y    113
+let    c-src/emacs/src/lisp.h  2981
 letter tex-src/texinfo.tex     /^\\chapmacro {#1}{Appendix \\appendixletter}%$/
 letter tex-src/texinfo.tex     /^  {#1}{Appendix 
\\appendixletter}{\\noexpand\\folio}}/
 letter tex-src/texinfo.tex     /^\\gdef\\thissection{#1}\\secheading 
{#1}{\\appendixlet/
@@ -3534,6 +3557,7 @@ name      c-src/etags.c   218
 name   c-src/etags.c   261
 name   c-src/etags.c   2271
 name   c-src/emacs/src/keyboard.c      7241
+name   c-src/emacs/src/lisp.h  682
 name   c-src/emacs/src/lisp.h  1808
 name   c-src/emacs/src/lisp.h  3144
 name   perl-src/htlmify-cystic 357
@@ -3558,6 +3582,8 @@ name      y-src/cccp.y    113
 name   y-src/cccp.y    113
 named  c-src/etags.c   2505
 namestringequal        pas-src/common.pas      /^function 
namestringequal;(*(var Name1,Name2 : Name/
+nargs  c-src/emacs/src/lisp.h  2987
+need_adjustment        c-src/emacs/src/lisp.h  1986
 neighbors      cp-src/clheir.hpp       59
 nelem  cp-src/Range.h  /^  int nelem (void) const { return rng_nelem; }$/
 nestlev        c-src/etags.c   2525
@@ -3576,6 +3602,8 @@ next      c-src/emacs/src/keyboard.c      861
 next   c-src/emacs/src/keyboard.c      7246
 next   c-src/emacs/src/lisp.h  700
 next   c-src/emacs/src/lisp.h  1848
+next   c-src/emacs/src/lisp.h  2009
+next   c-src/emacs/src/lisp.h  2037
 next   c-src/emacs/src/lisp.h  2192
 next   c-src/emacs/src/lisp.h  3028
 next   c-src/emacs/src/lisp.h  3134
@@ -3665,6 +3693,7 @@ oimplementation   c-src/etags.c   2474
 oinbody        c-src/etags.c   2478
 ok     objc-src/PackInsp.m     /^-ok:sender$/
 ok_to_echo_at_next_pause       c-src/emacs/src/keyboard.c      159
+old_value      c-src/emacs/src/lisp.h  2980
 omethodcolon   c-src/etags.c   2481
 omethodparm    c-src/etags.c   2482
 omethodsign    c-src/etags.c   2479
@@ -3772,10 +3801,12 @@ pending_signals c-src/emacs/src/keyboard.c      80
 pfatal c-src/etags.c   /^pfatal (const char *s1)$/
 pfdset c-src/h.h       57
 pfnote c-src/etags.c   /^pfnote (char *name, bool is_func, char *linestart,/
+pinned c-src/emacs/src/lisp.h  679
 plain_C_entries        c-src/etags.c   /^plain_C_entries (FILE *inf)$/
 plain_C_suffixes       c-src/etags.c   643
 plainc c-src/etags.c   2934
 plist  c-src/emacs/src/lisp.h  697
+plist  c-src/emacs/src/lisp.h  2040
 plus   cp-src/functions.cpp    /^void Date::plus ( int days , int month , int 
year /
 plus   go-src/test1.go 5
 plusvalseq     prol-src/natded.prolog  /^plusvalseq([]) --> [].$/
@@ -3922,6 +3953,7 @@ recursion-depth   c-src/emacs/src/keyboard.c      /^DEFUN 
("recursion-depth", Frecursio
 recursive-edit c-src/emacs/src/keyboard.c      /^DEFUN ("recursive-edit", 
Frecursive_edit, Srecursi/
 recursive_edit_1       c-src/emacs/src/keyboard.c      /^recursive_edit_1 
(void)$/
 recursive_edit_unwind  c-src/emacs/src/keyboard.c      /^recursive_edit_unwind 
(Lisp_Object buffer)$/
+redirect       c-src/emacs/src/lisp.h  663
 reduce prol-src/natded.prolog  /^reduce((X^M)@N,L):-     % beta reduction$/
 reduce_subterm prol-src/natded.prolog  /^reduce_subterm(M,M2):-$/
 refreshPort    pyt-src/server.py       /^    def refreshPort(self):$/
@@ -4088,6 +4120,10 @@ snone    c-src/etags.c   2443
 some_mouse_moved       c-src/emacs/src/keyboard.c      /^some_mouse_moved 
(void)$/
 space  tex-src/texinfo.tex     /^    {#2\\labelspace 
#1}\\dotfill\\doshortpageno{#3}}%/
 space  tex-src/texinfo.tex     /^  
\\dosubsubsecentry{#2.#3.#4.#5\\labelspace#1}{#6}}/
+spacer c-src/emacs/src/lisp.h  1975
+spacer c-src/emacs/src/lisp.h  1982
+spacer c-src/emacs/src/lisp.h  2036
+spacer c-src/emacs/src/lisp.h  2205
 specbind_tag   c-src/emacs/src/lisp.h  2943
 specbinding    c-src/emacs/src/lisp.h  2955
 specialsymbol  prol-src/natded.prolog  /^specialsymbol(C1,C2,S):-$/
@@ -4118,6 +4154,7 @@ stagseen  c-src/etags.c   2446
 standalone     make-src/Makefile       /^standalone:$/
 start  c-src/emacs/src/regex.h 431
 start  c-src/emacs/src/keyboard.c      8753
+start  c-src/emacs/src/lisp.h  2038
 start  php-src/lce_functions.php       /^      function start($line, $class)$/
 start  y-src/cccp.y    143
 start_polling  c-src/emacs/src/keyboard.c      /^start_polling (void)$/
@@ -4162,6 +4199,7 @@ swallow_events    c-src/emacs/src/keyboard.c      
/^swallow_events (bool do_display)$/
 switch_line_buffers    c-src/etags.c   /^#define switch_line_buffers() (curndx 
= 1 - curndx/
 sxhash_combine c-src/emacs/src/lisp.h  /^sxhash_combine (EMACS_UINT x, 
EMACS_UINT y)$/
 sym_type       c-src/etags.c   2204
+symbol c-src/emacs/src/lisp.h  2980
 symbol_interned        c-src/emacs/src/lisp.h  639
 symbol_name    c-src/emacs/src/lisp.h  1687
 symbol_redirect        c-src/emacs/src/lisp.h  646
@@ -4339,6 +4377,11 @@ ttypeseen        c-src/etags.c   2430
 typdef c-src/etags.c   2434
 type   c-src/etags.c   2271
 type   c-src/emacs/src/gmalloc.c       145
+type   c-src/emacs/src/lisp.h  1973
+type   c-src/emacs/src/lisp.h  1980
+type   c-src/emacs/src/lisp.h  2034
+type   c-src/emacs/src/lisp.h  2112
+type   c-src/emacs/src/lisp.h  2203
 type   c-src/emacs/src/lisp.h  2276
 type   c-src/emacs/src/lisp.h  2286
 type   c-src/emacs/src/lisp.h  2296
@@ -4372,6 +4415,10 @@ unchar   c-src/h.h       99
 unexpand-abbrev        c-src/abbrev.c  /^DEFUN ("unexpand-abbrev", 
Funexpand_abbrev, Sunexp/
 unread_switch_frame    c-src/emacs/src/keyboard.c      204
 unsignedp      y-src/cccp.y    112
+unwind c-src/emacs/src/lisp.h  2962
+unwind_int     c-src/emacs/src/lisp.h  2972
+unwind_ptr     c-src/emacs/src/lisp.h  2967
+unwind_void    c-src/emacs/src/lisp.h  2976
 uprintmax_t    c-src/emacs/src/lisp.h  149
 uprintmax_t    c-src/emacs/src/lisp.h  154
 usage  perl-src/yagrip.pl      /^sub usage {$/
@@ -4423,6 +4470,7 @@ web ftp publish   make-src/Makefile       /^web ftp 
publish:$/
 what   c-src/etags.c   252
 wheel_syms     c-src/emacs/src/keyboard.c      4628
 where  c-src/emacs/src/lisp.h  2348
+where  c-src/emacs/src/lisp.h  2980
 where  cp-src/clheir.hpp       77
 where_in_registry      cp-src/clheir.hpp       15
 windowWillClose        objcpp-src/SimpleCalc.M /^- windowWillClose:sender$/
diff --git a/test/manual/etags/ETAGS.good_1 b/test/manual/etags/ETAGS.good_1
index 414bdfe..6c4a02a 100644
--- a/test/manual/etags/ETAGS.good_1
+++ b/test/manual/etags/ETAGS.good_1
@@ -1189,7 +1189,7 @@ syms_of_keyboard 11045,333577
 keys_of_keyboard 11841,367115
 mark_kboards 11916,370434
 
-c-src/emacs/src/lisp.h,20567
+c-src/emacs/src/lisp.h,20276
 #define EMACS_LISP_H22,800
 #define DECLARE_GDB_SYM(47,1421
 # define DEFINE_GDB_SYMBOL_BEGIN(49,1508
@@ -1367,7 +1367,6 @@ enum symbol_redirect646,24315
   SYMBOL_LOCALIZED 650,24386
   SYMBOL_FORWARDED 651,24410
 struct Lisp_Symbol654,24437
-  ENUM_BF 663,24793
 #define EXFUN(707,26252
 #define DEFUN_ARGS_MANY        712,26446
 #define DEFUN_ARGS_UNEVALLED   713,26498
@@ -1556,11 +1555,8 @@ static double const DEFAULT_REHASH_SIZE 1950,64299
 sxhash_combine 1956,64465
 SXHASH_REDUCE 1964,64648
 struct Lisp_Misc_Any   1971,64806
-  ENUM_BF 1973,64866
 struct Lisp_Marker1978,64980
-  ENUM_BF 1980,65001
 struct Lisp_Overlay2021,66841
-    ENUM_BF 2034,67349
     SAVE_UNUSED,2047,67644
     SAVE_INTEGER,2048,67661
     SAVE_FUNCPOINTER,2049,67679
@@ -1582,7 +1578,6 @@ enum Lisp_Save_Type2064,68075
     SAVE_TYPE_MEMORY 2080,68885
 typedef void (*voidfuncptr)voidfuncptr2108,69839
 struct Lisp_Save_Value2110,69876
-    ENUM_BF 2112,69903
 save_type 2134,70755
 XSAVE_POINTER 2143,70985
 set_save_pointer 2149,71147
@@ -1592,7 +1587,6 @@ set_save_integer 2170,71711
 XSAVE_OBJECT 2179,71932
 struct Lisp_Finalizer2186,72109
 struct Lisp_Free2201,72584
-    ENUM_BF 2203,72605
 union Lisp_Misc2212,72885
 XMISC 2223,73184
 XMISCANY 2229,73273
@@ -1710,13 +1704,7 @@ enum specbind_tag 2943,93805
   SPECPDL_LET_LOCAL,2951,94235
   SPECPDL_LET_DEFAULT  2952,94292
 union specbinding2955,94364
-    ENUM_BF 2957,94386
-      ENUM_BF 2959,94443
-      ENUM_BF 2964,94573
-      ENUM_BF 2969,94696
-      ENUM_BF 2974,94814
-      ENUM_BF 2978,94919
-      ENUM_BF 2983,95094
+SPECPDL_INDEX 2996,95388
 enum handlertype 3021,96410
 enum handlertype { CATCHER,3021,96410
 enum handlertype { CATCHER, CONDITION_CASE 3021,96410
diff --git a/test/manual/etags/ETAGS.good_2 b/test/manual/etags/ETAGS.good_2
index 7b4b010..fa784d2 100644
--- a/test/manual/etags/ETAGS.good_2
+++ b/test/manual/etags/ETAGS.good_2
@@ -1383,7 +1383,7 @@ syms_of_keyboard 11045,333577
 keys_of_keyboard 11841,367115
 mark_kboards 11916,370434
 
-c-src/emacs/src/lisp.h,33973
+c-src/emacs/src/lisp.h,33840
 #define EMACS_LISP_H22,800
 #define DECLARE_GDB_SYM(47,1421
 # define DEFINE_GDB_SYMBOL_BEGIN(49,1508
@@ -1600,7 +1600,6 @@ enum symbol_redirect646,24315
   SYMBOL_LOCALIZED 650,24386
   SYMBOL_FORWARDED 651,24410
 struct Lisp_Symbol654,24437
-  ENUM_BF 663,24793
 #define EXFUN(707,26252
 #define DEFUN_ARGS_MANY        712,26446
 #define DEFUN_ARGS_UNEVALLED   713,26498
@@ -1792,11 +1791,8 @@ static double const DEFAULT_REHASH_SIZE 1950,64299
 sxhash_combine 1956,64465
 SXHASH_REDUCE 1964,64648
 struct Lisp_Misc_Any   1971,64806
-  ENUM_BF 1973,64866
 struct Lisp_Marker1978,64980
-  ENUM_BF 1980,65001
 struct Lisp_Overlay2021,66841
-    ENUM_BF 2034,67349
     SAVE_UNUSED,2047,67644
     SAVE_INTEGER,2048,67661
     SAVE_FUNCPOINTER,2049,67679
@@ -1818,7 +1814,6 @@ enum Lisp_Save_Type2064,68075
     SAVE_TYPE_MEMORY 2080,68885
 typedef void (*voidfuncptr)voidfuncptr2108,69839
 struct Lisp_Save_Value2110,69876
-    ENUM_BF 2112,69903
 save_type 2134,70755
 XSAVE_POINTER 2143,70985
 set_save_pointer 2149,71147
@@ -1828,7 +1823,6 @@ set_save_integer 2170,71711
 XSAVE_OBJECT 2179,71932
 struct Lisp_Finalizer2186,72109
 struct Lisp_Free2201,72584
-    ENUM_BF 2203,72605
 union Lisp_Misc2212,72885
 XMISC 2223,73184
 XMISCANY 2229,73273
@@ -1952,13 +1946,10 @@ enum specbind_tag 2943,93805
   SPECPDL_LET_LOCAL,2951,94235
   SPECPDL_LET_DEFAULT  2952,94292
 union specbinding2955,94364
-    ENUM_BF 2957,94386
-      ENUM_BF 2959,94443
-      ENUM_BF 2964,94573
-      ENUM_BF 2969,94696
-      ENUM_BF 2974,94814
-      ENUM_BF 2978,94919
-      ENUM_BF 2983,95094
+extern union specbinding *specpdl;specpdl2991,95265
+extern union specbinding *specpdl_ptr;specpdl_ptr2992,95300
+extern ptrdiff_t specpdl_size;2993,95339
+SPECPDL_INDEX 2996,95388
 enum handlertype 3021,96410
 enum handlertype { CATCHER,3021,96410
 enum handlertype { CATCHER, CONDITION_CASE 3021,96410
diff --git a/test/manual/etags/ETAGS.good_3 b/test/manual/etags/ETAGS.good_3
index ac61d84..547dee2 100644
--- a/test/manual/etags/ETAGS.good_3
+++ b/test/manual/etags/ETAGS.good_3
@@ -1315,7 +1315,7 @@ syms_of_keyboard 11045,333577
 keys_of_keyboard 11841,367115
 mark_kboards 11916,370434
 
-c-src/emacs/src/lisp.h,25767
+c-src/emacs/src/lisp.h,27827
 #define EMACS_LISP_H22,800
 #define DECLARE_GDB_SYM(47,1421
 # define DEFINE_GDB_SYMBOL_BEGIN(49,1508
@@ -1495,7 +1495,12 @@ enum symbol_redirect646,24315
   SYMBOL_FORWARDED 651,24410
 struct Lisp_Symbol654,24437
   bool_bf gcmarkbit 656,24458
-  ENUM_BF 663,24793
+  ENUM_BF (symbol_redirect) redirect 663,24793
+  unsigned constant 668,25011
+  unsigned interned 672,25131
+  bool_bf declared_special 676,25293
+  bool_bf pinned 679,25394
+  Lisp_Object name;682,25463
     Lisp_Object value;687,25631
     struct Lisp_Symbol *alias;alias688,25654
     struct Lisp_Buffer_Local_Value *blv;blv689,25685
@@ -1746,11 +1751,27 @@ static double const DEFAULT_REHASH_SIZE 1950,64299
 sxhash_combine 1956,64465
 SXHASH_REDUCE 1964,64648
 struct Lisp_Misc_Any   1971,64806
-  ENUM_BF 1973,64866
+  ENUM_BF (Lisp_Misc_Type) type 1973,64866
+  bool_bf gcmarkbit 1974,64927
+  unsigned spacer 1975,64952
 struct Lisp_Marker1978,64980
-  ENUM_BF 1980,65001
+  ENUM_BF (Lisp_Misc_Type) type 1980,65001
+  bool_bf gcmarkbit 1981,65065
+  unsigned spacer 1982,65090
+  bool_bf need_adjustment 1986,65282
+  bool_bf insertion_type 1989,65423
+  struct buffer *buffer;buffer2000,66016
+  struct Lisp_Marker *next;next2009,66367
+  ptrdiff_t charpos;2011,66455
+  ptrdiff_t bytepos;2016,66713
 struct Lisp_Overlay2021,66841
-    ENUM_BF 2034,67349
+    ENUM_BF (Lisp_Misc_Type) type 2034,67349
+    bool_bf gcmarkbit 2035,67415
+    unsigned spacer 2036,67442
+    struct Lisp_Overlay *next;next2037,67468
+    Lisp_Object start;2038,67499
+    Lisp_Object end;2039,67522
+    Lisp_Object plist;2040,67543
     SAVE_UNUSED,2047,67644
     SAVE_INTEGER,2048,67661
     SAVE_FUNCPOINTER,2049,67679
@@ -1772,7 +1793,10 @@ enum Lisp_Save_Type2064,68075
     SAVE_TYPE_MEMORY 2080,68885
 typedef void (*voidfuncptr)voidfuncptr2108,69839
 struct Lisp_Save_Value2110,69876
-    ENUM_BF 2112,69903
+    ENUM_BF (Lisp_Misc_Type) type 2112,69903
+    bool_bf gcmarkbit 2113,69972
+    unsigned spacer : 32 - (16 + 1 + SAVE_TYPE_BITS)2114,69999
+    ENUM_BF (Lisp_Save_Type) save_type : SAVE_TYPE_BITS;2123,70489
       void *pointer;pointer2125,70558
       voidfuncptr funcpointer;2126,70579
       ptrdiff_t integer;2127,70610
@@ -1791,7 +1815,10 @@ struct Lisp_Finalizer2186,72109
     struct Lisp_Finalizer *next;next2192,72256
     Lisp_Object function;2197,72493
 struct Lisp_Free2201,72584
-    ENUM_BF 2203,72605
+    ENUM_BF (Lisp_Misc_Type) type 2203,72605
+    bool_bf gcmarkbit 2204,72668
+    unsigned spacer 2205,72695
+    union Lisp_Misc *chain;chain2206,72721
 union Lisp_Misc2212,72885
     struct Lisp_Misc_Any u_any;2214,72905
     struct Lisp_Free u_free;2215,72976
@@ -1941,13 +1968,34 @@ enum specbind_tag 2943,93805
   SPECPDL_LET_LOCAL,2951,94235
   SPECPDL_LET_DEFAULT  2952,94292
 union specbinding2955,94364
-    ENUM_BF 2957,94386
-      ENUM_BF 2959,94443
-      ENUM_BF 2964,94573
-      ENUM_BF 2969,94696
-      ENUM_BF 2974,94814
-      ENUM_BF 2978,94919
-      ENUM_BF 2983,95094
+    ENUM_BF (specbind_tag) kind : CHAR_BIT;2957,94386
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2959,94443
+      void (*func)func2960,94489
+      Lisp_Object arg;2961,94523
+    } unwind;2962,94546
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2964,94573
+      void (*func)func2965,94619
+      void *arg;arg2966,94648
+    } unwind_ptr;2967,94665
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2969,94696
+      void (*func)func2970,94742
+      int arg;2971,94768
+    } unwind_int;2972,94783
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2974,94814
+      void (*func)func2975,94860
+    } unwind_void;2976,94887
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2978,94919
+      Lisp_Object symbol,2980,95026
+      Lisp_Object symbol, old_value,2980,95026
+      Lisp_Object symbol, old_value, where;2980,95026
+    } let;2981,95070
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2983,95094
+      bool_bf debug_on_exit 2984,95140
+      Lisp_Object function;2985,95173
+      Lisp_Object *args;args2986,95201
+      ptrdiff_t nargs;2987,95226
+    } bt;2988,95249
+SPECPDL_INDEX 2996,95388
 enum handlertype 3021,96410
 enum handlertype { CATCHER,3021,96410
 enum handlertype { CATCHER, CONDITION_CASE 3021,96410
diff --git a/test/manual/etags/ETAGS.good_4 b/test/manual/etags/ETAGS.good_4
index ae885ee..2c50ec1 100644
--- a/test/manual/etags/ETAGS.good_4
+++ b/test/manual/etags/ETAGS.good_4
@@ -1353,7 +1353,7 @@ mark_kboards 11916,370434
   DEFVAR_LISP ("selection-inhibit-update-commands",\111815,366013
   DEFVAR_LISP ("debug-on-event",\111825,366554
 
-c-src/emacs/src/lisp.h,20567
+c-src/emacs/src/lisp.h,20276
 #define EMACS_LISP_H22,800
 #define DECLARE_GDB_SYM(47,1421
 # define DEFINE_GDB_SYMBOL_BEGIN(49,1508
@@ -1531,7 +1531,6 @@ enum symbol_redirect646,24315
   SYMBOL_LOCALIZED 650,24386
   SYMBOL_FORWARDED 651,24410
 struct Lisp_Symbol654,24437
-  ENUM_BF 663,24793
 #define EXFUN(707,26252
 #define DEFUN_ARGS_MANY        712,26446
 #define DEFUN_ARGS_UNEVALLED   713,26498
@@ -1720,11 +1719,8 @@ static double const DEFAULT_REHASH_SIZE 1950,64299
 sxhash_combine 1956,64465
 SXHASH_REDUCE 1964,64648
 struct Lisp_Misc_Any   1971,64806
-  ENUM_BF 1973,64866
 struct Lisp_Marker1978,64980
-  ENUM_BF 1980,65001
 struct Lisp_Overlay2021,66841
-    ENUM_BF 2034,67349
     SAVE_UNUSED,2047,67644
     SAVE_INTEGER,2048,67661
     SAVE_FUNCPOINTER,2049,67679
@@ -1746,7 +1742,6 @@ enum Lisp_Save_Type2064,68075
     SAVE_TYPE_MEMORY 2080,68885
 typedef void (*voidfuncptr)voidfuncptr2108,69839
 struct Lisp_Save_Value2110,69876
-    ENUM_BF 2112,69903
 save_type 2134,70755
 XSAVE_POINTER 2143,70985
 set_save_pointer 2149,71147
@@ -1756,7 +1751,6 @@ set_save_integer 2170,71711
 XSAVE_OBJECT 2179,71932
 struct Lisp_Finalizer2186,72109
 struct Lisp_Free2201,72584
-    ENUM_BF 2203,72605
 union Lisp_Misc2212,72885
 XMISC 2223,73184
 XMISCANY 2229,73273
@@ -1874,13 +1868,7 @@ enum specbind_tag 2943,93805
   SPECPDL_LET_LOCAL,2951,94235
   SPECPDL_LET_DEFAULT  2952,94292
 union specbinding2955,94364
-    ENUM_BF 2957,94386
-      ENUM_BF 2959,94443
-      ENUM_BF 2964,94573
-      ENUM_BF 2969,94696
-      ENUM_BF 2974,94814
-      ENUM_BF 2978,94919
-      ENUM_BF 2983,95094
+SPECPDL_INDEX 2996,95388
 enum handlertype 3021,96410
 enum handlertype { CATCHER,3021,96410
 enum handlertype { CATCHER, CONDITION_CASE 3021,96410
diff --git a/test/manual/etags/ETAGS.good_5 b/test/manual/etags/ETAGS.good_5
index d40c711..2b43103 100644
--- a/test/manual/etags/ETAGS.good_5
+++ b/test/manual/etags/ETAGS.good_5
@@ -1673,7 +1673,7 @@ mark_kboards 11916,370434
   DEFVAR_LISP ("selection-inhibit-update-commands",\111815,366013
   DEFVAR_LISP ("debug-on-event",\111825,366554
 
-c-src/emacs/src/lisp.h,39173
+c-src/emacs/src/lisp.h,41391
 #define EMACS_LISP_H22,800
 #define DECLARE_GDB_SYM(47,1421
 # define DEFINE_GDB_SYMBOL_BEGIN(49,1508
@@ -1892,7 +1892,12 @@ enum symbol_redirect646,24315
   SYMBOL_FORWARDED 651,24410
 struct Lisp_Symbol654,24437
   bool_bf gcmarkbit 656,24458
-  ENUM_BF 663,24793
+  ENUM_BF (symbol_redirect) redirect 663,24793
+  unsigned constant 668,25011
+  unsigned interned 672,25131
+  bool_bf declared_special 676,25293
+  bool_bf pinned 679,25394
+  Lisp_Object name;682,25463
     Lisp_Object value;687,25631
     struct Lisp_Symbol *alias;alias688,25654
     struct Lisp_Buffer_Local_Value *blv;blv689,25685
@@ -2146,11 +2151,27 @@ static double const DEFAULT_REHASH_SIZE 1950,64299
 sxhash_combine 1956,64465
 SXHASH_REDUCE 1964,64648
 struct Lisp_Misc_Any   1971,64806
-  ENUM_BF 1973,64866
+  ENUM_BF (Lisp_Misc_Type) type 1973,64866
+  bool_bf gcmarkbit 1974,64927
+  unsigned spacer 1975,64952
 struct Lisp_Marker1978,64980
-  ENUM_BF 1980,65001
+  ENUM_BF (Lisp_Misc_Type) type 1980,65001
+  bool_bf gcmarkbit 1981,65065
+  unsigned spacer 1982,65090
+  bool_bf need_adjustment 1986,65282
+  bool_bf insertion_type 1989,65423
+  struct buffer *buffer;buffer2000,66016
+  struct Lisp_Marker *next;next2009,66367
+  ptrdiff_t charpos;2011,66455
+  ptrdiff_t bytepos;2016,66713
 struct Lisp_Overlay2021,66841
-    ENUM_BF 2034,67349
+    ENUM_BF (Lisp_Misc_Type) type 2034,67349
+    bool_bf gcmarkbit 2035,67415
+    unsigned spacer 2036,67442
+    struct Lisp_Overlay *next;next2037,67468
+    Lisp_Object start;2038,67499
+    Lisp_Object end;2039,67522
+    Lisp_Object plist;2040,67543
     SAVE_UNUSED,2047,67644
     SAVE_INTEGER,2048,67661
     SAVE_FUNCPOINTER,2049,67679
@@ -2172,7 +2193,10 @@ enum Lisp_Save_Type2064,68075
     SAVE_TYPE_MEMORY 2080,68885
 typedef void (*voidfuncptr)voidfuncptr2108,69839
 struct Lisp_Save_Value2110,69876
-    ENUM_BF 2112,69903
+    ENUM_BF (Lisp_Misc_Type) type 2112,69903
+    bool_bf gcmarkbit 2113,69972
+    unsigned spacer : 32 - (16 + 1 + SAVE_TYPE_BITS)2114,69999
+    ENUM_BF (Lisp_Save_Type) save_type : SAVE_TYPE_BITS;2123,70489
       void *pointer;pointer2125,70558
       voidfuncptr funcpointer;2126,70579
       ptrdiff_t integer;2127,70610
@@ -2191,7 +2215,10 @@ struct Lisp_Finalizer2186,72109
     struct Lisp_Finalizer *next;next2192,72256
     Lisp_Object function;2197,72493
 struct Lisp_Free2201,72584
-    ENUM_BF 2203,72605
+    ENUM_BF (Lisp_Misc_Type) type 2203,72605
+    bool_bf gcmarkbit 2204,72668
+    unsigned spacer 2205,72695
+    union Lisp_Misc *chain;chain2206,72721
 union Lisp_Misc2212,72885
     struct Lisp_Misc_Any u_any;2214,72905
     struct Lisp_Free u_free;2215,72976
@@ -2347,13 +2374,37 @@ enum specbind_tag 2943,93805
   SPECPDL_LET_LOCAL,2951,94235
   SPECPDL_LET_DEFAULT  2952,94292
 union specbinding2955,94364
-    ENUM_BF 2957,94386
-      ENUM_BF 2959,94443
-      ENUM_BF 2964,94573
-      ENUM_BF 2969,94696
-      ENUM_BF 2974,94814
-      ENUM_BF 2978,94919
-      ENUM_BF 2983,95094
+    ENUM_BF (specbind_tag) kind : CHAR_BIT;2957,94386
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2959,94443
+      void (*func)func2960,94489
+      Lisp_Object arg;2961,94523
+    } unwind;2962,94546
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2964,94573
+      void (*func)func2965,94619
+      void *arg;arg2966,94648
+    } unwind_ptr;2967,94665
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2969,94696
+      void (*func)func2970,94742
+      int arg;2971,94768
+    } unwind_int;2972,94783
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2974,94814
+      void (*func)func2975,94860
+    } unwind_void;2976,94887
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2978,94919
+      Lisp_Object symbol,2980,95026
+      Lisp_Object symbol, old_value,2980,95026
+      Lisp_Object symbol, old_value, where;2980,95026
+    } let;2981,95070
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2983,95094
+      bool_bf debug_on_exit 2984,95140
+      Lisp_Object function;2985,95173
+      Lisp_Object *args;args2986,95201
+      ptrdiff_t nargs;2987,95226
+    } bt;2988,95249
+extern union specbinding *specpdl;specpdl2991,95265
+extern union specbinding *specpdl_ptr;specpdl_ptr2992,95300
+extern ptrdiff_t specpdl_size;2993,95339
+SPECPDL_INDEX 2996,95388
 enum handlertype 3021,96410
 enum handlertype { CATCHER,3021,96410
 enum handlertype { CATCHER, CONDITION_CASE 3021,96410
diff --git a/test/manual/etags/ETAGS.good_6 b/test/manual/etags/ETAGS.good_6
index d4c4213..2cb0d05 100644
--- a/test/manual/etags/ETAGS.good_6
+++ b/test/manual/etags/ETAGS.good_6
@@ -1673,7 +1673,7 @@ mark_kboards 11916,370434
   DEFVAR_LISP ("selection-inhibit-update-commands",\111815,366013
   DEFVAR_LISP ("debug-on-event",\111825,366554
 
-c-src/emacs/src/lisp.h,39173
+c-src/emacs/src/lisp.h,41391
 #define EMACS_LISP_H22,800
 #define DECLARE_GDB_SYM(47,1421
 # define DEFINE_GDB_SYMBOL_BEGIN(49,1508
@@ -1892,7 +1892,12 @@ enum symbol_redirect646,24315
   SYMBOL_FORWARDED 651,24410
 struct Lisp_Symbol654,24437
   bool_bf gcmarkbit 656,24458
-  ENUM_BF 663,24793
+  ENUM_BF (symbol_redirect) redirect 663,24793
+  unsigned constant 668,25011
+  unsigned interned 672,25131
+  bool_bf declared_special 676,25293
+  bool_bf pinned 679,25394
+  Lisp_Object name;682,25463
     Lisp_Object value;687,25631
     struct Lisp_Symbol *alias;alias688,25654
     struct Lisp_Buffer_Local_Value *blv;blv689,25685
@@ -2146,11 +2151,27 @@ static double const DEFAULT_REHASH_SIZE 1950,64299
 sxhash_combine 1956,64465
 SXHASH_REDUCE 1964,64648
 struct Lisp_Misc_Any   1971,64806
-  ENUM_BF 1973,64866
+  ENUM_BF (Lisp_Misc_Type) type 1973,64866
+  bool_bf gcmarkbit 1974,64927
+  unsigned spacer 1975,64952
 struct Lisp_Marker1978,64980
-  ENUM_BF 1980,65001
+  ENUM_BF (Lisp_Misc_Type) type 1980,65001
+  bool_bf gcmarkbit 1981,65065
+  unsigned spacer 1982,65090
+  bool_bf need_adjustment 1986,65282
+  bool_bf insertion_type 1989,65423
+  struct buffer *buffer;buffer2000,66016
+  struct Lisp_Marker *next;next2009,66367
+  ptrdiff_t charpos;2011,66455
+  ptrdiff_t bytepos;2016,66713
 struct Lisp_Overlay2021,66841
-    ENUM_BF 2034,67349
+    ENUM_BF (Lisp_Misc_Type) type 2034,67349
+    bool_bf gcmarkbit 2035,67415
+    unsigned spacer 2036,67442
+    struct Lisp_Overlay *next;next2037,67468
+    Lisp_Object start;2038,67499
+    Lisp_Object end;2039,67522
+    Lisp_Object plist;2040,67543
     SAVE_UNUSED,2047,67644
     SAVE_INTEGER,2048,67661
     SAVE_FUNCPOINTER,2049,67679
@@ -2172,7 +2193,10 @@ enum Lisp_Save_Type2064,68075
     SAVE_TYPE_MEMORY 2080,68885
 typedef void (*voidfuncptr)voidfuncptr2108,69839
 struct Lisp_Save_Value2110,69876
-    ENUM_BF 2112,69903
+    ENUM_BF (Lisp_Misc_Type) type 2112,69903
+    bool_bf gcmarkbit 2113,69972
+    unsigned spacer : 32 - (16 + 1 + SAVE_TYPE_BITS)2114,69999
+    ENUM_BF (Lisp_Save_Type) save_type : SAVE_TYPE_BITS;2123,70489
       void *pointer;pointer2125,70558
       voidfuncptr funcpointer;2126,70579
       ptrdiff_t integer;2127,70610
@@ -2191,7 +2215,10 @@ struct Lisp_Finalizer2186,72109
     struct Lisp_Finalizer *next;next2192,72256
     Lisp_Object function;2197,72493
 struct Lisp_Free2201,72584
-    ENUM_BF 2203,72605
+    ENUM_BF (Lisp_Misc_Type) type 2203,72605
+    bool_bf gcmarkbit 2204,72668
+    unsigned spacer 2205,72695
+    union Lisp_Misc *chain;chain2206,72721
 union Lisp_Misc2212,72885
     struct Lisp_Misc_Any u_any;2214,72905
     struct Lisp_Free u_free;2215,72976
@@ -2347,13 +2374,37 @@ enum specbind_tag 2943,93805
   SPECPDL_LET_LOCAL,2951,94235
   SPECPDL_LET_DEFAULT  2952,94292
 union specbinding2955,94364
-    ENUM_BF 2957,94386
-      ENUM_BF 2959,94443
-      ENUM_BF 2964,94573
-      ENUM_BF 2969,94696
-      ENUM_BF 2974,94814
-      ENUM_BF 2978,94919
-      ENUM_BF 2983,95094
+    ENUM_BF (specbind_tag) kind : CHAR_BIT;2957,94386
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2959,94443
+      void (*func)func2960,94489
+      Lisp_Object arg;2961,94523
+    } unwind;2962,94546
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2964,94573
+      void (*func)func2965,94619
+      void *arg;arg2966,94648
+    } unwind_ptr;2967,94665
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2969,94696
+      void (*func)func2970,94742
+      int arg;2971,94768
+    } unwind_int;2972,94783
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2974,94814
+      void (*func)func2975,94860
+    } unwind_void;2976,94887
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2978,94919
+      Lisp_Object symbol,2980,95026
+      Lisp_Object symbol, old_value,2980,95026
+      Lisp_Object symbol, old_value, where;2980,95026
+    } let;2981,95070
+      ENUM_BF (specbind_tag) kind : CHAR_BIT;2983,95094
+      bool_bf debug_on_exit 2984,95140
+      Lisp_Object function;2985,95173
+      Lisp_Object *args;args2986,95201
+      ptrdiff_t nargs;2987,95226
+    } bt;2988,95249
+extern union specbinding *specpdl;specpdl2991,95265
+extern union specbinding *specpdl_ptr;specpdl_ptr2992,95300
+extern ptrdiff_t specpdl_size;2993,95339
+SPECPDL_INDEX 2996,95388
 enum handlertype 3021,96410
 enum handlertype { CATCHER,3021,96410
 enum handlertype { CATCHER, CONDITION_CASE 3021,96410



reply via email to

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