Paolo Carlini [Thu, 13 Nov 2003 23:13:22 +0000 (23:13 +0000)]
re PR libstdc++/13007 (basic_streambuf::pubimbue, imbue wrong)
2003-11-13 Paolo Carlini <pcarlini@suse.de>
Petur Runolfsson <peturr02@ru.is>
PR libstdc++/13007
* include/bits/fstream.tcc (imbue): Don't touch the stored
locale.
* include/std/std_streambuf.h (imbue): According to the
standard, base class version does nothing.
(pubimbue): Store the locale.
* testsuite/27_io/basic_filebuf/imbue/char/13007.cc: New.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: New.
* testsuite/27_io/basic_filebuf/imbue/char/2.cc: Tweak.
* testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc: New.
* testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: New.
* testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc: New.
* testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: New.
Kazu Hirata [Thu, 13 Nov 2003 22:28:07 +0000 (22:28 +0000)]
lib1funcs.asm (___udivsi3): Jump to reti instead of exitdiv.
* config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
instead of exitdiv.
(___umodsi3): Likewise.
(exitdiv): Do not restore any register.
(reti): Restore registers.
Petur Runolfsson [Thu, 13 Nov 2003 17:43:48 +0000 (17:43 +0000)]
re PR libstdc++/12594 (DRs 60 [TC] and 63 [TC] not implemented)
2003-11-13 Petur Runolfsson <peturr02@ru.is>
PR libstdc++/12594
* include/bits/ostream.tcc
(basic_ostream::operator<<(basic_ostream& (*)(basic_ostream&)),
basic_ostream::operator<<(basic_ios& (*)(basic_ios&)),
basic_ostream::operator<<(ios_base& (*)(ios_base&))):
Implement the resolution of DR 60 (TC): These are not formatted
output functions so don't construct sentry objects and don't
catch exceptions.
(basic_ostream::put, basic_ostream::write): Implement the
resolution of DR 63 (TC) by catching exceptions and setting
badbit.
(basic_ostream::flush): Implement the resolution of DR 60 (TC):
This is not an unformatted output function so don't construct
a sentry object.
* testsuite/testsuite_io.h (sync_streambuf): Define.
* testsuite/27_io/basic_ostream/flush/char/2.cc: New test.
* testsuite/27_io/basic_ostream/inserters_other/char/5.cc: New test.
* testsuite/27_io/basic_ostream/put/char/1.cc: New test.
* testsuite/27_io/basic_ostream/write/char/1.cc: New test.
Paolo Carlini [Thu, 13 Nov 2003 14:19:39 +0000 (14:19 +0000)]
11305-1: Fix, closely following the testcase included in the PR.
2003-11-13 Paolo Carlini <pcarlini@suse.de>
* testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1:
Fix, closely following the testcase included in the PR.
* testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2: Ditto.
* testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3: Ditto.
* testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4: Ditto.
Richard Earnshaw [Thu, 13 Nov 2003 14:05:55 +0000 (14:05 +0000)]
combine.c (distribute_notes): When re-distributing the notes from an insn we are about to delete...
* combine.c (distribute_notes): When re-distributing the notes from
an insn we are about to delete, ensure we can't end up with a cyclic
list of notes.
Eric Botcazou [Thu, 13 Nov 2003 09:48:36 +0000 (10:48 +0100)]
re PR rtl-optimization/12926 (Wrong value after assignment in initialize list using bit-fields)
PR optimization/12926
* expr.c (expand_assignment) [COMPONENT_REF]: Don't put
the UNCHANGING_RTX_P flag on memory references to read-only
components that are not addressable.
* rs6000-protos.h (rs6000_initial_elimination_offset): Add.
(rs6000_stack_info): Remove. (debug_stack_info): Remove.
(rs6000_emit_eh_reg_restore): Add
* rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type
of vars_size and total_size to HOST_WIDE_INT.
(emit_frame_save): Change parameter size to HOST_WIDE_INT.
(rs6000_stack_info): Make static; change data size to HOST_WIDE_INT.
(debug_stack_info): Make static; change output format of HOST_WIDE_INT
values.
(rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md.
(rs6000_initial_elimination_offset): New, with code formerly in
INITIAL_ELIMINATION_OFFSET.
* rs6000.h (rs6000_stack_t): Remove.
(INITIAL_ELIMINATION_OFFSET): Replace code with call to function
rs6000_initial_elimination_offset.
* rs6000.md (UNSPECV_EH_RR split): Replace code with call to
rs6000_emit_eh_reg_restore.
Mark Mitchell [Wed, 12 Nov 2003 19:57:56 +0000 (19:57 +0000)]
decl.c (finish_case_label): Do not check that we are within a switch statement here.
* decl.c (finish_case_label): Do not check that we are within a
switch statement here.
* parser.c (struct cp_parser): Add in_iteration_statement_p and
in_switch_statement_p.
(cp_parser_new): Initialize them.
(cp_parser_labeled_statement): Check validity of case labels
here.
(cp_parser_selection_statement): Set in_switch_statement_p.
(cp_parser_iteration_statement): Set in_iteration_statement_p.
(cp_parser_jump_statement): Check validity of break/continue
statements here.
* c-typeck.c (c_convert_parm_for_inlining): Add argnum, which
is the argumnt we are processing so that warnings and errors
will have that information.
* c-tree.h (c_convert_parm_for_inlining): Add argnum.
* lang-hooks-def.h
(lhd_tree_inlining_convert_parm_for_inlining): Likewse.
* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise.
* langhooks.h (convert_parm_for_inlining): Likewise.
* tree-inline.c (initialize_inlined_parameters): Compute and
pass argnum down.
Andreas Jaeger [Wed, 12 Nov 2003 11:19:10 +0000 (12:19 +0100)]
c99-const-expr-2.c (foo): Avoid extra warning on 64-bit systems.
* gcc.dg/c99-const-expr-2.c (foo): Avoid extra warning on 64-bit
systems.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu> Co-Authored-By: Jakub Jelinek <jakub@redhat.com> Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r73490
Andreas Jaeger [Wed, 12 Nov 2003 06:44:46 +0000 (07:44 +0100)]
c90-const-expr-2.c (foo): Avoid extra warning on 64-bit systems.
2003-11-12 Andreas Jaeger <aj@suse.de>
Jakub Jelinek <jakub@redhat.com>
Andrew Pinski <pinskia@physics.uc.edu>
Richard Henderson <rth@redhat.com>
* gcc.dg/c90-const-expr-2.c (foo): Avoid extra warning on 64-bit
systems.
* gcc.dg/20030926-1.c: Make it work on x86_64 systems.
* gcc.dg/i386-pentium4-not-mull.c: Likewise.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu> Co-Authored-By: Jakub Jelinek <jakub@redhat.com> Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r73485
Carlo Wood [Wed, 12 Nov 2003 02:18:37 +0000 (02:18 +0000)]
re PR libstdc++/12947 (Demangler bug)
PR libstdc++/12947
* bits/demangle.h
(_GLIBCXX_DEMANGLER_STYLE_COMPACT_EXPR_OPS): Added.
(_GLIBCXX_DEMANGLER_STYLE_SIZEOF_TYPENAME): Added.
(session<Allocator>::next_peek() const): Added.
(decode_non_negative_decimal_integer(string_type&)):
Renamed from decode_decimal_integer(string_type&).
(session<Allocator>::decode_nested_name):
Decode <template_param> as well.
(session<Allocator>::add_substitution):
Handle <template-param> for <nested-name>'s.
(enum xary_nt): Added.
(struct entry_st): Added member `xary_nt type' instead of `bool unary'.
(symbol_name_table_c): Updated for `entry_st::type' and additional
operators (unary `operator+' and `sizeof(type)').
(offset_table_c): Updated for new operators (causing a new hash map).
(decode_operator_name): Match the updated hash map.
(session<Allocator>::decode_expression):
Support for `sizeof ([typename] type)' (st),
dependent names (sr) and casting operator (cv). Handle
`entry_st::type'. Handle _GLIBCXX_DEMANGLER_STYLE_COMPACT_EXPR_OPS
and _GLIBCXX_DEMANGLER_STYLE_SIZEOF_TYPENAME.
(session<Allocator>::decode_type_with_postfix):
Support `extern "C"' function types (FY).
* testsuite/demangle/regression/cw-16.cc: Added tests for the
added functionality.
* testsuite/demangle/regression/3111-2.cc: sizeof now has a space
appended.
* function.c (purge_addressof_1): Add libcall check.
Remove test for cached replacements on fallback case.
Simplify mode comparisons. Add libcall test for
paradoxical subregs.
Paolo Carlini [Wed, 12 Nov 2003 01:14:34 +0000 (01:14 +0000)]
re PR libstdc++/12875 (Weird behaviour in basic_filebuf::setbuf())
2003-11-11 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/12875
* include/bits/fstream.tcc (setbuf): Don't do anything
after open(), in particular don't discard data.
(_M_allocate_internal_buffer): Tweak to not allocate memory
in case the buffer is provided by the user via setbuf.
* include/ext/stdio_filebuf.h: Tweak comment.
* testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc: New.
* testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/setbuf/char/2.cc: Tweak, now
setbuf does nothing after open().
* testsuite/27_io/basic_filebuf/setbuf/char/3.cc: Likewise.
* config/darwin-protos.h (darwin_assemble_visibility): Declare.
* config/darwin.c (darwin_assemble_visibility): Define. Warn for
anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN.
* config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use
darwin_assemble_visibility instead of default.
Tom Tromey [Mon, 10 Nov 2003 21:30:10 +0000 (21:30 +0000)]
For PR java/12996:
* libjava.jar/simple.jar: New file.
* libjava.jar/simple.xfail: New file.
* libjava.jar/simple.out: New file.
* libjava.jar/simple.java: New file.
* libjava.jar/jar.exp: New file.
Arnaud Charlet [Mon, 10 Nov 2003 17:30:00 +0000 (18:30 +0100)]
[multiple changes]
2003-11-10 Ed Falis <falis@gnat.com>
* 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
* 5zinit.adb: (Install_Handler): Moved back to spec
(Install_Signal_Handlers): Deleted
* 5zthrini.adb: Added context clause for System.Storage_Elements
(Register): Only handles creation of taskVar; initialization moved to
Thread_Body_Enter.
(Reset_TSD): Deleted; replaced by Thread_Body_Enter
Added declaration of environment task secondary stack and
initialization.
* s-thread.adb: Implement bodies for thread body processing
* s-thread.ads:
Added comment identifying supported targets for pragma Thread_Body.
2003-11-10 Pascal Obry <obry@gnat.com>
* adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
GNAT_MAX_PATH_LEN.
* s-fileio.adb:
(Open): Properly check for string length before copying into the buffer.
Raises Name_Error if buffer is too small. Note that this was a potential
buffer overflow.
* gprcmd.adb:
(Gprcmd): Add new command "prefix" to get the prefix of the GNAT
installation.
* make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
* prj.adb: (Project_Empty): Add new boolean component Virtual
* prj.ads: (Virtual_Prefix): New constant string
(Project_Data): New boolean component Virtual
* prj-nmsc.adb (Language_Independent_Check): Adjust error message when
a library project is extended by a virtual extending project.
* prj-part.adb:
Modifications throughout to implement extending-all project, including:
(Virtual_Hash, Processed_Hash): New hash tables
(Create_Virtual_Extending_Project): New procedure
(Look_For_Virtual_Projects_For): New procedure
* prj-proc.adb:
(Process): After checking the projects, if main project is an
extending-all project, set the object directory of all virtual extending
project to the object directory of the main project.
Adjust error message when a virtual extending project has the same
object directory as an project being extended.
(Recursive_Process): If name starts with the virtual prefix, set Virtual
to True in the project data.
* prj-tree.adb:
(Default_Project_Node): Add new boolean component Extending_All
(Is_Extending_All): New function
(Set_Is_Extending_All): New procedure
* prj-tree.ads: (Is_Extending_All): New function
(Set_Is_Extending_All): New procedure
(Project_Node_Record): New boolean component Extending_All
* switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
* vms_data.ads:
Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
* bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
"gprcmd prefix" to define it.
2003-11-10 Thomas Quinot <quinot@act-europe.fr>
* einfo.ads: Fix a typo and remove an extraneous word in comments.
* lib-load.adb:
(Create_Dummy_Package_Unit): Set the scope of the entity for the
created dummy package to Standard_Standard, not to itself, to
defend other parts of the front-end against encoutering a cycle in
the scope chain.
* sem_ch10.adb:
(Analyze_With_Clause): When setting the entities for the successive
N_Expanded_Names that constitute the name of a child unit, do not
attempt to go further than Standard_Standard in the chain of scopes.
This case arises from the placeholder units created by
Create_Dummy_Package_Unit in the case of a with_clause for a
nonexistent child unit.
2003-11-10 Ed Schonberg <schonberg@gnat.com>
* exp_ch6.adb:
(Expand_Thread_Body): Place subprogram on scope stack, so that new
declarations are given the proper scope.
* sem_ch13.adb:
(Check_Expr_Constants): Reject an expression that contains a constant
created during expansion, and that appears after the object to which
the address clause applies.
* sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
Analyze_Iteration_Scheme, to rewrite a loop parameter specification
that uses 'Range of a function call with controlled components, so
that the function result can be finalized before starting the loop.
* sem_ch8.adb:
(Find_Selected_Component): Improve error message when prefix is
an implicit dereference of an incomplete type.
2003-11-10 Robert Dewar <dewar@gnat.com>
* opt.ads: New Print_Standard flag for -gnatS switch
* sem_ch13.adb: Remove some additional checks for unaligned arrays
* cstand.adb (Create_Standard): Print out package standard if -gnatS
switch set
* debug.adb: Update doc for -gnatds to discuss relationship with new
-gnatS flag
* sinfo.adb: Add new field Entity_Or_Associated_Node
* sinfo.ads: Add new field Entity_Or_Associated_Node
Update documentation for Associated_Node and Entity fields to clarify
relationship and usage.
* sprint.adb:
(Write_Id): Properly process Associated_Node field in generic template
* switch-c.adb:
Recognize new -gnatS switch for printing package Standard
This replaces gnatpsta
* usage.adb:
Add line for new -gnatS switch for printing package Standard
This replaces gnatpsta
Arnaud Charlet [Mon, 10 Nov 2003 09:42:57 +0000 (10:42 +0100)]
re PR ada/12950 (Ada runtime is not relocatable)
PR 12950
* osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
functions. Used to handle dynamic prefix relocation, via set_std_prefix.
Replace GNAT_ROOT by GCC_ROOT.
* Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
Waldek Hebisch [Mon, 10 Nov 2003 08:11:47 +0000 (09:11 +0100)]
re PR target/12865 (`mprotect' call to make trampoline executable may fail)
PR target/12865
* config/sparc/sparc.c (sparc_initialize_trampoline): Call
__enable_execute_stack only after writing onto the stack.
(sparc64_initialize_trampoline): Likewise.
Roger Sayle [Sun, 9 Nov 2003 14:33:20 +0000 (14:33 +0000)]
loop.c (check_dbra_loop): Try swapping the comparison operands of the loop condition to identify a...
* loop.c (check_dbra_loop): Try swapping the comparison operands
of the loop condition to identify a suitable induction variable.
* unroll.c (loop_iterations): Likewise.
Paolo Carlini [Sun, 9 Nov 2003 10:47:58 +0000 (10:47 +0000)]
re PR libstdc++/12971 (Resolution of DR 328 [WP] still unimplemented)
2003-11-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/12971
* include/bits/locale_facets.tcc
(money_put::do_put(..., long double)): Fix conversion
specification as per DR 328 [WP].
* testsuite/22_locale/money_put/put/char/12971.cc: Add.
* testsuite/22_locale/money_put/put/wchar_t/12971.cc: Ditto.
* docs/html/ext/howto.html: Add entry for DR 328.