1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 23:29:39 +00:00

Fixed -W cmdline option handling.

Reverted part of 3157e4be1e as it actually introduced a regression.

It doesn't make sense to check for Arg[3] == '\0' _before_ checking Arg[2] != '\0'. This made the Win32 builds fail to correctly parse e.g. cl65 -W unused-var test.c
This commit is contained in:
Oliver Schmidt 2018-03-05 22:31:10 +01:00
parent 19f3229f45
commit bc58bf572c

View File

@ -1444,35 +1444,24 @@ int main (int argc, char* argv [])
/* Print version number */
OptVersion (Arg, 0);
break;
case 'E':
/* Forward -E to compiler */
CmdAddArg (&CC65, Arg);
DisableAssemblingAndLinking ();
break;
case 'W':
/* avoid && with'\0' in if clauses */
if (Arg[3] == '\0') {
switch (Arg[2]) {
case 'a':
/* -Wa: Pass options to assembler */
OptAsmArgs (Arg, GetArg (&I, 3));
break;
case 'c':
/* -Wc: Pass options to compiler
** Remember -Wc sub arguments in cc65 arg struct
*/
OptCCArgs (Arg, GetArg (&I, 3));
break;
case 'l':
/* -Wl: Pass options to linker */
OptLdArgs (Arg, GetArg (&I, 3));
break;
default:
UnknownOption (Arg);
break;
}
if (Arg[2] == 'a' && Arg[3] == '\0') {
/* -Wa: Pass options to assembler */
OptAsmArgs (Arg, GetArg (&I, 3));
} else if (Arg[2] == 'c' && Arg[3] == '\0') {
/* -Wc: Pass options to compiler */
/* Remember -Wc sub arguments in cc65 arg struct */
OptCCArgs (Arg, GetArg (&I, 3));
} else if (Arg[2] == 'l' && Arg[3] == '\0') {
/* -Wl: Pass options to linker */
OptLdArgs (Arg, GetArg (&I, 3));
} else {
/* Anything else: Suppress warnings (compiler) */
CmdAddArg2 (&CC65, "-W", GetArg (&I, 2));