public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug objc/32995]  New: False warning when implementing an instance method called `dealloc'
@ 2007-08-05 13:54 vgeddes at gnome dot org
  2007-08-05 13:56 ` [Bug objc/32995] " vgeddes at gnome dot org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: vgeddes at gnome dot org @ 2007-08-05 13:54 UTC (permalink / raw)
  To: gcc-bugs

uname -a:
Linux ubuntu 2.6.20-16-generic #2 SMP Thu Jun 7 19:00:28 UTC 2007 x86_64
GNU/Linux

gcc -v:
Target: x86_64-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release
x86_64-linux-gnu
Thread model: posix
gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)

command line and warning:
 gcc -DHAVE_CONFIG_H -I. -I.. -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED
-DGDK_PIXBUF_DISABLE_DEPRECATED -DGCONF_DISABLE_DEPRECATED
-DGNOME_VFS_DISABLE_DEPRECATED -DLIBGLADE_DISABLE_DEPRECATED
-DPANGO_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED -DPNG_NO_MMX_CODE
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12
-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare
-fconstant-string-class=IString -fobjc-exceptions -g -O2 -MT
libobjective_gnome_1_0_la-IObject.lo -MD -MP -MF
.deps/libobjective_gnome_1_0_la-IObject.Tpo -c IObject.m  -fPIC -DPIC -o
.libs/libobjective_gnome_1_0_la-IObject.o
IObject.m:65: warning: method possibly missing a [super dealloc] call


I have implemented an object `IObject' which subclasses the `Object' class
included the default Objective-C GNU runtime.

For stylistic compatibility with the Cocoa and GNUstep frameworks, I have
implemented a method called `dealloc' on `IObject'. `Object' does not define
this method.

When compiling this `IObject', I get this warning:
IObject.m:18: warning: method possibly missing a [super dealloc] call

Now, there is no `dealloc' method on `Object', so the warning is false. I
understand that the warning makes sense when using Cocoa or GNUstep, because
their root objects all have `dealloc' defined. But this is not the case for the
default GNU runtime.

Maybe we should define `dealloc' on `Object'?


-- 
           Summary: False warning when implementing an instance method
                    called `dealloc'
           Product: gcc
           Version: 4.1.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: objc
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: vgeddes at gnome dot org
GCC target triplet: x86_64-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32995


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug objc/32995] False warning when implementing an instance method called `dealloc'
  2007-08-05 13:54 [Bug objc/32995] New: False warning when implementing an instance method called `dealloc' vgeddes at gnome dot org
@ 2007-08-05 13:56 ` vgeddes at gnome dot org
  2007-08-06 21:40 ` pinskia at gcc dot gnu dot org
  2010-09-14 22:52 ` nicola at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: vgeddes at gnome dot org @ 2007-08-05 13:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from vgeddes at gnome dot org  2007-08-05 13:56 -------
Created an attachment (id=14025)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14025&action=view)
IObject.mi

Preprocessed file for IObject.m


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32995


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug objc/32995] False warning when implementing an instance method called `dealloc'
  2007-08-05 13:54 [Bug objc/32995] New: False warning when implementing an instance method called `dealloc' vgeddes at gnome dot org
  2007-08-05 13:56 ` [Bug objc/32995] " vgeddes at gnome dot org
@ 2007-08-06 21:40 ` pinskia at gcc dot gnu dot org
  2010-09-14 22:52 ` nicola at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-08-06 21:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2007-08-06 21:40 -------
well to some extend dealloc is special method which is why the warning is
there.  Also dealloc does not belong to the the original Object class (which is
based on the old NX Object base class).  This is true of the NeXT runtime
Object too.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|x86_64-linux-gnu            |
            Summary|False warning when          |False warning when
                   |implementing an instance    |implementing an instance
                   |method called `dealloc'     |method called `dealloc'


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32995


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug objc/32995] False warning when implementing an instance method called `dealloc'
  2007-08-05 13:54 [Bug objc/32995] New: False warning when implementing an instance method called `dealloc' vgeddes at gnome dot org
  2007-08-05 13:56 ` [Bug objc/32995] " vgeddes at gnome dot org
  2007-08-06 21:40 ` pinskia at gcc dot gnu dot org
@ 2010-09-14 22:52 ` nicola at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: nicola at gcc dot gnu dot org @ 2010-09-14 22:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from nicola at gcc dot gnu dot org  2010-09-14 22:52 -------
If you want to use dealloc for "compatibility" with Apple Cocoa / GNUstep Base,
then you also want the warnings that dealloc needs to include a call to [super
dealloc], so I wouldn't change the compiler ;-)

You could change your code though - if you're triyng to be compatible with
Cocoa / GNUstep, then you may as well define an NSObject root class and have a
dealloc method in it ;-)

If you still want to use Object, you can add a -dealloc method to Object by
using a category:

@interface Object (dealloc)
- (void) dealloc;
@end

(the add the implementation).  Then you can have the missing [super dealloc] in
your subclass, and the compiler won't generate any warnings.

Thanks


-- 

nicola at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32995


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-09-14 22:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-05 13:54 [Bug objc/32995] New: False warning when implementing an instance method called `dealloc' vgeddes at gnome dot org
2007-08-05 13:56 ` [Bug objc/32995] " vgeddes at gnome dot org
2007-08-06 21:40 ` pinskia at gcc dot gnu dot org
2010-09-14 22:52 ` nicola at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).