Bring in bug fixes from the GCC anoncvs server's "gcc-2_95-branch"
branch on Jan 20th, 2000.
This commit is contained in:
parent
8107fa79b5
commit
cbab320528
@ -1,3 +1,90 @@
|
||||
Thu Jan 20 10:02:07 2000 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
2000-01-03 Anthony Green <green@cygnus.com>
|
||||
* config/i386/i386.md (builtin_setjmp_receiver): New pattern.
|
||||
Restore the pic register if required.
|
||||
|
||||
Fri Jan 7 14:40:05 2000 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
* stmt.c (expand_value_return): Correctly convert VAL when promoting
|
||||
function return.
|
||||
|
||||
Tue Jan 4 02:22:27 2000 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
Mon Oct 18 18:50:51 1999 Andreas Schwab <schwab@suse.de>
|
||||
* config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
|
||||
if the pic register is used.
|
||||
|
||||
Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com)
|
||||
* cse.c: Update comments.
|
||||
(cse_insn): When converting a conditional/computed jump into
|
||||
an unconditional jump, always make sure a BARRIER immediately
|
||||
follows the converted jump. Do not delete unreachable code.
|
||||
(cse_basic_block): Do not delete unreachable code.
|
||||
* toplev.c (rest_of_compilation): Move call to
|
||||
delete_trivially_dead_insns after the conditional call to
|
||||
jump_optimize.
|
||||
|
||||
|
||||
Wed Dec 29 22:47:43 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
1999-12-12 Stephen L Moshier <moshier@mediaone.net>
|
||||
* loop.c (load_mems): Don't hoist written floating point mem
|
||||
if -ffloat-store.
|
||||
|
||||
* cppinit.c (is_idchar): Only use special initialization for
|
||||
gcc-2.8 and later versions of the compiler.
|
||||
|
||||
Wed Oct 27 01:42:26 1999 Scott Christley <scottc@net-community.com>
|
||||
* sparc.md (call): Don't bound structure return size to 0xfff.
|
||||
|
||||
Mon Dec 27 07:32:59 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
Fri Sep 3 10:16:37 HST 1999 Glen Nakamura <glen.nakamura@usa.net>
|
||||
* cccp.c (rescan): Fixed obp pointer handling around call to
|
||||
check_expand subroutine.
|
||||
|
||||
Thu Sep 16 00:46:35 1999 Geoff Keating <geoffk@cygnus.com>
|
||||
* loop.c (basic_induction_var): A non-integer variable which is
|
||||
being set by a paradoxical subreg is probably not a biv.
|
||||
|
||||
1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
|
||||
* loop.c (check_dbra_loop): Check bl->biv->add_val is a
|
||||
CONST_INT before using its INTVAL.
|
||||
|
||||
Tue Nov 2 15:27:31 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||||
* configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
|
||||
have been an hyphen, fixed.
|
||||
* configure: Rebuilt.
|
||||
|
||||
Thu Dec 23 11:59:56 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
1999-12-23 Martin v. Löwis <loewis@informatik.hu-berlin.de>
|
||||
* fold-const.c (operand_equal_p): Use memcmp to compare string
|
||||
constants.
|
||||
Suggested by D. J. Bernstein
|
||||
|
||||
Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com)
|
||||
* h8300.md (HImode preinc peephole): Fix typo.
|
||||
|
||||
1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
|
||||
* loop.c (check_dbra_loop): Can't reverse a biv that has
|
||||
maybe_multiple set.
|
||||
|
||||
1999-12-07 Martin v. Löwis <loewis@informatik.hu-berlin.de>
|
||||
|
||||
* invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
|
||||
documentation.
|
||||
|
||||
Sun Oct 31 22:32:17 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||||
|
||||
* config/i386/sol2gas.h: I had installed the wrong version of Sept
|
||||
22's patch in the release branch. Fixed.
|
||||
* configure.in: Likewise.
|
||||
* configure: Rebuilt.
|
||||
Reported by Jason Beardsley <jbeardsley@origin.ea.com>
|
||||
|
||||
Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
|
||||
|
||||
* gcc-2.95.2 Released.
|
||||
|
@ -3299,7 +3299,9 @@ do { ip = &instack[indepth]; \
|
||||
#endif
|
||||
|
||||
if (output_marks) {
|
||||
op->bufp = obp;
|
||||
check_expand (op, limit - ibp + 2);
|
||||
obp = op->bufp;
|
||||
*obp++ = '\n';
|
||||
*obp++ = '-';
|
||||
}
|
||||
|
@ -4,8 +4,6 @@
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
*/
|
||||
|
||||
#ifndef GAS_DOES_NOT_SUPPORT_MINUS_S
|
||||
#define GAS_DOES_NOT_SUPPORT_MINUS_S 1
|
||||
#ifndef GAS_REJECTS_MINUS_S
|
||||
#define GAS_REJECTS_MINUS_S 1
|
||||
#endif
|
||||
|
||||
#include "i386/sol2.h"
|
||||
|
@ -7355,7 +7355,7 @@
|
||||
gen_rtvec (3,
|
||||
gen_rtx_SET (VOIDmode, pc_rtx,
|
||||
XEXP (operands[0], 0)),
|
||||
GEN_INT (INTVAL (operands[3]) & 0xfff),
|
||||
operands[3],
|
||||
gen_rtx_CLOBBER (VOIDmode,
|
||||
gen_rtx_REG (Pmode, 15)))));
|
||||
else
|
||||
@ -7387,7 +7387,7 @@
|
||||
emit_call_insn
|
||||
(gen_rtx_PARALLEL (VOIDmode,
|
||||
gen_rtvec (3, gen_rtx_CALL (VOIDmode, fn_rtx, nregs_rtx),
|
||||
GEN_INT (INTVAL (operands[3]) & 0xfff),
|
||||
operands[3],
|
||||
gen_rtx_CLOBBER (VOIDmode,
|
||||
gen_rtx_REG (Pmode, 15)))));
|
||||
else
|
||||
|
@ -1399,11 +1399,10 @@ changequote(,)dnl
|
||||
changequote([,])dnl
|
||||
xm_file="xm-siglist.h xm-alloca.h ${xm_file}"
|
||||
xm_defines="USG POSIX SMALL_ARG_MAX"
|
||||
tm_file=i386/sol2.h
|
||||
if test x$gas = xyes; then
|
||||
# Only needed if gas does not support -s
|
||||
tm_file=i386/sol2gas.h
|
||||
else
|
||||
tm_file=i386/sol2.h
|
||||
tm_file="i386/sol2gas.h ${tm_file}"
|
||||
fi
|
||||
tmake_file=i386/t-sol2
|
||||
extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
|
||||
@ -1689,7 +1688,7 @@ changequote([,])dnl
|
||||
extra_headers=math-68881.h
|
||||
;;
|
||||
m68000-hp-hpux*) # HP 9000 series 300
|
||||
xm_file="xm_alloca.h ${xm_file}"
|
||||
xm_file="xm-alloca.h ${xm_file}"
|
||||
xm_defines="USG NO_SYS_SIGLIST"
|
||||
if test x$gas = xyes
|
||||
then
|
||||
@ -1890,7 +1889,7 @@ changequote([,])dnl
|
||||
extra_headers=math-68881.h
|
||||
;;
|
||||
m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7.
|
||||
xm_file="xm_alloca.h ${xm_file}"
|
||||
xm_file="xm-alloca.h ${xm_file}"
|
||||
xm_defines="USG NO_SYS_SIGLIST"
|
||||
if test x$gas = xyes
|
||||
then
|
||||
@ -1906,7 +1905,7 @@ changequote([,])dnl
|
||||
float_format=m68k
|
||||
;;
|
||||
m68k-hp-hpux*) # HP 9000 series 300
|
||||
xm_file="xm_alloca.h ${xm_file}"
|
||||
xm_file="xm-alloca.h ${xm_file}"
|
||||
xm_defines="USG NO_SYS_SIGLIST"
|
||||
if test x$gas = xyes
|
||||
then
|
||||
|
@ -1,3 +1,8 @@
|
||||
1999-11-01 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* decl2.c (maybe_make_one_only): Always make things comdat on
|
||||
ELF targets, too.
|
||||
|
||||
Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
|
||||
|
||||
* gcc-2.95.2 Released.
|
||||
|
@ -2485,9 +2485,13 @@ void
|
||||
maybe_make_one_only (decl)
|
||||
tree decl;
|
||||
{
|
||||
/* This is not necessary on targets that support weak symbols, because
|
||||
the implicit instantiations will defer to the explicit one. */
|
||||
if (! supports_one_only () || SUPPORTS_WEAK)
|
||||
/* We used to say that this was not necessary on targets that support weak
|
||||
symbols, because the implicit instantiations will defer to the explicit
|
||||
one. However, that's not actually the case in SVR4; a strong definition
|
||||
after a weak one is an error. Also, not making explicit
|
||||
instantiations one_only means that we can end up with two copies of
|
||||
some template instantiations. */
|
||||
if (! supports_one_only ())
|
||||
return;
|
||||
|
||||
/* We can't set DECL_COMDAT on functions, or finish_file will think
|
||||
|
@ -210,7 +210,7 @@ enum { QUOTE = 0, BRACKET, SYSTEM, AFTER };
|
||||
/* If gcc is in use (stage2/stage3) we can make these tables initialized
|
||||
data. */
|
||||
#if defined __GNUC__ && (__GNUC__ > 2 \
|
||||
|| (__GNUC__ == 2 && __GNUC_MINOR__ > 6))
|
||||
|| (__GNUC__ == 2 && __GNUC_MINOR__ > 8))
|
||||
/* Table to tell if a character is legal as the second or later character
|
||||
of a C identifier. */
|
||||
U_CHAR is_idchar[256] =
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Common subexpression elimination for GNU compiler.
|
||||
Copyright (C) 1987, 88, 89, 92-7, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987, 88, 89, 92-99, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@ -42,12 +42,14 @@ Boston, MA 02111-1307, USA. */
|
||||
expressions encountered with the cheapest equivalent expression.
|
||||
|
||||
It is too complicated to keep track of the different possibilities
|
||||
when control paths merge; so, at each label, we forget all that is
|
||||
known and start fresh. This can be described as processing each
|
||||
basic block separately. Note, however, that these are not quite
|
||||
the same as the basic blocks found by a later pass and used for
|
||||
data flow analysis and register packing. We do not need to start fresh
|
||||
after a conditional jump instruction if there is no label there.
|
||||
when control paths merge in this code; so, at each label, we forget all
|
||||
that is known and start fresh. This can be described as processing each
|
||||
extended basic block separately. We have a separate pass to perform
|
||||
global CSE.
|
||||
|
||||
Note CSE can turn a conditional or computed jump into a nop or
|
||||
an unconditional jump. When this occurs we arrange to run the jump
|
||||
optimizer after CSE to delete the unreachable code.
|
||||
|
||||
We use two data structures to record the equivalent expressions:
|
||||
a hash table for most expressions, and several vectors together
|
||||
@ -7468,7 +7470,6 @@ cse_insn (insn, libcall_insn)
|
||||
rtx new = emit_jump_insn_before (gen_jump (XEXP (src, 0)), insn);
|
||||
JUMP_LABEL (new) = XEXP (src, 0);
|
||||
LABEL_NUSES (XEXP (src, 0))++;
|
||||
delete_insn (insn);
|
||||
insn = new;
|
||||
}
|
||||
else
|
||||
@ -7479,42 +7480,11 @@ cse_insn (insn, libcall_insn)
|
||||
Until the right place is found, might as well do this here. */
|
||||
INSN_CODE (insn) = -1;
|
||||
|
||||
/* Now that we've converted this jump to an unconditional jump,
|
||||
there is dead code after it. Delete the dead code until we
|
||||
reach a BARRIER, the end of the function, or a label. Do
|
||||
not delete NOTEs except for NOTE_INSN_DELETED since later
|
||||
phases assume these notes are retained. */
|
||||
|
||||
p = insn;
|
||||
|
||||
while (NEXT_INSN (p) != 0
|
||||
&& GET_CODE (NEXT_INSN (p)) != BARRIER
|
||||
&& GET_CODE (NEXT_INSN (p)) != CODE_LABEL)
|
||||
{
|
||||
/* Note, we must update P with the return value from
|
||||
delete_insn, otherwise we could get an infinite loop
|
||||
if NEXT_INSN (p) had INSN_DELETED_P set. */
|
||||
if (GET_CODE (NEXT_INSN (p)) != NOTE
|
||||
|| NOTE_LINE_NUMBER (NEXT_INSN (p)) == NOTE_INSN_DELETED)
|
||||
p = PREV_INSN (delete_insn (NEXT_INSN (p)));
|
||||
else
|
||||
p = NEXT_INSN (p);
|
||||
}
|
||||
|
||||
/* If we don't have a BARRIER immediately after INSN, put one there.
|
||||
Much code assumes that there are no NOTEs between a JUMP_INSN and
|
||||
BARRIER. */
|
||||
|
||||
if (NEXT_INSN (insn) == 0
|
||||
|| GET_CODE (NEXT_INSN (insn)) != BARRIER)
|
||||
emit_barrier_before (NEXT_INSN (insn));
|
||||
|
||||
/* We might have two BARRIERs separated by notes. Delete the second
|
||||
one if so. */
|
||||
|
||||
if (p != insn && NEXT_INSN (p) != 0
|
||||
&& GET_CODE (NEXT_INSN (p)) == BARRIER)
|
||||
delete_insn (NEXT_INSN (p));
|
||||
/* Now emit a BARRIER after the unconditional jump. Do not bother
|
||||
deleting any unreachable code, let jump/flow do that. */
|
||||
if (NEXT_INSN (insn) != 0
|
||||
&& GET_CODE (NEXT_INSN (insn)) != BARRIER)
|
||||
emit_barrier_after (insn);
|
||||
|
||||
cse_jumps_altered = 1;
|
||||
sets[i].rtl = 0;
|
||||
@ -9007,9 +8977,6 @@ cse_basic_block (from, to, next_branch, around_loop)
|
||||
|
||||
insn = NEXT_INSN (to);
|
||||
|
||||
if (LABEL_NUSES (to) == 0)
|
||||
insn = delete_insn (to);
|
||||
|
||||
/* If TO was the last insn in the function, we are done. */
|
||||
if (insn == 0)
|
||||
return 0;
|
||||
|
@ -2131,7 +2131,7 @@ operand_equal_p (arg0, arg1, only_const)
|
||||
|
||||
case STRING_CST:
|
||||
return (TREE_STRING_LENGTH (arg0) == TREE_STRING_LENGTH (arg1)
|
||||
&& ! strncmp (TREE_STRING_POINTER (arg0),
|
||||
&& ! memcmp (TREE_STRING_POINTER (arg0),
|
||||
TREE_STRING_POINTER (arg1),
|
||||
TREE_STRING_LENGTH (arg0)));
|
||||
|
||||
|
@ -93,7 +93,7 @@ in the following sections.
|
||||
@item C Language Options
|
||||
@xref{C Dialect Options,,Options Controlling C Dialect}.
|
||||
@smallexample
|
||||
-ansi -flang-isoc9x -fallow-single-precision -fcond-mismatch -fno-asm
|
||||
-ansi -fstd -fallow-single-precision -fcond-mismatch -fno-asm
|
||||
-fno-builtin -ffreestanding -fhosted -fsigned-bitfields -fsigned-char
|
||||
-funsigned-bitfields -funsigned-char -fwritable-strings
|
||||
-traditional -traditional-cpp -trigraphs
|
||||
@ -667,14 +667,37 @@ programs that might use these names for other things.
|
||||
The functions @code{alloca}, @code{abort}, @code{exit}, and
|
||||
@code{_exit} are not builtin functions when @samp{-ansi} is used.
|
||||
|
||||
@item -flang-isoc9x
|
||||
Enable support for features found in the C9X standard. In particular,
|
||||
enable support for the C9X @code{restrict} keyword.
|
||||
@item -fstd=
|
||||
Determine the language standard. A value for this option must be provided;
|
||||
possible values are
|
||||
|
||||
Even when this option is not specified, you can still use some C9X
|
||||
features in so far as they do not conflict with previous C standards.
|
||||
For example, you may use @code{__restrict__} even when -flang-isoc9x
|
||||
is not specified.
|
||||
@itemize @minus
|
||||
@item iso9899:1990
|
||||
Same as -ansi
|
||||
|
||||
@item iso9899:199409
|
||||
ISO C as modified in amend. 1
|
||||
|
||||
@item iso9899:199x
|
||||
ISO C 9x
|
||||
|
||||
@item c89
|
||||
same as -std=iso9899:1990
|
||||
|
||||
@item c9x
|
||||
same as -std=iso9899:199x
|
||||
|
||||
@item gnu89
|
||||
default, iso9899:1990 + gnu extensions
|
||||
|
||||
@item gnu9x
|
||||
iso9899:199x + gnu extensions
|
||||
@end itemize
|
||||
|
||||
Even when this option is not specified, you can still use some of the
|
||||
features of newer standards in so far as they do not conflict with
|
||||
previous C standards. For example, you may use @code{__restrict__} even
|
||||
when -fstd=c9x is not specified.
|
||||
|
||||
@item -fno-asm
|
||||
Do not recognize @code{asm}, @code{inline} or @code{typeof} as a
|
||||
|
@ -5998,6 +5998,8 @@ basic_induction_var (x, mode, dest_reg, p, inc_val, mult_val, location)
|
||||
|| (GET_CODE (SET_DEST (set)) == SUBREG
|
||||
&& (GET_MODE_SIZE (GET_MODE (SET_DEST (set)))
|
||||
<= UNITS_PER_WORD)
|
||||
&& (GET_MODE_CLASS (GET_MODE (SET_DEST (set)))
|
||||
== MODE_INT)
|
||||
&& SUBREG_REG (SET_DEST (set)) == x))
|
||||
&& basic_induction_var (SET_SRC (set),
|
||||
(GET_MODE (SET_SRC (set)) == VOIDmode
|
||||
@ -7696,6 +7698,7 @@ check_dbra_loop (loop_end, insn_count, loop_start, loop_info)
|
||||
for (bl = loop_iv_list; bl; bl = bl->next)
|
||||
{
|
||||
if (bl->biv_count == 1
|
||||
&& ! bl->biv->maybe_multiple
|
||||
&& bl->biv->dest_reg == XEXP (comparison, 0)
|
||||
&& ! reg_used_between_p (regno_reg_rtx[bl->regno], bl->biv->insn,
|
||||
first_compare))
|
||||
@ -7761,7 +7764,8 @@ check_dbra_loop (loop_end, insn_count, loop_start, loop_info)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (INTVAL (bl->biv->add_val) > 0)
|
||||
else if (GET_CODE (bl->biv->add_val) == CONST_INT
|
||||
&& INTVAL (bl->biv->add_val) > 0)
|
||||
{
|
||||
/* Try to change inc to dec, so can apply above optimization. */
|
||||
/* Can do this if:
|
||||
@ -9551,6 +9555,10 @@ load_mems (scan_start, end, loop_top, start)
|
||||
mem_list_entry = XEXP (mem_list_entry, 1);
|
||||
}
|
||||
|
||||
if (flag_float_store && written
|
||||
&& GET_MODE_CLASS (GET_MODE (mem)) == MODE_FLOAT)
|
||||
loop_mems[i].optimize = 0;
|
||||
|
||||
/* If this MEM is written to, we must be sure that there
|
||||
are no reads from another MEM that aliases this one. */
|
||||
if (loop_mems[i].optimize && written)
|
||||
|
@ -2511,15 +2511,15 @@ expand_value_return (val)
|
||||
#ifdef PROMOTE_FUNCTION_RETURN
|
||||
tree type = TREE_TYPE (DECL_RESULT (current_function_decl));
|
||||
int unsignedp = TREE_UNSIGNED (type);
|
||||
enum machine_mode old_mode
|
||||
= DECL_MODE (DECL_RESULT (current_function_decl));
|
||||
enum machine_mode mode
|
||||
= promote_mode (type, DECL_MODE (DECL_RESULT (current_function_decl)),
|
||||
&unsignedp, 1);
|
||||
= promote_mode (type, old_mode, &unsignedp, 1);
|
||||
|
||||
if (GET_MODE (val) != VOIDmode && GET_MODE (val) != mode)
|
||||
convert_move (return_reg, val, unsignedp);
|
||||
else
|
||||
if (mode != old_mode)
|
||||
val = convert_modes (mode, old_mode, val, unsignedp);
|
||||
#endif
|
||||
emit_move_insn (return_reg, val);
|
||||
emit_move_insn (return_reg, val);
|
||||
}
|
||||
if (GET_CODE (return_reg) == REG
|
||||
&& REGNO (return_reg) < FIRST_PSEUDO_REGISTER)
|
||||
|
@ -1,3 +1,14 @@
|
||||
1999-12-21 Martin v. Löwis <loewis@informatik.hu-berlin.de>
|
||||
|
||||
* filebuf.cc (open): Support ios::ate if _G_HAVE_IO_FILE_OPEN.
|
||||
Remove seek for ios::app if not.
|
||||
|
||||
1999-12-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
|
||||
|
||||
* strstream.h (strstreambuf::streambuf): Rename parameters to
|
||||
avoid shadow warning.
|
||||
* stream.h (WS): Likewise.
|
||||
|
||||
Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
|
||||
|
||||
* gcc-2.95.2 Released.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* This is part of libio/iostream, providing -*- C++ -*- input/output.
|
||||
Copyright (C) 1993, 1995 Free Software Foundation
|
||||
Copyright (C) 1993, 1995, 1999 Free Software Foundation
|
||||
|
||||
This file is part of the GNU IO Library. This library is free
|
||||
software; you can redistribute it and/or modify it under the
|
||||
@ -112,15 +112,23 @@ filebuf* filebuf::open(const char *filename, ios::openmode mode, int prot)
|
||||
if (mode & (int)ios::noreplace)
|
||||
posix_mode |= O_EXCL;
|
||||
#if _G_HAVE_IO_FILE_OPEN
|
||||
return (filebuf*)_IO_file_open (this, filename, posix_mode, prot,
|
||||
read_write, 0);
|
||||
if (!_IO_file_open (this, filename, posix_mode, prot,
|
||||
read_write, 0))
|
||||
return NULL;
|
||||
if (mode & ios::ate) {
|
||||
if (pubseekoff(0, ios::end) == EOF) {
|
||||
_IO_un_link (this);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return this;
|
||||
#else
|
||||
int fd = ::open(filename, posix_mode, prot);
|
||||
if (fd < 0)
|
||||
return NULL;
|
||||
_fileno = fd;
|
||||
xsetflags(read_write, _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING);
|
||||
if (mode & (ios::ate|ios::app)) {
|
||||
if (mode & ios::ate) {
|
||||
if (pubseekoff(0, ios::end) == EOF)
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 1993 Free Software Foundation
|
||||
Copyright (C) 1993, 1999 Free Software Foundation
|
||||
|
||||
This file is part of the GNU IO Library. This library is free
|
||||
software; you can redistribute it and/or modify it under the
|
||||
@ -53,7 +53,7 @@ extern char* oct(unsigned int, int=0);
|
||||
char* chr(char ch, int width = 0);
|
||||
char* str(const char* s, int width = 0);
|
||||
|
||||
inline istream& WS(istream& str) { return ws(str); }
|
||||
inline istream& WS(istream& __str) { return ws(__str); }
|
||||
} // extern "C++"
|
||||
|
||||
#endif /* !_COMPAT_STREAM_H */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* This is part of libio/iostream, providing -*- C++ -*- input/output.
|
||||
Copyright (C) 1993 Free Software Foundation
|
||||
Copyright (C) 1993, 1999 Free Software Foundation
|
||||
|
||||
This file is part of the GNU IO Library. This library is free
|
||||
software; you can redistribute it and/or modify it under the
|
||||
@ -50,8 +50,8 @@ class strstreambuf : public streambuf
|
||||
virtual ~strstreambuf();
|
||||
strstreambuf() { init_dynamic(0, 0); }
|
||||
strstreambuf(int initial_size) { init_dynamic(0, 0, initial_size); }
|
||||
strstreambuf(void *(*alloc)(_IO_size_t), void (*free)(void*))
|
||||
{ init_dynamic(alloc, free); }
|
||||
strstreambuf(void *(*__alloc)(_IO_size_t), void (*__free)(void*))
|
||||
{ init_dynamic(__alloc, __free); }
|
||||
strstreambuf(char *ptr, int size, char *pstart = NULL)
|
||||
{ init_static(ptr, size, pstart); }
|
||||
strstreambuf(unsigned char *ptr, int size, unsigned char *pstart = NULL)
|
||||
|
@ -1,3 +1,9 @@
|
||||
1999-12-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
|
||||
|
||||
* std/bastring.h (basic_string::basic_string): Rename parameters
|
||||
to avoid shadow warnings.
|
||||
* std/bastring.cc (alloc): Likewise.
|
||||
|
||||
Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
|
||||
|
||||
* gcc-2.95.2 Released.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Member templates for the -*- C++ -*- string classes.
|
||||
// Copyright (C) 1994 Free Software Foundation
|
||||
// Copyright (C) 1994, 1999 Free Software Foundation
|
||||
|
||||
// This file is part of the GNU ANSI C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -94,14 +94,14 @@ check_realloc (basic_string::size_type s) const
|
||||
|
||||
template <class charT, class traits, class Allocator>
|
||||
void basic_string <charT, traits, Allocator>::
|
||||
alloc (basic_string::size_type size, bool save)
|
||||
alloc (basic_string::size_type __size, bool __save)
|
||||
{
|
||||
if (! check_realloc (size))
|
||||
if (! check_realloc (__size))
|
||||
return;
|
||||
|
||||
Rep *p = Rep::create (size);
|
||||
Rep *p = Rep::create (__size);
|
||||
|
||||
if (save)
|
||||
if (__save)
|
||||
{
|
||||
p->copy (0, data (), length ());
|
||||
p->len = length ();
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Main templates for the -*- C++ -*- string classes.
|
||||
// Copyright (C) 1994, 1995 Free Software Foundation
|
||||
// Copyright (C) 1994, 1995, 1999 Free Software Foundation
|
||||
|
||||
// This file is part of the GNU ANSI C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
@ -180,11 +180,11 @@ class basic_string
|
||||
: dat (nilRep.grab ()) { assign (n, c); }
|
||||
#ifdef __STL_MEMBER_TEMPLATES
|
||||
template<class InputIterator>
|
||||
basic_string(InputIterator begin, InputIterator end)
|
||||
basic_string(InputIterator __begin, InputIterator __end)
|
||||
#else
|
||||
basic_string(const_iterator begin, const_iterator end)
|
||||
basic_string(const_iterator __begin, const_iterator __end)
|
||||
#endif
|
||||
: dat (nilRep.grab ()) { assign (begin, end); }
|
||||
: dat (nilRep.grab ()) { assign (__begin, __end); }
|
||||
|
||||
~basic_string ()
|
||||
{ rep ()->release (); }
|
||||
|
@ -1,3 +1,8 @@
|
||||
1999-11-06 Martin v. Löwis <loewis@informatik.hu-berlin.de>
|
||||
|
||||
* bitset (class bitset): Declare reference as our friend.
|
||||
* bitset: Include limits.h.
|
||||
|
||||
Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
|
||||
|
||||
* gcc-2.95.2 Released.
|
||||
|
@ -36,6 +36,7 @@
|
||||
|
||||
|
||||
#include <stddef.h> // for size_t
|
||||
#include <limits.h> // for CHAR_BIT
|
||||
#include <string>
|
||||
#include <stdexcept> // for invalid_argument, out_of_range, overflow_error
|
||||
#include <iostream.h> // for istream, ostream
|
||||
@ -568,6 +569,8 @@ private:
|
||||
public:
|
||||
|
||||
// bit reference:
|
||||
class reference;
|
||||
friend class reference;
|
||||
class reference {
|
||||
friend class bitset;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user