1#Date: Mon, 7 Jun 2004 10:40:28 -0500 2#From: mary1john8@earthlink.net 3#To: arnold@skeeve.com 4#Subject: gawk internal errors 5#Message-ID: <20040607154028.GA2457@apollo> 6# 7#Hello, 8# 9# gawk-3.1.3i internal errors: 10# 11#[1] 12# 13#$> ./gawk 'BEGIN { for (i in a) delete a; }' 14BEGIN { for (i in a) delete a; } 15#gawk: fatal error: internal error 16#Aborted 17# 18#------------------------------------------------------------------ 19#--- awkgram.y.orig 2004-06-07 09:42:14.000000000 -0500 20#+++ awkgram.y 2004-06-07 09:45:58.000000000 -0500 21#@@ -387,7 +387,7 @@ 22# * Check that the body is a `delete a[i]' statement, 23# * and that both the loop var and array names match. 24# */ 25#- if ($8 != NULL && $8->type == Node_K_delete) { 26#+ if ($8 != NULL && $8->type == Node_K_delete && $8->rnode != NULL) { 27# NODE *arr, *sub; 28# 29# assert($8->rnode->type == Node_expression_list); 30#------------------------------------------------------------------ 31# 32# 33#[2] 34# 35#$> ./gawk 'BEGIN { printf("%3$*10$.*1$s\n", 20, 10, "hello"); }' 36#gawk: fatal error: internal error 37#Aborted 38# 39#------------------------------------------------------------------ 40#--- builtin.c.orig 2004-06-07 10:04:20.000000000 -0500 41#+++ builtin.c 2004-06-07 10:06:08.000000000 -0500 42#@@ -780,7 +780,10 @@ 43# s1++; 44# n0--; 45# } 46#- 47#+ if (val >= num_args) { 48#+ toofew = TRUE; 49#+ break; 50#+ } 51# arg = the_args[val]; 52# } else { 53# parse_next_arg(); 54#------------------------------------------------------------------ 55# 56# 57# Finally, a test for the rewritten get_src_buf(): 58# 59#$> AWKBUFSIZE=2 make check 60# 61#I get 3 failed tests. Not sure this is of any interest. 62# 63# 64#Thanks, 65#John 66