From 08d1b22b3be2305ad6b83ca275829ff26305f5d7 Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Sun, 24 Nov 2013 12:51:21 +0100 Subject: [PATCH] Allow C array definitions to use sizeof(). When parsing C variable definitions ecpg should allow sizeof() operators as array dimensions. --- src/interfaces/ecpg/preproc/ecpg.trailer | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer index 342b7bc4d4..6ef9f1ab9d 100644 --- a/src/interfaces/ecpg/preproc/ecpg.trailer +++ b/src/interfaces/ecpg/preproc/ecpg.trailer @@ -1865,6 +1865,11 @@ Iresult: Iconst { $$ = $1; } | Iresult '%' Iresult { $$ = cat_str(3, $1, mm_strdup("%"), $3); } | ecpg_sconst { $$ = $1; } | ColId { $$ = $1; } + | ColId '(' ColId ')' { if (pg_strcasecmp($1, "sizeof") != 0) + mmerror(PARSE_ERROR, ET_ERROR, "operator not allowed in variable definition"); + else + $$ = cat_str(4,$1, mm_strdup("("), $3, mm_strdup(")")); + } ; execute_rest: /* EMPTY */ { $$ = EMPTY; } -- 2.40.0