parsec supports C NULL to pointer implicit cast
This commit is contained in:
parent
a890380b6a
commit
1f28fcdec5
@ -1267,6 +1267,8 @@ static AstNode *trans_implicit_cast_expr(Context *c, AstNode *block, ImplicitCas
|
||||
node->data.fn_call_expr.params.append(target_node);
|
||||
return node;
|
||||
}
|
||||
case CK_NullToPointer:
|
||||
return trans_create_node(c, NodeTypeNullLiteral);
|
||||
case CK_Dependent:
|
||||
emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_Dependent");
|
||||
return nullptr;
|
||||
@ -1291,9 +1293,6 @@ static AstNode *trans_implicit_cast_expr(Context *c, AstNode *block, ImplicitCas
|
||||
case CK_ToUnion:
|
||||
emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_ToUnion");
|
||||
return nullptr;
|
||||
case CK_NullToPointer:
|
||||
emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_NullToPointer");
|
||||
return nullptr;
|
||||
case CK_NullToMemberPointer:
|
||||
emit_warning(c, stmt->getLocStart(), "TODO handle C translation cast CK_NullToMemberPointer");
|
||||
return nullptr;
|
||||
|
@ -596,6 +596,16 @@ pub fn addCases(cases: &tests.ParseCContext) {
|
||||
\\ return @sizeOf(c_int);
|
||||
\\}
|
||||
);
|
||||
|
||||
cases.addC("null pointer implicit cast",
|
||||
\\int* foo(void) {
|
||||
\\ return 0;
|
||||
\\}
|
||||
,
|
||||
\\export fn foo() -> ?&c_int {
|
||||
\\ return null;
|
||||
\\}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user