Commit Graph

202 Commits

Author SHA1 Message Date
thorpej 1e27695917 Define FLOAT_SIZE, DOUBLE_SIZE, LDOUBLE_SIZE, and ENUM_SIZE in
target-specific headers, and use the definitions when initializing
the type table.
2002-01-30 06:54:56 +00:00
thorpej 65260ae99b Add a missing "static" on a function decl. 2002-01-30 06:48:32 +00:00
tv 1ae7d35cc2 Remove #include <err.h> (now in lint.h). 2002-01-29 02:43:38 +00:00
thorpej 6e4e75cdae Add a missing "break;" statement so that this actually works again. 2002-01-22 01:14:03 +00:00
tv 44fbde6015 Add hooks for compiling on non-NetBSD hosts. 2002-01-21 19:49:51 +00:00
thorpej 81a86a8f72 Centralize the initialization/declaration of the ttab. 2002-01-18 21:01:38 +00:00
thorpej 41d48940fa * Move stuff shared between lint1 and lint2 to the new common/ directory.
* Move the arch/ directory out of lint1/ into the top-level.
2002-01-18 20:39:17 +00:00
thorpej 55e9ae94b2 Initialize the type table with the correct type sizes for the target. 2002-01-18 20:14:32 +00:00
tron a86fbba5c1 Add "case" statements for "NTSPEC" to fix "gcc" warnings. 2002-01-03 18:50:54 +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 c73e79666d Simplify test for integer types in the BITFIELDTYPE handling path. 2002-01-03 05:26:53 +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
tv b8cee5e237 If USETOOLS=yes, as in a cross build or standard tool-based build, create
lint1.7 using the host lint1 tool.  Otherwise run lint1 from here, as has
been done historically.

Should fix toolchain/15001.
2001-12-19 18:10:40 +00:00
augustss a30c07720a Don't use fd_set to keep track of errors to ignore. Doing so relies on
overriding FD_SETSIZE.  Not overriding it makes it stomp all over memory
(which caused the debug outputs we've seen lately).
It used to work, but toolification of lint broke it.
2001-12-13 23:56:00 +00:00
tv 8e6f7afb5b MKfoo=no -> NOfoo 2001-12-12 01:48:43 +00:00
wiz a775ffcd09 Punctuation nits. 2001-12-08 19:27:56 +00:00
wiz b4371d47f5 Replace some misuses of "then" with "than". 2001-12-04 17:56:30 +00:00
wiz 1fd7eeefcd "than" instead of "then". 2001-11-21 19:14:19 +00:00
wiz 55e6492076 Explicitly write explicitly without a second e. 2001-11-21 17:33:26 +00:00
perry 46164f478c Fix a bug in detecting overflow in unsigned multiplication.
XXX Note that the overflow code for many cases seems to be buggy. I've
only fixed one bug that was bothering me. A set of regression tests
and extensive testing are needed.
2001-11-17 04:35:32 +00:00
tv b5cd2489b2 Major overhaul of src/tools and host toolchain. Summary of changes:
* Rewrite src/tools Make logic to work like the rest of the tree wrt
  "dependall" and "install".  The old "make build" hack is gone.

* Remove the MKTOOLS logic.  This was linked to the "make build" hack,
  and was only needed because TOOLDIR originally had no writable default.

* Redo the GNU configure/make logic to make it fit reasonably in a
  BSD make wrapper.  Use new ${.ALLTARGETS} variable to scan for
  targets in $(srcdir), and mark them with .MADE: to prevent rebuilding.

* Only build cross tools in src/tools; remove some messy logic in
  src/usr.* and src/gnu/usr.* that would do target filename rewriting
  (improves consistency and readability).

* Add the ability to build cross gdb at tool build time by setting
  MKCROSSGDB (default no) to "yes" in mk.conf.

* Add src/tools/groff and set up paths to work with this cross groff.
2001-11-12 23:16:17 +00:00
yamt 9ab12a24fa our wchar_t is int, not short. 2001-10-28 05:24:37 +00:00
thorpej 5f0a22902a Give host tool builds better control over the HOST_CPPFLAGS. 2001-10-25 02:22:55 +00:00
thorpej 75f45f0ffb Add support for putting prefixes on the name of lint(1)'s front
and back ends.  This means that it can be built as a cross tool.
Part of the fix for bin/14280.
2001-10-24 02:31:09 +00:00
tv d3c2262c8b Back out part of rev. 1.16 (my build didn't pick up the -I from
../Makefile.inc the first time around, for some reason.)
2001-10-24 01:12:45 +00:00
thorpej 20d4cc1a5a Set a CPP define on the command line to indicate which object
format lint(1) is being targeted at, and use this knowledge
as appropriate in the target param headers.
2001-10-24 00:42:35 +00:00
tv b96cc8c40e Let lint.7 get auto-built by the bsd.man.mk logic (don't explicitly depend
on it via "realall:").  Fixes lint.7 problem in src/tools reported by mrg.

While here, actually -I the arch subdir to pull in the correct targparam.h.
2001-10-24 00:07:39 +00:00
jmc d63596f307 Move CPPFLAGS addition for lint1/arch to Makefile.inc so each subdir will
pick them up
2001-10-22 05:19:31 +00:00
thorpej 62f88da44c Split out target parameters into separate header files, and
pull the correct one in based on the MACHINE_CPU variable.
MACHINE_CPU will be set according to the target system we are
building for by <bsd.own.mk>.

One component of addressing bin/14280.
2001-10-21 21:39:49 +00:00
bjh21 67fe54beb4 On ARM ELF platforms, size_t and ptrdiff_t are u_long and long respectively.
See <arm/ansi.h>.
2001-10-06 12:25:56 +00:00
wiz 9fa0b17629 Give initiali[sz]e all the "i"s it deserves. 2001-09-18 18:15:49 +00:00
wiz 456dff6cb8 Spell 'occurred' with two 'r's. 2001-09-16 16:34:23 +00:00
wiz 1e378c4c12 precede, not preceed. 2001-08-20 12:00:46 +00:00
eeh 7cac6218f0 Don't use long double on sparc64 since the compiler is borked. 2001-08-17 05:49:43 +00:00
tv dba5d44670 Add hooks to allow toolchain bits to be reachover-built at the top level. 2001-08-14 10:18:26 +00:00
wiz 30b2bf87ed Various typos in comments (neccessary, sceme, choise, ...). 2001-07-26 15:05:07 +00:00
wiz 878e08cf00 Nits. 2001-06-05 11:56:28 +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 2179a14315 oops! delint previous 2001-05-24 12:05:28 +00:00
lukem c33b2caa30 allow trailing , in enum if -g 2001-05-24 11:58:09 +00:00
lukem 67252d9cad minor whitespace/knf 2001-05-24 11:56:36 +00:00
lukem 18dddf4476 allow trailing , in enum if -g 2001-05-24 11:56:03 +00:00
sommerfeld 3cdcf0dfc6 Change type of anonymous bitfield pads so that lint -p no longer generates a
portability warning.
2001-05-19 17:19:00 +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
lukem b1e062a80e s/refferd/referred/ 2001-04-29 12:02:45 +00:00
simonb a69a3cc5ec Spell occurred correctly. 2001-04-25 02:19:48 +00:00
cgd fd8d16c72f fix broken NetBSD RCS id tags 2001-02-24 00:43:50 +00:00
cgd c2bdafab79 use getprogname() 2001-02-20 23:51:59 +00:00
cgd a8ec668ddf convert to use getprogname() 2001-02-19 23:03:42 +00:00
bjh21 422a592092 __arm26__ || __arm32__ -> __arm__ 2001-02-10 19:15:24 +00:00
enami b25b640d38 No space is allowed before comma in optarg for -X option. 2001-01-23 23:06:11 +00:00
wiz 18f3d66238 Handle arguments in a slightly more standard way (avoid resetting optind). 2000-11-27 00:54:25 +00:00
mrg f81973bb8f sparc & sparc64 use `long' for ptrdiff_t. 2000-11-08 02:30:22 +00:00
is 135600f947 More format string cleanup by sommerfeld. 2000-10-11 14:46:00 +00:00
cgd b653335cf3 don't build lint libs if MKLINT == no 2000-07-27 03:29:28 +00:00
mycroft 6ea1997e79 Fix problem building lint.7. 2000-07-23 22:17:14 +00:00
christos 6fa36b3bb7 better way to handle lint.7 2000-07-06 01:21:46 +00:00
christos b28978bb69 document new flags. 2000-07-06 01:17:18 +00:00
christos 17ac48f4b1 pass -X <id>[,<id>]... and -w to lint1 2000-07-06 01:12:24 +00:00
christos ab89a2b0b0 build lint.7 man page 2000-07-06 01:11:23 +00:00
christos 4017aef2ee add 3 new flags:
-m print message list
-X <id>[,<id>]... suppress error messages with give ids.
-w treat warnings as errors.
2000-07-06 01:10:51 +00:00
christos 86cf133f3b new function and new flag... 2000-07-06 01:09:56 +00:00
christos 2e6af79a57 - support for -X flag
- support for -m flag
- print the error number in each message
2000-07-06 01:09:20 +00:00
christos 3c68257297 new script to generate a man page of error messages that lint generates 2000-07-06 01:08:10 +00:00
christos 5c2e510661 Prevent lint1 from coredumping on invalid c code such as:
foo((sockaddr *(void *))0);

This fix is imperfect, because right now we just check the subtype
chains for NULL and we return to the caller when the loop ends, leaving
the upper layers to cope with the syntax error. Ideally we should:

	a.) return an error to the upper layer, or
	b.) not call the type analysis routines in the presence of a syntax
	    error.

That would require a significant re-write which would take much more time
than I have...
2000-07-05 22:50:59 +00:00
matt fcd0fb118f Make gcc 2.96 (and maybe earlier) happier. Include <stdlib.h>,<string.>,
etc. as appropriate to get exit,srncmp,abs,abort,etc.
Add -I${.CURDIR} to a few Makefiles
2000-07-03 02:51:12 +00:00
wrstuden 0e530441c1 Use execvp() instead of execv(). Deals with the case where CC, the compiler,
is not a full path. For instance, "cc".
2000-06-29 02:56:47 +00:00
matt 60dec93655 change lint to ${LINT} ${LINTFLAGS} so that includes in ${DESTDIR} are used. 2000-06-14 20:22:19 +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
bjh21 6c97e2bd78 Initial commit of arm26 port 2000-05-09 21:55:44 +00:00
bad dc38443eae Catch up with changing size_t to ulong on sparc 10 months ago. 2000-04-09 01:08:17 +00:00
garbled 86e14c4a11 Add parsing of the CC env variable, and a -Bpath flag (for /usr/libexec)
so cross-building of lint libraries can be made possible.  Tested
building a powerpc libc via make build on an alpha.
2000-03-22 01:09:34 +00:00
soren 89c5a767f8 Fix doubled 'the's. 2000-03-13 22:55:05 +00:00
mycroft c2c3950608 More .mk file fallout. *sigh* 2000-01-23 20:59:11 +00:00
itojun bb41dd1eaa add "#ifdef __sh3__" section.
(part of NetBSD/sh3 patches)
1999-09-12 16:10:45 +00:00
kleink 938ac456e0 Define __LINT__, per XCU5. 1999-09-09 09:34:25 +00:00
jwise 75eb9e11a9 Slight improvement to last fix: don't need to reset the cpp tempfile for
files which don't need to be run through cpp.  Also, use vfork() instead of
fork().

Both from Anders Hjalmarsson (Anders.Hjalmarsson@economics.gu.se)
1999-09-07 02:36:57 +00:00
jwise 6c0498c892 Apply fix from PR bin/8328 by Anders Hjalmarsson (Anders.Hjalmarsson@economics.gu.se):
work properly again when passwd multiple files on the command line.
1999-09-06 06:45:20 +00:00
christos f53f008dfb More cosmetics in the usage message... 1999-05-03 15:45:01 +00:00
christos 5cb75fd417 Now that we use cc -E, -U__GNUC__ to avoid gnu extensions. Nuke the
__attribute__ and __extension__ workarounds.
Our invariant is: No gcc extensions if __GNUC__ is not defined, so lint
should not be playing around trying to pretend it is gcc.
1999-05-03 15:23:27 +00:00
christos e782f12df1 Deal with gcc __extension__({ }). We assume that it returns a value 0, and
we prepend a /*NOSTRICT*/ comment to avoid constant in conditional context
warning.
1999-04-29 12:40:39 +00:00
mrg b30d0fe7ba use "cc -E" not cpp directly. this allows lint(1) to be unaware of any
machine-dependant defines that cc(1) may normally define, and also
means that the mips ports work again.
1999-04-22 04:40:58 +00:00
garbled 9e44e9b578 More and more .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Many more to
come.
1999-03-22 18:16:34 +00:00
ross 7f8e818918 Missing .El. 1999-03-09 03:19:28 +00:00
mycroft a1c657fe56 Clean up SYNOPSIS formatting. 1999-03-07 11:29:58 +00:00
lukem dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
christos 487c013c51 char -> unsigned char 1998-12-20 19:05:19 +00:00
christos 8f9762f2e2 pass -CC instead of -C to cpp so that we preserve macro comments in place. 1998-12-09 12:28:36 +00:00
christos d79deccee9 Unfortunately lint uses c-style comments as directives and these get parsed
at the lexical analysis stage not at the syntax parsing stage. The upshot
is that:
	if (expr) {
		stmt1;
	}
	/* LINTED */
	stmt2;

stmt2 is the look-ahead token for the parser to choose between and if-then-else
statement as opposed to an if-then statement. Unfortunately the side effect
is that the LINTED directive gets reset before stmt2 gets parsed. We fix this,
by remembering the the linted directive during the if statement parsing and
restoring it at the appropriate time.
1998-11-23 14:37:08 +00:00
christos e79f03e595 Fix problems with LINTED comment:
if (a) b;
	/*LINTED*/
	c;

	if (a) { b; }
	/*LINTED*/
	c;

	do { b; }
	/*LINTED*/
	while (c);

Produced warnings for c.
1998-11-13 16:48:01 +00:00
itohy a42010baf2 Eliminate memory leaks at case labels. 1998-10-10 20:51:48 +00:00
itohy edb019abaf Eliminate memory leaks.
Use  xrealloc()  rather than  xmalloc/memcpy/free  trio.
1998-10-08 08:20:37 +00:00
wsanchez 9e44eb8cc1 Add __ppc__ test 1998-10-08 01:30:50 +00:00
mycroft 49b1e89cfe If the return value is sometimes discarded, output `sometimes ignored' rather
than `always ignored'.
1998-07-28 05:12:00 +00:00
mycroft a65a57d7b3 Propagate the value and test contexts to the right-hand side of a
comma operator.
1998-07-28 03:39:29 +00:00
mycroft 11177fb359 Search both sides of a comma operator for side effects. 1998-07-27 19:58:43 +00:00
mycroft defaa2bc6e Fix a recurring typo: comparision -> comparison. 1998-07-27 13:50:46 +00:00