Index: src/SynTree/AddressExpr.cc
===================================================================
--- src/SynTree/AddressExpr.cc	(revision a1099278b23a4c1041d99bc51d4ca353d251adc4)
+++ src/SynTree/AddressExpr.cc	(revision be30a90e535d46200414e55c3556dce1615e449c)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Sun May 17 23:54:44 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Tue Apr 26 12:35:13 2016
-// Update Count     : 6
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Feb 28 13:13:38 2019
+// Update Count     : 10
 //
 
@@ -47,6 +47,9 @@
 		} else {
 			// taking address of non-lvalue -- must be a reference, loses one layer of reference
-			ReferenceType * refType = strict_dynamic_cast< ReferenceType * >( arg->result );
-			set_result( addrType( refType->base ) );
+			if ( ReferenceType * refType = dynamic_cast< ReferenceType * >( arg->result ) ) {
+				set_result( addrType( refType->base ) );
+			} else {
+				SemanticError( arg->result, "Attempt to take address of non-lvalue expression: " );
+			} // if
 		}
 		// result of & is never an lvalue
