re PR c++/9447 (using Base<T>::member does not work)
cp:
PR c++/9447
* decl.c (add_binding): Add bval local variable.
(push_class_level_binding): Likewise. Allow a USING_DECL to be
pushed.
* decl2.c (do_class_using_decl): The type of a using decl is
unknown.
* parser.c (cp_parser_postfix_expression): Refactor unqualified-id
function call lookup code.
* pt.c (tsubst): A USING_DECL will have unknown type.
(tsubst_copy_and_build): Allow a using decl.
(type_dependent_expression_p): A USING_DECL will make it
dependent.
* semantics.c (finish_member_declaration): Push a dependent using
declaration.
testsuite:
PR c++/9447
* g++.dg/template/using1.C: New test.
* g++.dg/template/using2.C: New test.
* g++.dg/template/using3.C: New test.
* g++.dg/template/using4.C: New test.
Mark Mitchell [Tue, 29 Jul 2003 01:57:47 +0000 (01:57 +0000)]
re PR c++/11530 ([unit-at-a-time] inline static function not emitted with -O3)
PR c++/11530
* parser.c (cp_parser_postfix_expression): Do not call mark_used.
* semantics.c (finish_id_expression): Call mark_used for all
declarations.
Mark Mitchell [Tue, 29 Jul 2003 01:14:24 +0000 (01:14 +0000)]
re PR c++/11667 (wider-than-int enums never compare equal to 0)
PR c++/11667
* c-common.c (shorten_compare): Take into account differences
between C and C++ representation for enumeration types.
* tree.h (set_min_and_max_values_for_integral_type): Declare.
* stor-layout.c (set_min_and_max_values_for_integral_type): New
function, broken out from ...
(fixup_signed_type): ... here and ...
(fixup_unsigned_type): ... here.
PR c++/11667
* call.c (standard_conversion): Allow all integral->enumeral
conversions, after marking them as bad.
* decl.c (finish_enum): Make sure that all enumerators are
properly converted to the underlying type.
(build_enumerator): Set DECL_CONTEXT for namespace-scope
enumeration types.
* pt.c (tsubst_copy): Adjust handling of CONST_DECLs accordingly.
(tsubst_enum): Tidy.
* Make-lang.in (typeck.o): Depend on convert.h.
(class.o): Likewise.
(rtti.o): Likewise.
* call.c: Include convert.h.
(convert_arg_to_ellipsis): Use convert_to_real.
* class.c: Include convert.h.
(build_base_path): Use convert_to_integer.
* rtti.c: Include convert.h.
(build_headof): Use convert_to_integer.
* typeck.c: Include convert.h.
(decay_conversion): Use convert_to_integer.
(build_unary_op): Use build_nop.
(get_delta_difference): Use convert_to_integer.
(build_ptrmemfunc): Avoid unncessary conversions.
* c-decl.c: Update commentary, adjust blank lines throughout.
(struct c_scope): Fix indentation. Reorder members so
outer-context pointers come first, booleans last.
(duplicate_decls, define_label): Use a 'locus' variable for
diagnostic locations in a few more places.
(warn_if_shadowing): Un-split a conditional that fits on one line.
(c_init_decl_processing): No need to clear current_scope and
current_function_scope.
(start_decl): Merge if/else if statements with same action.
(push_parm_decl): Rename old_immediate_size_expand to use
save_foo convention; save/restore around entire function.
(grokdeclarator): Remove unnecessary braces.
Tom Tromey [Mon, 28 Jul 2003 16:12:00 +0000 (16:12 +0000)]
natString.cc (init(gnu.gcj.runtime.StringBuffer)): New method.
* java/lang/natString.cc (init(gnu.gcj.runtime.StringBuffer)):
New method.
Include gnu/gcj/runtime/StringBuffer.h.
* java/lang/String.java (init(gnu.gcj.runtime.StringBuffer)): New
native method.
(String(gnu.gcj.runtime.StringBuffer)): Use it.
* configure.in (--enable-checking): Add fold category.
(ENABLE_FOLD_CHECKING): Define if requested.
* configure: Rebuilt.
* config.in: Rebuilt.
* doc/install.texi: Document it.
* fold-const.c: Include md5.h.
[ENABLE_FOLD_CHECKING] (fold): Define to fold_1.
[ENABLE_FOLD_CHECKING] (fold, fold_checksum_tree, fold_check_failed,
print_fold_checksum): New functions.
* fold-const.c (fold): Never modify argument passed to fold, instead
change a copy and return it.
* convert.c (convert_to_integer): Likewise.
testsuite/
* gcc.c-torture/compile/20030725-1.c: New test.
Makefile.tpl: Use 'mkinstalldirs' rather than 'mkdir' when...
* Makefile.tpl: Use 'mkinstalldirs' rather than 'mkdir' when
creating target and build subdirs to build all parent dirs as needed.
* Makefile.in: Rebuild.
* configure.in: Don't build dirs explicitly here.
* configure: Rebuild.
* fixinc/fixinc.svr4: Remove dead code. Remove now-unnecessary
cleanup of junk after #else and #endif directives. Collapse repeated
clauses into for statment.
* fixinc/fixincl.sh: GNU C -> GCC. Add usage comment.
* c-decl.c (struct c_scope): Remove keep_if_subblocks field.
(keep_next_if_subblocks): Rename next_is_function_body.
(pushlevel): Adjust commentary. Always set ->keep on the
outermost level of a function. Don't set ->keep_if_subblocks.
(poplevel): Adjust commentary. Don't look at ->keep_if_subblocks.
(store_parm_decls): Adjust to match.
(finish_function): Adjust to match.
Call poplevel with all three arguments zero.
c-decl.c (store_parm_decls_newstyle, [...]): New functions split out of store_parm_decls.
* c-decl.c (store_parm_decls_newstyle, store_parm_decls_oldstyle):
New functions split out of store_parm_decls.
Avoid unnecessary work. Use local variables consistently.
(store_parm_decls): Likewise.
(finish_function): No need to set functionbody flag on call to
poplevel.
(struct language_function): Remove scope field.
(c_push_function_context, c_pop_function_context): No need to
save and restore current_scope.
2003-07-27 Thomas Fitzsimmons <fitzsim@redhat.com.h>
Michael Koch <konqueror@gmx.de>
* gnu/java/awt/EmbeddedWindow.java
(EmbeddedWindow): Extends Frame instead of Window.
(window_id): New member variable to store the native window handle.
(create): Removed.
(EmbeddedWindow): New constructor.
(addNotify): New method.
(getHandler): Likewise.
(setWindowPeer): New native method.
* gnu/java/awt/EmbeddedWindowSupport.java
(EmbeddedWindowSupport): Fixed documentation.
(createEmbeddedWindow): Return EmbeddedWindowPeer instead of
WindowPeer, give it an EmbeddedWindow instance instead of the raw
window data.
* gnu/java/awt/natEmbeddedWindow.cc
(create): Removed.
(setWindowPeer): New method.
* gnu/java/awt/peer/EmbeddedWindowPeer.java,
gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c:
New files
* gnu/java/awt/peer/gtk/GtkToolkit.java
(GtkToolkit): Implements EmbeddedWindowSupport.
(createEmbeddedWindow): New method.
* java/awt/Window.java
(Window): Removed.
* Makefile.am
(java_source_files): Added EmbeddedWindowPeer.java.
(gtk_awt_peer_sources): Added GtkEmbeddedWindowPeer.java.
(gtk_c_source_files): Added gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c.
* Makefile.in: Regenerated.
Co-Authored-By: Michael Koch <konqueror@gmx.de>
From-SVN: r69859
Win32Process.java (ConcreteProcess): Surround a command line element with quotes if it contains an embedded space or tab.
2003-07-26 Ranjit Mathew <rmathew@hotmail.com>
* java/lang/Win32Process.java (ConcreteProcess): Surround
a command line element with quotes if it contains an
embedded space or tab.
* java/lang/natWin32Process.cc (startProcess): Do not
surround command line elements with quotes here.
configure.host: Use -fcheck-references and -fuse-divide-subroutine for MinGW until we fix...
2003-07-26 Ranjit Mathew <rmathew@hotmail.com>
* configure.host: Use -fcheck-references and
-fuse-divide-subroutine for MinGW until we fix
win32_exception_handler( ) in win32.cc w.r.t. Win32
Structured Exception Handling (SEH).
varasm.c (output_constant_def_contents): Use ASM_DECLARE_CONSTANT_NAME if defined.
* varasm.c (output_constant_def_contents): Use
ASM_DECLARE_CONSTANT_NAME if defined.
* doc/tm.texi (Label Output): Document ASM_DECLARE_CONSTANT_NAME.
* config/darwin.h (ASM_DECLARE_OBJECT_NAME): Ensure zero-sized
objects get at least one byte to prevent assembler problems.
(ASM_DECLARE_CONSTANT_NAME): New.
Index: testsuite/ChangeLog
* gcc.c-torture/compile/zero-strct-2.c: New test.
win32.cc (_Jv_platform_initProperties): Use generic names like "x86" for the "os.arch" property to be consistent with...
2003-07-26 Ranjit Mathew <rmathew@hotmail.com>
* win32.cc (_Jv_platform_initProperties): Use generic names
like "x86" for the "os.arch" property to be consistent with
what Sun's JDK produces. Use the wProcessorArchitecture
member of the Win32 SYSTEM_INFO structure, filled in a call
to GetSystemInfo( ), instead of dwProcessorType.
* Makefile.am: Use cross-compiling gcjh from the path for
a crossed-native build.
* Makefile.in: Rebuilt.
* configure.in: Include libltdl in non-newlib builds.
Moved determination of gcj used to build libraries to
its own section. Fixed cross-compilation issues for
non-newlib builds.
* configure: Rebuilt.
* cp-tree.h (enum tsubst_flags_t): Add tf_user.
* decl.c (make_typename_type): Pass it.
* pt.c (lookup_template_class): Use it.
(resolve_typename_type): Pass it.
* semantics.c (finish_template_type): Pass it.
Roger Sayle [Fri, 25 Jul 2003 14:32:55 +0000 (14:32 +0000)]
configure.host: Only use +ESdbgasm when using the HPUX native compiler on PA-Risc.
* configure.host: Only use +ESdbgasm when using the HPUX native
compiler on PA-Risc. It isn't recognized by GCC and is silently
ignored by HP's compilers on ia64.
* java/awt/Component.java
(getPreferredSize): Call preferredSize.
(preferredSize): Moved body of getPreferredSize here.
(getMinimumSize): Call minimumSize.
(minimumSize): Moved body of getMinimumSize here.
(prepareImage): Fall back on Toolkit.prepareImage if there is no peer
(checkImage(Image,ImageObserver)): Don't call getWidth/getHeight, but
pass -1
* java/awt/Container.java
(validate): Don't validate if there is no peer.
(update): Clear background before calling paint.
* java/awt/GridBagLayout.java
Completed the implementation and fixed several bugs.
* java/awt/MediaTracker.java
(MediaEntry.imageUpdate): Fixed typo. & instead of | was used to
combine flags.
* java/awt/Window.java
(Window): Don't call setVisible(false). Windows are invisible by
default and calling virtual methods from constructor causes
compatibility problems (e.g. subclasses may assume that the peer
already exists).
2003-07-25 Michael Koch <konqueror@gmx.de>
* java/awt/GridBagLayout.java:
Totally reworked and partly implemented.
* java/awt/GridBagLayoutInfo.java:
New file.
extend.texi (Function Attributes): GNU C++ does now allow unused parameter decls.
* doc/extend.texi (Function Attributes): GNU C++ does now allow
unused parameter decls.
(Attribute Syntax): GNU C++ does not allow label attributes to be
after the ':'.
Matt Austern [Fri, 25 Jul 2003 05:32:23 +0000 (05:32 +0000)]
char_traits.h (class char_traits): Put all the real work into the new class template __gnu_cxx::char_traits.
* /include/bits/char_traits.h (class char_traits): Put all the
real work into the new class template __gnu_cxx::char_traits.
Gave generic definitions for member functions. Types are taken
from the new class template __gnu_cxx::_Char_types.
* testsuite/21_strings/char_traits/requirements/short/1.cc: New
file. Test of std::char_traits<short>, which serves as a test of
the char_traits primary template.
Mark Mitchell [Thu, 24 Jul 2003 23:33:26 +0000 (23:33 +0000)]
cp-tree.h (convert_to_base_statically): Declare.
* cp-tree.h (convert_to_base_statically): Declare.
* call.c (build_special_member_call): Convert INSTANCE to the base
type.
* class.c (convert_to_base_statically): New method.
* init.c (construct_virtual_base): Use it.
* method.c (do_build_assign_ref): Fix typo in comment.
Roger Sayle [Thu, 24 Jul 2003 21:04:12 +0000 (21:04 +0000)]
builtins.def (BUILT_IN_PRINTF, [...]): Changed from front-end builtins to normal builtins, using DEF_LIB_BUILTIN.
* builtins.def (BUILT_IN_PRINTF, BUILT_IN_FPRINTF): Changed from
front-end builtins to normal builtins, using DEF_LIB_BUILTIN.
(BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_FPRINTF_UNLOCKED): Changed
from front-end to normal builtins, using DEF_EXT_LIB_BUILTIN.
(DEF_FRONT_END_LIB_BUILTIN): Delete.
(DEF_EXT_FRONT_END_LIB_BUILTIN): Delete.
(BUILT_IN_FWRITE_UNLOCKED): Wrap long line.
* builtins.c (build_string_literal): New function to construct
a char* pointer to a string literal.
(expand_builtin_fputs): Change 2nd argument from "int ignore" to
"rtx target" to be consistent with other expand_builtin_* functions.
Change 3rd argument from "int unlocked" to "bool unlocked".
(expand_builtin_printf): Rewrite of c_expand_builtin_printf from
c-common.c to avoid front-end dependencies. Optimize printf("")
as a no-op when the result isn't required. Handle embedded NULs
in format string.
(expand_builtin_fprintf): A rewrite of c_expand_builtin_fprintf
from c-common.c to avoid front-end dependencies. Likewise, optimize
fprintf(fp,"") as a no-op when the result isn't required, evaluating
fp for side-effects. Handle embedded NULs in format string.
(expand_builtin_sprintf): Fix typo.
(expand_builtin): Don't expand BUILT_IN_FPRINT{,_UNLOCKED} when not
optimizing. Adjust calls of expand_builtin_fputs to match the API
change. Expand BUILT_IN_PRINTF and BUILT_IN_PRINTF_UNLOCKED using
expand_builtin_printf. Likewise, expand BUILT_IN_FPRINTF_UNLOCKED
and BUILT_IN_FPRINTF using expand_builtin_fprintf.
* c-common.c (is_valid_printf_arglist): Delete.
(c_expand_builtin): Delete.
(c_expand_builtin_printf): Moved to builtins.c. Delete.
(c_expand_builtin_fprintf): Moved to builtins.c. Delete.
(c_expand_expr): No longer treat CALL_EXPRs specially.
(CALLED_AS_BUILT_IN): Delete.
Jason Merrill [Thu, 24 Jul 2003 20:48:13 +0000 (16:48 -0400)]
tree.h (boolean_type_node): Move from C/C++/Java frontends.
* tree.h (boolean_type_node): Move from C/C++/Java frontends.
(boolean_true_node, boolean_false_node): Likewise.
(enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}.
* tree.c (build_common_tree_nodes): Init boolean_type_node.
(build_common_tree_nodes_2): Init boolean_{true,false}_node.
* stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE.
* c-common.h (truthvalue_type_node): Renamed from boolean_type_node.
(truthvalue_true_node): Renamed from boolean_true_node.
(truthvalue_false_node): Renamed from boolean_false_node.
* c-decl.c: Just set truthvalue_* to integer_*.
* c-*.[ch]: s/boolean/truthvalue/. s/c_bool/boolean/.
* cp/decl.c: Just set truthvalue_* to boolean_*.
* java/java-tree.h: Move boolean_type_node et al to the back end.
Roger Sayle [Thu, 24 Jul 2003 20:44:01 +0000 (20:44 +0000)]
c-decl.c (match_builtin_function_types): New subroutine of duplicate_decls to test whether a redeclaration of a builtin...
* c-decl.c (match_builtin_function_types): New subroutine of
duplicate_decls to test whether a redeclaration of a builtin
function is suitably close, i.e. the return type and all of
the argument types have the same modes as the builtin expects.
(duplicate_decls): Fuzzy type matching for builtin functions
moved to match_builtin_function_types.
c-decl.c: Search-and-replace change 'binding level' to 'scope' in commentary.
* c-decl.c: Search-and-replace change 'binding level' to
'scope' in commentary.
(struct binding_level): Now struct c_scope.
(current_binding_level): Now current_scope.
(free_binding_level): Now scope_freelist.
(current_function_level): Now current_function_scope.
(global_binding_level): Now global_scope.
(make_binding_level): Now make_scope.
(pop_binding_level): Now pop_scope.