[cfe-commits] [PATCH][Review request] - Merge TypesCompatibleExprClass into BinaryTypeTraitExpr
Douglas Gregor
dgregor at apple.com
Wed Dec 8 08:58:36 PST 2010
On Dec 8, 2010, at 3:10 AM, Francois Pichet wrote:
> This patch remove the TypesCompatibleExprClass AST node and merge it
> into BinaryTypeTraitExpr.
> A lot of - sign there.
>
> The things to watch out are :
>
> return Owned(new (Context) BinaryTypeTraitExpr(KWLoc, BTT, LhsTSInfo,
> RhsTSInfo, Value, RParen,
> - Context.BoolTy));
> + (BTT == BTT_TypeCompatible) ?
> + Context.IntTy :
> Context.BoolTy));
>
> BTT_TypeCompatible must have an int type otherwise some lit tests fail.
It's fine for different type traits to have different return types, but please use a switch() that lists all of the cases. That when, when a new type trait gets added, we'll be forced to update the switch appropriately.
FWIW, BTT_TypeCompatible has 'int' type because it's a GNU C extension.
>
> Also this:
> Value *VisitBinaryTypeTraitExpr(const BinaryTypeTraitExpr *E) {
> - return llvm::ConstantInt::get(Builder.getInt1Ty(), E->getValue());
> + return llvm::ConstantInt::get(ConvertType(E->getType()), E->getValue());
> }
Yes, that makes sense.
Everything else looks good, thanks!
- Doug
More information about the cfe-commits
mailing list