[A68-RECUTILS][COMMITTED] rec-field.a68: avoid potential scope violation
Jose E. Marchesi
jemarch@gnu.org
Wed Apr 9 19:47:08 GMT 2025
A potential scope violation was detected by the compiler:
src/rec-field.a68:32:40: warning: REF REC_FIELD_NAME IDENTIFIER is a potential scope violation [-Wscope]
32 | HEAP REC_FIELD := (rec loc unknown, n, v);
| ^
This patch rewrites "rec field new" to remove this possibility.
---
src/rec-field.a68 | 4 ++--
src/rec-parser.a68 | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/rec-field.a68 b/src/rec-field.a68
index 699290a..8701e65 100644
--- a/src/rec-field.a68
+++ b/src/rec-field.a68
@@ -28,8 +28,8 @@ REF REC_FIELD rec no field = NIL;
# Create and return a new field, with default location and the given
name and value. #
-PROC rec field new = (REF REC_FIELD_NAME n, STRING v) REF REC_FIELD:
- HEAP REC_FIELD := (rec loc unknown, n, v);
+PROC rec field new = (STRING n, v) REF REC_FIELD:
+ HEAP REC_FIELD := (rec loc unknown, rec get field name (n), v);
# Determine whether the given string is a correct field name.
^[a-zA-Z%][a-zA-Z0-9_]*$
diff --git a/src/rec-parser.a68 b/src/rec-parser.a68
index a80428e..0bcf803 100644
--- a/src/rec-parser.a68
+++ b/src/rec-parser.a68
@@ -350,13 +350,13 @@ BEGIN STRING str;
char OF loc := char pos OF parser;
# Parse the field name and field value. #
- REF REC_FIELD_NAME field name;
+ STRING field name str;
REF STRING field value;
- res := rec parse field name (parser, field name);
+ res := rec parse field name (parser, field name str);
IF res
THEN res := rec parse field value (parser, field value);
IF res
- THEN REF REC_FIELD new field = rec field new (field name, field value);
+ THEN REF REC_FIELD new field = rec field new (field name str, field value);
field := new field;
loc OF field := loc
FI
@@ -379,7 +379,7 @@ END;
#
PROC rec parse field name = (REF REC_PARSER parser,
- REF REF REC_FIELD_NAME field name) BOOL:
+ REF STRING field name str) BOOL:
BEGIN STRING str;
CHAR c := rec parser getc (parser);
BOOL res := TRUE;
@@ -419,7 +419,7 @@ BEGIN STRING str;
done)
FI;
- field name := rec get field name (str);
+ field name str := str;
done:
res
END;
--
2.30.2
More information about the Algol68
mailing list