On 09/16/2011 03:55 AM, Dodji Seketeli wrote:
+    test.c: In function ‘g’:
+    test.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’)
+    test.c:2:9: note: in expansion of macro 'OPERATE'
+    test.c:5:3: note: expanded from here
+    test.c:5:14: note: in expansion of macro 'SHIFTL'
+    test.c:8:3: note: expanded from here
+    test.c:8:3: note: in expansion of macro 'MULT2'
+    test.c:13:3: note: expanded from here
+
+   The part that goes from the third to the sixth line of this
+   diagnostic (the lines containing the 'note:' string) is called the
+   unwound macro expansion trace.  That's the part generated by this
+   function.

No UTF-8 in the code, please.

Do you mean eighth rather than sixth?

+      /* If the token at RESOLVED_LOCATION [at macro definition point]
+         is itself inside an expanded macro then we keep unwinding the
+         trace by reaching the "parent macro" that got expanded inside
+         the definition of the macro of MAP...  */

This doesn't make sense to me; a macro definition can't be inside an expanded macro. Can you describe this situation better?

+  if (first_exp_point_map)
+    *first_exp_point_map = map;
+
+  /* Walk LOC_VEC and print the macro expansion trace, unless the
+     first macro which expansion triggered this trace was expanded
+     inside a system header.  */
+  if (!LINEMAP_SYSP (resolved_map))

Should the SYSP check use "map" rather than "resolved_map"?

Jason

Reply via email to