* decl.c (bad_specifiers): It's OK to have an EH spec on a function
pointer.
* pt.c (maybe_get_template_decl_from_type_decl): Make sure that
we're looking at a class.
From-SVN: r28562
* decl.c (lookup_name_real): Set the complain flag if we're
looking for a namespace member.
* lex.c (real_yylex): We can have a number with no digits.
* cvt.c (cp_convert_to_pointer): Don't force pmf conversions.
* search.c (binfo_from_vbase): New fn.
* cp-tree.h: Declare it.
* cvt.c (cp_convert_to_pointer): Use it to diagnose conversion
from pointer to member of virtual base.
* typeck.c (get_delta_difference): Likewise.
From-SVN: r28560
* jump.c (delete_prior_computation): New function, broken
out of delete_computation. Check for side effects with
side_effects_p instead of FIND_REG_INC_NOTE. Handle
multi-word hard registers.
(delete_computation): Use it. Check for side effects with
side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a
missing REG_DEAD note for a register which is both set and
used by an insn.
From-SVN: r28558
* pt.c (tsubst): Use build_index_type to build in-template array
index type. Fixes g++.oliva/dwarf1.C.
* decl.c (grokdeclarator): Likewise, just for consistency, as it
doesn't seem to trigger the bug without it.
From-SVN: r28556
* error.c (dump_expr): Handle EXACT_DIV_EXPR.
(dump_binary_op): Bulletproof.
* lex.c (init_parse): Set opname_tab[EXACT_DIV_EXPR].
* tree.c (search_tree): Don't enumerate all the nodes of classes
`1', `2', and `<'; handle them generically. Don't be sorry about
"unrecognized tree codes"; just abort.
(no_linkage_check): Don't do linkage checks for templates.
* tree.c (cp_build_qualified_type_real): Handle
pointer-to-member-function types correctly.
From-SVN: r28550
* rs6000.c (current_file_function_operand): Return zero for
weak functions.
(rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
weak symbols.
* rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
for weak symbols.
From-SVN: r28527
Wed Aug 4 13:29:23 1999 Zack Weinberg <zack@bitmover.com>
* cpphash.c (macroexpand): Delete leading whitespace when arg
is concatenated before.
(unsafe_chars): Correct test for whether + and - can extend a
token.
* cppinit.c (cpp_start_read): Do dependencies for
-include/-imacros files also.
* cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
tokenizing non-directive lines.
(cpp_expand_to_buffer): Temporarily disable no-output mode.
* cppmain.c: In no-output mode, just call cpp_scan_buffer for
the input file.
From-SVN: r28512
* c-lex.c: Sync with C++ frontend.
(linemode): New variable.
(parse_float): imag, conversion_errno, and type are output only.
(yylex): Adjust. Move initial '.' case into main switch.
Use linemode.
(handle_generic_pragma): Just deal with tokens.
(readescape): Use ISXDIGIT and ISGRAPH.
* c-parse.in: Add END_OF_LINE token.
* c-lex.c (lang_init): Generalize.
(nextchar): Remove. Replace uses with UNGETC.
(skip_white_space): Handle linemode here. Optimize for cpplib.
(skip_white_space_on_line): Remove.
(extend_token_buffer_to): New fn.
(extend_token_buffer): Use it.
(read_line_number, check_newline): Just deal with tokens.
(token_getch, token_put_back): New fns.
(yylex): Use them. More cpplib optimizations. Simplify.
* c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
(consume_string): Make this smart about USE_CPPLIB.
(check_newline): Rewrite to be intelligent about USE_CPPLIB.
(yylex): Rewrite to be intelligent about USE_CPPLIB.
Also, clean up cases where we redundantly set token_buffer[0].
(read_line_number): New fn.
(ignore_escape_flag): New variable.
From-SVN: r28507
* pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
dummy operand. Allocate a new pseudo for the dummy operand.
(divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
From-SVN: r28502