Commit Graph

32 Commits

Author SHA1 Message Date
perry ab74747a8d 1) // is only for c99 or gcc
2) inline is acceptable in c99 -- create a new c99 keyword class.

XXX The handling of sflag and Sflag is utterly bogus throughout this
pass. I think I have to make some adjustments.
2002-11-02 01:42:22 +00:00
christos 5a3a9e9ea9 add support for ({}) gcc shit. 2002-10-22 22:50:11 +00:00
christos 899427c2e4 handle free-ing of temp symbols properly. Don't segv on bad node types. 2002-10-22 21:09:34 +00:00
christos c5db62c0ef add C9X/GCC compound literal expressions. 2002-10-22 18:15:00 +00:00
christos baa7f9f49e Minimize diffs with my C99 capable version [this commit does not include
C99 support.

- turn lerror() into a macro so that the filename and the line number of the
  error are printed before we abort.
- recurse in type printing to provide the proper type name.
2002-09-13 14:59:24 +00:00
thorpej b02b24b1d7 Replace u_quad_t with uint64_t and quad_t with int64_t, and use
<inttypes.h> to get those type definitions.  These types are more
portable, and a little more sane to do autoconf tests for.
2002-02-05 03:04:26 +00:00
tv 95407c5758 Use !finite() instead of isinf() in two places for better compatibility. 2002-01-31 22:30:20 +00:00
tv 76834aef57 Protect __RCSID and __COPYRIGHT from being invoked if not defined. 2002-01-31 19:36:47 +00:00
tv 1ae7d35cc2 Remove #include <err.h> (now in lint.h). 2002-01-29 02:43:38 +00:00
thorpej c5e919f6c9 Make sure the tspec_t enum starts at 0, and declare NTSPEC in
the enum proper.
2002-01-03 05:37:39 +00:00
thorpej 9971ed0315 * Add header files (ilp32.h and lp64.h) that describe the two
models of type sizes that we currently support, and include
  the appropriate one in each arch's targparam.h.
* Use the type size constants provided by targparam.h in the
  type table, rather than using "sizeof(type) * CHAR_BIT" (which
  would get the host's type size, not the target's).  XXX Not
  yet done for floating point types.
* Add a new BITFIELDTYPE lint comment that suppresses illegal
  bitfield type errors if the type is an integer type (e.g.
  long, long long), and also suppresses non-portable bitfield
  type warnings.
2002-01-03 04:25:14 +00:00
wiz eeb870f152 Fix typo. 2001-12-24 20:52:09 +00:00
wiz b4371d47f5 Replace some misuses of "then" with "than". 2001-12-04 17:56:30 +00:00
lukem 704847f405 cleanup (prior to more adding more features):
- convert to ANSI KNF
- remove trailing whitespace
- translate some comments from german into english

code compiles and runs clean, and tested by running "make lint" against
xlint source using previous and this lint produces same results.
2001-05-28 12:40:37 +00:00
lukem 905f1ba6a0 support // comments if -g is given 2001-05-24 12:10:39 +00:00
lukem 67252d9cad minor whitespace/knf 2001-05-24 11:56:36 +00:00
lukem 42f4b2cf45 only error on a newline in a string if -t (traditional) mode is enabled, since
ansi c supports multi-line strings without the trailing \n\ ...
2001-05-07 09:02:55 +00:00
cgd d220ca5ba3 fix up NetBSD RCS Ids to match the standard, and the leading comment as
to match as well.  No functional changes.
2000-06-14 06:48:47 +00:00
simonb 659b78955d Don't need local extern declaration of strtouq() - it's in <stdlib.h>. 2000-05-10 05:09:17 +00:00
christos 487c013c51 char -> unsigned char 1998-12-20 19:05:19 +00:00
tv 482063559a .y.c <sys.mk> rule fixes. Don't create a y.tab.h file unless asked for,
and use smarter creation of the header file.
1998-04-09 00:32:31 +00:00
christos a06495e3c4 WARNSify 1998-02-22 15:40:39 +00:00
cgd f9356d1960 implement (hack in) symbol (function and variable) renaming, so that
the function renaming tricks currently needed by libc can be tolerated
by lint.  This needs some cleanup, but it appears to work.
1997-11-03 22:36:31 +00:00
cgd 06fa442b12 * recognize that pointers to identical unnamed and untyped structs,
unions, and enums are, in fact, identical.  This is done by tagging
  each of unnamed and untyped structure, union and enum with a unique
  position of creation, which is used as a unique identifier that
  when determine whether or not a pair of structures, unions, or enums
  are identical.

* accept the file name '-' to indicate that standard input is to be
  used as lint1 input.  That involves having lint pass the '-' through
  to the cpp which preprocesses the lint1 input, and having lint1's
  scanner recognize a cpp filename "" as "{standard input}".
1996-12-22 11:31:24 +00:00
jpo 6df3d70406 use MB_LEN_MAX instead of MB_CUR_MAX for array declaration, because
MB_CUR_MAX may be a non-constant expression
1995-10-23 13:38:51 +00:00
jpo 5888f3bb16 LINTED and CONSTCOND are now valid up to the next end of a
global or local declaration/definition/statement. Originally they were
valid on the current and next line, which made it hard to suppress
warnings in constructs with more then one line.

LONGLONG can now be used to suppress errors or warnings in the next
declaration, definition or statement.
1995-10-02 17:29:45 +00:00
jpo b95167a01a support asm statements and asm modifiers in declarations
asm statements consist of an asm keyword, an optional qualifier, a
left paren, a list of tokens up to and including the matching right
paren, and a semicolon.

asm modifiers consist of an asm keyword, an left paren, a string and a
right paren.

asm statements and modifiers have no semantic for lint(1), they exist only
to avoid complaints about them.
1995-10-02 17:26:52 +00:00
jpo ef83266200 __{const,signed,volatile}{__,} added
const, signed and volatile are disabled with -t
1995-10-02 17:18:53 +00:00
jpo 2e332f67bf added inline keywords
"inline" is enabled by -g, "__inline" and "__inline__" are always available
1995-10-02 17:14:06 +00:00
jpo a5d55cc062 prefixed members of dinfo_t with 'd_' 1995-10-02 17:08:31 +00:00
cgd c61d16ddbe RCS id cleanup 1995-07-03 21:23:45 +00:00
cgd b14be51dec lint(1) implementation, by Jochen Pohl. named 'xlint' for a similar
reason to why 'install' is named 'xinstall'.
1995-07-03 20:56:35 +00:00