Index: src/tests/Makefile.am
===================================================================
--- src/tests/Makefile.am	(revision ea46db7297c45707f04194d6fafa0612eaa4f569)
+++ src/tests/Makefile.am	(revision 14a3dad2e0f2e2f5519af8bee19bdacdbf8b5091)
@@ -123,5 +123,5 @@
 	${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
 
+# Warnings
 warnings/self-assignment: warnings/self-assignment.c @CFA_BINDIR@/@CFA_NAME@
-	${CC} ${AM_CFLAGS} ${CFLAGS} ${<} -o ${@}
-	echo > ${@}
+	${CC} ${AM_CFLAGS} ${CFLAGS} ${<} 2> ${@} -fsyntax-only
Index: src/tests/Makefile.in
===================================================================
--- src/tests/Makefile.in	(revision ea46db7297c45707f04194d6fafa0612eaa4f569)
+++ src/tests/Makefile.in	(revision 14a3dad2e0f2e2f5519af8bee19bdacdbf8b5091)
@@ -800,7 +800,7 @@
 	${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}
 
+# Warnings
 warnings/self-assignment: warnings/self-assignment.c @CFA_BINDIR@/@CFA_NAME@
-	${CC} ${AM_CFLAGS} ${CFLAGS} ${<} -o ${@}
-	echo > ${@}
+	${CC} ${AM_CFLAGS} ${CFLAGS} ${<} 2> ${@} -fsyntax-only
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
Index: src/tests/warnings/.expect/self-assignment.txt
===================================================================
--- src/tests/warnings/.expect/self-assignment.txt	(revision ea46db7297c45707f04194d6fafa0612eaa4f569)
+++ src/tests/warnings/.expect/self-assignment.txt	(revision 14a3dad2e0f2e2f5519af8bee19bdacdbf8b5091)
@@ -0,0 +1,25 @@
+warnings/self-assignment.c:29:1 warning: self assignment of expression: Cast of:
+  Variable Expression: j: signed int
+... to:
+  reference to signed int
+warnings/self-assignment.c:30:1 warning: self assignment of expression: Cast of:
+  Variable Expression: s: instance of struct S with body 1 
+... to:
+  reference to instance of struct S with body 1 
+warnings/self-assignment.c:31:1 warning: self assignment of expression: Cast of:
+  Member Expression, with field: 
+    i: signed int
+  ... from aggregate: 
+    Variable Expression: s: instance of struct S with body 1 
+... to:
+  reference to signed int
+warnings/self-assignment.c:32:1 warning: self assignment of expression: Cast of:
+  Member Expression, with field: 
+    i: signed int
+  ... from aggregate: 
+    Member Expression, with field: 
+      s: instance of struct S with body 1 
+    ... from aggregate: 
+      Variable Expression: t: instance of struct T with body 1 
+... to:
+  reference to signed int
