Index: polly/include/polly/CodeGen/IslNodeBuilder.h =================================================================== --- polly/include/polly/CodeGen/IslNodeBuilder.h +++ polly/include/polly/CodeGen/IslNodeBuilder.h @@ -380,7 +380,7 @@ std::vector &VLTS, std::vector &IVS, __isl_take isl_id *IteratorID); - virtual void createIf(__isl_take isl_ast_node *If); + virtual void createIf(isl::ast_node If); void createUserVector(__isl_take isl_ast_node *User, std::vector &IVS, __isl_take isl_id *IteratorID, Index: polly/lib/CodeGen/IslNodeBuilder.cpp =================================================================== --- polly/lib/CodeGen/IslNodeBuilder.cpp +++ polly/lib/CodeGen/IslNodeBuilder.cpp @@ -798,8 +798,8 @@ createForSequential(isl::manage(For), Parallel); } -void IslNodeBuilder::createIf(__isl_take isl_ast_node *If) { - isl_ast_expr *Cond = isl_ast_node_if_get_cond(If); +void IslNodeBuilder::createIf(isl::ast_node If) { + isl_ast_expr *Cond = isl_ast_node_if_get_cond(If.get()); Function *F = Builder.GetInsertBlock()->getParent(); LLVMContext &Context = F->getContext(); @@ -833,17 +833,15 @@ Builder.CreateBr(MergeBB); Builder.SetInsertPoint(&ThenBB->front()); - create(isl_ast_node_if_get_then(If)); + create(isl_ast_node_if_get_then(If.get())); Builder.SetInsertPoint(&ElseBB->front()); - if (isl_ast_node_if_has_else(If)) - create(isl_ast_node_if_get_else(If)); + if (isl_ast_node_if_has_else(If.get())) + create(isl_ast_node_if_get_else(If.get())); Builder.SetInsertPoint(&MergeBB->front()); - isl_ast_node_free(If); - IfConditions++; } @@ -1037,7 +1035,7 @@ createFor(Node); return; case isl_ast_node_if: - createIf(Node); + createIf(isl::manage(Node)); return; case isl_ast_node_user: createUser(Node);