OSDN Git Service

* decl.c (start_method): Handle attrlist.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Jan 2002 15:57:24 +0000 (15:57 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Jan 2002 15:57:24 +0000 (15:57 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48730 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/testsuite/g++.dg/ext/member-attr.C [new file with mode: 0644]

index 10e84b4..3764b85 100644 (file)
@@ -1,3 +1,7 @@
+2002-01-10  Ira Ruben  <ira@apple.com>
+
+       * decl.c (start_method): Handle attrlist.
+
 2002-01-10  Jakub Jelinek  <jakub@redhat.com>
 
        * decl2.c (max_tinst_depth): Increase default limit to 500.
 
 2002-01-04  Jason Merrill  <jason@redhat.com>
 
+       PR c++/4122
        * class.c (update_vtable_entry_for_fn): Set delta to zero for a
        lost primary.
 
 
 2001-12-18  Jason Merrill  <jason@redhat.com>
 
+       PR c++/3242
        * class.c (add_method): Do compare 'this' quals when trying to match a
        used function.  Don't defer to another used function.
 
@@ -770,7 +776,7 @@ Tue Nov 27 09:03:47 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
 2001-11-25  Aldy Hernandez  <aldyh@redhat.com>
 
-       * cp/search.c (lookup_base_r): Declare bk in variable declaration
+       * search.c (lookup_base_r): Declare bk in variable declaration
        space.
 
 2001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
@@ -937,7 +943,7 @@ Tue Nov 27 09:03:47 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
 2001-11-12  H.J. Lu <hjl@gnu.org>
 
-       * cp/cvt.c (ocp_convert): Don't warn the address of a weak
+       * cvt.c (ocp_convert): Don't warn the address of a weak
        function is always `true'.
 
 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
index 9402a6c..944fe93 100644 (file)
@@ -14173,6 +14173,9 @@ start_method (declspecs, declarator, attrlist)
   if (fndecl == NULL_TREE)
     return NULL_TREE;
 
+  if (attrlist)
+    cplus_decl_attributes (&fndecl, attrlist, 0);
+
   /* Pass friends other than inline friend functions back.  */
   if (fndecl == void_type_node)
     return fndecl;
diff --git a/gcc/testsuite/g++.dg/ext/member-attr.C b/gcc/testsuite/g++.dg/ext/member-attr.C
new file mode 100644 (file)
index 0000000..3ba3ee8
--- /dev/null
@@ -0,0 +1,14 @@
+/* Test to see if__attribute__'s are handled by inline member functions */
+/* { dg-do compile } */
+/* { dg-options "-fmessage-length=0" } */
+
+/* Previously __attribute__'s were handled by the grammar but "dropped
+   on the floor", these effectively ignoring them.  This tests the fix
+   to see that they are now handled.  In this test it should report
+   that we have an illegal attribute.  */
+
+class T {
+  public:
+    __attribute__ ((garbage1)) void member1(int) {} /* { dg-error "`garbage1' attribute directive ignored" "" } */
+    void __attribute__ ((garbage2)) member2(int) {} /* { dg-error "`garbage2' attribute directive ignored" "" } */
+};