David Edelsohn [Tue, 22 Apr 2003 15:01:18 +0000 (15:01 +0000)]
fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT macro defaulting to original BRANCH_COST heuristic.
* fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
macro defaulting to original BRANCH_COST heuristic.
* doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
Mark Mitchell [Tue, 22 Apr 2003 05:44:12 +0000 (05:44 +0000)]
Makefile.in (calls.o): Depend on except.h.
* Makefile.in (calls.o): Depend on except.h.
* calls.c: Include except.h.
(emit_call_1): Call note_eh_region_may_contain_throw if
appropriate.
* except.c (eh_region): Add may_contain_throw.
(expand_eh_region_end_cleanup): Do not include handler code when
it cannot be reached.
(note_eh_region_may_contain_throw): New function.
* except.h (note_eh_region_may_contain_throw): New function.
* call.c (build_over_call): Use build_cxx_call.
(build_cxx_call): New method, split out of build_over_call.
* cp-tree.h (language_function): Add can_throw.
(build_cxx_call): Declare it.
* decl.c (finish_function): If a function does not contain any
calls to functions that can throw an exception, indicate that
fact.
* decl2.c (mark_used): Do not defer the instantiation of
functions, if the current function does not throw.
* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
* pt.c (instantiate_decl): Make sure import_export_decl is called
before emitting things.
* rtti.c (throw_bad_cast): Use build_cxx_call.
(build_dynamic_cast_1): Likewise.
* typeck.c (build_function_call): Likewise.
* g++.dg/template/recurse.C: Adjust location of error messages.
fold-const.c (fold, [...]): Restore a number of conversions required for type consistency and previously...
* fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
a number of conversions required for type consistency and previously
stripped off by STRIP_NOPS.
expmed.c (extract_bit_field): Reverse operands of && condition to prevent a potential division by zero in the...
* expmed.c (extract_bit_field): Reverse operands of && condition to
prevent a potential division by zero in the previously first branch.
* config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
Joel Brobecker [Mon, 21 Apr 2003 20:39:04 +0000 (20:39 +0000)]
dwarf2out.c (is_ada, [...]): New functions.
* dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
(subrange_type_die): Likewise.
(modified_type_die): Emit a subrange_type DIE for Ada subrange types.
(is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
Paolo Carlini [Mon, 21 Apr 2003 18:11:51 +0000 (20:11 +0200)]
std_streambuf.h (uflow()): It's used only by basic_stringbuf (i.e....
2003-04-21 Paolo Carlini <pcarlini@unitus.it>
* include/std/std_streambuf.h (uflow()): It's used only by
basic_stringbuf (i.e., basic_filebuf provide its own uflow()),
therefore do not consider the _M_buf_unified == true case.
re PR c++/9881 (What is an address constant expression?)
cp:
PR c++/9881
* typeck.c (build_unary_op): Fold all COMPONENT_REF addr
expressions. Reverts my 2002-08-08 patch.
* typeck.c (comp_ptr_ttypes_real): Swap final && operands for
cheaper early exit.
testsuite:
PR c++/9881
* g++.dg/init/addr-const1.C: New test.
* g++.dg/other/packed1.C: XFAIL on aligned architectures.
Scott Gilbertson [Sun, 20 Apr 2003 23:21:06 +0000 (23:21 +0000)]
Container.java (addImpl): Enable paint events if adding a lightweight to a heavyweight.
2003-04-20 Scott Gilbertson <scottg@mantatest.com>
* java/awt/Container.java (addImpl): Enable paint events if adding
a lightweight to a heavyweight.
(addNotify): Ensure that peer is created before
addNotifyContainerChildren.
(addNotifyContainerChildren): Enable paint events if a heavyweight
container contains a lightweight.
Chris Lattner [Sun, 20 Apr 2003 22:58:28 +0000 (22:58 +0000)]
c-common.h, [...]: Rename genrtl_decl_cleanup to genrtl_cleanup_stmt.
* c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
genrtl_cleanup_stmt. Correct comment at head of
genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
* stmt.c (struct nesting): Kill n_function_calls.
(expand_start_bindings): Don't set
thisblock->data.block.n_function_calls.
(expand_end_bindings): Compare function_call_count against 0.
(expand_cleanups): Kill DONT_DO argument; all callers passed
NULL_TREE. All callers updated to match.
* output.h: Remove prototypes of deleted functions.
* c-typeck.c (constructor_subconstants_deferred): Kill.
(struct initializer_stack): Remove 'deferred' field.
(start_init): Remove all references to the above.
(finish_init): Likewise. Also remove never-executed call to
output_deferred_addressed_constants. Pull assignment to
defstr out of if expression.
Neil Booth [Sun, 20 Apr 2003 19:02:53 +0000 (19:02 +0000)]
cpphash.h (NOTE_ESC_NL, [...]): Remove.
* cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
NOTE_NEWLINE): Remove.
* cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
to handle new form of line note type.
target.h (encode_section_info): Add new argument carrying the RTL to be modified by the hook.
* target.h (encode_section_info): Add new argument carrying
the RTL to be modified by the hook.
* varasm.c (make_decl_rtl, output_constant_def): Update calls
to encode_section_info.
(default_encode_section_info): Take and use RTL argument,
don't use TREE_CST_RTL or DECL_RTL.
* output.h: Update prototype of default_encode_section_info.
* config/darwin.h (ASM_DECLARE_OBJECT_NAME)
(ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
Update calls to encode_section_info.
* config/darwin.c, config/arm/arm.c, config/arm/pe.c
* config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
* config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
* config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
* config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
* config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
except for PE dllimport/dllexport. Update calls to
default_encode_section_info.
cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
.: * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
* gcov.c (output_lines): Don't be so fussy about going past EOF.
cp:
* cp/decl2.c (start_static_storage_duration_function): Take count
arg, don't check if it wraps round.
(generate_ctor_or_dtor_function): Add locus arg, use it.
(generate_ctor_and_dtor_functions_for_priority): Data arg is a
locus.
(finish_file): Set line numbers to past EOF for synthesized
functions.
Scott Gilbertson [Sat, 19 Apr 2003 19:54:39 +0000 (19:54 +0000)]
XGraphics.java (XGraphics): Use new GC.create.
2003-04-19 Scott Gilbertson <scottg@mantatest.com>
* gnu/awt/xlib/XGraphics.java (XGraphics): Use new GC.create.
(dispose): Null metrics.
* gnu/awt/xlib/XToolkit.java (sync): Implement.
* gnu/gcj/xlib/Clip.java (dispose): Change name of native from
finalize.
(finalize): Call dispose.
* gnu/gcj/xlib/Drawable.java (gcCache): New field.
(gcCachedCount): New field.
(finalize): New method.
(putGCInCache): New method.
(getGCFromCache): New method.
* gnu/gcj/xlib/GC.java (GC): Make protected.
(clone): Get new GC from cache if possible.
(create): New static method.
(dispose): Save old GC in cache.
* gnu/gcj/xlib/natClip.cc (dispose): Check for null before
deleting.
* gnu/gcj/xlib/natGC.cc (initStructure): Call XCreateGC only if gc
is null.
* gnu/gcj/xlib/Pixmap.java (Pixmap): Use new GC.create.
* java/awt/Container.java (visitChild): Dispose gfx2 when
finished.
File.java (getAbsolutePath): On Windows, take care of paths like "C:", "G:foo\bar", etc.
2003-04-19 Ranjit Mathew <rmathew@hotmail.com>
* java/io/File.java (getAbsolutePath): On Windows, take care
of paths like "C:", "G:foo\bar", etc.
(getName): Make it work correctly on Windows.
(getParent): Make it work correctly on Windows. For UNIX,
fix bug that causes "/" to be returned as the parent of "/",
instead of null as returned by Sun's JRE.
* java/io/natFileWin32.cc: Change copyright owner to FSF.
Scott Gilbertson [Sat, 19 Apr 2003 17:59:40 +0000 (17:59 +0000)]
XGraphicsConfiguration.java (FontMetricsCache): New inner class.
2003-04-19 Scott Gilbertson <scottg@mantatest.com>
* gnu/awt/xlib/XGraphicsConfiguration.java (FontMetricsCache): New
inner class.
(CACHE_SIZE_PER_DISPLAY): New field
(fontMetricsCache): New field
(getXFontMetrics): Use fontMetricsCache to cache fonts. Prefer
loading ISO10646-1 fonts.
Douglas B Rupp [Fri, 18 Apr 2003 22:43:28 +0000 (18:43 -0400)]
unwind-dw2-fde.c (__register_frame_info_bases): Check for null begin parameter (as well as pointer to null).
* unwind-dw2-fde.c (__register_frame_info_bases): Check for
null begin parameter (as well as pointer to null).
(__deregister_frame_info_bases): Likewise.
calls.c (expand_call): Move special case for constructor calls to right place.
* calls.c (expand_call): Move special case for constructor calls
to right place. Ensures constructor calls used to initialize
arguments get a clean outgoing argument block for themselves.
Move check for stack deallocation completeness until after last
deallocation. Add stack_pointer_delta to set of state
variables saved and restored along with current stack_level.
integrate.c (expand_inline_function): Ensure non-const actuals don't end up const in the caller's flow after...
* integrate.c (expand_inline_function): Ensure non-const actuals
don't end up const in the caller's flow after conversion to possibly
const formal type.
* config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
(alpha_end_function): Don't set them.
(decl_in_text_section): Remove.
(alpha_encode_section_info): Remove.
(samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
(direct_call_operand): Use SYMBOL_REF_DECL and compare actual
sections, rather than decl_in_text_section results.
Jakub Jelinek [Fri, 18 Apr 2003 12:32:36 +0000 (14:32 +0200)]
configure.in (powerpc64*-*-linux*): Remove.
* configure.in (powerpc64*-*-linux*): Remove.
* configure: Rebuilt.
libffi/
* include/ffi.h.in (POWERPC64): Define if 64-bit.
(enum ffi_abi): Add FFI_LINUX64 on POWERPC.
Make it the default on POWERPC64.
(FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
* configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
* configure: Rebuilt.
* src/powerpc/ffi.c (hidden): Define.
(ffi_prep_args_SYSV): Renamed from
ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
(NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
ASM_NEEDS_REGISTERS64): New.
(ffi_prep_args64): New function.
(ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
(ffi_call): Likewise.
(ffi_prep_closure): Likewise.
(flush_icache): Surround by #ifndef POWERPC64.
(ffi_dblfl): New union type.
(ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
(ffi_closure_helper_LINUX64): New function.
* src/powerpc/ppc_closure.S: Surround whole file by #ifndef
__powerpc64__.
* src/powerpc/sysv.S: Likewise.
(ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
* src/powerpc/linux64.S: New file.
* src/powerpc/linux64_closure.S: New file.
* Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
src/powerpc/linux64_closure.S.
(TARGET_SRC_POWERPC): Likewise.
* src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
closure_test_fn3): Fix result printing on big-endian 64-bit
machines.
(main): Print tst2_arg instead of uninitialized tst2_result.
* src/ffitest.c (main): Hide what closure pointer really points to
from the compiler.
* docs/html/17_intro/porting.texi (_GLIBCPP_USE_C99_CHECK): New macro.
(_GLIBCPP_USE_C99_DYNAMIC): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
* config/os/bsd/freebsd/os_defines.h (_GLIBCPP_USE_C99_CHECK):
New macro.
(_GLIBCPP_USE_C99_DYNAMIC): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
(_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
* include/c_std/std_cstdlib.h: Use new macros.
* include/c_std/std_cstdio.h: Use new macros.
* include/c_std/std_cwchar.h: Use new macros.