Index: src/AST/Pass.hpp
===================================================================
--- src/AST/Pass.hpp	(revision 68fe946e006a1a1e8a3f5cf67cb63ea8c6d9550c)
+++ src/AST/Pass.hpp	(revision 148ba7db13b460887b44c7b4d5650468809e8218)
@@ -348,9 +348,11 @@
 
 	/// When this node is finished being visited, restore the value of a variable
+	/// You may assign to the return value to set the new value in the same statement.
 	template< typename T >
-	void GuardValue( T& val ) {
+	T& GuardValue( T& val ) {
 		at_cleanup( [ val ]( void * newVal ) {
 			* static_cast< T * >( newVal ) = val;
 		}, static_cast< void * >( & val ) );
+		return val;
 	}
 
