OSDN Git Service

* cpp.texi (poison): Explain the macro expansion exception.
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Mar 2001 13:29:40 +0000 (13:29 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Mar 2001 13:29:40 +0000 (13:29 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40438 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cpp.texi

index 6bde0bc..b18f273 100644 (file)
@@ -1,3 +1,7 @@
+2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * cpp.texi (poison): Explain the macro expansion exception.
+
 2001-03-13  Jakub Jelinek  <jakub@redhat.com>
 
        * expr.c (store_expr): Add dont_store_target.  If temp is already in
index 8bfa8c4..57da933 100644 (file)
@@ -1601,6 +1601,22 @@ sprintf(some_string, "hello");
 @noindent
 will produce an error.
 
+Note, if the poisoned identifier appears through the result of macro
+expansion it @emph{won't} cause an error.  So if you poison an
+identifier you need not worry about system headers defining macros that
+use it.
+
+For example,
+
+@example
+#define strrchr rindex
+#pragma GCC poison rindex
+strrchr(some_string, 'h');
+@end example
+
+@noindent
+will not produce an error.
+
 @node Macro Pitfalls,, Poisoning, Macros
 @subsection Pitfalls and Subtleties of Macros
 @cindex problems with macros