* cppinit.c (struct lang_flags): Rename trigraphs std.
(set_lang): Update.
* cpplib.h (struct cpp_options): New member std.
* cppmacro.c (_cpp_builtin_macro_text): Use std.
(collect_args): Flag whether to swallow a possible future
comma pasted with varargs.
(replace_args): Use this flag.
* doc/cpp.texi: Update varargs extension documentation.
testsuite:
* gcc.dg/cpp/vararg3.c, gcc.dg/cpp/vararg4.c: New tests.
From-SVN: r56077
* c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
* cppinit.c (cpp_post_options): Likewise.
* cppexp.c (cpp_classify_number): Suppress -Wtraditional
warning about 'LL' suffix (but not 'ULL' etc) when
-Wno-long-long is in effect.
* cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
Check for failing time()/localtime(), issue a warning, and
make __TIME__ and __DATE__ expand to fallback strings.
* doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
and __TIME__ when the date and time cannot be determined.
From-SVN: r55969
* cpperror.c (cpp_error): Default to directive_line within
directives here.
* cppexp.c (cpp_interpret_integer): Only use traditional
number semantics in directives.
* cpplib.c (prepare_directive_trad): Don't reset pfile->line.
(do_include_common): Similarly.
* cpptrad.c (scan_out_logical_line): Implement accurate
quoting of <> in #include.
* doc/cpp.texi: Update.
From-SVN: r55347
* doc/cpp.texi: Exclude entire Top node from printed manual.
Move option index after directive index. Insert page breaks
before GFDL and concept index. Index environment variables
with command line options.
* doc/cppenv.texi: Use @vtable for environment variable list.
Add paragraph explaining semantics of empty elements in path
variables. Exclude a cross-reference to Fishkill from the
manpage. Remove an unnecessary cross-reference of the entry
right above the referer. Don't use @anchor in text that goes
into manpage.
* doc/cppopts.texi: Cross-reference the environment variables
section, not the specific environment variable, for consistency.
From-SVN: r51365
* cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
* cpplex.c (unterminated): Delete.
(parse_string): No string literal may extend over multiple
lines. Suppress the error when preprocessing assembly.
* cppmain.c (scan_translation_unit): Strings are single-line.
* doc/cpp.texi: Update to match.
* testsuite/gcc.dg/cpp/multiline.c: Update to match.
From-SVN: r51195
* cpphash.h (struct lexer_state): Remove line_extension member.
* cpplib.c (dequote_string, do_linemarker): New functions.
(linemarker_dir): New data object.
(DIRECTIVE_TABLE): No longer need to interpret #line in
preprocessed source. Delete obsolete comment about return
values of handlers.
(end_directive, directive_diagnostics, _cpp_handle_directive):
Don't muck with line_extension.
(directive_diagnostics): No need to issue warnings for
linemarkers here.
(_cpp_handle_directive): Issue warnings for linemarkers here,
when appropriate. Dispatch linemarkers to do_linemarker, not
do_line.
(do_line): Code to handle linemarkers split out to do_linemarker.
Convert escape sequences in filename argument, both places.
* cppmacro.c (quote_string): Rename cpp_quote_string and
export. All callers changed.
* cpplib.h (cpp_quote_string): Prototype.
* cppmain.c (print_line): Call cpp_quote_string on to_file
before printing it.
* doc/cpp.texi: Document that escapes are now interpreted in
#line and in linemarkers, and that non-printing characters are
converted to octal escapes when linemarkers are generated.
From-SVN: r50779
* Makefile.in: Update.
doc:
* cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
Update documentation.
* gcc.texi: Include cppopts.texi and cppenv.texi.
* cpp.texi: Include cppopts.texi and cppenv.texi.
From-SVN: r50599
* c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
gcc.c, toplev.c: Delete code implementing -traditional mode.
* ada/misc.c, ch/ch-tree.h, ch/decl.c, cp/decl2.c, f/com.c,
f/lex.c, f/top.c, java/builtins.c, java/decl.c: Delete
traditional-mode-related code copied from the C front end
but not used, or used only to permit the compiler to link.
* doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
Document removal of -traditional mode for compilation, and
remove documentation only relevant to that mode.
* config/nextstep.h, config/ptx4.h, config/svr4.h,
config/convex/convex.h, config/d30v/d30v.h,
config/i386/dgux.h, config/i386/osf1elf.h,
config/i386/osfelf.h, config/i386/osfrose.h,
config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
config/m68k/hp310.h, config/m88k/dgux.h,
config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
config/m88k/m88k.h, config/m88k/openbsd.h,
config/mips/abi64.h, config/mips/osfrose.h,
config/mips/svr4-5.h, config/mips/svr4-t.h,
config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
config/stormy16/stormy16.h: Remove all references to
-traditional from target specs. Delete all mention of the
no-longer-necessary TRADITIONAL_RETURN_FLOAT macro. Also
delete a couple of commented-out definitions of
DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
to -traditional.
* system.h: Poison TRADITIONAL_RETURN_FLOAT.
* doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
* testsuite/gcc.c-torture/execute/920730-1t.c,
testsuite/gcc.c-torture/execute/920730-1t.x,
testsuite/gcc.dg/ext-glob.c: Delete test cases, only relevant
to -traditional.
From-SVN: r50110
* cpplex.c (_cpp_lex_token): Handle directives in macro
arguments.
* cpplib.c (_cpp_handle_directive): Save and restore state
if parsing macro args when entering a directive.
* cppmacro.c (collect_args): No need to handle directives
in macro arguments.
(enter_macro_context, replace_args): Use the original macro
definition in case it was redefined whilst collecting arguments.
doc:
* cpp.texi: Update.
testsuite:
* gcc.dg/cpp/undef1.c: Remove.
* gcc.dg/cpp/directiv.c: Update.
* gcc.dg/cpp/mac-dir-1.c, mac-dir-2.c: New tests.
From-SVN: r50091
* cppinit.c (init_dependency_output): Take deps output file
from -o if none given with -MF. Suppress normal output.
* gcc.c (cpp_unique_options): Have -M and -MM imply -E.
* doc/cpp.texi, doc/invoke.texi: Update.
From-SVN: r49892
contrib:
* texi2pod.pl: Handle @ifnottex, @iftex and @display. Handle @var
in verbatim blocks specially. Handle @unnumbered, @unnumberedsec
and @center. Allow [a-z] after @enumerate. Handle 0 and numbers
greater than 9 in enumerations.
gcc:
* Makefile.in (POD2MAN): Don't include --section=1.
(manext): Rename to man1ext. All users changed.
(man7ext): New.
(man7dir): New.
(generated-manpages): Also depend on $(docdir)/gfdl.7,
$(docdir)/gpl.7, and $(docdir)/fsf-funding.7.
($(docdir)/gcov.1, $(docdir)/cpp.1, $(docdir)/gcc.1): Include
--section=1 in calls to $(POD2MAN).
($(docdir)/gfdl.7, $(docdir)/gpl.7, $(docdir)/fsf-funding.7): New.
(maintainer-clean, install, uninstall): Handle the new man pages.
($(docdir)/cpp.info, cpp.dvi): Depend on fdl.texi.
(installdirs): Create man7dir.
* doc/cpp.texi: Include GFDL in this manual. In the man page,
refer to gfdl(7) for the GFDL. Apply Front Cover and Back Cover
texts to man page. Include gpl(7), gfdl(7) and fsf-funding(7) in
the SEE ALSO man page section.
* doc/gcov.texi: Apply GFDL to man page. Include gpl(7), gfdl(7)
and fsf-funding(7) in the SEE ALSO man page section.
* doc/invoke.texi: Apply GFDL to man page. Include gpl(7),
gfdl(7) and fsf-funding(7) in the SEE ALSO man page section.
* doc/include/fdl.texi, doc/include/funding.texi,
doc/include/gpl.texi: Adjust for conversion by texi2pod.pl.
* doc/.cvsignore: Add gfdl.7, gpl.7 and fsf-funding.7.
gcc/cp:
* Make-lang.in: Change all uses of $(manext) to $(man1ext).
gcc/f:
* Make-lang.in: Change all uses of $(manext) to $(man1ext).
From-SVN: r46998
* cppexp.c (parse_defined): Always record the macro name.
(lex): Don't worry about identifiers, or special-case
CPP_NOT here.
(_cpp_parse_expr): Figure out at the end of the routine
whether we saw a valid !defined() expression.
* cppfiles.c (stack_include_file): Update for mi_valid.
(_cpp_pop_file_buffer): Similarly.
* cpplex.c (_cpp_lex_token): Similarly.
* cpphash.h (enum mi_state, enum mi_ind, mi_state,
mi_if_not_defined, mi_lexed): Remove.
(mi_valid): New.
* cpplib.c (do_if): Simplify.
(do_endif, push_conditional, _cpp_handle_directive): Update
for renaming of mi_state to mi_valid.
* cpp.texi: Add index entries for digraphs, and add comment
that C++ refers to them as alternative tokens.
From-SVN: r44459
* cppinit.c (remove_dup_dirs): Inform if a system include
directory is being reordered.
* doc/invoke.texi (Directory Options): GCC warns if you hide a
system include.
* doc/cpp.texi (Search Paths): Likewise.
* doc/gcc.texi (Interoperation): Remove information about
-I/usr/include.
From-SVN: r43769
* doc/c-tree.texi, doc/contrib.texi, doc/cpp.texi,
doc/cppinternals.texi, doc/extend.texi, doc/gcc.texi,
doc/gcov.texi, doc/install-old.texi, doc/install.texi,
doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: Replace
. at end of sentences preceded by a capital letter with @..
From-SVN: r43611
* doc/cpp.texi, doc/cppinternals.texi, doc/extend.texi,
doc/gcc.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
doc/tm.texi: Use @: where necessary when a full stop does not end
a sentence.
From-SVN: r43600
* doc/c-tree.texi, doc/cpp.texi, doc/extend.texi, doc/gcc.texi,
doc/install.texi, doc/invoke.texi, doc/objc.texi, doc/rtl.texi,
doc/tm.texi: Use two spaces after ends of sentences.
From-SVN: r43594
* doc/cpp.texi: Formatting corrections.
Correct buggy example of use of __GNUC__ etc.
Clarify $ in identifiers.
* doc/cpp.1: Regenerate.
From-SVN: r43404
* doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi: Move contents
to just after title page.
ch:
* chill.texi: Move contents to just after title page.
f:
* g77.texi: Move contents to just after title page.
java:
* gcj.texi: Move contents to just after title page.
From-SVN: r42808