Did you remember to update the LLVM tree too? Clang trunk requires LLVM trunk. The exception stuff was committed with r71198, and I've just sent a patch to the cfe-dev list which fixes @catch(RealClassName *foo) as well.

The only thing missing now is @sychronized. For me, gcc emits code which fails to link. Is anyone using @synchronized with GNUstep? If so, where do you get your implementations of the two functions which acquire and release a mutex identified by a given object?

David

On 8 May 2009, at 13:58, Pete French wrote:

I've just committed initial support for 'zero-cost' exception handling
in clang.  Currently this only works for @finally and for @catch'ing
id types (I plan on fixing that limitation soon).  I'd appreciate it
if anyone who has code which uses exceptions could test this.  The
support should currently be enough for anything using NS_DURING and
friends to compile with zero-cost exceptions, rather than setjmp/
longjmp.

Is this in the llvm/clang svn tree ? I've been trying to do an update
and get this compiled today (revision 71215), but it fails for me:

llvm[4]: Compiling ASTContext.cpp for Debug build
In file included from /usr/home/petefrench/llvm-clang/llvm/tools/ clang/lib/AST/../../include/clang/AST/DeclBase.h:18, from /usr/home/petefrench/llvm-clang/llvm/tools/ clang/lib/AST/../../include/clang/AST/Decl.h:17, from /usr/home/petefrench/llvm-clang/llvm/tools/ clang/lib/AST/../../include/clang/AST/ASTContext.h:21,
                from ASTContext.cpp:14:
/usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h: In instantiation of 'llvm::PointerIntPair<clang::Type*, 3u, unsigned int, llvm::PointerLikeTypeTraits<clang::Type*> >': /usr/home/petefrench/llvm-clang/llvm/tools/clang/lib/AST/../../ include/clang/AST/Type.h:76: instantiated from here /usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h:43: warning: left shift count >= width of type /usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h:43: error: overflow in constant expression /usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h: In member function 'IntType llvm::PointerIntPair<PointerTy, IntBits, IntType, PtrTraits>::getInt() const [with PointerTy = clang::Type*, unsigned int IntBits = 3u, IntType = unsigned int, PtrTraits = llvm::PointerLikeTypeTraits<clang::Type*>]': /usr/home/petefrench/llvm-clang/llvm/tools/clang/lib/AST/../../ include/clang/AST/Type.h:96: instantiated from here /usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h:72: warning: right shift count >= width of type /usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h: In member function 'void llvm::PointerIntPair<PointerTy, IntBits, IntType, PtrTraits>::setInt(IntType) [with PointerTy = clang::Type*, unsigned int IntBits = 3u, IntType = unsigned int, PtrTraits = llvm::PointerLikeTypeTraits<clang::Type*>]': /usr/home/petefrench/llvm-clang/llvm/tools/clang/lib/AST/../../ include/clang/AST/Type.h:97: instantiated from here /usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h:88: warning: overflow in implicit constant conversion /usr/home/petefrench/llvm-clang/llvm/include/llvm/ADT/ PointerIntPair.h:89: warning: left shift count >= width of type gmake[4]: *** [/usr/home/petefrench/llvm-clang/llvm/tools/clang/lib/ AST/Debug/ASTContext.o] Error 1

-pete.


_______________________________________________
Gnustep-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnustep-dev



_______________________________________________
Gnustep-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to