OSDN Git Service

Change attribute((option(...))) to attribute((target(...))); Do not allocate tree...
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 4ffb96e..30c6aa6 100644 (file)
@@ -1,3 +1,157 @@
+2008-08-29  Michael Meissner  <gnu@the-meissners.org>
+
+       * decl.c (builtin_function_1): Take a bool argument to decide
+       whether to use pushdecl or pushdecl_top_level.
+       (duplicate_decls): Copy function specific target and optimization
+       options on duplicate declarations.
+       (cxx_builtin_function): Update builtin_function_1 call.
+       (cxx_builtin_function_ext_scope): New function, guarantee that the
+       declaration is done at global scope.
+
+       * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
+       macro, define builtin function hook for delayed machine specific
+       builtins.
+
+       * cp-tree.h (cxx_builtin_function_ext_scope): Add declaration.
+
+2008-08-30  Jason Merrill  <jason@redhat.com>
+
+       PR c++/37288
+       * pt.c (dependent_type_p): Don't abort on auto outside of a template.
+
+2008-08-29  Jason Merrill  <jason@redhat.com>
+
+       Implement C++0x 'auto' semantics.
+       * decl.c (start_decl_1): Don't complain about auto being incomplete.
+       (cp_finish_decl): Deduce auto.
+       * init.c (build_new): Handle 'new auto'.
+       * typeck2.c (cxx_incomplete_type_diagnostic): Give a different
+       message for auto than for normal template type parms.
+       * pt.c (type_dependent_expression_p): Handle { }.
+       (make_auto): New function.
+       (listify_autos): New function.
+       (do_auto_deduction): New function.
+       (is_auto): New function.
+       (type_uses_auto): New function.
+       * cp-tree.h: Declare them.
+       * parser.c (cp_parser_decl_specifier_seq): In C++0x mode, don't
+       treat auto as a declspec.
+       (cp_parser_simple_type_specifier): It's a type-specifier.
+
+2008-08-29  Mark Mitchell  <mark@codesourcery.com>
+
+       * mangle.c (write_type): Add target-specific manglings for
+       non-fundamental types to the substitution table.
+       gcc/testsuite/
+
+2008-08-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/29635
+       PR fortran/23057
+       * name-lookup.c (do_using_directive, cp_emit_debug_info_for_using):
+       Adjust debug_hooks->imported_module_or_decl callers.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.
+
+2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/37260
+       * decl.c (reshape_init_r): Check init for error_mark_node.
+
+2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c++/17880
+       * semantics.c (maybe_convert_cond): Call verify_sequence_points.
+       (finish_return_stmt): Likewise.
+       (finish_switch_condition): Likewise.
+
+2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * cp-tree.h: Fix #error directive.
+
+2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
+
+       * typeck.c (type_after_usual_arithmetic_conversions): Don't do the
+       usual arithmetic conversions on scoped enumeration types.
+       (common_type): Ditto.
+       (default_conversion): Don't perform integral promotions on scoped
+       enumeration types. 
+       (build_array_ref): Scoped enumeration types can't be used as
+       subscripts.
+       * decl.c (start_enum): If building a C++0x scoped enumeration,
+       enter its scope. If provided with an underlying type, check that
+       underlying type and set up the enumeration type accordingly.
+       (finish_enum): Only compute an underlying type if the underlying
+       type isn't already fixed, and only convert the enumerator values
+       now if we've just computed the underlying type. Finish the scope
+       of C++0x scoped enumerations.
+       (build_enumerator): For enumerations with a fixed underlying type,
+       check the enumerator values when the enumerator is defined.
+       (lookup_enumerator): New.
+       * call.c (standard_conversion): Don't allow assignment from
+       integers to scoped enumeration types, even with -fpermissive.
+       Don't convert from scoped enumerations to bool or any arithmetic
+       types.
+       (build_conditional_expr): Don't per the usual arithmetic
+       conversions for scoped enumeration types.
+       (convert_like_real): Check complain to see if we should
+       produce warnings.
+       * error.c (class_key_or_enum_as_string): Print scoped enums.
+       * cp-tree.h (MAYBE_CLASS_TYPE_P): Check CLASS_TYPE_P, not
+       TYPE_LANG_FLAG_5.
+       (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P): New.
+       (SCOPED_ENUM_P): New.
+       (UNSCOPED_ENUM_P): New.
+       (SET_SCOPED_ENUM_P): New.
+       (ENUM_UNDERLYING_TYPE): New.
+       * pt.c (lookup_template_class): Update the instantiation of enum
+       types to deal with C++0x scoped enumerations and underlying
+       types.
+       * name-lookup.c (begin_scope): Deal with scoped enumeration
+       scopes.
+       (lookup_qualified_name): Deal with lookup into enumeration types.
+       * name-lookup.h (enum scope_kind): Add sk_scoped_enum.
+       * parser.c (cp_parser_class_or_namespace_name): Rename to...
+       (cp_parser_qualifying_entity): ... this. Also, in C++0x mode,
+       parse a type-name that can be an enumeration type.
+       (cp_parser_nested_name_specifier_opt): Update with C++0x grammar.
+       (cp_parser_elaborated_type_specifier): Parse the
+       optional `struct' or `class' following enum (in C++0x).
+       (cp_parser_enum_specifier): Parse C++0x scoped enumerations and
+       enum-base clauses.
+
+2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * typeck.c: Update all calls to pedwarn.
+       * decl.c: Likewise.
+       * call.c: Likewise.
+       * error.c: Likewise.
+       * pt.c: Likewise.
+       * name-lookup.c: Likewise.
+       * parser.c: Likewise.
+
+2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c++/35158
+       * parser.c (cp_parser_omp_for_loop): Handle parenthesized
+       initializers.
+
+2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * parser.c: Update all calls to inform.
+       * typeck.c: Likewise.
+       * init.c: Likewise.
+       * class.c: Likewise.
+       * call.c: Likewise.
+       * method.c: Likewise.
+       * friend.c: Likewise.
+       * typeck2.c: Likewise.
+       * pt.c: Likewise.
+       * name-lookup.c: Likewise.
+       * lex.c: Likewise.
+
 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
 
        PR debug/37156