static machine_triple_t *target_machine;
static const char *target_triple;
static int verbose;
-static bool use_builtins;
static struct obstack cppflags_obst;
static struct obstack ldflags_obst;
static struct obstack asflags_obst;
panic("filename too long");
}
-#include "gen_builtins.h"
-
static translation_unit_t *do_parsing(FILE *const in, const char *const input_name)
{
start_parsing();
- if (use_builtins) {
- lexer_open_buffer(builtins, sizeof(builtins)-1, "<builtin>");
- parse();
- }
-
lexer_open_stream(in, input_name);
parse();
lexer_next_preprocessing_token();
print_token(stdout, &lexer_token);
putchar('\n');
- } while (lexer_token.type != T_EOF);
+ } while (lexer_token.kind != T_EOF);
}
static void add_flag(struct obstack *obst, const char *format, ...)
fprintf(stderr, "invoking preprocessor failed\n");
exit(EXIT_FAILURE);
}
- /* we don't really need that anymore */
+ /* we do not really need that anymore */
obstack_free(&cppflags_obst, commandline);
return f;
int fd = mkstemp(buffer);
if (fd == -1) {
- fprintf(stderr, "couldn't create temporary file: %s\n",
+ fprintf(stderr, "could not create temporary file: %s\n",
strerror(errno));
exit(EXIT_FAILURE);
}
FILE *out = fdopen(fd, "w");
if (out == NULL) {
- fprintf(stderr, "couldn't create temporary file FILE*\n");
+ fprintf(stderr, "could not create temporary file FILE*\n");
exit(EXIT_FAILURE);
}
put_choice("assembler", "Assembler (no preprocessing)");
put_choice("assembler-with-cpp", "Assembler with preprocessing");
put_choice("none", "Autodetection");
- put_help("-pipe", "ignored (gcc compatibility)");
+ put_help("-pipe", "Ignored (gcc compatibility)");
}
static void print_help_preprocessor(void)
put_help("-I PATH", "");
put_help("-D SYMBOL[=value]", "");
put_help("-U SYMBOL", "");
- put_help("-Wp,OPTION", "pass option directly to preprocessor");
+ put_help("-Wp,OPTION", "Pass option directly to preprocessor");
put_help("-M", "");
put_help("-MD", "");
put_help("-MMD", "");
static void print_help_parser(void)
{
put_help("-finput-charset=CHARSET", "Select encoding of input files");
- put_help("-fmessage-length=LEN", "ignored (gcc compatibility)");
- put_help("-fshort-wchar", "wchar_t is unsigned short instead of int");
- put_help("-fshow-column", "show the column number in diagnostic messages");
- put_help("-funsigned-char", "char is an unsigned type");
+ put_help("-fmessage-length=LEN", "Ignored (gcc compatibility)");
+ put_help("-fshort-wchar", "Type \"wchar_t\" is unsigned short instead of int");
+ put_help("-fshow-column", "Show the column number in diagnostic messages");
+ put_help("-fsigned-char", "Type \"char\" is a signed type");
+ put_help("-funsigned-char", "Type \"char\" is an unsigned type");
put_help("--ms", "Enable msvc extensions");
put_help("--no-ms", "Disable msvc extensions");
put_help("--gcc", "Enable gcc extensions");
put_help("-std=STANDARD", "Specify language standard:");
put_choice("c99", "ISO C99 standard");
put_choice("c89", "ISO C89 standard");
- put_choice("c9x", "deprecated");
+ put_choice("c9x", "Deprecated");
put_choice("c++", "ISO C++ 98");
put_choice("c++98", "ISO C++ 98");
put_choice("gnu99", "ISO C99 + GNU extensions (default)");
put_choice("gnu89", "ISO C89 + GNU extensions");
- put_choice("gnu9x", "deprecated");
+ put_choice("gnu9x", "Deprecated");
put_choice("iso9899:1990", "ISO C89");
put_choice("iso9899:199409", "ISO C90");
put_choice("iso9899:1999", "ISO C99");
- put_choice("iso9899:199x", "deprecated");
- put_help("-pedantic", "ignored (gcc compatibility)");
- put_help("-ansi", "ignored (gcc compatibility)");
+ put_choice("iso9899:199x", "Deprecated");
+ put_help("-pedantic", "Ignored (gcc compatibility)");
+ put_help("-ansi", "Ignored (gcc compatibility)");
put_help("--strict", "Enable strict conformance checking");
}
static void print_help_warnings(void)
{
put_help("-f[no-]diagnostics-show-option", "Show the switch, which controls a warning, after each warning");
- put_help("-w", "disable all warnings");
- put_help("-Wno-trigraphs", "warn if input contains trigraphs");
+ put_help("-w", "Disable all warnings");
+ put_help("-Wno-trigraphs", "Warn if input contains trigraphs");
put_help("-Wundef", "Warn if an undefined macro is used in an #if");
+ put_help("-Winit-self", "Ignored (gcc compatibility)");
print_warning_opt_help();
}
static void print_help_optimization(void)
{
- put_help("-O LEVEL", "select optimization level (0-4)");
+ put_help("-O LEVEL", "Select optimization level (0-4)");
firm_option_help(put_help);
- put_help("-fexpensive-optimizations","ignored (gcc compatibility)");
+ put_help("-fexpensive-optimizations","Ignored (gcc compatibility)");
}
static void print_help_codegeneration(void)
put_help("-g", "Generate debug information");
put_help("-pg", "Instrument code for gnu gprof");
put_help("-fomit-frame-pointer", "Produce code without frame pointer where possible");
- put_help("-ffreestanding", "compile in freestanding mode (see ISO C standard)");
- put_help("-fhosted", "compile in hosted (not freestanding) mode");
+ put_help("-ffreestanding", "Compile in freestanding mode (see ISO C standard)");
+ put_help("-fhosted", "Compile in hosted (not freestanding) mode");
put_help("-fprofile-generate", "Generate instrumented code to collect profile information");
put_help("-fprofile-use", "Use profile information generated by instrumented binaries");
- put_help("-ffp-precise", "precise floating point model");
- put_help("-ffp-fast", "imprecise floating point model");
- put_help("-ffp-strict", "strict floating point model");
- put_help("-ffp-precise", "precise floating point model");
+ put_help("-ffp-precise", "Precise floating point model");
+ put_help("-ffp-fast", "Imprecise floating point model");
+ put_help("-ffp-strict", "Strict floating point model");
put_help("-pthread", "Use pthread threading library");
put_help("-mtarget=TARGET", "Specify target architecture as CPU-manufacturer-OS triple");
- put_help("-mtriple=TARGET", "alias for -mtarget (clang compatibility)");
+ put_help("-mtriple=TARGET", "Alias for -mtarget (clang compatibility)");
put_help("-march=ARCH", "");
put_help("-mtune=ARCH", "");
put_help("-mcpu=CPU", "");
put_help("-mfpmath=", "");
put_help("-mpreferred-stack-boundary=", "");
put_help("-mrtd", "");
- put_help("-mregparm=", "not supported yet");
- put_help("-msoft-float", "not supported yet");
- put_help("-m32", "generate 32bit code");
- put_help("-m64", "generate 64bit code");
- put_help("-fverbose-asm", "ignored (gcc compatibility)");
- put_help("-fjump-tables", "ignored (gcc compatibility)");
- put_help("-fcommon", "ignored (gcc compatibility)");
- put_help("-foptimize-sibling-calls", "ignored (gcc compatibility)");
- put_help("-falign-loops", "ignored (gcc compatibility)");
- put_help("-falign-jumps", "ignored (gcc compatibility)");
- put_help("-falign-functions", "ignored (gcc compatibility)");
- put_help("-fPIC", "ignored (gcc compatibility)");
- put_help("-ffast-math", "same as fp-fast (gcc compatibility)");
+ put_help("-mregparm=", "Not supported yet");
+ put_help("-msoft-float", "Not supported yet");
+ put_help("-m32", "Generate 32bit code");
+ put_help("-m64", "Generate 64bit code");
+ put_help("-fverbose-asm", "Ignored (gcc compatibility)");
+ put_help("-fjump-tables", "Ignored (gcc compatibility)");
+ put_help("-fcommon", "Ignored (gcc compatibility)");
+ put_help("-foptimize-sibling-calls", "Ignored (gcc compatibility)");
+ put_help("-falign-loops", "Ignored (gcc compatibility)");
+ put_help("-falign-jumps", "Ignored (gcc compatibility)");
+ put_help("-falign-functions", "Ignored (gcc compatibility)");
+ put_help("-fPIC", "Ignored (gcc compatibility)");
+ put_help("-ffast-math", "Same as -ffp-fast (gcc compatibility)");
puts("");
puts("\tMost of these options can be used with a no- prefix to disable them");
- puts("\te.g. -fno-signed-char");
+ puts("\te.g. -fno-omit-frame-pointer");
}
static void print_help_linker(void)
put_help("-L PATH", "");
put_help("-shared", "Produce a shared library");
put_help("-static", "Produce statically linked binary");
- put_help("-Wl,OPTION", "pass option directly to linker");
+ put_help("-Wl,OPTION", "Pass option directly to linker");
}
static void print_help_debug(void)
static void print_help_firm(void)
{
- put_help("-bOPTION", "directly pass option to libFirm backend");
+ put_help("-bOPTION", "Directly pass option to libFirm backend");
int res = be_parse_arg("help");
(void) res;
assert(res);
while (!feof(input) && !ferror(dest)) {
size_t read = fread(buf, 1, sizeof(buf), input);
if (fwrite(buf, 1, read, dest) != read) {
- perror("couldn't write output");
+ perror("could not write output");
}
}
}
FILE *in = fopen(filename, "r");
if (in == NULL) {
- fprintf(stderr, "Couldn't open '%s': %s\n", filename,
+ fprintf(stderr, "Could not open '%s': %s\n", filename,
strerror(errno));
exit(EXIT_FAILURE);
}
const backend_params *be_params = be_get_backend_param();
if (be_params->long_double_size % 8 != 0) {
- fprintf(stderr, "firm-target long double size is not a multiple of 8, can't handle this\n");
+ fprintf(stderr, "firm-target long double size is not a multiple of 8, cannot handle this\n");
exit(1);
}
}
} else if (strstart(orig_opt, "message-length=")) {
/* ignore: would only affect error message format */
+ } else if (streq(orig_opt, "fast-math") ||
+ streq(orig_opt, "fp-fast")) {
+ firm_fp_model = fp_model_fast;
+ } else if (streq(orig_opt, "fp-precise")) {
+ firm_fp_model = fp_model_precise;
+ } else if (streq(orig_opt, "fp-strict")) {
+ firm_fp_model = fp_model_strict;
+ } else if (streq(orig_opt, "help")) {
+ fprintf(stderr, "warning: -fhelp is deprecated\n");
+ help |= HELP_OPTIMIZATION;
} else {
/* -f options which have an -fno- variant */
char const *opt = orig_opt;
opt += 3;
}
- if (streq(opt, "builtins")) {
- use_builtins = truth_value;
- } else if (streq(opt, "diagnostics-show-option")) {
+ if (streq(opt, "diagnostics-show-option")) {
diagnostics_show_option = truth_value;
} else if (streq(opt, "dollars-in-identifiers")) {
allow_dollar_in_symbol = truth_value;
profile_use = truth_value;
} else if (!truth_value &&
streq(opt, "asynchronous-unwind-tables")) {
- /* nothing todo, a gcc feature which we don't support
+ /* nothing todo, a gcc feature which we do not support
* anyway was deactivated */
} else if (streq(opt, "verbose-asm")) {
/* ignore: we always print verbose assembler */
- } else if (streq(opt, "fast-math") || streq(opt, "fp-fast")) {
- firm_fp_model = fp_model_fast;
- } else if (streq(opt, "fp-precise")) {
- firm_fp_model = fp_model_precise;
- } else if (streq(opt, "fp-strict")) {
- firm_fp_model = fp_model_strict;
} else if (streq(opt, "jump-tables") ||
streq(opt, "expensive-optimizations") ||
streq(opt, "common") ||
streq(opt, "align-functions") ||
streq(opt, "PIC")) {
fprintf(stderr, "ignoring gcc option '-f%s'\n", orig_opt);
- } else if (streq(opt, "help")) {
- fprintf(stderr, "warning: -fhelp is deprecated\n");
- help |= HELP_OPTIMIZATION;
} else {
int res = firm_option(orig_opt);
if (res == 0) {
} else if (streq(option + 1, "no-trigraphs")
|| streq(option + 1, "undef")) {
add_flag(&cppflags_obst, "%s", arg);
+ } else if (streq(option+1, "init-self")) {
+ /* ignored (gcc compatibility) */
} else {
set_warning_opt(&option[1]);
}
else if (streq(opt, "sse"))
opt = "sse2";
else {
- fprintf(stderr, "error: option -mfpumath supports only 387 or sse\n");
+ fprintf(stderr, "error: option -mfpmath supports only 387 or sse\n");
argument_errors = true;
}
if (!argument_errors) {
} else {
out = fopen(outname, "w");
if (out == NULL) {
- fprintf(stderr, "Couldn't open '%s' for writing: %s\n", outname,
+ fprintf(stderr, "Could not open '%s' for writing: %s\n", outname,
strerror(errno));
return EXIT_FAILURE;
}