From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Joseph S. Myers" To: Neil Booth Cc: , "Chris G . Demetriou" Subject: Re: [RFC] Let's kill specs, completely rewrite gcc.c Date: Sun, 07 Jan 2001 07:53:00 -0000 Message-id: References: <20010107131442.B24550@daikokuya.demon.co.uk> X-SW-Source: 2001-01/msg00300.html Would this also include a cleanup of the argument parsing in toplev.c and lang_decode_option? It's absurd for C and C++ each to have their own long sequence of strcmps, when many options are common between them and toplev.c already includes a table W_options and code to use it for language-independent options. (With slight complications of the tables to allow for functions to be called for specific options, all hardcoded conditionals on particular option names should be removable.) I presume this would fix the problem that -funsigned-char -fsigned-char defines __CHAR_UNSIGNED__ but has signed char, which seems fairly intrinsic to the current specs scheme. I also presume this would lead to a natural fix to c/545 (-std=c89 doesn't do the same as -ansi), although a kludge in some specs file could probably fix this in the present scheme? Would the options -V and -b be removed (as seems plausible, if links by names such as gcc-3.0 to the driver get installed)? I think there should be a precise specification of the exact semantics of a series of command line options, some of which override each other. For example, what is -fno-traditional supposed to mean? (Specifying a language standard makes sense, though why it should override some previous options (e.g. -fwritable-strings - which does not stop an implementation from being conforming) but not others (e.g. -fcond-mismatch) doesn't. But what does it mean to specify "not traditional"?) -- Joseph S. Myers jsm28@cam.ac.uk