From edae25c7ae2b0749ca7d491b391b99967652a0fd Mon Sep 17 00:00:00 2001 From: maartenbrock Date: Tue, 23 Aug 2005 18:59:52 +0000 Subject: [PATCH 1/1] * as/mcs51/aslink.h: completed lkrloc.c prototypes * as/mcs51/lkmain.c (link_main): fixed warning * device/include/stdbool.h: ds390 has no advanced bit support yet * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx and updated their macros * src/SDCCval.c (constVal): updated comment for renamed b_long git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3874 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 11 ++++ as/mcs51/aslink.h | 40 ++++++------ as/mcs51/lkmain.c | 2 +- device/include/stdbool.h | 2 +- src/SDCC.y | 134 +++++++++++++++++++-------------------- src/SDCCsymt.c | 22 +++---- src/SDCCsymt.h | 60 +++++++++--------- src/SDCCval.c | 2 +- 8 files changed, 142 insertions(+), 131 deletions(-) diff --git a/ChangeLog b/ChangeLog index d740f85f..66aedfe7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2005-08-23 Maarten Brock + + * as/mcs51/aslink.h: completed lkrloc.c prototypes + * as/mcs51/lkmain.c (link_main): fixed warning + * device/include/stdbool.h: ds390 has no advanced bit support yet + * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed + * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed + * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx + and updated their macros + * src/SDCCval.c (constVal): updated comment for renamed b_long + 2005-08-22 Maarten Brock * as/mcs51/asdata.c: changed ctype['['] to BINOP diff --git a/as/mcs51/aslink.h b/as/mcs51/aslink.h index 79a84969..1833938e 100644 --- a/as/mcs51/aslink.h +++ b/as/mcs51/aslink.h @@ -730,30 +730,30 @@ extern VOID newpag(); extern VOID slew(); /* lkrloc.c */ -extern Addr_T adb_b(); -extern Addr_T adb_bit(); -extern Addr_T adb_hi(); -extern Addr_T adb_lo(); -extern Addr_T adb_24_bit(Addr_T v, int i); +extern Addr_T adb_b(register Addr_T v, register int i); +extern Addr_T adb_bit(register Addr_T v, register int i); +extern Addr_T adb_hi(Addr_T v, int i); +extern Addr_T adb_lo(Addr_T v, int i); +extern Addr_T adb_24_bit(register Addr_T v, register int i); extern Addr_T adb_24_hi(Addr_T v, int i); extern Addr_T adb_24_mid(Addr_T v, int i); extern Addr_T adb_24_lo(Addr_T v, int i); -extern Addr_T adw_w(); -extern Addr_T adw_24(Addr_T, int); -extern Addr_T adw_hi(); -extern Addr_T adw_lo(); -extern Addr_T evword(); -extern VOID rele(); -extern VOID reloc(); -extern VOID relt(); -extern VOID relr(); -extern VOID relp(); -extern VOID relerr(); +extern Addr_T adw_w(register Addr_T v, register int i); +extern Addr_T adw_24(Addr_T v, int i); +extern Addr_T adw_hi(Addr_T v, int i); +extern Addr_T adw_lo(Addr_T v, int i); +extern Addr_T evword(VOID); +extern VOID rele(VOID); +extern VOID reloc(char c); +extern VOID relt(VOID); +extern VOID relr(VOID); +extern VOID relp(VOID); +extern VOID relerr(char *str); extern char * errmsg[]; -extern VOID errdmp(); -extern VOID relerp(); -extern VOID erpdmp(); -extern VOID prntval(); +extern VOID errdmp(FILE *fptr, char *str); +extern VOID relerp(char *str); +extern VOID erpdmp(FILE *fptr, char *str); +extern VOID prntval(FILE *fptr, Addr_T v); extern int lastExtendedAddress; /* lklibr.c */ diff --git a/as/mcs51/lkmain.c b/as/mcs51/lkmain.c index f7d1537f..0e96f095 100644 --- a/as/mcs51/lkmain.c +++ b/as/mcs51/lkmain.c @@ -509,7 +509,7 @@ lkexit(int i) VOID link_main() { - register int c; + register char c; if ((c=endline()) == 0) { return; } switch (c) { diff --git a/device/include/stdbool.h b/device/include/stdbool.h index 2bf0be28..ea683216 100644 --- a/device/include/stdbool.h +++ b/device/include/stdbool.h @@ -28,7 +28,7 @@ #define false 0 #define __bool_true_false_are_defined 1 -#if defined (SDCC_hc08) || defined (SDCC_z80) || defined (SDCC_gbz80) +#if defined (SDCC_ds390) || defined (SDCC_hc08) || defined (SDCC_z80) || defined (SDCC_gbz80) #define BOOL char #else #define BOOL __bit diff --git a/src/SDCC.y b/src/SDCC.y index 17dacb5d..6d8229fe 100644 --- a/src/SDCC.y +++ b/src/SDCC.y @@ -602,59 +602,59 @@ type_specifier ; type_specifier2 - : CHAR { - $$=newLink(SPECIFIER); - SPEC_NOUN($$) = V_CHAR ; - ignoreTypedefType = 1; - } - | SHORT { - $$=newLink(SPECIFIER); - $$->select.s._short = 1 ; - ignoreTypedefType = 1; - } - | INT { - $$=newLink(SPECIFIER); - SPEC_NOUN($$) = V_INT ; - ignoreTypedefType = 1; - } - | LONG { - $$=newLink(SPECIFIER); - SPEC_LONG($$) = 1 ; - ignoreTypedefType = 1; - } - | SIGNED { - $$=newLink(SPECIFIER); - $$->select.s._signed = 1; - ignoreTypedefType = 1; - } + : CHAR { + $$=newLink(SPECIFIER); + SPEC_NOUN($$) = V_CHAR ; + ignoreTypedefType = 1; + } + | SHORT { + $$=newLink(SPECIFIER); + SPEC_SHORT($$) = 1 ; + ignoreTypedefType = 1; + } + | INT { + $$=newLink(SPECIFIER); + SPEC_NOUN($$) = V_INT ; + ignoreTypedefType = 1; + } + | LONG { + $$=newLink(SPECIFIER); + SPEC_LONG($$) = 1 ; + ignoreTypedefType = 1; + } + | SIGNED { + $$=newLink(SPECIFIER); + $$->select.s.b_signed = 1; + ignoreTypedefType = 1; + } | UNSIGNED { - $$=newLink(SPECIFIER); - SPEC_USIGN($$) = 1 ; - ignoreTypedefType = 1; - } - | VOID { - $$=newLink(SPECIFIER); - SPEC_NOUN($$) = V_VOID ; - ignoreTypedefType = 1; - } - | CONST { - $$=newLink(SPECIFIER); - SPEC_CONST($$) = 1; - } + $$=newLink(SPECIFIER); + SPEC_USIGN($$) = 1 ; + ignoreTypedefType = 1; + } + | VOID { + $$=newLink(SPECIFIER); + SPEC_NOUN($$) = V_VOID ; + ignoreTypedefType = 1; + } + | CONST { + $$=newLink(SPECIFIER); + SPEC_CONST($$) = 1; + } | VOLATILE { - $$=newLink(SPECIFIER); - SPEC_VOLATILE($$) = 1 ; - } - | FLOAT { - $$=newLink(SPECIFIER); - SPEC_NOUN($$) = V_FLOAT; - ignoreTypedefType = 1; - } - | FIXED16X16 { - $$=newLink(SPECIFIER); - SPEC_NOUN($$) = V_FIXED16X16; - ignoreTypedefType = 1; - } + $$=newLink(SPECIFIER); + SPEC_VOLATILE($$) = 1 ; + } + | FLOAT { + $$=newLink(SPECIFIER); + SPEC_NOUN($$) = V_FLOAT; + ignoreTypedefType = 1; + } + | FIXED16X16 { + $$=newLink(SPECIFIER); + SPEC_NOUN($$) = V_FIXED16X16; + ignoreTypedefType = 1; + } | XDATA { $$ = newLink (SPECIFIER); SPEC_SCLS($$) = S_XDATA ; @@ -663,7 +663,7 @@ type_specifier2 $$ = newLink (SPECIFIER) ; SPEC_SCLS($$) = S_CODE ; } - | EEPROM { + | EEPROM { $$ = newLink (SPECIFIER) ; SPEC_SCLS($$) = S_EEPROM ; } @@ -679,19 +679,19 @@ type_specifier2 $$ = newLink (SPECIFIER); SPEC_SCLS($$) = S_PDATA ; } - | BIT { - $$=newLink(SPECIFIER); - SPEC_NOUN($$) = V_BIT ; - SPEC_SCLS($$) = S_BIT ; - SPEC_BLEN($$) = 1; - SPEC_BSTR($$) = 0; - ignoreTypedefType = 1; - } + | BIT { + $$=newLink(SPECIFIER); + SPEC_NOUN($$) = V_BIT ; + SPEC_SCLS($$) = S_BIT ; + SPEC_BLEN($$) = 1; + SPEC_BSTR($$) = 0; + ignoreTypedefType = 1; + } | struct_or_union_specifier { uselessDecl = FALSE; $$ = $1 ; - ignoreTypedefType = 1; + ignoreTypedefType = 1; } | enum_specifier { cenum = NULL ; @@ -705,7 +705,7 @@ type_specifier2 sym_link *p ; sym = findSym(TypedefTab,NULL,$1) ; $$ = p = copyLinkChain(sym->type); - SPEC_TYPEDEF(getSpec(p)) = 0; + SPEC_TYPEDEF(getSpec(p)) = 0; ignoreTypedefType = 1; } | sfr_reg_bit @@ -716,9 +716,9 @@ sfr_reg_bit $$ = newLink(SPECIFIER) ; SPEC_NOUN($$) = V_SBIT; SPEC_SCLS($$) = S_SBIT; - SPEC_BLEN($$) = 1; - SPEC_BSTR($$) = 0; - ignoreTypedefType = 1; + SPEC_BLEN($$) = 1; + SPEC_BSTR($$) = 0; + ignoreTypedefType = 1; } | sfr_attributes ; @@ -730,7 +730,7 @@ sfr_attributes SPEC_NOUN($$) = V_CHAR; SPEC_SCLS($$) = S_SFR ; SPEC_USIGN($$) = 1 ; - ignoreTypedefType = 1; + ignoreTypedefType = 1; } | SFR BANKED { $$ = newLink(SPECIFIER) ; @@ -738,7 +738,7 @@ sfr_attributes SPEC_NOUN($$) = V_CHAR; SPEC_SCLS($$) = S_SFR ; SPEC_USIGN($$) = 1 ; - ignoreTypedefType = 1; + ignoreTypedefType = 1; } ; diff --git a/src/SDCCsymt.c b/src/SDCCsymt.c index 73f36ab0..c1bdae25 100644 --- a/src/SDCCsymt.c +++ b/src/SDCCsymt.c @@ -43,7 +43,7 @@ char *nounName(sym_link *sl) { { case V_INT: { if (SPEC_LONG(sl)) return "long"; - if (sl->select.s._short) return "short"; + if (SPEC_SHORT(sl)) return "short"; return "int"; } case V_FLOAT: return "float"; @@ -545,7 +545,7 @@ void checkTypeSanity(sym_link *etype, char *name) { SPEC_NOUN(etype)==V_FIXED16X16 || SPEC_NOUN(etype)==V_DOUBLE || SPEC_NOUN(etype)==V_VOID) && - (etype->select.s._short || SPEC_LONG(etype))) { + (SPEC_SHORT(etype) || SPEC_LONG(etype))) { // long or short for char float double or void werror (E_LONG_OR_SHORT_INVALID, noun, name); } @@ -553,15 +553,15 @@ void checkTypeSanity(sym_link *etype, char *name) { SPEC_NOUN(etype)==V_FIXED16X16 || SPEC_NOUN(etype)==V_DOUBLE || SPEC_NOUN(etype)==V_VOID) && - (etype->select.s._signed || SPEC_USIGN(etype))) { + (etype->select.s.b_signed || SPEC_USIGN(etype))) { // signed or unsigned for float double or void werror (E_SIGNED_OR_UNSIGNED_INVALID, noun, name); } // special case for "short" - if (etype->select.s._short) { + if (SPEC_SHORT(etype)) { SPEC_NOUN(etype) = options.shortis8bits ? V_CHAR : V_INT; - etype->select.s._short = 0; + SPEC_SHORT(etype) = 0; } /* if no noun e.g. @@ -575,15 +575,15 @@ void checkTypeSanity(sym_link *etype, char *name) { /* a "plain" int bitfield is unsigned */ if (SPEC_NOUN(etype)==V_BIT || SPEC_NOUN(etype)==V_SBIT) { - if (!etype->select.s._signed) + if (!etype->select.s.b_signed) SPEC_USIGN(etype) = 1; } - if (etype->select.s._signed && SPEC_USIGN(etype)) { + if (etype->select.s.b_signed && SPEC_USIGN(etype)) { // signed AND unsigned werror (E_SIGNED_AND_UNSIGNED_INVALID, noun, name); } - if (etype->select.s._short && SPEC_LONG(etype)) { + if (SPEC_SHORT(etype) && SPEC_LONG(etype)) { // short AND long werror (E_LONG_AND_SHORT_INVALID, noun, name); } @@ -645,9 +645,9 @@ mergeSpec (sym_link * dest, sym_link * src, char *name) // but there are more important thing right now SPEC_LONG (dest) |= SPEC_LONG (src); - dest->select.s._short|=src->select.s._short; + SPEC_SHORT(dest) |= SPEC_SHORT(src); SPEC_USIGN (dest) |= SPEC_USIGN (src); - dest->select.s._signed|=src->select.s._signed; + dest->select.s.b_signed|=src->select.s.b_signed; SPEC_STAT (dest) |= SPEC_STAT (src); SPEC_EXTR (dest) |= SPEC_EXTR (src); SPEC_CONST(dest) |= SPEC_CONST (src); @@ -1814,7 +1814,7 @@ computeType (sym_link * type1, sym_link * type2, reType = getSpec (rType); /* avoid conflicting types */ - reType->select.s._signed = 0; + reType->select.s.b_signed = 0; /* if result is a literal then make not so */ if (IS_LITERAL (reType)) diff --git a/src/SDCCsymt.h b/src/SDCCsymt.h index 7e4a400e..c9668d2d 100644 --- a/src/SDCCsymt.h +++ b/src/SDCCsymt.h @@ -133,18 +133,18 @@ typedef struct specifier NOUN noun; /* CHAR INT STRUCTURE LABEL */ STORAGE_CLASS sclass; /* REGISTER,AUTO,FIX,CONSTANT */ struct memmap *oclass; /* output storage class */ - unsigned _long:1; /* 1=long */ - unsigned _short:1; /* 1=short int */ - unsigned _unsigned:1; /* 1=unsigned, 0=signed */ - unsigned _signed:1; /* just for sanity checks only*/ - unsigned _static:1; /* 1=static keyword found */ - unsigned _extern:1; /* 1=extern found */ - unsigned _absadr:1; /* absolute address specfied */ - unsigned _volatile:1; /* is marked as volatile */ - unsigned _const:1; /* is a constant */ - unsigned _typedef:1; /* is typedefed */ - unsigned _isregparm:1; /* is the first parameter */ - unsigned _isenum:1; /* is an enumerated type */ + unsigned b_long:1; /* 1=long */ + unsigned b_short:1; /* 1=short int */ + unsigned b_unsigned:1; /* 1=unsigned, 0=signed */ + unsigned b_signed:1; /* just for sanity checks only*/ + unsigned b_static:1; /* 1=static keyword found */ + unsigned b_extern:1; /* 1=extern found */ + unsigned b_absadr:1; /* absolute address specfied */ + unsigned b_volatile:1; /* is marked as volatile */ + unsigned b_const:1; /* is a constant */ + unsigned b_typedef:1; /* is typedefed */ + unsigned b_isregparm:1; /* is the first parameter */ + unsigned b_isenum:1; /* is an enumerated type */ unsigned _addr; /* address of symbol */ unsigned _stack; /* stack offset for stacked v */ unsigned _bitStart; /* bit start position */ @@ -389,16 +389,16 @@ extern sym_link *validateLink(sym_link *l, IFFUNC_BANKED(x))) #define SPEC_NOUN(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.noun -#define SPEC_LONG(x) validateLink(x, "SPEC_LONG", #x, SPECIFIER, __FILE__, __LINE__)->select.s._long -#define SPEC_SHORT(x) validateLink(x, "SPEC_LONG", #x, SPECIFIER, __FILE__, __LINE__)->select.s._short -#define SPEC_USIGN(x) validateLink(x, "SPEC_USIGN", #x, SPECIFIER, __FILE__, __LINE__)->select.s._unsigned +#define SPEC_LONG(x) validateLink(x, "SPEC_LONG", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_long +#define SPEC_SHORT(x) validateLink(x, "SPEC_LONG", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_short +#define SPEC_USIGN(x) validateLink(x, "SPEC_USIGN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_unsigned #define SPEC_SCLS(x) validateLink(x, "SPEC_SCLS", #x, SPECIFIER, __FILE__, __LINE__)->select.s.sclass -#define SPEC_ENUM(x) validateLink(x, "SPEC_ENUM", #x, SPECIFIER, __FILE__, __LINE__)->select.s._isenum +#define SPEC_ENUM(x) validateLink(x, "SPEC_ENUM", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_isenum #define SPEC_OCLS(x) validateLink(x, "SPEC_OCLS", #x, SPECIFIER, __FILE__, __LINE__)->select.s.oclass -#define SPEC_STAT(x) validateLink(x, "SPEC_STAT", #x, SPECIFIER, __FILE__, __LINE__)->select.s._static -#define SPEC_EXTR(x) validateLink(x, "SPEC_EXTR", #x, SPECIFIER, __FILE__, __LINE__)->select.s._extern +#define SPEC_STAT(x) validateLink(x, "SPEC_STAT", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_static +#define SPEC_EXTR(x) validateLink(x, "SPEC_EXTR", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_extern #define SPEC_CODE(x) validateLink(x, "SPEC_CODE", #x, SPECIFIER, __FILE__, __LINE__)->select.s._codesg -#define SPEC_ABSA(x) validateLink(x, "SPEC_ABSA", #x, SPECIFIER, __FILE__, __LINE__)->select.s._absadr +#define SPEC_ABSA(x) validateLink(x, "SPEC_ABSA", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_absadr #define SPEC_BANK(x) validateLink(x, "SPEC_BANK", #x, SPECIFIER, __FILE__, __LINE__)->select.s._regbank #define SPEC_ADDR(x) validateLink(x, "SPEC_ADDR", #x, SPECIFIER, __FILE__, __LINE__)->select.s._addr #define SPEC_STAK(x) validateLink(x, "SPEC_STAK", #x, SPECIFIER, __FILE__, __LINE__)->select.s._stack @@ -412,11 +412,11 @@ extern sym_link *validateLink(sym_link *l, * _bitStart field instead of defining a new field. */ #define SPEC_ISR_SAVED_BANKS(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s._bitStart -#define SPEC_VOLATILE(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s._volatile -#define SPEC_CONST(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s._const +#define SPEC_VOLATILE(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_volatile +#define SPEC_CONST(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_const #define SPEC_STRUCT(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.v_struct -#define SPEC_TYPEDEF(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s._typedef -#define SPEC_REGPARM(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s._isregparm +#define SPEC_TYPEDEF(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_typedef +#define SPEC_REGPARM(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.b_isregparm #define SPEC_ARGREG(x) validateLink(x, "SPEC_NOUN", #x, SPECIFIER, __FILE__, __LINE__)->select.s.argreg /* type check macros */ @@ -438,25 +438,25 @@ extern sym_link *validateLink(sym_link *l, #define IS_GENPTR(x) (IS_DECL(x) && DCL_TYPE(x) == GPOINTER) #define IS_FUNCPTR(x) (IS_DECL(x) && (DCL_TYPE(x) == CPOINTER || DCL_TYPE(x) == GPOINTER) && IS_FUNC(x->next)) #define IS_FUNC(x) (IS_DECL(x) && DCL_TYPE(x) == FUNCTION) -#define IS_LONG(x) (IS_SPEC(x) && x->select.s._long) -#define IS_UNSIGNED(x) (IS_SPEC(x) && x->select.s._unsigned) -#define IS_TYPEDEF(x)(IS_SPEC(x) && x->select.s._typedef) +#define IS_LONG(x) (IS_SPEC(x) && x->select.s.b_long) +#define IS_UNSIGNED(x) (IS_SPEC(x) && x->select.s.b_unsigned) +#define IS_TYPEDEF(x)(IS_SPEC(x) && x->select.s.b_typedef) #define IS_CONSTANT(x) (!x ? 0 : \ IS_SPEC(x) ? \ - x->select.s._const : \ + x->select.s.b_const : \ x->select.d.ptr_const) #define IS_STRUCT(x) (IS_SPEC(x) && x->select.s.noun == V_STRUCT) -#define IS_ABSOLUTE(x) (IS_SPEC(x) && x->select.s._absadr ) +#define IS_ABSOLUTE(x) (IS_SPEC(x) && x->select.s.b_absadr ) #define IS_REGISTER(x) (IS_SPEC(x) && SPEC_SCLS(x) == S_REGISTER) #define IS_RENT(x) (IS_SPEC(x) && x->select.s._reent ) #define IS_STATIC(x) (IS_SPEC(x) && SPEC_STAT(x)) #define IS_INT(x) (IS_SPEC(x) && x->select.s.noun == V_INT) #define IS_VOID(x) (IS_SPEC(x) && x->select.s.noun == V_VOID) #define IS_CHAR(x) (IS_SPEC(x) && x->select.s.noun == V_CHAR) -#define IS_EXTERN(x) (IS_SPEC(x) && x->select.s._extern) +#define IS_EXTERN(x) (IS_SPEC(x) && x->select.s.b_extern) #define IS_VOLATILE(x) (!x ? 0 : \ IS_SPEC(x) ? \ - x->select.s._volatile : \ + x->select.s.b_volatile : \ x->select.d.ptr_volatile) #define IS_INTEGRAL(x) (IS_SPEC(x) && (x->select.s.noun == V_INT || \ x->select.s.noun == V_CHAR || \ diff --git a/src/SDCCval.c b/src/SDCCval.c index 6f7ffaf7..0cc9d811 100644 --- a/src/SDCCval.c +++ b/src/SDCCval.c @@ -532,7 +532,7 @@ value *constVal (char *s) } /* Setup the flags first */ - /* set the _long flag if 'lL' is found */ + /* set the b_long flag if 'lL' is found */ if (strchr (s, 'l') || strchr (s, 'L')) { SPEC_NOUN (val->type) = V_INT; SPEC_LONG (val->type) = 1; -- 2.30.2