From: Tom Lane Date: Tue, 22 Apr 2025 17:56:31 +0000 (-0400) Subject: gen_node_support.pl: improve error message for unclosed struct. X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=eaf582806c0d6b19c081c5afecd9ddb7003e6f80;p=users%2Frhaas%2Fpostgres.git gen_node_support.pl: improve error message for unclosed struct. This error message was 'runaway "struct_name"', which isn't all that clear; I think 'could not find closing brace for "struct_name"' is better. Also, provide the location of the struct start using the script's usual '$file:$lineno' style. Bug: #18901 Reported-by: Clemens Ruck Author: Tom Lane Discussion: https://postgr.es/m/18901-424272abe01357e6@postgresql.org --- diff --git a/src/backend/nodes/gen_node_support.pl b/src/backend/nodes/gen_node_support.pl index f6229089cd..77659b0f76 100644 --- a/src/backend/nodes/gen_node_support.pl +++ b/src/backend/nodes/gen_node_support.pl @@ -195,6 +195,7 @@ my $next_input_file = 0; foreach my $infile (@ARGV) { my $in_struct; + my $in_struct_lineno; my $subline; my $is_node_struct; my $supertype; @@ -543,6 +544,7 @@ foreach my $infile (@ARGV) if ($line =~ /^(?:typedef )?struct (\w+)$/ && $1 ne 'Node') { $in_struct = $1; + $in_struct_lineno = $lineno; $subline = 0; } # one node type typedef'ed directly from another @@ -570,7 +572,8 @@ foreach my $infile (@ARGV) if ($in_struct) { - die "runaway \"$in_struct\" in file \"$infile\"\n"; + die + "$infile:$in_struct_lineno: could not find closing brace for struct \"$in_struct\"\n"; } close $ifh;