Per Bothner [Tue, 16 Jan 1996 23:46:59 +0000 (15:46 -0800)]
cppexp.c (cpp_lex): Do cpp_pop_buffer after CPP_POP so retried cpp_skip_hspace will actually work.
* cppexp.c (cpp_lex): Do cpp_pop_buffer after CPP_POP so retried
cpp_skip_hspace will actually work.
* cppexp.c (SKIP_OPERAND): New macro.
(cpp_parse_expr): Suppress evaluation and diagnostics in
unevaluated subexpressions.
Mike Stump [Tue, 16 Jan 1996 22:40:15 +0000 (22:40 +0000)]
expr.c (expand_expr, [...]): Make sure cleanups live on the function_obstack as they are used by the...
* expr.c (expand_expr, case COND_EXPR): Make sure cleanups live on
the function_obstack as they are used by the exception handling code.
(defer_cleanups_to): Ditto.
(TRUTH_ANDIF_EXPR): Ditto.
(TRUTH_ORIF_EXPR): Ditto.
Fixes eh43.C
Richard Kenner [Tue, 16 Jan 1996 14:42:55 +0000 (09:42 -0500)]
(HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove.
(parse_escape, parse_c_expression, eval_if_expression):
Change return type to `long'; all callers changed.
(pcfinclude): Use `int', not HOST_WIDE_INT; any integral type will do.
Richard Kenner [Tue, 16 Jan 1996 14:42:30 +0000 (09:42 -0500)]
General code cleanup in the style of 1995-04-01 change.
Add prototypes for static functions.
Add parentheses suggested by `gcc -Wparentheses'.
Use `long' uniformly, instead of long, int, HOST_WIDE_INT mess.
(struct constant): Use `signedp' flag (with sign bit) instead of
`unsignedp' flag; it's a little more convenient.
(HAVE_STDLIB_H, STDC_HEADERS, LONG_MASK, __attribute__, PROTO,
VA_START, PRINTF_ALIST, PRINTF_DCL, PRINTF_PROTO, PRINTF_PROTO_1,
vfprintf, SIGNED, UNSIGNED): New symbols.
<stdlib.h>: Include if HAVE_STDLIB_H.
<string.h>: New include.
(HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove.
(yylex, yyerror, expression_value, parse_number,
initialize_random_junk): Now static.
(overflow_sum_sign): Renamed from possible_sum_sign, with an
extra arg SIGNEDP.
(parse_number): Inline strcmp when checking for "0x".
(yylex): Keep track of mask needed when decoding wide characters.
(parse_escape): New arg RESULT_MASK; use it instead of
assuming char width.
(yylex, parse_escape, parse_c_expression): Store all host
integers as long, not int or HOST_WIDE_INT.
(left_shift): No need to do signed left shifts separately.
These changes are for the test program (if TEST_EXP_READER):
(pedantic, traditional): Allocate storage.
(main): Set pedantic, traditional, yydebug depending on args.
(is_hor_space, warning, lookup): Change types and implementation
to match rest of program.
(pedwarn, check_assertion, xmalloc): New functions.
Doug Evans [Mon, 15 Jan 1996 22:25:24 +0000 (22:25 +0000)]
c-lex.c (check_newline): Pass character after `#pragma' to HANDLE_PRAGMA.
* c-lex.c (check_newline): Pass character after `#pragma' to
HANDLE_PRAGMA. Don't call get_directive_line if at end of line.
* c-common.c (get_directive_line): Watch for EOF.
* h8300/h8300.h (HANDLE_PRAGMA): New argument `c'.
Must issue `return' now.
* i960/i960.h (HANDLE_PRAGMA): Likewise.
* sh/sh.h (HANDLE_PRAGMA): Likewise.
* nextstep.h (HANDLE_PRAGMA): Likewise.
* h8300/h8300.c (handle_pragma): New argument `ch'.
Simplify pragma processing. Delete support for `#pragma section'.
* i960/i960.c (process_pragma): New argument `c'. Change result to
terminating character.
* nextstep.c (handle_pragma): Likewise.
* sh/sh.c (handle_pragma): Likewise. Also simplified.
Richard Kenner [Mon, 15 Jan 1996 13:31:41 +0000 (08:31 -0500)]
(STARTFILE_SPEC): Use crtbegin.o for both shared llibrary and normal executable; use gcrt1.o for -profile.
(STARTFILE_SPEC): Use crtbegin.o for both shared llibrary and normal
executable; use gcrt1.o for -profile.
(ENDFILE_SPEC): Use crtend.o for shared llibrary and normal executable.
Per Bothner [Fri, 12 Jan 1996 00:25:11 +0000 (16:25 -0800)]
sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use AGGREGATE_TYPE_P so QUAL_UNION_TYPE and SET_TYPE are also passed by...
* sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use AGGREGATE_TYPE_P so
QUAL_UNION_TYPE and SET_TYPE are also passed by invisible reference.
* sparc.h (INIT_CUMULATIVE_ARGS for SPARCV9): Return types of
QUAL_UNION_TYPE and SET_TYPE also make invisible 1st argument.
Doug Evans [Wed, 3 Jan 1996 23:28:10 +0000 (23:28 +0000)]
lib1funcs.asm (__USER_LABEL_PREFIX__): Define if not already.
* arm/lib1funcs.asm (__USER_LABEL_PREFIX__): Define if not already.
(CONCAT1,CONCAT2,SYM): Define.
(__udivsi3,__divsi3,__umodsi3,__modsi3,__div0): Use SYM to define
global labels.
Jim Wilson [Tue, 2 Jan 1996 21:27:38 +0000 (13:27 -0800)]
(gen_shifty_op): Output a NOP for a shift by 0.
(find_barrier): New variables si_limit, hi_limit. Set them depending
on whether we are optimizing. Set found_hi if the destination is
HImode.
(machine_dependent_reorg): If not optimizing, then change scan to a
note instead of calling delete_insn.