diff macro.c @ 84:7e4723d34248

Complain only about non-identical redefinitions of macros.
author David A. Holland
date Mon, 10 Jun 2013 21:34:59 -0400
parents bbbf71859a21
children c91dc1315745
line wrap: on
line diff
--- a/macro.c	Mon Jun 10 21:33:31 2013 -0400
+++ b/macro.c	Mon Jun 10 21:34:59 2013 -0400
@@ -445,18 +445,25 @@
 	if (oldm != NULL) {
 		ok = macro_eq(m, oldm);
 		if (ok) {
+			/* in traditional cpp this is silent */
+			//complain(&m->defplace,
+			//	 "Warning: redefinition of %s", m->name);
+			//complain(&oldm->defplace,
+			//	 "Previous definition was here");
+			//if (mode.werror) {
+			//	complain_fail();
+			//}
+		} else {
 			complain(&m->defplace,
-				 "Warning: redefinition of %s", m->name);
+				 "Warning: non-identical redefinition of %s",
+				 m->name);
+			complain(&oldm->defplace,
+				 "Previous definition was here");
+			/* in traditional cpp this is not fatal */
 			if (mode.werror) {
 				complain_fail();
 			}
-		} else {
-			complain(&m->defplace,
-				 "Redefinition of %s is not identical",
-				 m->name);
-			complain_fail();
 		}
-		complain(&oldm->defplace, "Previous definition was here");
 		macro_destroy(m);
 		return;
 	}