Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 0388a99893245abfb5161dce9b105e5d518ca24a)
+++ tests/Makefile.am	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -225,4 +225,12 @@
 	-cp ${test} ${abspath ${@}}
 
+array-container/dimexpr-match-c-ERRS : array-container/dimexpr-match-c.cfa
+	${CFACOMPILE_SYNTAX} -DERRS
+	-cp ${test} ${abspath ${@}}
+
+array-container/dimexpr-match-cfa-ERRS : array-container/dimexpr-match-cfa.cfa
+	${CFACOMPILE_SYNTAX} -DERRS
+	-cp ${test} ${abspath ${@}}
+
 alloc-ERROR : alloc.cfa ${CFACCBIN}
 	${CFACOMPILE_SYNTAX} -DERR1
Index: tests/array-container/.expect/dimexpr-match-c-ERRS.arm64.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-c-ERRS.arm64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-c-ERRS.arm64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,248 @@
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Constant Expression (7: signed int)
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Constant Expression (7: signed int)
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Variable Expression: enu7: const instance of enum __anonymous0 with body
+    ... with resolved type:
+      const instance of enum __anonymous0 with body
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Variable Expression: enu7: const instance of enum __anonymous0 with body
+    ... with resolved type:
+      const instance of enum __anonymous0 with body
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: cpr7: const signed int
+    ... with resolved type:
+      const signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: cpr7: const signed int
+    ... with resolved type:
+      const signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: mut7: signed int
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: mut7: signed int
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
Index: tests/array-container/.expect/dimexpr-match-c-ERRS.x64.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-c-ERRS.x64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-c-ERRS.x64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,248 @@
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Constant Expression (7: signed int)
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Constant Expression (7: signed int)
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Variable Expression: enu7: const instance of enum __anonymous0 with body
+    ... with resolved type:
+      const instance of enum __anonymous0 with body
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Variable Expression: enu7: const instance of enum __anonymous0 with body
+    ... with resolved type:
+      const instance of enum __anonymous0 with body
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: cpr7: const signed int
+    ... with resolved type:
+      const signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: cpr7: const signed int
+    ... with resolved type:
+      const signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: mut7: signed int
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: mut7: signed int
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned long int
+  ... with resolved type:
+    unsigned long int
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
Index: tests/array-container/.expect/dimexpr-match-c-ERRS.x86.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-c-ERRS.x86.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-c-ERRS.x86.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,248 @@
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:30:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Constant Expression (7: signed int)
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Constant Expression (7: signed int)
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Variable Expression: enu7: const instance of enum __anonymous0 with body
+    ... with resolved type:
+      const instance of enum __anonymous0 with body
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to array of float with dimension of Generated Cast of:
+    Variable Expression: enu7: const instance of enum __anonymous0 with body
+    ... with resolved type:
+      const instance of enum __anonymous0 with body
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: cpr7: const signed int
+    ... with resolved type:
+      const signed int
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: cpr7: const signed int
+    ... with resolved type:
+      const signed int
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: mut7: signed int
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to variable length array of float with dimension of Generated Cast of:
+    Variable Expression: mut7: signed int
+    ... with resolved type:
+      signed int
+  ... to:
+    unsigned int
+  ... with resolved type:
+    unsigned int
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-c.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
Index: tests/array-container/.expect/dimexpr-match-c.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-c.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-c.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,92 @@
+---- PTRPARM_CALL:   { void f( float (*x)[__L__] ) {} float a[__R__]; f( & a ); }
+done STA EQ STA, L=7, R=7
+skip STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+skip STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+skip STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+skip STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+---- PTRVAR_INIT:   { float a[__R__]; float (*b)[__L__] = & a; }
+done STA EQ STA, L=7, R=7
+skip STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+skip STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+skip STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+skip STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+---- PTRVAR_ASGN:   { float a[__R__]; float (*b)[__L__] = 0p; b = & a; }
+done STA EQ STA, L=7, R=7
+skip STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+skip STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+skip STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+skip STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+---- REFVAR_ASGN:   { float a[__R__]; float (&b)[__L__] = *0p; & b = & a; }
+done STA EQ STA, L=7, R=7
+skip STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+skip STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+skip STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+skip STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
Index: tests/array-container/.expect/dimexpr-match-cfa-ERRS.arm64.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-cfa-ERRS.arm64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-cfa-ERRS.arm64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,1001 @@
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
Index: tests/array-container/.expect/dimexpr-match-cfa-ERRS.x64.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-cfa-ERRS.x64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-cfa-ERRS.x64.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,1001 @@
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned long int
+    ... with resolved type:
+      unsigned long int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
Index: tests/array-container/.expect/dimexpr-match-cfa-ERRS.x86.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-cfa-ERRS.x86.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-cfa-ERRS.x86.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,1001 @@
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:67:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Address of:
+    Name: a  InitAlternative: pointer to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:76:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:85:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: f
+...to:
+  Name: a
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Constant Expression (7: signed int)
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    array of char with dimension of Generated Cast of:
+      Variable Expression: enu7: const instance of enum __anonymous0 with body
+      ... with resolved type:
+        const instance of enum __anonymous0 with body
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    instance of type dim7 (not function type)
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: cpr7: const signed int
+      ... with resolved type:
+        const signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:93:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression
+  Name: a  InitAlternative: reference to instance of struct arpk with body
+  ... with parameters
+    variable length array of char with dimension of Generated Cast of:
+      Variable Expression: mut7: signed int
+      ... with resolved type:
+        signed int
+    ... to:
+      unsigned int
+    ... with resolved type:
+      unsigned int
+    float
+    float
+    float
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:102:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: ?=?
+...to:
+  Address of:
+    Name: b
+  Address of:
+    Name: a
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
+array-container/dimexpr-match-cfa.cfa:115:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: zip
+...to:
+  Name: a
+  Name: b
+
Index: tests/array-container/.expect/dimexpr-match-cfa.txt
===================================================================
--- tests/array-container/.expect/dimexpr-match-cfa.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/.expect/dimexpr-match-cfa.txt	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,231 @@
+---- PTRPARM_CALL:   { void f( typeof( mkar_( ((tag(float)){}) , ((tag(__L__)){}) ) ) * x ) {} typeof( mkar_( ((tag(float)){}) , ((tag(__R__)){}) ) ) a; f( & a ); }
+done STA EQ STA, L=7, R=7
+done STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+done STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+done STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+done STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+skip STA NE XXX, L=7, R=dim42
+skip STA NE XXX, L=enu7, R=dim42
+skip DYN NE XXX, L=cpr7, R=dim42
+done XXX EQ XXX, L=dim7, R=dim7
+skip XXX NE XXX, L=dim7, R=dim42
+skip XXX NE STA, L=dim7, R=42
+skip XXX NE STA, L=dim7, R=enu42
+skip XXX NE DYN, L=dim7, R=cpr42
+skip XXX NE UNS, L=dim7, R=mut42
+skip UNS NE XXX, L=mut7, R=dim42
+---- PTRVAR_INIT:   { typeof( mkar_( ((tag(float)){}) , ((tag(__R__)){}) ) ) a; typeof( mkar_( ((tag(float)){}) , ((tag(__L__)){}) ) ) * b = & a; }
+done STA EQ STA, L=7, R=7
+done STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+done STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+done STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+done STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+skip STA NE XXX, L=7, R=dim42
+skip STA NE XXX, L=enu7, R=dim42
+skip DYN NE XXX, L=cpr7, R=dim42
+done XXX EQ XXX, L=dim7, R=dim7
+skip XXX NE XXX, L=dim7, R=dim42
+skip XXX NE STA, L=dim7, R=42
+skip XXX NE STA, L=dim7, R=enu42
+skip XXX NE DYN, L=dim7, R=cpr42
+skip XXX NE UNS, L=dim7, R=mut42
+skip UNS NE XXX, L=mut7, R=dim42
+---- PTRVAR_ASGN:   { typeof( mkar_( ((tag(float)){}) , ((tag(__R__)){}) ) ) a; typeof( mkar_( ((tag(float)){}) , ((tag(__L__)){}) ) ) * b = 0p; b = & a; }
+done STA EQ STA, L=7, R=7
+done STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+done STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+done STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+done STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+skip STA NE XXX, L=7, R=dim42
+skip STA NE XXX, L=enu7, R=dim42
+skip DYN NE XXX, L=cpr7, R=dim42
+done XXX EQ XXX, L=dim7, R=dim7
+skip XXX NE XXX, L=dim7, R=dim42
+skip XXX NE STA, L=dim7, R=42
+skip XXX NE STA, L=dim7, R=enu42
+skip XXX NE DYN, L=dim7, R=cpr42
+skip XXX NE UNS, L=dim7, R=mut42
+skip UNS NE XXX, L=mut7, R=dim42
+---- REFPARM_CALL:   { void f( typeof( mkar_( ((tag(float)){}) , ((tag(__L__)){}) ) ) & x ) {} typeof( mkar_( ((tag(float)){}) , ((tag(__R__)){}) ) ) a; f( a ); }
+done STA EQ STA, L=7, R=7
+done STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+done STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+done STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+done STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+skip STA NE XXX, L=7, R=dim42
+skip STA NE XXX, L=enu7, R=dim42
+skip DYN NE XXX, L=cpr7, R=dim42
+done XXX EQ XXX, L=dim7, R=dim7
+skip XXX NE XXX, L=dim7, R=dim42
+skip XXX NE STA, L=dim7, R=42
+skip XXX NE STA, L=dim7, R=enu42
+skip XXX NE DYN, L=dim7, R=cpr42
+skip XXX NE UNS, L=dim7, R=mut42
+skip UNS NE XXX, L=mut7, R=dim42
+---- REFVAR_INIT:   { typeof( mkar_( ((tag(float)){}) , ((tag(__R__)){}) ) ) a; typeof( mkar_( ((tag(float)){}) , ((tag(__L__)){}) ) ) & b = a; }
+done STA EQ STA, L=7, R=7
+done STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+done STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+done STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+done STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+skip STA NE XXX, L=7, R=dim42
+skip STA NE XXX, L=enu7, R=dim42
+skip DYN NE XXX, L=cpr7, R=dim42
+done XXX EQ XXX, L=dim7, R=dim7
+skip XXX NE XXX, L=dim7, R=dim42
+skip XXX NE STA, L=dim7, R=42
+skip XXX NE STA, L=dim7, R=enu42
+skip XXX NE DYN, L=dim7, R=cpr42
+skip XXX NE UNS, L=dim7, R=mut42
+skip UNS NE XXX, L=mut7, R=dim42
+---- REFVAR_ASGN:   { typeof( mkar_( ((tag(float)){}) , ((tag(__R__)){}) ) ) a; typeof( mkar_( ((tag(float)){}) , ((tag(__L__)){}) ) ) & b = *0p; & b = & a; }
+done STA EQ STA, L=7, R=7
+done STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+done STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+done STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+done STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+skip STA NE XXX, L=7, R=dim42
+skip STA NE XXX, L=enu7, R=dim42
+skip DYN NE XXX, L=cpr7, R=dim42
+done XXX EQ XXX, L=dim7, R=dim7
+skip XXX NE XXX, L=dim7, R=dim42
+skip XXX NE STA, L=dim7, R=42
+skip XXX NE STA, L=dim7, R=enu42
+skip XXX NE DYN, L=dim7, R=cpr42
+skip XXX NE UNS, L=dim7, R=mut42
+skip UNS NE XXX, L=mut7, R=dim42
+---- CALLZIP:   { typeof( mkar_( ((tag(float)){}) , ((tag(__L__)){}) ) ) a; typeof( mkar_( ((tag(float)){}) , ((tag(__R__)){}) ) ) b; zip( a, b ); }
+done STA EQ STA, L=7, R=7
+done STA NE STA, L=7, R=42
+done STA EQ STA, L=7, R=enu7
+done STA NE STA, L=7, R=enu42
+skip STA NE DYN, L=7, R=cpr42
+skip STA NE UNS, L=7, R=mut42
+done STA EQ STA, L=enu7, R=enu7
+done STA NE STA, L=enu7, R=enu42
+done STA EQ STA, L=enu7, R=7
+done STA NE STA, L=enu7, R=42
+skip STA NE DYN, L=enu7, R=cpr42
+skip STA NE UNS, L=enu7, R=mut42
+done DYN EQ DYN, L=cpr7, R=cpr7
+done DYN NE DYN, L=cpr7, R=cpr42
+skip DYN NE STA, L=cpr7, R=42
+skip DYN NE STA, L=cpr7, R=enu42
+done DYN NE UNS, L=cpr7, R=mut42
+done UNS EQ UNS, L=mut7, R=mut7
+done UNS NE UNS, L=mut7, R=mut42
+skip UNS NE STA, L=mut7, R=42
+skip UNS NE STA, L=mut7, R=enu42
+done UNS NE DYN, L=mut7, R=cpr42
+skip STA NE XXX, L=7, R=dim42
+skip STA NE XXX, L=enu7, R=dim42
+skip DYN NE XXX, L=cpr7, R=dim42
+done XXX EQ XXX, L=dim7, R=dim7
+skip XXX NE XXX, L=dim7, R=dim42
+skip XXX NE STA, L=dim7, R=42
+skip XXX NE STA, L=dim7, R=enu42
+skip XXX NE DYN, L=dim7, R=cpr42
+skip XXX NE UNS, L=dim7, R=mut42
+skip UNS NE XXX, L=mut7, R=dim42
Index: tests/array-container/dimexpr-match-c.cfa
===================================================================
--- tests/array-container/dimexpr-match-c.cfa	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/dimexpr-match-c.cfa	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,98 @@
+// These "-c" test cases run the dimexpr-match framework (see the hfa) on the C array.
+// The test is runnable in plain gcc and cfacc.
+// When run in cfacc, it shows the support/compatibility of C arrays in CFA.
+
+// These tests don't use collections/array.hfa (see the -cfa version for that).
+// But `forall( [N] ) ...` is a laguage feature that does not depend on the new-array library.
+// In CFA, such an `N` is a fine value expression, and can be used as the dimension of a "C" array.
+// This file's cases include `N` expressions when the compiler is non-Classic CFA.
+// They are omitted from consideration
+//  - under gcc, for obvious reasons
+//  - or under classic CFA, beacuase its bahaviour on this C/CFA hybrid was complex, and there is no value in modeling an expctation of it
+//  - whereas these are not really "C compatibility" cases
+
+#define SUPPRESS_FORALL_N_ON_CLASSIC
+
+#include "dimexpr-match.hfa"     // test framework
+
+DECLN_runTests {
+
+    enum { enu7 = 7, enu42 = 42 };
+    int mut7 = 7, mut42 = 42;
+
+    
+    #define TRY_COMPAT( LV, RV )        \
+    {                                   \
+        void f( float (*x)[LV] ) {}     \
+        float a[RV];                    \
+        f( & a );                       \
+    }
+    ARRANGEMENT( PTRPARM_CALL )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )        \
+    {                                   \
+        float a[RV];                    \
+        float (*b)[LV] = & a;           \
+    }
+    ARRANGEMENT( PTRVAR_INIT )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )        \
+    {                                   \
+        float a[RV];                    \
+        float (*b)[LV] = NULL;          \
+        b = & a;                        \
+    }
+    ARRANGEMENT( PTRVAR_ASGN )
+    #undef TRY_COMPAT
+
+  #ifdef __cforall
+
+  #ifdef TRY_BUG_1
+    #define TRY_COMPAT( LV, RV )        \
+    {                                   \
+        void f( float (&x)[LV] ) {}     \
+        float a[RV];                    \
+        f( a );                         \
+    }
+    ARRANGEMENT( REFPARM_CALL )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )        \
+    {                                   \
+        float a[RV];                    \
+        float (&b)[LV] = a;             \
+    }
+    ARRANGEMENT( REFVAR_INIT )
+    #undef TRY_COMPAT
+  #endif
+
+    #define TRY_COMPAT( LV, RV )        \
+    {                                   \
+        float a[RV];                    \
+        float (&b)[LV] = *0p;           \
+        & b = & a;                      \
+    }
+    ARRANGEMENT( REFVAR_ASGN )
+    #undef TRY_COMPAT
+
+  #ifdef TRY_WISH_1 // "unification as-if"
+    forall( [N] )
+    void zip( float (*a)[N], float (*b)[N] ) {}
+
+    #define TRY_COMPAT( LV, RV )        \
+    {                                   \
+        float a[LV];                    \
+        float b[RV];                    \
+        zip( &a, &b );                  \
+    }
+    ARRANGEMENT( CALLZIP )
+    #undef TRY_COMPAT
+  #endif
+
+  #endif
+
+
+
+}
Index: tests/array-container/dimexpr-match-cfa.cfa
===================================================================
--- tests/array-container/dimexpr-match-cfa.cfa	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/dimexpr-match-cfa.cfa	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,118 @@
+// These "-cfa" test cases run the dimexpr-match framework (see the hfa) on the CFA "new array."
+// The test is not runnable in gcc.
+// Essentially parallels dimexpr-match.cfa, but uses array(float, 17), of array.hfa, in place of `float[17]`.
+
+#ifndef __cforall
+#error This test is CFA-only
+#endif
+
+#ifdef INCLUDE_MINIMAL
+#define POUNDINCLUDE #include
+POUNDINCLUDE <containers/array.hfa>
+#else
+#include <containers/array.hfa>                           // part of SUT
+#endif
+
+#include "dimexpr-match.hfa"                              // test framework
+
+// CFA "classic" behaviour is inconsistent between "C array" and "new array."
+// The impelementation of "non classic" rules makes C arrays and new arrays work the same.
+#ifdef CFA_IS_CLASSIC
+
+    // CFA "classic" allows mismatched static lengths on "new arrays," which is a bug.
+    // For cfacc-classic compiling C arrays, the (expected) rejection of mismatched static lenghts happens in gcc, not cfa-cpp.
+    // When the CFA input is a C array, the cfa-cc handling is passthrough, so GCC sees the error.
+    // When the CFA input is a new array, the cfa-cpp handling is nontrivial; this rewriting hides the error from GCC, causing the case to be accepted.
+    // This issue is fixed in the implementation of the "non classic" rules.
+    #undef  RULE_CF_NE_STA_STA
+    #define RULE_CF_NE_STA_STA  ACC
+
+    // CFA "classic" rejects mismatched `[N]`s on "new arrays," which is the original signature featere of "new arrays."
+    // But it is unable to do the same with `n`s.  So CFA "classic" treats `n` and `[N]` differently.
+    // The impelementation of "non classic" rules extends this safety to `n`s, and to C arrays.
+    #undef  GRP_K_DIM                 // reclassify dim7/dim42 as group XXX, instead of group DYN
+    #define GRP_K_DIM  XXX
+    #define RULE_CF_EQ_XXX_XXX  ACC   // these rules correspond with non-"classic" DYN
+    #define RULE_CF_NE_XXX_XXX  REJ
+    #define RULE_CF_NE_XXX_STA  REJ
+    #define RULE_CF_NE_STA_XXX  REJ
+    #define RULE_CF_NE_XXX_DYN  REJ
+    #define RULE_CF_NE_DYN_XXX  REJ
+    #define RULE_CF_NE_XXX_UNS  REJ
+    #define RULE_CF_NE_UNS_XXX  REJ
+
+#endif
+
+
+DECLN_runTests {
+
+    enum { enu7 = 7, enu42 = 42 };
+    int mut7 = 7, mut42 = 42;
+
+    
+    #define TRY_COMPAT( LV, RV )            \
+    {                                       \
+        void f( array(float, LV) * x ) {}   \
+        array(float, RV) a;                 \
+        f( & a );                           \
+    }
+    ARRANGEMENT( PTRPARM_CALL )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )            \
+    {                                       \
+        array(float, RV) a;                 \
+        array(float, LV) * b = & a;         \
+    }
+    ARRANGEMENT( PTRVAR_INIT )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )            \
+    {                                       \
+        array(float, RV) a;                 \
+        array(float, LV) * b = NULL;        \
+        b = & a;                            \
+    }
+    ARRANGEMENT( PTRVAR_ASGN )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )            \
+    {                                       \
+        void f( array(float, LV) & x ) {}   \
+        array(float, RV) a;                 \
+        f( a );                             \
+    }
+    ARRANGEMENT( REFPARM_CALL )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )            \
+    {                                       \
+        array(float, RV) a;                 \
+        array(float, LV) & b = a;           \
+    }
+    ARRANGEMENT( REFVAR_INIT )
+    #undef TRY_COMPAT
+
+    #define TRY_COMPAT( LV, RV )            \
+    {                                       \
+        array(float, RV) a;                 \
+        array(float, LV) & b = *0p;         \
+        & b = & a;                          \
+    }
+    ARRANGEMENT( REFVAR_ASGN )
+    #undef TRY_COMPAT
+
+
+    forall( [N] )
+    void zip( array(float, N) & a, array(float, N) & b ) {}
+
+    #define TRY_COMPAT( LV, RV )            \
+    {                                       \
+        array(float, LV) a;                 \
+        array(float, RV) b;                 \
+        zip( a, b );                        \
+    }
+    ARRANGEMENT( CALLZIP )
+    #undef TRY_COMPAT
+
+}
Index: tests/array-container/dimexpr-match-detail.sh
===================================================================
--- tests/array-container/dimexpr-match-detail.sh	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/dimexpr-match-detail.sh	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,75 @@
+# A test.py run (including what happens in the nightly build) runs the dimexpr-match test in a coarse, quick-check, fashion.
+# This script helps you run the dimexpr-match test manually, in a more thorough fashion.
+# test.py runs do not use this script.
+
+# The thoroughness that this script affords is
+#   - verifying that _each_ rejection case is rejected, among a huge number of rejection cases
+#     - particularly, counting those that reject by way of CFACC calling GCC, which issues a warning; these rejections are not reached by getting CFACC to report all errors at once
+#   - observing the behaviour of a compiler other than the CFACC version in whose folder the test occurs; for example, GCC
+
+# usage (one of)
+#   ./dimexpr-match-detail.sh '/u0/mlbrooks/cfa2/build-straw3/driver/cfa -DCFA_PREVIEW_FUNCTIONALITY'
+#   ./dimexpr-match-detail.sh ~/cfa6/build/driver/cfa
+#   ./dimexpr-match-detail.sh 'gcc -x c'
+
+
+
+compiler=${1:-cfa}
+test=${2:-dimexpr-match-c.cfa}
+
+# Same as first half of the auto-test: check that all the cases that should be accepted are accepted
+set -x
+$compiler $test
+rc=$?
+{ set +x; } 2> /dev/null
+
+if [ $rc -gt 0 ]; then
+    echo
+    echo
+    echo "TEST FAILURE: compiler rejected a case that should be accepted"
+    echo
+    echo
+
+    exit 1
+fi
+
+set -x
+./a.out
+rc=$?
+{ set +x; } 2> /dev/null
+
+if [ $rc -gt 0 ]; then
+    echo
+    echo
+    echo "TEST FAILURE: runtime crash on a case that should be accepted"
+    echo
+    echo
+
+    exit 1
+fi
+
+# More detailed alternative to the second half of the auto-test: check that each case that the first half skipped is rejected, when run all by itself
+
+function verifyCompilationRejection() {
+    set -x
+    $compiler $1 &> /dev/null
+    rc=$?
+
+    { set +x; } 2> /dev/null
+
+    if [ $rc -eq 0 ]; then
+        echo
+        echo
+        echo "TEST FAILURE: compiler accepted case that should be rejected:"
+        echo $1
+        echo
+        echo
+
+        # keep checking other cases
+    fi
+}
+
+export -f verifyCompilationRejection
+export compiler
+
+./a.out -cmd4skip | sed -E -n 's/skip.*\| *//p' | xargs -n 1 -I {} bash -c 'verifyCompilationRejection "$@"' _ {}
Index: tests/array-container/dimexpr-match.hfa
===================================================================
--- tests/array-container/dimexpr-match.hfa	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
+++ tests/array-container/dimexpr-match.hfa	(revision 0f4ac1051212a2dd05b205e457789712e2c9a66b)
@@ -0,0 +1,391 @@
+
+
+//  Framework for the dimexpr-match tests.
+//
+//  These tests show whether an expression of type like `float (*)[25]`
+//  can be used in a context expecting a type like `float (*)[rand()]`.
+//
+//  A test includes this header and defines the function `runTests`.
+//  The `runTests` body is made with macros defined here.
+//
+//  Normally, drive a test either from test.py or ./dimexpr-match-detail.sh.
+//  Direct usage is for making small repro cases, while troubleshooting a problem.
+//
+//  Direct usage is:
+//
+//      compiler=gcc -x c           # pick one
+//      compiler=$fa
+//
+//      test=dimexpr-match-c.cfa    # pick one
+//      test=dimexpr-match-cfa.cfa
+//
+//      $compiler $test
+//      ./a.out
+//      ./a.out -cmd4skip | sed -E -n 's/skip.*\| *//p'
+//
+//  Expect the above compiler invocation to report success.
+//  Expect the first a.out invocation to print a mix of "done" and "skipped" messages.
+//  Assume the second a.out invocation (through sed) prints several compiler CLI invocations.  For each...
+//  Expect that running the current compiler invocation reports an error.
+//  So far, this is what dimexpr-match-detail.sh does.
+//
+//  The macro logic in here is hard to read.
+//  A specific test's TRY_COMPAT definition is easy to read.
+//
+//  An error message from an unexpected rejection is hard to read, because the message blames a macro.
+//  To diagnose one, first obtain the failing case's coordinates by ruuning:
+//      $compiler $test -E -P -DEMIT_COORDS > temp.cfa  # just preprocessor
+//      $compiler temp.cfa                              # will fail, want message
+//  Open temp.cfa and chase an error detail's line number, to find the failing code.
+//  Look at the pragma-message above the failing line, and read off the failure's -D coordinates.
+//  Isolate this case by running:                              ... copied from pragma message ...............................................................................................
+//      $compiler $test -E -P -DEMIT_MINIMAL -DINCLUDE_MINIMAL -DARRANGEMENT__OPTIN -DARRANGEMENT_PTRPARM_---- -DCASE_MANUAL -DCASE_FORMATION_L=--- -DCASE_FORMATION_R=--- -DCASE_EQUALITY=-- > mycase.cfa  # template
+//      $compiler $test -E -P -DEMIT_MINIMAL -DINCLUDE_MINIMAL -DARRANGEMENT__OPTIN -DARRANGEMENT_PTRPARM_CALL -DCASE_MANUAL -DCASE_FORMATION_L=LIT -DCASE_FORMATION_R=LIT -DCASE_EQUALITY=NE > mycase.cfa  # example
+//      $compiler mycase.cfa
+//  The content of mycase.cfa is easy to read.
+
+#ifdef __cforall
+    extern "C" {
+        int strcmp (const char* str1, const char* str2);
+    }
+    #define NULL 0p
+#else
+    #include <stdio.h>
+    #include <string.h>
+#endif
+
+#define CAT(a, ...) PRIMITIVE_CAT(a, __VA_ARGS__)
+#define PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
+
+#define DO_PRAGMA(x) _Pragma (#x)
+#define DO_MESSAGE(x) DO_PRAGMA(message #x)
+
+#ifdef EMIT_COORDS
+#define MAYPRINT(...)
+#define MAYDELIMIT( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME ) \
+    DO_MESSAGE(-DARRANGEMENT__OPTIN -DARRANGEMENT_ ## ARR_NAME -DCASE_MANUAL -DCASE_FORMATION_L=KL -DCASE_FORMATION_R=KR -DCASE_EQUALITY=ISEQ)
+#else
+#define MAYPRINT(...) printf(__VA_ARGS__);
+#define MAYDELIMIT( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME )
+#endif
+
+#ifdef EMIT_MINIMAL
+#undef MAYPRINT
+#define MAYPRINT(...)
+#endif
+
+#define GRP_K_LIT STA
+#define GRP_K_ENU STA
+#define GRP_K_CPR DYN
+#define GRP_K_DIM DYN
+#define GRP_K_MUT UNS
+#define GRP_K( K ) GRP_K_ ## K
+
+#define MKV7_LIT 7
+#define MKV7_ENU enu7
+#define MKV7_CPR cpr7
+#define MKV7_DIM dim7
+#define MKV7_MUT mut7
+#define MKV7( K ) MKV7_ ## K
+
+#define MKV42_LIT 42
+#define MKV42_ENU enu42
+#define MKV42_CPR cpr42
+#define MKV42_DIM dim42
+#define MKV42_MUT mut42
+#define MKV42( K ) MKV42_ ## K
+
+#define MKLV( LK ) MKV7( LK )
+
+#define MKRV_EQ( KR ) MKV7(KR)
+#define MKRV_NE( KR ) MKV42(KR)
+#define MKRV( KR, ISEQ ) MKRV_ ## ISEQ( KR )
+
+#ifdef __cforall
+#define RULE_PFX RULE_CF_
+#else
+#define RULE_PFX RULE_C_
+#endif
+
+#define X_CASE_2( KL, KR, ISEQ, FL, FR, ARR_NAME ) \
+    MAY_TRY_COMPAT( \
+        CAT(CAT(CAT(CAT(CAT(RULE_PFX, ISEQ), _), FL), _), FR), \
+        MKLV( KL ), \
+        MKRV( KR, ISEQ ), \
+        KL, KR, FL, FR, ISEQ, ARR_NAME \
+    )
+
+#define X_CASE( KL, KR, ISEQ, ARR_NAME ) X_CASE_2( KL, KR, ISEQ, GRP_K(KL), GRP_K(KR), ARR_NAME )
+
+#ifdef ERRS
+#define MAY_TRY_COMPAT_REJ( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME ) \
+    _Pragma("message \"Expect fail\"") \
+    MAY_TRY_COMPAT_ACC( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME )
+#else
+#define MAY_TRY_COMPAT_REJ( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME ) \
+    MAYPRINT("skip %s %s %s, L=%s, R=%s",  #FL, #ISEQ, #FR, #LV, #RV ) \
+    if (cmd4skip) { \
+        MAYPRINT(" | -DERRS -Werror %s -DARRANGEMENT__OPTIN -DARRANGEMENT_%s -DCASE_MANUAL -DCASE_FORMATION_L=%s -DCASE_FORMATION_R=%s -DCASE_EQUALITY=%s",  __FILE__, #ARR_NAME, #KL, #KR, #ISEQ ) \
+    } \
+    MAYPRINT("\n")
+#endif
+
+#define MAY_TRY_COMPAT_ACC( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME ) \
+    MAYDELIMIT( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME ) \
+    TRY_COMPAT(LV, RV) \
+    MAYPRINT("done %s %s %s, L=%s, R=%s\n",  #FL, #ISEQ, #FR, #LV, #RV )
+
+#define MAY_TRY_COMPAT(EXPECT, LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME) \
+    CAT(MAY_TRY_COMPAT_, EXPECT( LV, RV, KL, KR, FL, FR, ISEQ, ARR_NAME ))
+
+#define TCXXX(Q) Q
+#define TCXX(Q) #Q
+
+#define QUOTE(str) #str
+#define EXPAND_AND_QUOTE(str) QUOTE(str)
+#define TRY_COMPAT_E EXPAND_AND_QUOTE(TRY_COMPAT(__L__,__R__))
+
+// Temporary: CFA is classic by default
+#if defined CFA_IS_PREVIEW && defined CFA_IS_CLASSIC
+#error Must not define both CFA_IS_CLASSIC, CFA_IS_PREVIEW
+#endif
+#if ! defined CFA_IS_PREVIEW && ! defined CFA_IS_CLASSIC
+#define CFA_IS_CLASSIC
+#endif
+
+#if ! defined __cforall
+#define SUPPRESS_FORALL_N
+#endif
+
+#if defined SUPPRESS_FORALL_N_ON_CLASSIC && defined CFA_IS_CLASSIC
+#define SUPPRESS_FORALL_N
+#endif
+
+/*
+
+RULE macros define the expected outcome:
+Given a compiler's functionality level and a  test case, do we expect the compiler to accept or reject the case?
+
+Group STA: Statically stable
+    - literal
+    - enumeration
+
+Group DYN: Dynamically stable
+    - parameter that is a constant
+    - static constant global
+
+Group UNS: potentially Unstable
+    - variable
+    - parameter that is a constant reference to constant
+    - function return
+    - extern constant (safe and annoying here; must be here if you can link it to something that changes)
+
+C rules
+    - Reject a pair from group STA if it has two different values
+    - otherwise, accept
+
+CFA "classic" rules (what CFA actually does, before Mike brings in CFA rules)
+    - same as C, except
+    - reject STA/non-STA crossing
+
+CFA rules ("preview" only)
+    - accept a pair from group STA if it has the same value
+    - accept a pair from group DYN if it is written out the same (e.g. refers to same variable)
+    - otherwise, reject
+        (notably, reject all group UNS)
+        (notably, reject any group crossing)
+
+The RULE_* definitions below encode the summary above into the test harness's format.
+This format is: tabled function to {ACC,REJ} from {STA,DYN,UNS}^2 x {EQ,NE}
+
+*/
+
+#define RULE_C_EQ_STA_STA  ACC
+#define RULE_C_EQ_STA_DYN  ACC
+#define RULE_C_EQ_STA_UNS  ACC
+#define RULE_C_EQ_DYN_STA  ACC
+#define RULE_C_EQ_DYN_DYN  ACC
+#define RULE_C_EQ_DYN_UNS  ACC
+#define RULE_C_EQ_UNS_STA  ACC
+#define RULE_C_EQ_UNS_DYN  ACC
+#define RULE_C_EQ_UNS_UNS  ACC
+
+#define RULE_C_NE_STA_STA  REJ
+#define RULE_C_NE_STA_DYN  ACC
+#define RULE_C_NE_STA_UNS  ACC
+#define RULE_C_NE_DYN_STA  ACC
+#define RULE_C_NE_DYN_DYN  ACC
+#define RULE_C_NE_DYN_UNS  ACC
+#define RULE_C_NE_UNS_STA  ACC
+#define RULE_C_NE_UNS_DYN  ACC
+#define RULE_C_NE_UNS_UNS  ACC
+
+#ifdef CFA_IS_CLASSIC
+
+#define RULE_CF_EQ_STA_STA  ACC
+#define RULE_CF_EQ_STA_DYN  REJ
+#define RULE_CF_EQ_STA_UNS  REJ
+#define RULE_CF_EQ_DYN_STA  REJ
+#define RULE_CF_EQ_DYN_DYN  ACC
+#define RULE_CF_EQ_DYN_UNS  ACC
+#define RULE_CF_EQ_UNS_STA  REJ
+#define RULE_CF_EQ_UNS_DYN  ACC
+#define RULE_CF_EQ_UNS_UNS  ACC
+
+#define RULE_CF_NE_STA_STA  REJ
+#define RULE_CF_NE_STA_DYN  REJ
+#define RULE_CF_NE_STA_UNS  REJ
+#define RULE_CF_NE_DYN_STA  REJ
+#define RULE_CF_NE_DYN_DYN  ACC
+#define RULE_CF_NE_DYN_UNS  ACC
+#define RULE_CF_NE_UNS_STA  REJ
+#define RULE_CF_NE_UNS_DYN  ACC
+#define RULE_CF_NE_UNS_UNS  ACC
+
+#else
+
+#define RULE_CF_EQ_STA_STA  ACC
+#define RULE_CF_EQ_STA_DYN  REJ
+#define RULE_CF_EQ_STA_UNS  REJ
+#define RULE_CF_EQ_DYN_STA  REJ
+#define RULE_CF_EQ_DYN_DYN  ACC
+#define RULE_CF_EQ_DYN_UNS  REJ
+#define RULE_CF_EQ_UNS_STA  REJ
+#define RULE_CF_EQ_UNS_DYN  REJ
+#define RULE_CF_EQ_UNS_UNS  REJ
+
+#define RULE_CF_NE_STA_STA  REJ
+#define RULE_CF_NE_STA_DYN  REJ
+#define RULE_CF_NE_STA_UNS  REJ
+#define RULE_CF_NE_DYN_STA  REJ
+#define RULE_CF_NE_DYN_DYN  REJ
+#define RULE_CF_NE_DYN_UNS  REJ
+#define RULE_CF_NE_UNS_STA  REJ
+#define RULE_CF_NE_UNS_DYN  REJ
+#define RULE_CF_NE_UNS_UNS  REJ
+
+#endif
+
+#ifndef ARRANGEMENT__OPTIN
+#define ARRANGEMENT_PTRVAR_INIT 1
+#define ARRANGEMENT_PTRPARM_CALL 1
+#define ARRANGEMENT_PTRVAR_ASGN 1
+#define ARRANGEMENT_REFVAR_INIT 1
+#define ARRANGEMENT_REFPARM_CALL 1
+#define ARRANGEMENT_REFVAR_ASGN 1
+#define ARRANGEMENT_CALLZIP 1
+#endif
+
+#define EMIT_SKIP( ARR_NAME ) \
+    MAYPRINT( "---- " #ARR_NAME " skipped\n" )
+
+#define MAY_EMIT_ARRANGEMENT_PTRVAR_INIT( ARR_NAME ) EMIT_SKIP( ARR_NAME )
+#define MAY_EMIT_ARRANGEMENT_PTRPARM_CALL( ARR_NAME ) EMIT_SKIP( ARR_NAME )
+#define MAY_EMIT_ARRANGEMENT_PTRVAR_ASGN( ARR_NAME ) EMIT_SKIP( ARR_NAME )
+#define MAY_EMIT_ARRANGEMENT_REFVAR_INIT( ARR_NAME ) EMIT_SKIP( ARR_NAME )
+#define MAY_EMIT_ARRANGEMENT_REFPARM_CALL( ARR_NAME ) EMIT_SKIP( ARR_NAME )
+#define MAY_EMIT_ARRANGEMENT_REFVAR_ASGN( ARR_NAME ) EMIT_SKIP( ARR_NAME )
+#define MAY_EMIT_ARRANGEMENT_CALLZIP( ARR_NAME ) EMIT_SKIP( ARR_NAME )
+
+#define MAY_EMIT_1( ARR_NAME ) \
+    MAYPRINT( "---- " #ARR_NAME ":   " TRY_COMPAT_E "\n" ) \
+    RUNCASES( ARR_NAME )
+
+#ifndef CASE_MANUAL
+  #define RUNCASES( ARR_NAME ) \
+    X_CASE( LIT, LIT, EQ, ARR_NAME ) \
+    X_CASE( LIT, LIT, NE, ARR_NAME ) \
+    X_CASE( LIT, ENU, EQ, ARR_NAME ) \
+    X_CASE( LIT, ENU, NE, ARR_NAME ) \
+    X_CASE( LIT, CPR, NE, ARR_NAME ) \
+    X_CASE( LIT, MUT, NE, ARR_NAME ) \
+    X_CASE( ENU, ENU, EQ, ARR_NAME ) \
+    X_CASE( ENU, ENU, NE, ARR_NAME ) \
+    X_CASE( ENU, LIT, EQ, ARR_NAME ) \
+    X_CASE( ENU, LIT, NE, ARR_NAME ) \
+    X_CASE( ENU, CPR, NE, ARR_NAME ) \
+    X_CASE( ENU, MUT, NE, ARR_NAME ) \
+    X_CASE( CPR, CPR, EQ, ARR_NAME ) \
+    X_CASE( CPR, CPR, NE, ARR_NAME ) \
+    X_CASE( CPR, LIT, NE, ARR_NAME ) \
+    X_CASE( CPR, ENU, NE, ARR_NAME ) \
+    X_CASE( CPR, MUT, NE, ARR_NAME ) \
+    X_CASE( MUT, MUT, EQ, ARR_NAME ) \
+    X_CASE( MUT, MUT, NE, ARR_NAME ) \
+    X_CASE( MUT, LIT, NE, ARR_NAME ) \
+    X_CASE( MUT, ENU, NE, ARR_NAME ) \
+    X_CASE( MUT, CPR, NE, ARR_NAME ) \
+    RUNCASES_FORALL_N( ARR_NAME )
+
+  #ifndef SUPPRESS_FORALL_N
+  #define RUNCASES_FORALL_N( ARR_NAME ) \
+    X_CASE( LIT, DIM, NE, ARR_NAME ) \
+    X_CASE( ENU, DIM, NE, ARR_NAME ) \
+    X_CASE( CPR, DIM, NE, ARR_NAME ) \
+    X_CASE( DIM, DIM, EQ, ARR_NAME ) \
+    X_CASE( DIM, DIM, NE, ARR_NAME ) \
+    X_CASE( DIM, LIT, NE, ARR_NAME ) \
+    X_CASE( DIM, ENU, NE, ARR_NAME ) \
+    X_CASE( DIM, CPR, NE, ARR_NAME ) \
+    X_CASE( DIM, MUT, NE, ARR_NAME ) \
+    X_CASE( MUT, DIM, NE, ARR_NAME ) 
+  #else
+  #define RUNCASES_FORALL_N( ARR_NAME )
+  #endif
+
+#else
+    #ifndef CASE_FORMATION_L
+    #error CASE_FORMATION_L not specified along with CASE_MANUAL
+    #endif
+    #ifndef CASE_FORMATION_R
+    #error CASE_FORMATION_R not specified along with CASE_MANUAL
+    #endif
+    #ifndef CASE_EQUALITY
+    #error CASE_EQUALITY not specified along with CASE_MANUAL
+    #endif
+    #define RUNCASES( ARR_NAME ) X_CASE( CASE_FORMATION_L, CASE_FORMATION_R, CASE_EQUALITY, ARR_NAME )
+#endif 
+
+#define ARRANGEMENT( ARR_NAME ) CAT(MAY_EMIT_, CAT(ARRANGEMENT_, ARR_NAME)) ( ARR_NAME )
+
+
+#if defined SUPPRESS_FORALL_N
+
+    #define DECLN_runTests                   \
+        void runTests(                       \
+            const int cpr7, const int cpr42, \
+            int cmd4skip                     \
+        )
+#else
+
+    forall( [N] ) struct quicktag {};
+
+    #define DECLN_runTests                   \
+        forall( [dim7], [dim42] )            \
+        void runTests(                       \
+            const int cpr7, const int cpr42, \
+            quicktag(dim7), quicktag(dim42), \
+            int cmd4skip                     \
+        )
+#endif
+
+DECLN_runTests;
+
+int main(int argc, const char *argv[]) {
+
+    int cmd4skip = 0;
+
+    if (argc > 1 && strcmp("-cmd4skip", argv[1]) == 0) {
+        cmd4skip = 1;
+    }
+
+  #if defined SUPPRESS_FORALL_N
+    runTests(7, 42, cmd4skip);
+  #else
+    quicktag(7) tag7;
+    quicktag(42) tag42;
+    runTests(7, 42, tag7, tag42, cmd4skip);
+  #endif
+
+    return 0;
+}
