Nathan Sidwell [Sun, 3 Aug 2003 14:19:00 +0000 (14:19 +0000)]
re PR c++/11766 (ICE in comp_ptr_ttypes_real)
cp:
PR c++/11766
* typeck.c (comp_ptr_ttypes_real): Don't loop on pointers to
member functions.
testsuite:
PR c++/11766
* g++.dg/expr/ptrmem1.C: New test.
Roger Sayle [Sun, 3 Aug 2003 03:23:18 +0000 (03:23 +0000)]
builtin-types.def (BT_SSIZE): New primitive type.
* builtin-types.def (BT_SSIZE): New primitive type.
(BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types.
* builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT,
BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON,
BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins.
* builtin-attrs.def: Remove DEF_FN_ATTR construct and the last
few functions that define default attributes using it.
* c-common.c (c_common_insert_default_attributes): Do nothing.
Kaz Kojima [Sun, 3 Aug 2003 00:48:52 +0000 (00:48 +0000)]
linux.h (SUBTARGET_LINK_SPEC): Don't set rpath.
* config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath.
(LIB_SPEC): Set -lpthread always when -pthread set. Set -lieee
when -mieee-fp set and -shared not set.
(SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5.
Nathan Sidwell [Sat, 2 Aug 2003 18:52:16 +0000 (18:52 +0000)]
re PR c++/9447 (using Base<T>::member does not work)
cp:
PR c++/9447
* cp-tree.def (USING_DECL): Document its type.
* class.c (pushclass): If we're entering a template, push any
dependent using decls it has.
* decl2.c (do_class_using_decl): Refactor. Type is NULL iff it is
a dependent scope.
* pt.c (tsubst_decl) <USING_DECL case>: Set type.
(tsubst): Remove USING_DECL checks.
(type_dependent_expression_p): Remove USING_DECL case.
* semantics.c (finish_member_declaration): A USING_DECL's type
indicates whether it is dependent.
testsuite:
PR c++/9447
* g++.dg/template/using7.C: New test.
Neil Booth [Sat, 2 Aug 2003 16:29:46 +0000 (16:29 +0000)]
cppfiles.c (struct _cpp_file): Rename once_only_next to next_file.
* cppfiles.c (struct _cpp_file): Rename once_only_next to
next_file. Remove import and pragma_once, add once_only.
(find_file): Add new file structures to the all_files list.
(should_stack_file): Mark #import-ed files once-only, and
don't stack them if the file has already been stacked.
(_cp_mark_file_once_only): Simplify.
* cpphash.h (struct cpp_reader): Rename once_only_files
to all_files. Rename saw_pragma_once to seen_once_only.
(_cpp_mark_file_once_only): Update prototype.
* cpplib.c (do_pragma_once): Update.
testsuite:
* import1.c, import2.c: New tests.
Michael Koch [Sat, 2 Aug 2003 06:31:02 +0000 (06:31 +0000)]
2003-08-02 Michael Koch <konqueror@gmx.de>
* java/net/URL.java
(URL): Added paragraph about the
gnu.java.net.nocache_protocol_handlers property.
(ph_cache): Renamed from handlers to match classpath's implementation.
Reordered it with factory and serialVersionUID member variables.
(cache_handlers): New member variable.
(static): New static initializer to initialize cache_handlers from
gnu.java.net.nocache_protocol_handlers property.
(URL): Use ph_cache instead of handlers, reformatted some code to
match classpath's implementation.
inclhack.def (broken_cabs): Make matching more generous.
* fixinc/inclhack.def (broken_cabs): Make matching more generous.
* fixinc/fixincl.x: Regenerate.
* fixinc/tests/base/math.h: Regenerate to match test_text change.
sourcebuild.texi (Front End Directory): Don't make references to libsubdir, it's not part of the interface to frontends.
* doc/sourcebuild.texi (Front End Directory): Don't make references
to libsubdir, it's not part of the interface to frontends.
* doc/install.texi (Configuration): Help users read faster by saying
that GCC's configure options are the standard autoconf ones.
Mention --libdir. Update the default rules for finding the
assembler. Don't use libsubdir since we haven't said what it means.
(Specific): In the Solaris 7 notes, update the place to put the
assembler.
* doc/invoke.texi: Update lib/gcc-lib to lib/gcc.
* doc/cpp.texi (Search Path): Actually, the search path
depends on libdir, which can relocate with cpp.
* doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's
now a private interface between the Makefile and the driver.
* varasm.c (lookup_constant_def): New function.
* rtl.h (lookup_constant_def): Declare it.
* dwarf2out.c (loc_descriptor_from_tree): Use it.
Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR.
Sascha Brawer [Fri, 1 Aug 2003 20:10:22 +0000 (22:10 +0200)]
BevelBorder.java, [...]: Prepend "doc-files" to all paths to embedded Javadoc images...
2003-08-01 Sascha Brawer <brawer@dandelis.ch>
* javax/swing/border/BevelBorder.java,
javax/swing/border/EtchedBorder.java,
javax/swing/border/LineBorder.java,
javax/swing/border/MatteBorder.java,
javax/swing/border/SoftBevelBorder.java,
javax/swing/plaf/BorderUIResource.java,
javax/swing/plaf/ComponentUI.java,
javax/swing/plaf/TreeUI.java,
javax/swing/plaf/basic/BasicBorders.java,
javax/swing/plaf/basic/BasicGraphicsUtils.java,
javax/swing/plaf/basic/BasicTreeUI.java:
Prepend "doc-files" to all paths to embedded Javadoc images, so
that the generated documentation contains the correct URL.
Zack Weinberg [Fri, 1 Aug 2003 18:41:40 +0000 (18:41 +0000)]
c-decl.c (gettags, [...]): Delete.
* c-decl.c (gettags, pushdecl_function_level): Delete.
(last_function_parm_vars): Rename last_function_parm_others.
(current_function_parm_vars): Rename current_function_parm_others.
(struct c_scope): Rewrite comment explaining this data structure.
Add names_last, blocks_last, parms_last fields. Rename
incomplete_list to incomplete.
(SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros.
(poplevel): Ignore second argument. No need to nreverse
anything. Restructure such that each list is processed
exactly once. Use 'const location_t *locus' syntactic sugar
variable where useful. Issue unused variable warnings
ourselves, do not rely on function.c.
(insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND.
(pushdecl_top_level): Likewise. Don't call duplicate_decls.
(implicitly_declare): decl cannot be error_mark_node.
(undeclared_variable): Manipulate scope structure directly.
(c_make_fname_decl): Likewise.
(getdecls, c_init_decl_processing): Fix comment.
(mark_forward_parm_decls): Use SCOPE_LIST_CONCAT. No need
for 'last' variable.
(grokparms): No need to nreverse parms list.
(store_parm_decls_newstyle): Set up the parms_last and
names_last fields of the new scope too.
(store_parm_decls_oldstyle): Can assume DECL_WEAK is not set
on parms to begin with; check this under ENABLE_CHECKING. Set
up parms_last.
(check_for_loop_decls): Refer directly to current_scope->tags.
Use consistent quote style in diagnostics.
(c_write_global_declarations): The names list is not backward.
* c-common.h: Don't prototype gettags.
* c-parse.in: Call poplevel with second argument 0 always.
Alan Modra [Fri, 1 Aug 2003 15:19:01 +0000 (15:19 +0000)]
ffi.c (ffi_prep_args64): Modify for changed gcc structure passing.
* src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
structure passing.
(ffi_closure_helper_LINUX64): Likewise.
* src/powerpc/linux64.S: Remove code writing to parm save area.
* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
address in lr from ffi_closure_helper_LINUX64 call to calculate
table address. Optimize function tail.
Neil Booth [Fri, 1 Aug 2003 14:04:02 +0000 (14:04 +0000)]
Makefile.in: Refine dependencies.
* Makefile.in: Refine dependencies.
* c-opts.c (c_common_handle_option): Do nothing for -Wimport.
* c.opt: Update help for -Wimport.
* cppfiles.c: Include hashtab.h. Update comments.
(stack_file): Read the file before updating dependencies.
(once_only_file_p): Be smarter about marking once-only files.
(_cpp_mark_file_once_only): Correct the check for existence on
the list.
(open_file_failed): Use name not path, which is NULL.
* cpphash.h: Don't include hashtab.h.
(struct _cpp_file): Remove.
(struct cpp_reader): Update.
* cppinit.c (cpp_create_reader): Don't initialize warn_import.
* cpplib.h (struct cpp_options): Remove warn_import.
(cpp_simplify_path): Remove.
Nathan Sidwell [Fri, 1 Aug 2003 09:16:09 +0000 (09:16 +0000)]
typeck.c (build_compound_expr): If RHS is a TARGET_EXPR, put the compound expr inside the target's initializer.
cp:
* typeck.c (build_compound_expr): If RHS is a TARGET_EXPR, put the
compound expr inside the target's initializer.
testsuite:
* g++.dg/opt/tmp1.C: New test.
Nathan Sidwell [Fri, 1 Aug 2003 09:10:29 +0000 (09:10 +0000)]
re PR c++/11525 (ICE/segfault on C++ code)
cp:
PR c++/11525
* parser.c (cp_parser_primary_expression): Do not set
non-constant-p merely because it is a dependent scope.
testsuite:
PR c++/11525
* g++.dg/parse/constant4.C: New test.
Nathan Sidwell [Fri, 1 Aug 2003 09:01:12 +0000 (09:01 +0000)]
re PR c++/9447 (using Base<T>::member does not work)
cp:
PR c++/9447
* decl2.c (do_class_using_decl): Set type to NULL_TREE.
* semantics.c (finish_expr_stmt): Do not convert to void in a
template.
testsuite:
PR c++/9447
* g++.dg/template/using5.C: New test.
Tom Tromey [Fri, 1 Aug 2003 03:02:00 +0000 (03:02 +0000)]
re PR libgcj/11737 (java.io.ObjectOutputStream.writeObject does not work with HashMap)
Fix for PR libgcj/11737:
* java/io/ObjectOutputStream.java (getMethod): Make method
accessible.
(getField): Likewise.
(writeObject): Use getMethod.
Import PrivilegedAction and AccessController.
(callWriteMethod): Don't check whether m is null. Catch
NoSuchMethodException.
Phil Edwards [Fri, 1 Aug 2003 00:49:14 +0000 (00:49 +0000)]
libstdc++-v3-dg.exp: Rename...
2003-07-31 Phil Edwards <pme@gcc.gnu.org>
* testsuite/lib/libstdc++-v3-dg.exp: Rename...
* testsuite/lib/libstdc++-v3.exp: ...to this.
* testsuite/libstdc++-v3.dg/dg.exp: No special case needed now.
Jason Merrill [Fri, 1 Aug 2003 00:37:40 +0000 (20:37 -0400)]
Makefile.in (bubblestrap): Don't require a previous full bootstrap.
* Makefile.in (bubblestrap): Don't require a previous full
bootstrap.
* expr.c (mostly_zeros_p): No longer static.
* tree.h: Declare it.
* stmt.c (resolve_asm_operand_names): Don't copy the pattern
unless we need to do substitutions.
Roger Sayle [Fri, 1 Aug 2003 00:36:53 +0000 (00:36 +0000)]
fold-const.c (fold <MULT_EXPR>): Optimize both x*pow(x,c) and pow(x,c)*x as pow(x,c+1) for constant values c.
* fold-const.c (fold <MULT_EXPR>): Optimize both x*pow(x,c) and
pow(x,c)*x as pow(x,c+1) for constant values c. Optimize x*x
as pow(x,2.0) when the latter will be expanded back into x*x.
(fold <RDIV_EXPR>): Optimize pow(x,c)/x as pow(x,c-1).
* builtins.c (expand_builtin_pow): Ignore flag_errno_math as
pow can never set errno when used with an integer exponent.
Always use expand_powi when exponent is -1, 0, 1 or 2.
(fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0)
as 1.0/(x*x). This avoids unbounded recursion as we now prefer
the pow forms of these expressions.
* Makefile.in (libexecdir): New.
(libsubdir): Use gcc instead of gcc-lib.
(libexecsubdir): New.
(ORDINARY_FLAGS_TO_PASS): Add libexecsubdir.
(DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of
gcc-lib.
(installdirs): Make libexecsubdir.
(install-common): Put executables in libexecsubdir.
(itoolsdir): Use libexecsubdir.
(itoolsdatadir): New.
(install-mkheaders): Separate data files and executables.
(install-collect2): Put executables in libexecsubdir.
(uninstall): Remove libexecsubdir.
* mkheaders.in: Update for new arrangement of files.
(libexecdir): New.
(libexecsubdir): New.
(itoolsdir): Use libexecsubdir.
(itoolsdatadir): New.
* gcc.c (gcc_libexec_prefix): New.
(STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib.
(standard_exec_prefix_1): Use libexec.
(standard_exec_prefix_2): New.
(standard_libexec_prefix): New.
(process_command): Update for new arrangement of files. Compute
gcc_libexec_prefix. Update for change from gcc-lib to gcc.
Per Bothner [Thu, 31 Jul 2003 19:26:17 +0000 (19:26 +0000)]
opts.c (in_fnames, [...]): Moved here from c-opts.
* opts.c (in_fnames, num_in_fnames): Moved here from c-opts.
(add_input_filename): New function.
(handle_options): Call add_input_filename directly instead of
with a lang hook.
* opts.h (in_fnames, num_in_fnames): Moved here.
(add_input_filename): Declare.
* c-decl.c: Need to #include opts.h.
* Makefile.in (c-decl.o): Also depends on opts.h.
* c-opts.c (in_fnames, num_in_fnames): Moved to opts.c.
(c_common_handle_filename): Replaced by add_input_filename.
* c-common.h (in_fnames, num_in_fnames, c_common_handle_filename):
Remove.
* langhooks.h (struct lang_hooks): Remove handle_filename hook.
* langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME): Remove macro.
(LANG_HOOKS_INITIALIZER): Remove use of LANG_HOOKS_HANDLE_FILENAME.
* c-lang.c (LANG_HOOKS_HANDLE_FILENAME): Remove macro.
re PR c++/11347 (Error on valid expression in default value for int argument to inner template.)
cp:
PR c++/11347
* pt.c (instantiate_class_template): Increment
processing_template_decl around the tsubst of a template member
class.
(tsubst_qualified_id): Assert we do not have a dependent scope.
testsuite:
PR c++/11347
* g++.dg/template/memtmpl1.C: New.
Danny Smith [Thu, 31 Jul 2003 04:52:36 +0000 (04:52 +0000)]
gc.h (GC_CreateThread): Declare with WINAPI attribute.
* include/gc.h (GC_CreateThread): Declare with WINAPI
attribute.
* win32_threads.c (GC_CreateThread): Make definitions consistent
with declaration. Cast &thread_table[i].handle to PHANDLE
in call to DuplicateHandle
(thread_start): Declare as static.