The following macro #define GS_INITIALIZED_LOCK(OBJ,CLS) \ (OBJ ? (CLS *) OBJ : (CLS *) [CLS newLockAt: (CLS **)&OBJ])
generates these compiler warnings. Unicode.m:253: warning: pointer type mismatch in conditional expression Unicode.m:253: warning: invalid receiver type 'void *' when called as [GS_INITIALIZED_LOCK(local_lock, GSLazyLock) lock]; local_lock here is declared as a static *GSLazyLock; As far as we can tell this code should not generate the warnings it does, which seems to suggest a fault in he objective-c frontend/backend code. -- Summary: false compiler warnings generated in Objective-C code Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: objc AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: caelian at gmail dot com GCC host triplet: amd64-unknown-freebsd7.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27377