]> granicus.if.org Git - flex/commit
scanner: Include flexdef.h at %top block of scan.l
authorExplorer09 <explorer09@gmail.com>
Mon, 4 Sep 2017 00:28:53 +0000 (08:28 +0800)
committerWill Estes <westes575@gmail.com>
Mon, 4 Sep 2017 01:17:59 +0000 (21:17 -0400)
commit4b5111d9772b5c160340ca96f08d30d7f6db5cda
tree6ad05a90e2966c706b364c6517736b15e379efea
parentf2943389fd3ca776d25735c06ef94512a2bb5c20
scanner: Include flexdef.h at %top block of scan.l

config.h may define macros that alter the API of the standard library
funtions, and so it should be included before any other standard
header, even before the skeleton's standard header inclusion.

For example: config.h may #define _GNU_SOURCE that would expose the
reallocarray() prototype from <stdlib.h> on glibc 2.26+ systems. If we
include <stdlib.h> before config.h, reallocarray() would not be
available for use in lex file since the second include doesn't help
due to header guard.

For now our config.h might `#define malloc rpl_malloc` -- this
substitution must work before including stdlib.h, or else the compiler
will complain about missing prototypes, and may result in incorrect
code in scan.l (gcc warning: return makes pointer from integer without
a cast [-Wint-conversion]).

Fixes #247.
src/scan.l