Teach lint about C99's _Bool and _Complex, plus some related gcc
authorguenther <guenther@openbsd.org>
Sat, 24 Jul 2010 22:17:03 +0000 (22:17 +0000)
committerguenther <guenther@openbsd.org>
Sat, 24 Jul 2010 22:17:03 +0000 (22:17 +0000)
commit5fdc31176191116d769f239419f5cba4f36bda1e
treeaa84a0bc0ba89ad509d2b5de9190d871a1d95695
parent84ceee3fee2097c90e0c94ef207c5167df534233
Teach lint about C99's _Bool and _Complex, plus some related gcc
extensions: __real__ and __imag__ operators, the use of '~' for
complex conjugation, and 'i' or 'j' as a suffix for complex constants.
While this doesn't handle folding and overflow detection for complex
constants correctly, it's good enough to make it through libm...and
found several bugs once it could do so.

"no objections" miod@, krw@
13 files changed:
include/complex.h
include/stdbool.h
usr.bin/xlint/lint1/decl.c
usr.bin/xlint/lint1/emit1.c
usr.bin/xlint/lint1/externs1.h
usr.bin/xlint/lint1/lint.h
usr.bin/xlint/lint1/lint1.h
usr.bin/xlint/lint1/op.h
usr.bin/xlint/lint1/scan.l
usr.bin/xlint/lint1/tree.c
usr.bin/xlint/lint2/chk.c
usr.bin/xlint/lint2/emit2.c
usr.bin/xlint/lint2/read.c