On Nov 30, 2007, at 3:17 PM, Nuno Lopes wrote: > Hi, > > There was some kind of regression in function pointers handling. > Attached is a file that triggers an assert failure (when run with > e.g. -ast-dump): > > clang: /cvs/llvm/include/llvm/Support/Casting.h:199: typename > llvm::cast_retty<To, From>::ret_type llvm::cast(const Y&) [with X = > clang::FunctionTypeProto, Y = clang::Type*]: Assertion `isa<X>(Val) > && "cast<Ty>() argument of incompatible type!"' failed. > (...) > /lib/libc.so.6(__assert_fail+0xf5)[0xb7d287a5] > ../../Debug/bin/clang(llvm::cast_retty<clang::FunctionTypeProto, > clang::Type*>::ret_type llvm::cast<clang::FunctionTypeProto, > clang::Type*>(clang::Type* const&)+0x4b)[0x831125d] > ../../Debug/bin/clang(clang::FunctionDecl::getNumParams() const+0x3a) > [0x831f92a] > ../../Debug/bin/clang((anonymous > namespace)::DeclPrinter::PrintFunctionDeclStart(clang::FunctionDecl*) > +0x169)[0x826cd33] > ../../Debug/bin/clang((anonymous > namespace)::ASTDumper::HandleTopLevelDecl(clang::Decl*)+0x30) > [0x826fc80] > ../../Debug/bin/clang(clang::ParseAST(clang::Preprocessor&, unsigned > int, clang::ASTConsumer*, bool)+0x107)[0x82dc1c7] > > > Sorry for the big file, but I didn't have the time to strip it.
Here is a two line test case that exposes the bug (which appears specific to -ast-print/-ast-dump)... snaroff% cat nuno.c typedef void func_typedef(); func_typedef xxx; I'll investigate later. Thanks for the bug, snaroff _______________________________________________ cfe-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
