aboutsummaryrefslogtreecommitdiff
path: root/src/ast_render.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-06-04 01:09:15 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-06-04 01:39:57 -0400
commit96164ce61377b36bcaf0c4087ca9b1ab822b9457 (patch)
treedb4ab07dd179c8f72a05028edb6ad60bfabd4a74 /src/ast_render.cpp
parent4c273126dfc44cf4fcf9d5d97bf1cb1da07d7bd7 (diff)
downloadzig-96164ce61377b36bcaf0c4087ca9b1ab822b9457.tar.gz
zig-96164ce61377b36bcaf0c4087ca9b1ab822b9457.zip
disallow single-item pointer indexing
add pointer arithmetic for unknown length pointer
Diffstat (limited to 'src/ast_render.cpp')
-rw-r--r--src/ast_render.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp
index f356f406b0..3785cb6ca1 100644
--- a/src/ast_render.cpp
+++ b/src/ast_render.cpp
@@ -625,7 +625,13 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) {
case NodeTypePointerType:
{
if (!grouped) fprintf(ar->f, "(");
- fprintf(ar->f, "*");
+ const char *star = "[*]";
+ if (node->data.pointer_type.star_token != nullptr &&
+ (node->data.pointer_type.star_token->id == TokenIdStar || node->data.pointer_type.star_token->id == TokenIdStarStar))
+ {
+ star = "*";
+ }
+ fprintf(ar->f, "%s", star);
if (node->data.pointer_type.align_expr != nullptr) {
fprintf(ar->f, "align(");
render_node_grouped(ar, node->data.pointer_type.align_expr);