Index: tests/raii/.expect/ctor-autogen-ERR1.txt
===================================================================
--- tests/raii/.expect/ctor-autogen-ERR1.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
+++ tests/raii/.expect/ctor-autogen-ERR1.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
@@ -0,0 +1,56 @@
+raii/ctor-autogen.c:102:1 error: Unique best alternative includes deleted identifier in Cast of:
+  Application of
+    Deleted Expression
+      Variable Expression: ?{}: static inline function
+      ... with parameters
+        _dst: reference to instance of struct Managed with body 1 
+        x: signed int
+      ... returning nothing 
+
+      ... deleted by: ?{}: function
+      ... with parameters
+        m: reference to instance of struct Managed with body 1 
+      ... returning nothing 
+      ... with body 
+        CompoundStmt
+          Expression Statement:
+            Application of
+              Variable Expression: ?=?: function
+              ... with parameters
+                intrinsic reference to signed int
+                intrinsic signed int
+              ... returning 
+                _retval__operator_assign: signed int
+                ... with attributes: 
+                  Attribute with name: unused
+
+
+            ... to arguments
+              Cast of:
+                Member Expression, with field: 
+                  x: signed int
+                ... from aggregate: 
+                  Cast of:
+                    Variable Expression: m: reference to instance of struct Managed with body 1 
+                  ... to:
+                    instance of struct Managed with body 1 
+              ... to:
+                reference to signed int
+              Cast of:
+                constant expression (0 0: zero_t)
+              ... to:
+                signed int
+
+            ... with environment:
+              Types:
+              Non-types:
+
+
+  ... to arguments
+    Cast of:
+      Variable Expression: x: instance of struct Managed with body 1 
+    ... to:
+      reference to instance of struct Managed with body 1 
+    constant expression (123 123: signed int)
+
+... to: nothing
Index: tests/raii/.expect/dtor-early-exit-ERR1.txt
===================================================================
--- tests/raii/.expect/dtor-early-exit-ERR1.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
+++ tests/raii/.expect/dtor-early-exit-ERR1.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
@@ -0,0 +1,4 @@
+raii/dtor-early-exit.c:153:1 error: jump to label 'L1' crosses initialization of y Branch (Goto)
+  with target: L1
+  with original target: L1
+
Index: tests/raii/.expect/dtor-early-exit-ERR2.txt
===================================================================
--- tests/raii/.expect/dtor-early-exit-ERR2.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
+++ tests/raii/.expect/dtor-early-exit-ERR2.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
@@ -0,0 +1,4 @@
+raii/dtor-early-exit.c:217:1 error: jump to label 'L2' crosses initialization of y Branch (Goto)
+  with target: L2
+  with original target: L2
+
Index: tests/raii/.expect/dtor-early-exit.txt
===================================================================
--- tests/raii/.expect/dtor-early-exit.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
+++ tests/raii/.expect/dtor-early-exit.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
@@ -0,0 +1,220 @@
+f i=0
+construct x
+construct y
+construct z
+destruct z
+destruct y
+destruct x
+f i=1
+construct x
+construct y
+construct z
+destruct z
+destruct y
+destruct x
+f i=2
+construct x
+construct y
+construct z
+destruct z
+destruct y
+destruct x
+f i=3
+construct x
+construct y
+construct z
+destruct z
+destruct y
+destruct x
+
+g for i=0
+construct x
+destruct x
+g for i=1
+construct x
+destruct x
+g for i=2
+construct x
+destruct x
+g for i=3
+construct x
+destruct x
+g for i=4
+construct x
+destruct x
+g for i=5
+construct x
+destruct x
+g for i=6
+construct x
+destruct x
+g for i=7
+construct x
+destruct x
+g for i=8
+construct x
+destruct x
+g for i=9
+construct x
+destruct x
+
+g while i=0
+construct x
+destruct x
+g while i=1
+construct x
+destruct x
+g while i=2
+construct x
+destruct x
+g while i=3
+construct x
+destruct x
+g while i=4
+construct x
+destruct x
+g while i=5
+construct x
+destruct x
+g while i=6
+construct x
+destruct x
+g while i=7
+construct x
+destruct x
+g while i=8
+construct x
+destruct x
+g while i=9
+construct x
+destruct x
+
+construct y
+g switch i=0
+destruct y
+construct y
+g switch i=1
+destruct y
+construct y
+g switch i=2
+destruct y
+construct y
+g switch i=3
+destruct y
+construct y
+g switch i=4
+destruct y
+construct y
+g switch i=5
+destruct y
+construct y
+g switch i=6
+destruct y
+construct y
+g switch i=7
+destruct y
+construct y
+g switch i=8
+destruct y
+construct y
+g switch i=9
+destruct y
+
+g for k=0
+g for i=0
+construct x
+g for j=0
+construct y
+continue L2
+destruct y
+g for j=1
+construct y
+break L2
+destruct y
+destruct x
+g for i=1
+construct x
+g for j=0
+construct y
+continue L2
+destruct y
+g for j=1
+construct y
+break L2
+destruct y
+destruct x
+g for i=2
+construct x
+continue L1
+destruct x
+g for i=3
+construct x
+break L1
+destruct x
+g for k=1
+g for i=0
+construct x
+g for j=0
+construct y
+continue L2
+destruct y
+g for j=1
+construct y
+break L2
+destruct y
+destruct x
+g for i=1
+construct x
+g for j=0
+construct y
+continue L2
+destruct y
+g for j=1
+construct y
+break L2
+destruct y
+destruct x
+g for i=2
+construct x
+continue L1
+destruct x
+g for i=3
+construct x
+break L1
+destruct x
+
+construct w
+construct v
+break L3
+destruct v
+destruct w
+
+h
+construct y
+L1
+construct x
+L2
+goto L1
+destruct x
+L1
+construct x
+L2
+goto L2
+L2
+goto L3
+L3
+goto L2-2
+L2
+goto L4
+destruct x
+destruct y
+L4
+goto L0
+construct y
+L1
+construct x
+L2
+goto L4
+destruct x
+destruct y
+L4
Index: tests/raii/.expect/globals.txt
===================================================================
--- tests/raii/.expect/globals.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
+++ tests/raii/.expect/globals.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
@@ -0,0 +1,9 @@
+static		inline		autogen		value
+no 		no 		no 		22
+no 		no 		yes		22
+no 		yes		no 		22
+no 		yes		yes		22
+yes		no 		no 		22
+yes		no 		yes		22
+yes		yes		no 		22
+yes		yes		yes		22
Index: tests/raii/.expect/memberCtors-ERR1.txt
===================================================================
--- tests/raii/.expect/memberCtors-ERR1.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
+++ tests/raii/.expect/memberCtors-ERR1.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
@@ -0,0 +1,1 @@
+raii/memberCtors.c:71:1 error: in void ?{}(B &b), field a2 used before being constructed
Index: tests/raii/.expect/memberCtors.txt
===================================================================
--- tests/raii/.expect/memberCtors.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
+++ tests/raii/.expect/memberCtors.txt	(revision bf71cfdb7285490eee552b461158846f626cc52f)
@@ -0,0 +1,213 @@
+Before declaration of b1
+constructing int
+constructing int
+constructing int
+constructing int
+constructing int
+constructing int
+begin construct B
+assign b.a2
+constructing int
+constructing int
+begin construct A
+construct a.x
+constructing int: 1001
+assign a.y
+assigning int: 0 0
+end construct A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 1001
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+begin ?=? A
+copy constructing int: 1001
+destructing int: 1001
+destructing int: 1001
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end ?=? A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 1001
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+destructing int: 0
+destructing int: 0
+destructing int: 1001
+destructing int: 0
+destructing int: 0
+destructing int: 1001
+construct b.a1
+constructing int
+constructing int
+begin construct A
+construct a.x
+constructing int: 1000
+assign a.y
+assigning int: 0 0
+end construct A
+end construct B
+destructing int: 0
+destructing int: 0
+destructing int: 1001
+Before declaration of b2
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 1000
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 1001
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 0
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+End of main
+constructing int
+constructing int
+begin construct A
+construct a.x
+constructing int: 999
+assign a.y
+assigning int: 0 0
+end construct A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 999
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+begin ?=? A
+copy constructing int: 999
+destructing int: 999
+destructing int: 999
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end ?=? A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 999
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+destructing int: 0
+destructing int: 0
+destructing int: 999
+destructing int: 0
+destructing int: 0
+destructing int: 999
+destructing int: 0
+destructing int: 0
+destructing int: 1000
+destructing int: 0
+destructing int: 0
+destructing int: 999
+destructing int: 0
+destructing int: 0
+destructing int: 0
+destructing int: 0
+destructing int: 0
+destructing int: 999
+constructing int
+constructing int
+begin construct A
+construct a.x
+constructing int: 999
+assign a.y
+assigning int: 0 0
+end construct A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 999
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+begin ?=? A
+copy constructing int: 999
+destructing int: 999
+destructing int: 999
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end ?=? A
+copy constructing int: 0
+copy constructing int: 0
+begin copy construct A
+copy construct this.x
+copy constructing int: 999
+assign this.y
+copy constructing int: 0
+destructing int: 0
+destructing int: 0
+end copy construct A
+destructing int: 0
+destructing int: 0
+destructing int: 999
+destructing int: 0
+destructing int: 0
+destructing int: 999
+destructing int: 0
+destructing int: 0
+destructing int: 1000
+destructing int: 0
+destructing int: 0
+destructing int: 999
+destructing int: 0
+destructing int: 0
+destructing int: 0
+destructing int: 0
+destructing int: 0
+destructing int: 999
