macro.c (enter_macro_context): Call cb.used callback if defined.

	* macro.c (enter_macro_context): Call cb.used callback if defined.
	* directives.c (do_idef, do_ifndef): Ditto.
	* include/cpplib.h (struct cpp_callbacks): Add used callback.

From-SVN: r154359
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index e95f01a..6175bbc 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -508,6 +508,9 @@
   /* Called before #define and #undef or other macro definition
      changes are processed.  */
   void (*before_define) (cpp_reader *);
+  /* Called whenever a macro is expanded or tested.
+     Second argument is the location of the start of the current expansion.  */
+  void (*used) (cpp_reader *, source_location, cpp_hashnode *);
 };
 
 #ifdef VMS