OSDN Git Service

* cp-tree.h (enum overload_flags): Remove OP_FLAG.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 8 Sep 2009 18:12:54 +0000 (18:12 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 8 Sep 2009 18:12:54 +0000 (18:12 +0000)
* method.c (lazily_declare_fn): Check for dtorness in ABI warning.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151528 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl2.c
gcc/cp/method.c

index 20ce758..ebf4518 100644 (file)
@@ -1,12 +1,13 @@
 2009-09-03  Jason Merrill  <jason@redhat.com>
 
+       * cp-tree.h (enum overload_flags): Remove OP_FLAG.
+       * method.c (lazily_declare_fn): Check for dtorness in ABI warning.
+
        * name-lookup.c (is_class_level): Remove.
        (push_binding_level, leave_scope, resume_scope): Adjust.
        (pushlevel_class): Adjust.
        (poplevel_class): Make sure we're on class_binding_level.
 
-2009-09-02  Jason Merrill  <jason@redhat.com>
-
        * decl.c (grokmethod): Rename from start_method.
        (finish_method): Remove.
        * cp-tree.h: Adjust.
index 4f03868..ea3b4bf 100644 (file)
@@ -3804,7 +3804,7 @@ extern int at_eof;
    TREE_PURPOSE slot.  */
 extern GTY(()) tree static_aggregates;
 
-enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG };
+enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, TYPENAME_FLAG };
 
 /* These are uses as bits in flags passed to various functions to
    control their behavior.  Despite the LOOKUP_ prefix, many of these
index cc4317a..e57c825 100644 (file)
@@ -254,7 +254,7 @@ maybe_retrofit_in_chrg (tree fn)
    FUNCTION is a FUNCTION_DECL.  It was created by `grokdeclarator'.
 
    FLAGS contains bits saying what's special about today's
-   arguments.  1 == DESTRUCTOR.  2 == OPERATOR.
+   arguments.  DTOR_FLAG == DESTRUCTOR.
 
    If FUNCTION is a destructor, then we must add the `auto-delete' field
    as a second parameter.  There is some hair associated with the fact
index 4563e8f..6acf1bb 100644 (file)
@@ -1161,7 +1161,7 @@ lazily_declare_fn (special_function_kind sfk, tree type)
       /* G++ 3.2 put the implicit destructor at the *beginning* of the
         TYPE_METHODS list, which cause the destructor to be emitted
         in an incorrect location in the vtable.  */
-      if (warn_abi && DECL_VIRTUAL_P (fn))
+      if (warn_abi && sfk == sfk_destructor && DECL_VIRTUAL_P (fn))
        warning (OPT_Wabi, "vtable layout for class %qT may not be ABI-compliant"
                 "and may change in a future version of GCC due to "
                 "implicit virtual destructor",