2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
* g++.dg/ext/utf-array.C: Fix broken merge/checkin.
* g++.dg/ext/utf-array-short-wchar.C: Idem
* gcc.dg/utf-array.c: Idem
* gcc.dg/utf-array-short-wchar.c: Idem
c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__ and __CHAR32_TYPE__.
gcc/ChangeLog:
2008-07-16 Kris Van Hees <kris.van.hees@oracle.com>
* c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
and __CHAR32_TYPE__.
* c-typeck.c (digest_init): Support char16_t and char32_t.
(set_nonincremental_init_from_string): Idem.
gcc/cp/ChangeLog:
2008-07-16 Kris Van Hees <kris.van.hees@oracle.com>
* rtti.c (emit_support_tinfos): Add char16_type_node and
char32_type_node.
* typeck2.c (digest_init): Support char16_t and char32_t.
gcc/testsuite/ChangeLog:
2008-07-16 Kris Van Hees <kris.van.hees@oracle.com>
Tests for char16_t and char32_t support.
* g++.dg/ext/utf-array.C: New
* g++.dg/ext/utf-array-short-wchar.C: New
* g++.dg/ext/utf-rtti.C: New
* g++.dg/ext/utf-type.c: New
* gcc.dg/utf-array.c: New
* gcc.dg/utf-array-short-wchar.c: New
* gcc.dg/utf-inc-init.c: New
* gcc.dg/utf-type.c: New
libstdc++-v3/ChangeLog:
2008-07-16 Kris Van Hees <kris.van.hees@oracle.com>
Holger Hopp <holger.hopp@sap.com>
* config/abi/pre/gnu.ver: Support char16_t and char32_t.
* testsuite/util/testsuite_abi.cc (check_version): Add
CXXABI_1.3.3 to known_versions.
utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG argument...
ada/
* utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
argument, to apply to references in addition to definitions. Prevent
setting TREE_STATIC on externals.
(gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
testsuite/
* gnat.dg/tree_static_def.ad[bs]: Support for ...
* gnat.dg/tree_static_use.adb: New test.
* gnat.dg/decl_ctx_def.ads: Support for ...
* gnat.dg/decl_ctx_use.ad[bs]: New test.
Martin Jambor [Thu, 17 Jul 2008 13:23:32 +0000 (15:23 +0200)]
ipa-cp.c (ipcp_print_all_lattices): New variable info...
2008-07-17 Martin Jambor <mjambor@suse.cz>
* ipa-cp.c (ipcp_print_all_lattices): New variable info, check
that nodes are relevant by examining the node->analyzed flag.
(ipcp_init_stage): Check which nodes are relevant, assert that the
relevant ones are also required.
(ipcp_propagate_stage): Check on the side arrays are properly
allocated.
(ipcp_print_all_jump_functions): Make sure not to touch any node
that is not analyzed or an edge that does not have a corresponding
entry in the on-the-side vectors.
(ipcp_function_scale_print): Likewise.
(ipcp_update_callgraph): Check that the node is relevant.
(ipcp_insert_stage): Check that the node is relevant. Check there is
an info for every node and edge.
* ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
(ipa_print_all_tree_maps): Likewise and a new variable info.
(ipa_print_all_params_modified): Likewise.
* ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
re PR c++/13699 (Extern "C" routine in different namespaces accepted with different exception signature)
2008-07-16 Dodji Seketeli <dseketel@redhat.com>
PR c++/13699
* gcc/cp/name-lookup.c (lookup_extern_c_fun_binding_in_all_ns):
New function.
(pushdecl_maybe_friend): Check if a redeclaration of extern C function
complies with exception specification constraints.
Jan Hubicka [Wed, 16 Jul 2008 21:38:15 +0000 (23:38 +0200)]
cgraph.h (varpool_empty_needed_queue): Declare.
* cgraph.h (varpool_empty_needed_queue): Declare.
* cgraphunit.c (output_in_order): Mark all variables as needed;
empty the queue.
* varpool.c (varpool_assemble_node): Update debug queue.
(varpool_assemble_pending_decls): Don't do it here.
(varpool_empty_needed_queue): New function.
Daniel Berlin [Tue, 15 Jul 2008 23:50:52 +0000 (23:50 +0000)]
tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
2008-07-15 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
* tree-ssa-pre.c (pre_expr_eq): Ditto
(get_constant_for_value_id): Take a type as an argument.
(fully_constant_expression): Pass in type.
(find_or_generate_expression): Short circuit constant case.
(create_expression_by_pieces): Remove special casing of
pointer_plus.
(do_regular_insertion): Short circuit constant case.
(do_partial_partial_insertion): Ditto.
Richard Guenther [Tue, 15 Jul 2008 15:07:46 +0000 (15:07 +0000)]
re PR middle-end/36369 (may_alias broken with previous uses of non attributed type in some cases)
2008-07-15 Richard Guenther <rguenther@suse.de>
PR middle-end/36369
* c-common.c (strict_aliasing_warning): Do not warn for
TYPE_REF_CAN_ALIAS_ALL pointers.
(c_common_get_alias_set): may_alias types are not special.
* tree.c (build_pointer_type_for_mode): Look up the may_alias
attribute and set can_ref_all accordingly.
(build_reference_type_for_mode): Likewise.
* doc/extend.texi (may_alias): Clarify.
* gcc.dg/Wstrict-aliasing-bogus-ref-all.c: New testcase.
Johannes Singler [Tue, 15 Jul 2008 10:06:58 +0000 (10:06 +0000)]
find_selectors.h: Correct name for include guard #ifndef.
2008-07-15 Johannes Singler <singler@ira.uka.de>
* include/parallel/find_selectors.h:
Correct name for include guard #ifndef.
* include/parallel/balanced_quicksort.h: Likewise.
* include/parallel/unique_copy.h: Likewise.
* include/parallel/multiway_mergesort.h: Likewise.
* include/parallel/checkers.h: Likewise.
* include/parallel/[various files]:
Add/correct comment for #endif of include guard (at end of file)
config.gcc (arm*-*-eabi*): Include arm/eabi.h and use additional option file arm/eabi.opt.
2008-07-14 Doug Kwan <dougkwan@google.com>
* config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
additional option file arm/eabi.opt.
* config/arm/eabi.h (File): New configuration file for EABI targets.
* config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
SUBSUBTARGET_EXTRA_SPECS.
(SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
* config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
from STARTFILE_SPEC so that it can be referenced in an override.
(STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
(UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
can be referenced in an override.
(ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
* config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
so that it can be referenced in an override.
(LINK_SPEC): Use BPABI_LINK_SPEC.
* config/arm/eabi.opt (File): New.
gcc/ada/
PR documentation/15479
* gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
Replace backets around optional parameters with @ovar
where possible, use @r{[}, @r{]} otherwise.
Replace some @r, @i, and @emph with @var where appropriate.
Makefile.in (write_entries_to_file, [...]): New macros.
gcc/
* Makefile.in (write_entries_to_file, write_entries_to_file_split):
New macros.
(s-gtyp-input): Use them to write tmp-gi.list.
(echo_to_gi.list): Remove.
Richard Guenther [Mon, 14 Jul 2008 15:38:49 +0000 (15:38 +0000)]
tree-ssa-sccvn.c (pre_info): Remove.
2008-07-14 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (pre_info): Remove.
(switch_to_PRE_table): Likewise.
(free_scc_vn): Do not clear SSA_NAME_VALUE.
Do not free pre_info.
(set_hashtable_value_ids): Do not create value-ids for the
optimistic tables.
(run_scc_vn): Remove double test. Remove bogus special-case
in value-number printing.
* tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
* tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
SSA_NAME_VALUE.
* tree-flow-inline.h (get_value_handle): Remove.
* tree-flow.h (get_value_handle): Remove.
Andreas Krebbel [Mon, 14 Jul 2008 06:56:46 +0000 (06:56 +0000)]
re PR target/36745 (ICE in gen_reg_rtx, at emit-rtl.c:868)
2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
PR target/36745
* config/s390/s390.c: (s390_secondary_reload): Add a secondary
reload for symbol refs moved to r0 with -fPIC.
(legitimize_pic_address): Use the target register as temporary
reg if possible.
(emit_symbolic_move): Adjust comment.
* config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
New expanders.
2008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
PR target/36745
* g++.dg/torture/pr36745.C: New testcase.
Ben Elliston [Mon, 14 Jul 2008 05:09:48 +0000 (05:09 +0000)]
cpplib.h (NODE_CONDITIONAL): New.
libcpp/
* include/cpplib.h (NODE_CONDITIONAL): New.
(struct cpp_callbacks): New macro_to_expand field.
(struct cpp_hashnode): Adjust size of flags and type fields.
(cpp_peek_token): Prototype.
* lex.c (cpp_peek_token): New function.
(_cpp_temp_token): Protect pre-existing lookaheads.
* macro.c (cpp_get_token): Expand any conditional macros.
(_cpp_backup_tokens_direct): New.
(_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
(warn_of_redefinition): Silently allow redefined conditional
macros.
(_cpp_create_definition): Remove the conditional flag when a user
defines one of the conditional macros.
* internal.h (_cpp_backup_tokens_direct): New prototype.
gcc/
* c-common.h (C_CPP_HASHNODE): New macro.
* coretypes.h (struct cpp_token): Forward declare.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
the context-sensitive keyword method.
* config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
__pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
expand_bool_pixel): New.
(altivec_categorize_keyword): New function.
(init_vector_keywords): New function.
(rs6000_macro_to_expand): Likewise.
(rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
compiling an ISO C dialect.
gcc/testsuite/
* gcc.target/powerpc/altivec-macros.c: New test.
* gcc.target/powerpc/altviec-26.c: Likewise.
* gcc.dg/vmx/1b-06.c: Remove bool variable.
* gcc.dg/vmx/1b-07.c: Likewise.
* gcc.dg/vmx/1b-06-ansi.c: New test for the pre-define method.
* gcc.dg/vmx/1b-07-ansi.c: Likewise.
re PR target/35492 (ICE building kernel sk_stream_wait_connect output_operand: invalid operand for 'p' modifier)
PR target/35492.
* config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
CONST_OK_FOR_LETTER_P. All port-local users changed.
(CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
implement Kp matching power-of-two.
(CONSTRAINT_LEN): Define to match.
* config/cris/cris.md: Replace all use of constraint K with Kc.
("*btst*): Use Kp for operand 0 of last alternative.
gcc/
* doc/md.texi: Document the MIPS "v" constraint.
* config/mips/mips.h (reg_class): Revert last change.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
* config/mips/mips.c (mips_regno_to_class): Likewise.
* config/mips/constraints.md (v): Likewise, but add documentation.
Add a comment to say that this constraint should not be used in
gcc code.
Ian Lance Taylor [Fri, 11 Jul 2008 18:16:26 +0000 (18:16 +0000)]
c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
./: * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
(struct c_common_resword): Define.
(D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
(D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
(c_common_reswords, num_c_common_reswords): Declare.
* c-common.c (c_common_reswords): New global const array.
(num_c_common_reswords): New const int.
* c-parser.c (struct resword, reswords): Don't define.
(D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
(c_parse_init): Clarify mask code. Use c_common_reswords rather
than reswords. If warning about C++ keywords, give them a special
RID code.
(c_lex_one_token): Warn about C++ keywords. Call
objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
(c_parser_external_declaration): Look for RID_xxx rather than
RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
(c_parser_statement_after_labels): Likewise.
(c_parser_objc_class_instance_variables): Likewise.
(c_parser_objc_class_declaration): Likewise.
(c_parser_objc_try_catch_statement): Likewise.
* c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
(declspecs_add_type): Likewise.
cp/:
* lex.c (struct resword, reswords): Don't define.
(D_EXT, D_ASM, D_OBJC, D_CXX0X): Don't define.
(init_reswords): Clarify mask code. Use c_common_reswords rather
than reswords.
objc/:
* objc-act.c (objc_is_reserved_word): Always check for RID_CLASS,
etc., not just when OBJCPLUS is defined.
testsuite/:
* gcc.dg/Wcxx-compat-2.c: New test.