PR other/1502:
* cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
don't ignore unrecognized -W* options.
(cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
* cpplib.h (cpp_handle_option): Adjust prototype.
* c-decl.c (c_decode_options): Pass 0 as last argument to
cpp_handle_option.
PR c/2896:
* gcc.c (cpp_unique_options): Split from cpp_options.
(cpp_options): Source cpp_unique_options.
(default_compilers): Use cpp_unique_options instead of cpp_options
when used together with cc1_options.
(static_specs): Add cpp_unique_options.
* objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
when used together with cc1_options.
* decl2.c (cxx_decode_option): Pass 0 as last argument to
cpp_handle_option.
* lang-specs.h: Use cpp_unique_options instead of cpp_options
when used together with cc1_options.
From-SVN: r49315
* libiberty/mkstemps.c (mkstemps): On VMS, open temp file with option
that causes it to be deleted when closed.
* gcc/gcc.c (delete_if_ordinary): Backout previous change.
From-SVN: r48872
* gcc.c, config/fr30/fr30.c, config/v850/v850-c.c, toplev.c: Use
American spelling in messages.
* po/gcc.pot: Regenerate.
ch:
* decl.c, parse.c, typeck.c: Use American spelling in messages.
cp:
* lang-options.h: Use American spelling in messages.
From-SVN: r48047
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
Added changes to prevent -save-temps from clobbering the
input file (previously ok'ed by R. Henderson).
2001-12-14 Ira Ruben <ira@apple.com>
Add -### option (displays driver-generated commands without
executing and quotes all arguments).
* doc/invoke.texi: Add -###.
* gcc.c (verbose_only_flag) - New flag.
* (execute): If -### write quoted arguments and return.
* (display_help): Print meaning of -###.
* (process_command): Handle -###.
2001-12-14 Ira Ruben <ira@apple.com>
Fix to no allow -save-temps to clobber user's source file.
* gcc.c: Add static globals input_stat and input_stat_set.
(do_spec_1): For 'g', 'u', 'U' case with save_temps_flag
set, check that user's input file is not overwritten.
(set_input): Reset input_stat_set for each new file.
From-SVN: r48019
* cppspec.c (lang_specific_driver): Set is_cpp_driver.
* gcc.c (process_command): Ensure the cpp driver sees
--help and --target-help, and that the help is printed
exactly once.
From-SVN: r47627
* gcc.c (ASM_DEBUG_SPEC): Use conditional expression rather than
preprocessor define. If only DBX_DEBUGGING_INFO or only
DWARF2_DEBUGGING_INFO is supported for the target, provide
appropriate definitions.
From-SVN: r47390
* aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and
USE_INCLUDED_LIBINTL when appropriate.
* configure, config.in: Regenerate.
* Makefile.in (datadir): Set to @datadir@.
(intl.o): Also depend on $(CONFIG_H) and system.h.
* intl.c: Factor out common gettext initialization sequence.
(gcc_init_libintl): New function.
* intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL;
otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn
off NLS. Add multiple include guard. No need to #ifdef-guard
an #undef. Prototype gcc_init_libintl here.
* collect2.c (main), cppmain.c (general_init), gcc.c (main),
gcov.c (main), protoize.c (main), toplev.c (toplev_main):
Use gcc_init_libintl.
intl:
* Makefile.in: Don't copy libgnuintl.h anywhere.
From-SVN: r46348
config:
* acinclude.m4: Fix spelling error of "separate" as "seperate".
gcc:
* ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c,
genmultilib, toplev.c: Fix spelling errors of "separate" as
"seperate", and corresponding spelling errors of related words.
gcc/ada:
* 5oosinte.adb: Fix spelling error of "separate" as "seperate".
gcc/testsuite:
* gcc.c-torture/unsorted/unsorted.exp, lib/file-format.exp: Fix
spelling errors of "separate" as "seperate".
libffi:
* src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
libjava:
* defineclass.cc, java/awt/image/ColorModel.java,
java/awt/image/SampleModel.java, java/lang/Package.java,
java/security/cert/X509Extension.java: Fix spelling errors of
"separate" as "seperate", and corresponding spelling errors of
related words.
libstdc++-v3:
* docs/html/22_locale/locale.html, docs/html/faq/index.html: Fix
spelling errors of "separate" as "seperate", and corresponding
spelling errors of related words.
* docs/html/faq/index.txt: Regenerate.
From-SVN: r46063
* collect2.c (main): Const-ification.
* gcc.c (translate_options, process_command): Use xstrdup in
lieu of xmalloc/strcpy.
(main): Use concat in lieu of xmalloc/strcpy/strcat.
cp:
* mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
xmalloc/strcpy/strcat.
From-SVN: r45631
* cppinit.c (init_standard_includes): The returned buffer
is already malloc-ed.
* gcc.c (add_prefix): Similarly.
* prefix.c (translate_name): Update to support clear buffer
ownership rules.
(update_path): Similarly. Be sure to free any newly allocated
key. UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
(tr): New function.
* prefix.h (update_path): Update prototype and document.
* config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
up and update to new buffer ownership rules.
* doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
From-SVN: r45043
* gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
(translate_options): If the above is defined, use it to map
given options to new options.
* doc/tm.texi: Document it.
From-SVN: r43787
* toplev.c (independent_decode_option): Require `=' between
`-aux-info' and filename in the same argument.
* gcc.c: Don't pass -aux-info=filename twice.
From-SVN: r43123
* gcc.c (process_command): Allow -l lib in addition to -llib
for POSIX compliance. This fixes PR c/2347.
* invoke.texi: Update section on Link Options accordingly.
From-SVN: r41655
* gcc.c, cp/lang-specs.h, f/lang-specs.h, java/lang-specs.h,
objc/lang-specs.h: Add zero initializer for cpp_spec field to
all array elements.
* cp/lang-specs.h: Don't put an #ifdef inside the initializer
list; set a default for CPLUSPLUS_CPP_SPEC and use it.
From-SVN: r40173
* gcc.c (record_temp_file, pfatal_with_name, error): Make non-static,
so they can be called from java/jvspec.c.
* gcc.h (record_temp_file, pfatal_with_name, error): Declare.
From-SVN: r40023
2001-02-21 Jeffrey D. Oldham <oldham@codesourcery.com>
* gcc.c: Add comment explaining how to add a command-line option.
Add title to specs language comment.
From-SVN: r39960
* defaults.h (CPLUSPLUS_CPP_SPEC): New macro.
* gcc.c (struct compiler): Add cpp_spec field.
(input_file_compiler): New variable.
(do_spec_1): Allow a particular compiler to handle `%C'
specially.
(main): Store the current compiler in input_file_compiler.
* tm.texi (CPLUSPLUS_CPP_SPEC): Document.
* lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
spec.
From-SVN: r39524
* gcc.c (init_gcc_specs): New function. Make -shared-libgcc
the default when building a shared object.
(init_spec): Use it.
* testsuite/lib/g++.exp: Include the directory where libgcc
is located to the LD_LIBRARY_PATH list.
* inovke.texi (-shared-libgcc): Document the cases in which
* Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
of macros used when compiling g++spec.c.
* g++spec.c (lang_specific_driver): Link with the shared
libgcc by default.
From-SVN: r39408
* gcc.c (cpp_options): Set MD file name from output
filename, if specified.
(suffix_subst): New static variable.
(do_spec): Clear it.
(do_spec_1, case '.'): Handle new `%.suffix' spec.
Clear it.
(give_switch): Handle suffix_subst.
From-SVN: r38859
* cppinit.c (init): Rename init_library.
(cpp_create_reader): Update.
* gcc.c (cpp_options): If -o given, use it as the target of
any -M options.
From-SVN: r38805
* Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and
NO_SHARED_LIBGCC_MULTILIB as required for the target.
* gcc.c (init_spec): Massage the existing libgcc_spec into a
variant that handles a shared libgcc.
(process_command): Always validate -{static,shared}-libgcc.
(do_spec_1): New 'M' case.
* invoke.text (Link Options): Document -{static,shared}-libgcc.
From-SVN: r38762
* gcc.c (cpp_options): Update to use '&'.
(struct switchstr): Change type of validated to save space.
New member 'ordering'.
(handle_braces, validate_switches): Update to handle '&'.
From-SVN: r38245
* gcc.c (cpp_options): Update to use '&'.
(struct switchstr): Change type of validated to save space.
New member 'ordering'.
(handle_braces, validate_switches): Update to handle '&'.
From-SVN: r38244
* system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
(IS_ABSOLUTE_PATHNAME): New macro.
* gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
From-SVN: r37818
* gcc.c (validate_switches): Validate multiple switches named
in '|' (or) expressions in specs.
(handle_braces): If more than 1 alternative in a '|' spec
matches, call do_spec1 just once.
From-SVN: r37667
process_command, main), gcov.c (open_files, output_data), tlink.c
(frob_extension, scan_linker_output), toplev.c
(file_name_nondirectory): Use strchr () and strrchr () instead of
index () and rindex ().
cp:
* dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
(build_overload_value), repo.c (open_repo_file), xref.c
(open_xref_file): Use strchr () and strrchr () instead of index ()
and rindex ().
f:
* com.c (open_include_file, ffecom_open_include_): Use strchr ()
and strrchr () instead of index () and rindex ().
From-SVN: r37206
* configure: Save configure arguments to gcc/configargs.h.
* gcc.c (main): Include generated configargs.h header
and use arguments in '-v' output.
From-SVN: r36734
* gcc.c: Move data on prefixes forward in file and reorganize.
(md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
Always define, but make null if no value.
(static_specs): Add "md_exec_prefix", "md_startfile_prefix",
and "md_startfile_prefix_1".
(main): Check whether md_exec_prefix and the others are the
null string rather than whether the macro is defined.
From-SVN: r36730
* gcc.c (cpp_options): Add spec for -ftabstop=.
(invoke_as): New spec that handles invoking as.
Update specs to handle -save-temps and -traditional.
* ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
Use invoke_as.
* cp/lang-specs.h, objc/lang-specs.h: Update to use
invoke_as, and handle -save-temps and -traditional (if
appropriate).
From-SVN: r36646
* gcc.c (modify_target): New variable and struct.
(process_command): Handle MODIFY_TARGET_NAME.
* tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
* config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
From-SVN: r36555
top level:
* Makefile.in: Remove all references to c-parse.gperf,
c-gperf.h, and c-parse.h. Remove -d from yacc command line
generating c-parse.c. Update dependencies.
* c-parse.gperf, c-gperf.h: Delete.
* c-common.c: Don't define parse_options, cpp_token, yy_cur,
yy_lim, or yy_get_token. Don't define get_directive_line if
USE_CPPLIB.
* c-common.h: Add multiple include guard. Define RID values
for every keyword in C, C++, and Objective C. Put all the
modifiers first.
(struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
* c-decl.c (c_decode_option): Handle -lang-objc here.
(print_lang_identifier): Handle C_IS_RESERVED_WORD case.
(grokdeclarator): Adjust for new RID scheme.
(extract_interface_info): New stub.
* c-lang.c: Don't declare yy_cur or parse_options.
(lang_init_options): Call cpp_init. Don't call
cpp_options_init.
(lang_init): Don't call check_newline if USE_CPPLIB.
* c-lex.c: Don't include c-parse.h. Do include timevar.h.
Elide lots of unnecessary code if USE_CPPLIB. Delete code
rendered unnecessary by new architecture. Move routines not
shared with C++ to c-parse.in. Maintain a local idea of the
line number. Handle C++ as well as C.
[USE_CPPLIB]: Declare and register callbacks for #ident and
for entering/leaving files.
(init_c_lex, c_lex): Are now the entry points to this file.
(check_newline): Break out directive handling to
process_directive.
(read_ucs, is_extended_char, utf8_extend_token): Moved here
from C++ front end.
(readescape, parse_float): Overhaul.
(lex_number, lex_string, lex_charconst): Break out of c_lex
(n'ee yylex).
(get_fileinfo, update_header_times, dump_one_header,
dump_time_statistics): New and/or moved here from C++.
Support per-file data needed by C++ and per-header timing
statistics (C++ only, at the moment).
* c-lex.h: Update prototypes. Add multiple include guard.
* c-tree.h (struct lang_identifier): Add rid_code field.
(C_IS_RESERVED_WORD, C_RID_CODE): New.
* c-parse.in: Include c-pragma.h. Remove unnecesary calls to
reinit_parse_for_function and/or position_after_white_space.
(save_filename, save_lineno): Look ahead before saving.
(label -> identifier ':'): Save file and line before shifting ':'.
(reservedwords): No need to call get_identifier.
(init_parse, finish_parse, yyerror, yylex, yyprint,
make_pointer_declarator): Are now here for C/ObjC.
(rid_to_yy): Conversion table from RID constants to Yacc codes.
* c-pragma.c: Rewrite parsing logic to fit with cpplib's
#pragma registry. Provide dummy implementation of that
interface if !USE_CPPLIB.
* c-pragma.h: Update to match.
* flags.h: Add multiple include guard.
(flag_detailed_statistics): Moved here from C++.
* toplev.c: Define flag_detailed_statistics.
* gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
#if USE_CPPLIB.
* timevar.def (TV_CPP, TV_LEX): New.
* timevar.h: Add multiple include guard.
* objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
#if USE_CPPLIB.
* objc/objc-act.c: Don't mention yy_cur or parse_options.
Initialize cpplib properly. Force lineno to 0 after first
call to check_newline. Don't handle -lang-objc here.
Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
cp:
* Make-lang.in, Makefile.in: Remove all references to input.c,
gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
* gxx.gperf, hash.h, input.c: Delete.
* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
initialized properly.
* class.c (fixup_pending_inline): Take a tree, not a
struct pending_inline *. All callers changed.
(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
RID_PROTECTED entries in ridpointers[] array here.
* decl.c (duplicate_decls): Do not refer to struct
pending_inline.
(record_builtin_type, init_decl_processing): Use RID_MAX not
CP_RID_MAX.
(grokdeclarator): Use C_IS_RESERVED_WORD.
* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
cpplib.
(grok_x_components): Do not inspect pending_inlines chain.
* cp-tree.h (struct lang_identifier): Add rid_code entry.
(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
TIME_IDENTIFIER_FILEINFO): Kill.
Update prototypes.
* lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
single 32-bit word.
* parse.y: Call do_pending_inlines unconditionally.
reinit_parse_for_method is now snarf_method. fn.defpen is no
longer necessary. Remove unnecessary <itype> annotation on
SCOPE. Do not refer to end_of_file or struct pending_inline.
* semantics.c (begin_inline_definitions): Call
do_pending_inlines unconditionally.
* lex.c: Remove all code now shared with C front end.
Initialize cpplib properly if USE_CPPLIB. Put reserved words
into the get_identifier table. Rewrite pragma handling to
work with the registry. Move code to save tokens for later
processing to spew.c.
* spew.c: Rewrite everything in terms of token streams instead
of text. Move routines here from lex.c / input.c as
appropriate. GC-mark trees hanging off the pending inlines
chain.
testsuite:
* g++.old-deja/g++.benjamin/13478.C: Put meaningful tags on
ERROR markers.
* g++.old-deja/g++.brendan/crash8.C: Move ERROR marker up one line.
* gcc.dg/c99-array-nonobj-1.c: Don't expect func[] cases to fail.
* gcc.dg/wtr-label-1.c: Don't use unconstrained .* in error regexps.
* gcc.dg/wtr-suffix-1.c: Correct error regexps.
* gcc.dg/cpp/unc1.c, gcc.dg/cpp/unc2.c, gcc.dg/cpp/unc3.c:
Preprocess only.
* gcc.dg/cpp/unc4.c: Adjust line number in dg-error line.
* gcc.dg/noncompile/const-ll-1.c: Generalize error regexp.
From-SVN: r36216
* gcc.c (do_spec_1): Implement %j spec flag.
Remove dead comment.
* gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
* system.h (HOST_BIT_BUCKET): Default to "/dev/null".
* config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
* config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
* protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
writable) instead of hardcoded value.
* toplev.c (compile_file): Output to a file even if -fsyntax-only.
* gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
MKTEMP_EACH_FILE.
* gcc.c (cc1_options): Do not process -o or
run the assembler if -fsyntax-only.
From-SVN: r35849
* gcc.h (lang_specific_driver): Constify second argument.
* gcc.c (translate_options, process_command, main): Likewise.
Constify variables to match. Cast second argument to
pexecute.
* cppspec.c, gccspec.c, g++spec.c, g77spec.c, jvspec.c: Adjust
type of second argument to lang_specific_driver, and update
code as necessary.
From-SVN: r35433
* gcc.c (struct prefix_list): Add member priority.
(enum path_prefix_priority): Declare.
(add_prefix): Replace ``first'' with ``priority''. Append new
entry but keep list in priority order.
(process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
PREFIX_PRIORITY_LAST to add_prefix.
(process_command): Move include kludge - foo/stageN - to before
foo/include.
From-SVN: r35304
* gcc.c (do_spec_1): Add new %B operator.
(set_input): Prepare for %B.
(link_command_spec): Move up with the other tm.h-
overrideable specs. Factor out the portion conditional on
LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
(struct compiler): Just have a single spec string. All users
updated.
(default_compilers): Remove unnecessary braces.
(static_specs): Update.
(trad_capable_cpp, cpp_options, cc1_options, asm_options): New
named specs.
(C and assembly specs): Use the new named specs, as appropriate.
* objc/lang-specs.h, ch/lang-specs.h, cp/lang-specs.h,
f/lang-specs.h, java/lang-specs.h: Use the new named specs.
Remove unnecessary braces.
From-SVN: r35008
* gcc.c (execute): If a subprocess gets a fatal signal, report
strsignal() of the signal number, and ask for a bug report.
Do not do this for SIGPIPE if there's already been an error.
* tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
Delete pipe_closed.
From-SVN: r35006
* gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
-traditional, -ftraditional, or -traditional-cpp was given.
Do not pass -traditional to the preprocessor.
(.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
preprocessor does it automatically.
* objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
* ch/lang-specs.h: Always use tradcpp. Do not pass
-traditional, -trigraphs, or -pedantic to the preprocessor.
* f/lang-specs.h (.F spec): Likewise. Don't bother defining
_LANGUAGE_FORTRAN.
From-SVN: r34995
2000-06-29 Philipp Thomas <pthomas@suse.de>
* rtl.c : Revert NLS changes.
* gcc.c : Fix bug in display_help introced by my last changes.
From-SVN: r34778
2000-06-28 Philipp Thomas <pthomas@suse.de>
* c-decl.c : Mark strings for translation.
(parmlist_tags_warning): Use distinct messages instead
of conditional expressions.
* diagnostic.c (v_message_with_decl): Mark string for translation.
* gcc.c: Mark messages for translation.
(display_help): Combine messages into one string where necessary.
* mips-tfile.c: Add intl.h. Mark messages for translation.
* rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
messages for translation.
* timevar.c: Mark messages for translation.
* tlink.c: Likewise.
* toplev.c: Likewise.
From-SVN: r34773
* diagnostic.c: Eliminate implicit int.
* except.c, gcc.c: Add static prototypes.
* final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
* gensupport.c (process_rtx): Use XVEC to initialize vector
slot of 'split'.
* print-rtl.c: If DEBUG_REGISTER_NAMES, define static
debug_reg_names instead of static reg_names. If not, define
global reg_names.
* regclass.c: Don't define global reg_names unless
DEBUG_REGISTER_NAMES is defined.
* reload1.c (order_regs_for_reload): Remove unused variable.
* varasm.c: Include output.h after defaults.h. Define
eh_frame_section as function of no args, not of unspecified args.
* gcc.c: Constify argbuf; arguments to store_arg,
process_command, main; elements of struct command and struct
switchstr; local variables in execute, process_command, main.
cp:
* except.c: Add static prototypes.
From-SVN: r34054
* Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
argument to genmultilib.
* genmultilib: accept new MULTILIB_EXCLUSIONS option and output
the contents into the multilib.h header.
* gcc.c: Declare multilib_exclusions for the specs file.
(set_multilib_dir): Use it.
(print_multilib_info): Likewise.
* t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
to pass to genmultilib.
From-SVN: r32365
* Makefile.in (fixinc.sh): Depend on specs.
* fixinc/Makefile.in: Add rule to create machname.h.
(fixlib.o): Depend on machname.h.
* fixinc/fixtests.c (machine_name): New test.
* fixinc/fixfixes.c (machine_name): New fix.
* fixinc/fixlib.c (mn_get_regexps): New helper function for
the machine_name test and fix.
* fixinc/fixlib.h: Prototype it.
* fixinc/inclhack.def (machine_name): Use the C test and fix.
* fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
* gcc.c (do_spec_1) [case P]: Take care not to create
identifiers with three leading or trailing underscores.
* fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
(fixincl): Don't specify libraries twice on link line.
(gnu-regex.o): Remove special rule.
* fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
defined by config.h. Do not define _REGEX_RE_COMP.
(regcomp): Allocate and initialize a fastmap.
* fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
From-SVN: r31542
* configure.in (i?86-*-beos{pe,elf,}*): Recognize.
* i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
* i386/beos-elf.h, i386/beos-pe.h: New files.
* Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
* cross-make (SYSTEM_HEADER_DIR): Define using
CROSS_SYSTEM_HEADER_DIR.
* gcc.c (LIBRARY_PATH_ENV): Provide default.
(process_command): Use it.
(main): Likewise. Kill trailing = from env vars.
(build_search_list): Put it back.
* collect2.c (main): Use LIBRARY_PATH_ENV.
* configure.in (GCC_NEED_DECLARATIONS): Add environ.
* toplev.c: Use NEED_DECLARATION_ENVIRON.
* tm.texi (Frame Layout): Document SMALL_STACK.
* c-common.c (c_common_nodes_and_builtins): Check it.
* system.h: Undef alloca after including glibc's <stdlib.h>,
if USE_C_ALLOCA is defined.
* gcc.c (set_input): New fn.
(main): After all input files are compiled, reset the input file
info to the first.
* aclocal.m4 (rindex, index): If already defined, don't attempt
to redefine.
* ginclude/varargs.h: (__va_list__): Define ifndef.
* ginclude/stdarg.h: Likewise.
* ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
instead of unsigned char.
* hash.h (true, false, boolean): Undef before enum.
From-SVN: r31366
* cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
appropriate for -lang-c89 and -std=*.
* cppinit.c (cpp_handle_option): Likewise.
(new_pending_define): New, split out from cpp_handle_option.
* gcc.c (default_compilers): Don't define __STRICT_ANSI__
or enable trigraphs for -ansi/-std=*.
* ginclude/stdarg.h (__va_copy): New.
(va_copy): Don't define for C89.
From-SVN: r30921
Tue Nov 9 10:30:08 1999 Tom Tromey <tromey@cygnus.com>
* config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
from HAVE_DOS_BASED_FILESYSTEM.
* gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
HAVE_DOS_BASED_FILESYSTEM.
(main): Likewise.
(split_directories): Only special-case DOS file names if
HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR
instead of explicit tests. Conditionalize on !VMS.
(make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
tests. Conditionalize on !VMS.
(process_command): Only use make_relative_prefix if !VMS.
(free_split_directories): Conditionalize on !VMS.
(DIR_UP): Conditionalize on !VMS.
Wed Jun 9 16:57:11 1999 Mumit Khan <khan@xraylith.wisc.edu>
* gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
Fri Feb 5 14:22:01 1999 Mumit Khan <khan@xraylith.wisc.edu>
* gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
case.
Mon Nov 8 14:16:57 1999 Michael Meissner <meissner@cygnus.com>
* invoke.texi (Environment Variables): Document relative path
lookup.
* gcc.c (DIR_UP): If not defined, define as "..".
(standard_bindir_prefix): New static, holds target location to
install binaries.
(split_directories): New function to split a filename into
component directories.
(free_split_directories): New function, release memory allocated
by split_directories.
(make_relative_prefix): New function, make a relative pathname if
the compiler is not in the expected location.
(process_command): If GCC_EXEC_PREFIX was not specified, see if we
can figure out an appropriate prefix from argv[0].
* Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define
STANDARD_BINDIR_PREFIX.
From-SVN: r30464
Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
* gcov.c (DIR_SEPARATOR): Provide default.
(output_data): Add test for MS-DOS format absolute filename.
(fancy_abort): Correct program name.
(open_files): Open all files in binary mode.
* libgcc2.c (__bb_exit_func): Likewise.
* profile.c (init_branch_prob): Specify binary when opening files.
* flags.h (flag_unwind_tables): New decl.
* toplev.c (flag_unwind_table): New definition.
(f_options): Add -funwind-tables.
(decode_g_option): Clarify warning when unknown -g option is given.
(rest_of_compilation): If inside an inlined external function,
pretend we are just being declared.
* dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
(dwarf2out_frame_finish): Likewise.
Fri Oct 29 06:32:44 1999 Geoffrey Keating <geoffk@cygnus.com>
* flow.c (propagate_block): When the last reference to a label
before an ADDR_VEC is deleted because the reference is a dead
store, delete the ADDR_VEC.
Fri Oct 29 07:44:26 1999 Vasco Pedro <vp@di.fct.unl.pt>
* fold-const.c (merge_ranges): In not in0, but in1, handle
upper bounds equal like subset case.
Thu Oct 28 19:22:24 1999 Douglas Rupp <rupp@gnat.com>
* dbxout.c (dbxout_parms): Generate a second stabs line for parameters
passed in a register but moved to the stack.
Thu Oct 28 19:12:57 1999 Sam Tardieu <tardieu@act-europe.fr>
* gcc.c (pass_exit_codes, greatest_status): New variables.
(struct option_map): Add entry for "--pass-exit-codes".
(execute): Update greatest_status if error.
(display_help): Add documentation for -pass-exit-codes.
(process_command): Handle -pass-exit-codes.
(main): Look at pass_exit_codes and greatest_status on call to exit.
Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* reload.c (find_reloads): Refine test for no input reload
case to not includes reloads emitted after insn.
* function.c (find_temp_slots_from_address): Handle sum involving
a register that points to a temp slot.
(update_temp_slot_address): Make recursive call if both old and
new are PLUS with a common operand.
* calls.c (expand_call): Mark temp slot for result as having
address taken.
* rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
* gcc.c (process_command): Add standard_exec_prefix with "GCC"
component as well as "BINUTILS".
* integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
* integrate.c (copy_rtx_and_substitute): Likewise.
(expand_inline_function, integrate_parm_decls, integrate_decl_tree):
All callers changed.
* unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
* dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
gdb extensions, write size of type; also be more consistent
in using references when this is a subtype.
* pa.md (extv, extzv, insv): Use define_expand to reject constant
that is out of range.
* loop.c (unknown_constant_address_altered): New variable.
(prescan_loop): Initialize it.
(note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
(invariant_p, case MEM): Remove handling for volatile and readony;
check new variable if readonly.
(check_dbra_loop): Chdeck unknown_constant_address_altered.
* cse.c (canon_hash, case MEM): Do not record if BLKmode.
(addr_affects_sp_p): Removed from note_mem_written and only
define #ifdef AUTO_INC_DEC.
* alpha.c (input_operand, case ADDRESSOF): Treat as REG.
* regclass.c (record_reg_classes): Properly handle register move
directions.
* varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
Don't think valid if both operands are invalid.
(struct constant_descriptor): New field RTL.
(mark_const_hash_entry): Mark it.
(record_constant{,_rtx}): Initialize it.
(output_constant_def): Allocate RTL in permanent obstack and
save in table.
({record,compare}_constant_1): Modes must match for
CONSTRUCTOR of ARRAY_TYPE.
* c-common.h (initializer_constant_valid_p): Delete decl from here.
* output.h (initializer_constant_valid_p): Move decl to here.
* c-common.c (initializer_constant_valid_p): Delete function from here.
* varasm.c (initializer_constant_valid_p): Move function to here.
* tree.h (STRIP_SIGN_NOPS): New macro.
* fold-const.c (optimize_minmax_comparison): New function.
(invert_truthvalue, case WITH_RECORD_EXPR): New case.
(fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
(fold, case EQ_EXPR): Call optimize_minmax_comparison and add
cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
widening conversions.
(fold, case LE_EXPR): Rework changing unsigned to signed comparisons
to look at size of mode, not precision of type; also add missing cases.
(optimize_bit_field_compare, decode_field_reference): Don't try to
optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
* dwarf2out.c (ctype.h): Include.
(dwarf2out_set_demangle_name_func): New function.
(size_of_line_info): Deleted.
(output_line_info): Compute size of line info table from difference
of labels.
(base_type_die, add_name_attribute): Call demangle function, if any.
(field_byte_offset): Use bits per word for variable length fields.
(gen_array_type_die): Add array name.
(gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
(dwarf2out_add_library_unit_info): New function.
* explow.c (set_stack_check_libfunc): New function.
(stack_check_libfunc): New static variable.
(probe_stack_range): Allow front-end to set up a libfunc to call.
* combine.c (simplify_comparison): When making comparison in wider
mode, check for having commuted an AND and a SUBREG.
(contains_muldiv): New function.
(try_combine): Call it when dividing a PARALLEL.
(simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
(simplify_comparison, case ASHIFTRT): Recognize sign-extension of
a PLUS.
(record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
use one of the CLOBBERs instead.
(if_then_else_cond): If comparing against zero, just return thing
being compared.
* optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
Don't generate shifts and subtract if have conditional arithmetic.
* rtl.h (delete_barrier): New declaration.
* jump.c (jump_optimize): Set up to handle conditional call.
In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
(delete_barrier): New function.
* rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
* recog.c (nonmemory_operand): Accept ADDRESSOF.
* tree.c (build_type_attribute_variant): Push to obstack of
ttype around type_hash_canon call.
* expr.c (placeholder_list): Move decl to file scope.
(expand_expr): Don't force access to volatile just because its
address is taken.
If ignoring reference operations, just expand the operands.
(expand_expr, case COMPONENT_REF): Propagate
EXPAND_CONST_ADDRESS to recursive call when expanding inner.
Refine test for using bitfield operations vs pointer punning.
(expand_expr, case CONVERT_EXPR): If converting to
BLKmode UNION_TYPE from BLKmode, just return inner object.
Use proper mode in store_field call.
Properly set sizes of object to store and total size in store_field
call for convert to union.
(expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
memory (like for ADDR_EXPR). Also, don't put constant in register if
we'll want it in memory.
(readonly_fields_p): New function.
(expand_expr, case INDIRECT_REF): Call it if LHS.
(expand_assignment): Handle a RESULT_DECL where
DECL_RTL is a PARALLEL.
(do_jump, case WITH_RECORD_EXPR): New case.
(get_inner_reference): Always go inside a CONVERT_EXPR
and NOP_EXPR if both modes are the same.
(store_field): Use bitfield operations if size of bitsize is not same
as size of RHS's type.
Check for bitpos not a multiple of alignment in BLKmode case.
Do block move in largest possible alignment.
(store_constructor): Set BITSIZE to -1 for variable size and properly
in case of array of BLKmode.
(expand_expr_unaligned): New function.
(do_compare_and_jump): Call it.
* mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
* collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
does not include 'o'.
* function.c (instantiate_virtual_regs_1, case SET): Handle case where
both SET_DEST and SET_SRC reference a virtual register.
(gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
* integrate.c (expand_inline_function): Handle case of setting
virtual stack vars register (from built in setjmp); when parameter
lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
(subst_constant): Add new parm, MEMONLY.
(expand_inline_function, integrate_parm_decls): Pass new parm.
(integrate_decl_tree): Likewise.
(copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
(try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
(copy_rtx_and_substitute, case SET): Add explicit calls to
copy_rtx_and_substitute for both sides.
* stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
constraints.
(pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
within INDEX_TYPE, instead of before.
(fixup_gotos): Use f->target_rtl, not the next insn,
since latter may be from a later fixup.
(expand_value_return): Correctly convert VAL when promoting function
return; support RETURN_REG being a PARALLEL.
(expand_return): When checking for result in regs and having
cleanup, consider PARALLEL in DECL_RTL as being in regs.
From-SVN: r30299
1999-09-13 12:13 -0700 Zack Weinberg <zack@bitmover.com>
* gcc.c: Include sys/resource.h.
(report_times): New flag.
(execute): If report_times is set, calculate and report the
CPU time consumed by each subprocess.
(rus, prus): New globals.
(option_map): Add --time.
(display_help): Document -time.
(process_command): Set report_times if -time is given.
Turn off -pipe if -time is given.
* invoke.texi: Document new option -time.
* configure.in: Check for getrusage. Check if we have to
prototype getrusage.
* acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
* configure: Regenerate.
* config.in: Regenerate.
From-SVN: r29381
* Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
* gcc.h: New file.
(lang_specific_driver): Don't take a function pointer parameter.
All callers changed.
* gcc.c: Include gcc.h.
(do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
lang_specific_extra_outfiles, fatal): Don't declare.
(multilib_defaults_raw): Constify.
(read_specs): Call memset, rather than bzero.
(main): Call return, not exit.
(lookup_compiler): Call memcpy, not bcopy.
(fatal): Make extern.
* cppspec.c: Include gcc.h.
(lang_specific_driver): Initialize variable `quote'. Constify a
char*. All calls to the function pointer parameter now
explicitly call `fatal'.
* gccspec.c (lang_specific_driver): Include gcc.h.
cp:
* Make-lang.in (g++spec.o): Depend on system.h and gcc.h.
* g++spec.c: Include gcc.h.
(lang_specific_driver): Constify a char*. Call xcalloc, not
xmalloc/bzero. All calls to the function pointer parameter now
explicitly call `fatal'.
f:
* Make-lang.in (g77spec.o): Depend on system.h and gcc.h.
* g77spec.c: Include gcc.h.
(g77_xargv): Constify.
(g77_fn): Add parameter prototypes.
(lookup_option, append_arg): Add static prototypes.
(g77_newargv): Constify.
(lookup_option, append_arg, lang_specific_driver): Constify a char*.
(lang_specific_driver): All calls to the function pointer
parameter now explicitly call `fatal'.
java:
* Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
* jvspec.c: Include gcc.h. Don't include gansidecl.h.
(do_spec, lang_specific_pre_link, lang_specific_driver,
input_filename, input_filename_length): Don't declare.
(main_class_name, jvgenmain_spec, lang_specific_driver):
Constify a char*.
(lang_specific_driver): All calls to the function pointer
parameter now explicitly call `fatal'.
From-SVN: r29367
1999-08-25 22:10 -0700 Zack Weinberg <zack@bitmover.com>
* system.h: Don't redefine abort or trim_filename.
* rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
whether or not __FUNCTION__ is available.
* tree.h: Duplicate rtl.h's definition of abort, for files
that don't include rtl.h. Delete all code to perform type
checking with a compiler other than GCC.
* varray.h: Delete all code to perform type checking with a
compiler other than GCC. Make VARRAY_CHECK() always evaluate
its arguments exactly once, using a statement expression.
Adjust the VARRAY_<type> accessor macros to match.
* toplev.h (fatal_insn, fatal_insn_not_found): Kill.
(_fatal_insn, _fatal_insn_not_found): New fns, take info on
caller's location. Define fatal_insn and fatal_insn_not_found
as macros that use _fatal_insn and _fatal_insn_not_found.
(fancy_abort, trim_filename): Kill prototypes.
* rtl.c (trim_filename): Move here from toplev.c.
(fancy_abort): New function.
(DIR_SEPARATOR): Provide default definition.
* tree.c (tree_check_failed, tree_class_check_failed): Go
through fancy_abort.
(tree_check, tree_class_check, cst_or_constructor_check,
expr_check): Delete.
* varray.c (varray_check_failed): New function.
* toplev.c (fatal_insn, fatal_insn_not_found): Replace with
_fatal_insn and _fatal_insn_not_found. Go through
fancy_abort.
(trim_filename, fancy_abort): Delete.
* builtins.c (expand_builtin_args_info): Report ICE with abort.
* except.c (start_catch_handler): Report ICE with error/abort
combo.
* final.c (output_operand_lossage): Likewise.
* flow.c (verify_flow_info): Likewise.
* gcc.c: Prototype fatal.
* gengenrtl.c: Undef abort after including rtl.h not system.h.
* genattr.c, genattrtab.c, genemit.c, genextract.c,
genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
Don't define fancy_abort.
From-SVN: r28889
* gcc.c (access_check): New static function.
(find_a_file): Use it when searching a directory list.
* collect2.c (find_a_file): Don't accept directories found when
searching a directory list.
From-SVN: r28486
* gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
Removed paragraph about compression of files and size limitation,
duplicated in the FAQ. Use gcc-patches for posting patches.
* gcc.c (main): Updated URL with bug reporting instructions to
gcc.gnu.org. Removed e-mail address.
* system.h (abort): Likewise.
From-SVN: r28151
* cppspec.c: Insert -no-gcc into command line unless -gcc was
given by user.
* gcc.c (default_compilers): Define __GNUC__ and
__GNUC_MINOR__ only if -no-gcc was not given.
* objc/lang-specs.h: Likewise.
* cpp.texi: Document -x and -std options; explain that -lang
is no longer supported. Minor related corrections.
From-SVN: r26990
1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cppspec.c: Treat two non-option arguments as input and
output file. Three or more non-option args is an error.
Clean up.
* gcc.c (default_compilers): Pass -$ to the preprocessor.
* cp/lang-specs.h,ch/lang-specs.h,f/lang-specs.h,
objc/lang-specs.h: Likewise.
From-SVN: r26870
1999-05-05 09:58 -0400 Zack Weinberg <zack@rabi.columbia.edu>
* gcc.c (default_compilers): Fix brace nesting bug.
* objc/lang-specs.h: Use %i, not %g.mi, for the input file
when processing an .mi file.
From-SVN: r26775
* collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place
of the DIR_SEPARATOR test.
Consider any file starting with a drivename to be absolute.
If the absolute filename test fails and EXECUTABLE_SUFFIX is
defined, append EXECUTABLE_SUFFIX to the file and try again.
* cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM
in place of __MSDOS__ and _WIN32.
* cppfiles.c (simplify_pathname): Likewise.
* gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a
character is a directory separator.
(find_a_file): Use it.
(convert_filename): Likewise.
(process_command): Likewise.
(do_spec_1): Likewise.
(is_directory): Likewise.
(main): Likewise.
* prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is
a directory separator.
(translate_name): Use it.
(update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix
warning in block where '/' is changed to DIR_SEPARATOR.
* i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'.
(DIR_SEPARATOR_2): New macro. Set to '\'.
(HAVE_DOS_BASED_FILESYS): Define.
* i386/xm-mingw32.h: Updated copyright. Set
DIR_SEPARATOR_2 to '/'. Define HAVE_DOS_BASED_FILE_SYSTEM.
* i386/xm-os2.h: Likewise.
* winnt/xm-winnt.h: Likewise.
* i386/xm-dos.h: Likewise. Add copyright.
From-SVN: r26328
1999-04-06 12:51 -0400 Zack Weinberg <zack@rabi.columbia.edu>
* cppinit.c (install_predefs): Delete function.
(cpp_start_read): Don't call install_predefs.
(cpp_handle_option): Remove case 'u' and all refs to
opts->inhibit_predefs.
(print_help): Don't mention -undef.
(initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to
match cccp.
* cpplib.h (struct cpp_options): Remove inhibit_predefs
member.
* cccp.c (predefs): Delete variable.
(main): Remove case 'u' in argument parse loop,
'inhibit_predefs' variable, and the code block that would
process CPP_PREDEFINES.
(initialize_builtins): Don't define __OBJC__, the driver will
do that.
* gcc.c (default_compilers): Remove -undef from all specs that
invoke a C preprocessor.
* ch/lang-specs.h: Likewise.
* cp/lang-specs.h: Likewise.
* f/lang-specs.h: Likewise.
* objc/lang-specs.h: Likewise.
From-SVN: r26212
* gcc.c: Compile unconditionally all code formerly dependent
on #ifdef LANG_SPECIFIC_DRIVER.
* gccspec.c: New file with stub lang_specific_driver,
lang_specific_pre_link.
* Makefile.in: Link gccspec.o into xgcc. Add rule to compile
gccspec.c.
* cp/Make-lang.in: Remove all references to g++.o/g++.c.
Link g++ from gcc.o.
* f/Make-lang.in: Remove all references to g77.o/g77.c.
Link g77 from gcc.o.
* java/Make-lang.in: Remove all references to gcj.o/gcj.c.
Link gcj from gcc.o.
From-SVN: r25989
* gcc.c (xstrerror): Renamed from my_strerror. All callers
changed. Remove prototype since we get that from libiberty.h.
* protoize.c (xstrerror): Likewise.
From-SVN: r24605
* Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
* cccp.c: Include prefix.h, don't prototype prefix.c functions.
(new_include_prefix): Constify char* parameters.
* cppfiles.c (read_name_map): Likewise.
(append_include_chain): Likewise. Also, use a writable char* copy
of parameter `dir' which we then modify, rather than using the
parameter itself to store the new writable string.
(remap_filename): Constify some variables. Also, use a writable
char* to store an allocated string which we will be modifying.
* cpplib.c: Include prefix.h, don't prototype prefix.c functions.
(cpp_start_read): Constify variable `str'.
* cpplib.h (append_include_chain): Constify a char* parameter.
* gcc.c Include prefix.h, don't prototype prefix.c functions.
(add_prefix, save_string): Constify char* parameters.
(fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
* prefix.c: Include prefix.h.
(get_key_value, translate_name, save_string, update_path,
set_std_prefix): Constify various char* parameters and variables.
(save_string): Use xmalloc, not malloc.
(translate_name): Use a writable temporary variable to create and
modify a string before setting it to a const char*.
* prefix.h: New file to prototype functions exported from prefix.c.
From-SVN: r24498
Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com>
* gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
* cppalloc.c: Move function `xcalloc' from cpplib.c to here.
* cpplib.c: Move function `xcalloc' from here to cppalloc.c.
From-SVN: r24152
* c-common.c (declare_function_name): Declare predefinied variable
`__func__'.
* c-decl.c (flag_isoc9x): Set to 1 by default.
(c_decode_option): Handle -std= option. Remove -flang-isoc9x.
(grokdeclarator): Always emit warning about implicit int for ISO C 9x.
* c-parse.in: Allow constructors in ISO C 9x.
Rewrite designator list handling.
Allow [*] parameters.
Don't warn about comma at end of enum definition for ISO C 9x.
* cccp.c (c9x): New variable.
(rest_extension): New variable.
(print_help): Document new -std= option.
(main): Recognize -std= option. Set c9x appropriately.
(create_definition): Recognize ISO C 9x vararg macros.
* gcc.c (default_compilers): Adjust specs for -std options.
(option_map): Add --std.
(display_help): Document -std.
* toplev.c (documented_lang_options): Add -std and remove
-flang-isoc9x.
* c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
or REAL_VALUE_HTOF based on base of the constants.
* fold-const.c (real_hex_to_f): New function. Replacement function
for hex FP conversion if REAL_ARITHMETIC is not defined.
* real.c (asctoeg): Add handling of hex FP constants.
* real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
real_hex_to_f.
Co-Authored-By: Richard Henderson <rth@cygnus.com>
Co-Authored-By: Stephen L Moshier <moshier@world.std.com>
From-SVN: r24049
* configure.in: Call AC_FUNC_VFORK.
* collect2.c: Define VFORK_STRING as a printable string for
error messages (either "vfork" or "fork".) If HAVE_VFORK_H is
defined, include vfork.h. If VMS is defined, define vfork()
appropriately. Remove vfork check on USG, we're using autoconf.
(collect_execute): Pass VFORK_STRING to fatal_perror instead of
checking locally what string to pass.
(scan_prog_file): Likewise.
(scan_libraries): Likewise.
* gcc.c: Remove vfork check on USG, we're using autoconf.
Besides, no calls to vfork/fork occur in this file.
* protoize.c: Likewise.
From-SVN: r23498
* Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
(LIBCPP_OBJS): New. Add cppulp.o.
(cppmain, fix-header): Depend on and use libcpp.a.
* configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
of the individual object files.
* objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
last.
* cccp.c (user_label_prefix): New.
(main): Set it off -f*leading-underscore.
(special_symbol): Use it.
* cpplib.c (special_symbol): Likewise.
(cpp_handle_option): Handle -f*leading-underscore.
* cppulp.c: New file.
* output.h (user_label_prefix): Declare it.
* dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
* toplev.c (f_options, main): Handle -f*leading-underscore.
* defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
referencing USER_LABEL_PREFIX directly.
* config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
* m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
* final.c (asm_fprintf): Use user_label_prefix instead.
* arm/thumb.c (thumb_print_operand): Likewise.
* gcc.c (default_compilers): Pass -f*leading-underscore on to
cpp wherever appropriate.
From-SVN: r23415
* gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
structure which has exactly the members provided by EXTRA_SPECS.
Xmalloc() the real `extra_specs', and initialize it from this
intermediate structure.
* alpha.h (EXTRA_SPECS): Revert change for missing initializers.
* mips.h (EXTRA_SPECS): Likewise.
* sparc.h (EXTRA_SPECS): Likewise.
From-SVN: r23406
* Makefile.in (sched.o): Depend on recog.h.
* alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
(unsigned) when comparing against one.
(find_base_value): Likewise.
(record_base_value): Cast variable `regno' to (unsigned) when
comparing against one. Cast the result of REGNO() macro to
(unsigned) when comparing against one.
(memrefs_conflict_p): Change type of variables `r_x' and `r_y' to
unsigned.
(init_alias_analysis): Add unsigned variable `ui'. Use it as loop
variable where an unsigned index is needed.
* caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
before comparing against one.
* collect2.c: Add prototypes for functions `error', `fatal' and
`fatal_perror'. Make these functions take variable arguments
instead of faking it with a fixed number of args.
(write_c_file_stat): Cast the argument of ctype macro to (unsigned
char).
* combine.c (can_combine_p): Mark parameter `pred' with
ATTRIBUTE_UNUSED.
(find_split_point): Cast variable `src' to (unsigned
HOST_WIDE_INT) when comparing against one.
HOST_WIDE_INT) when comparing against one.
(simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
(simplify_logical): Likewise.
(force_to_mode): Cast result of INTVAL() macro to (unsigned
HOST_WIDE_INT) when comparing against one. Cast 1 to (unsigned
HOST_WIDE_INT) in shift.
(simplify_and_const_int): Cast result of INTVAL() macro to
`unsigned HOST_WIDE_INT' when comparing against one.
(merge_outer_ops): Cast variable const0 to `unsigned
HOST_WIDE_INT' when comparing against the result of
GET_MODE_MASK() macro.
(simplify_comparison): Likewise for variable `c0'. Cast variable
`const_op' to `unsigned HOST_WIDE_INT' when comparing against
one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast the
result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
against one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast
result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
comparing against one.
(distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
macro to `unsigned HOST_WIDE_INT' when comparing against one.
(output_block_move): Cast `sizeof' expression to (int) when
comparing against one.
(function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
against one.
(save_restore_insns): Cast `base_offset' to `long' to match format
specifier in fprintf.
* config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
to `enum machine_mode'.
* flow.c (life_analysis_1): Remove unused variable `insn'.
* gcc.c (translate_options): Move variables `j' and `k' into the
scope in which they are used. Change their types to `size_t'.
(set_spec): Cast the argument of ctype macro to `unsigned char'.
(read_specs): Likewise.
(process_command): Cast `sizeof' to (int) when comparing against one.
(do_spec_1): Cast the argument of ctype macro to `unsigned char'.
(handle_braces): Cast both sides of `==' expression to `long' to
ensure sign matching.
(main): Cast variable `i' to `int' when comparing against one.
* gcov-io.h (__fetch_long): Change type of parameter `bytes' from
int to size_t. Cast variable `i' to size_t when comparing against
one.
* genattrtab.c (convert_set_attr_alternative): Remove unused
parameter `insn_code'. All callers changed.
(convert_set_attr): Likewise.
* genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
size_t when comparing against one. Likewise for variable `len'.
* global.c (global_alloc): Cast variable `max_regno' to size_t
when comparing against one. Likewise for variable `max_allocno'.
* jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
* local-alloc.c (validate_equiv_mem_from_store): Mark parameter
`set' with ATTRIBUTE_UNUSED.
(find_free_reg): Cast `sizeof' expression to (int) when comparing
against one.
* loop.c (count_loop_regs_set): Remove unused variable `dest'.
(strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
(get_condition): Cast variable `const_val' to `unsigned
HOST_WIDE_INT' when comparing against one. Cast unsigned
expression to HOST_WIDE_INT when comparing against one.
(insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
(load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
`unsigned' when comparing against one.
* protoize.c (is_id_char): Change type of parameter `ch' to
unsigned char.
(munge_compile_params): Cast argument of ctype macro to (const
unsigned char).
(process_aux_info_file): Cast variable `aux_info_size' to int when
comparing against one.
(forward_to_next_token_char): Cast argument of ctype macro to
`const unsigned char'.
(edit_formals_lists): Likewise.
(find_rightmost_formals_list): Likewise.
(add_local_decl): Likewise.
(add_global_decls): Likewise.
(edit_fn_definition): Likewise.
(do_cleaning): Likewise.
(scan_for_missed_items): Likewise.
(edit_file): Cast variable `orig_size' to (int) when comparing
against one.
(main): Cast argument of ctype macro to `const unsigned char'.
* recog.c (const_int_operand): Mark parameter `mode' with
ATTRIBUTE_UNUSED.
* regclass.c (record_reg_classes): Change type of variable `c' to
`unsigned char'. Cast `char' array index to `unsigned char'.
* reload.c (push_secondary_reload): Cast argument to
REG_CLASS_FROM_LETTER() macro to `unsigned char'.
* reload1.c (calculate_needs): Cast `char' array index to
`unsigned char'.
(set_label_offsets): Change type of variable `i' to unsigned int.
Cast result of XVECLEN() macro to unsigned when comparing against
one.
(mark_not_eliminable): Change type of variable `i' to unsigned.
(order_regs_for_reload): Likewise. Cast `max_regno' to unsigned
when comparing against one.
(reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
comparing against one.
(choose_reload_regs): Hide unused label `fail'.
(reload_cse_simplify_operands): Cast `char' array index to
`unsigned char'.
(reload_combine_note_store): Mark parameter `set' with
ATTRIBUTE_UNUSED. Cast UNITS_PER_WORD to unsigned when comparing
against one.
(reload_cse_move2add): Remove unused variable `src2'.
* sched.c: Include recog.h.
(sched_note_set): Remove unused parameter `b'. All callers
changed.
(split_hard_reg_notes): Likewise for parameter `orig_insn'.
(blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
when comparing against one.
* stupid.c (stupid_find_reg): Mark parameter `changes_size' with
ATTRIBUTE_UNUSED. Cast `sizeof' expression to (int) when
comparing against one.
* unroll.c (precondition_loop_p): Remove unused parameter
`loop_end'. All callers changed.
From-SVN: r23079
* configure.in: new flags --with-ld and --with-as, equivalent
to setting LD and AS environment variables. Test whether
specified arguments are GNU commands, and report them with
checking messages. Use the specified AS for configure
tests too.
* configure: ditto
* acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
* config.in: ditto
* gcc.c (find_a_file): when looking for `as' and `ld', return
the DEFAULT program if it exists
* collect2.c (main): use DEFAULT_LINKER if it exists
* gcc.c (find_a_file): the test for existence of a full
pathname was reversed
From-SVN: r22629
* gcc.c (do_spec_1): [case 'o'] Account for
lang_specific_extra_outfiles.
(main): Correctly clear all slots in outfiles for
lang_specific_extra_outfiles. Set input_file_number before
calling lang_specific_pre_link.
From-SVN: r22234
d
* gcc.c: Fix commentary describing %g, %u, %U, and %O.
* gcc.c (do_spec_1): Fix support for %O so the
temporary file name made for it the first time
gets reused subsequently.
From-SVN: r21450
* choose-temp.c (make_temp_file): Accept new argument for the
file suffix to use. Allocate space for it and add it to the
template.
* mkstemp.c (mkstemps): Renamed from mkstemp. Accept new argument
for the length of the suffix. Update template struture checks
to handle optinal suffix.
* collect2.c (make_temp_file): Update prototype.
(main): Put proper suffixes on temporary files.
* gcc.c (make_temp_file): Update prototype.
(do_spec_1): Put proper suffixes on temporary files.
Should fix irix build problems.
From-SVN: r20812
* choose-temp.c (choose_temp_base): Restore original variant of
this function for compatibility.
(make_temp_file): This is the new, preferred interface to create
temporary files.
* collect2.c (choose_temp_base): Delete declaration.
(make_temp_file): Declare.
(temp_filename_length, temp_filename): Delete.
(main): Use make_temp_file to get temporary files. Use --lang-c
to force the resulting ctort/dtor file to be compiled with the C
compiler. Make sure to remove temporary files on all exit paths.
* gcc.c (make_temp_file): Provide prototype if MKTEMP_EACH_FILE is
defined.
(choose_temp_base): Only provide prototype if MKTEMP_EACH_FILE is
not defined.
(do_spec): Use make_temp_file if MKTEMP_EACH_FILE is defined.
From-SVN: r20784
* choose-temp.c (choose_temp_base): Remove MPW bits. Use mkstemp
instead of mktemp.
* gcc.c (MKTEMP_EACH_FILE): Define.
(main): No need to call choose_temp_base if we are going to
use choose_temp_base to create each file later.
* mkstemp.c: New file. Adapted from glibc.
* Makefile.in (xgcc, colect2, protoize, unprotoize): Link in mkstemp.o
(mkstemp.o): Add dependencies.
From-SVN: r20746
Thu Jun 25 11:12:29 1998 Dave Brolley <brolley@cygnus.com>
* gcc.c (default_compilers): Use new | syntax to eliminate
string concatenation.
From-SVN: r20711