This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Wednesday, Aug 27, 2003, at 18:39 US/Pacific, Alexander Malmberg wrote:
It won't find prototypes for a type if the prototype comes from a protocol implemented by the class, eg.:
@protocol Zot -(void) zot; @end
@interface Foo : Object <Zot> @end
int main() { Foo *f=nil; [f zot]; /* warns that f might not respond to -zot here */ return 0; }
I've attached a patch.
Also, it fails to detect multiple applicable prototypes in many cases, and the behavior in case d. does not seem to have changed (so it's compatible with the old behavior, but it matches neither my nor your proposal for new behavior). Anyway, I want to investigate a bit more and finish a complete set of tests before reporting on this, so that'll have to wait until tomorrow.
Yes, the implementation does depart from both you and I were describing.
Specifically, if your receiver is of type 'id<Foo, Bar, Baz>', then the
front-end will examine the three protocols in turn, and return the first
matching method, rather than search all 3 protocols unconditionally to
reveal any conflicts. And yes, this is what the compiler did up until
now, and I'm a bit nervous about changing it. :-( What's your take on
this?
If you don't have all the dependencies, the build guide is supposed to be good:
http://documents.made-it.com/GNUstep/buildguide.html
Yeah, that's the write-up that frightened me so. :-(
If you want to use our testsuite, you'll also need guile (1.4.1 is a good choice)
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |