Mercurial > hg > CbC > CbC_gcc
diff gcc/doc/cppinternals.texi @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/doc/cppinternals.texi Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/doc/cppinternals.texi Fri Oct 27 22:46:09 2017 +0900 @@ -18,8 +18,7 @@ @ifinfo This file documents the internals of the GNU C Preprocessor. -Copyright 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software -Foundation, Inc. +Copyright (C) 2000-2017 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -48,8 +47,7 @@ @page @vskip 0pt plus 1filll @c man begin COPYRIGHT -Copyright @copyright{} 2000, 2001, 2002, 2004, 2005 -Free Software Foundation, Inc. +Copyright @copyright{} 2000-2017 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -205,7 +203,7 @@ The C standard also specifies that a new line in the middle of the arguments to a macro is treated as whitespace. This white space is -important in case the macro argument is stringified. The state variable +important in case the macro argument is stringized. The state variable @code{parsing_args} is nonzero when the preprocessor is collecting the arguments to a macro call. It is set to 1 when looking for the opening parenthesis to a function-like macro, and 2 when collecting the actual @@ -376,7 +374,7 @@ remain valid. However, macros are a little trickier than that, since they give rise to three sources of fresh tokens. They are the built-in macros like @code{__LINE__}, and the @samp{#} and @samp{##} operators -for stringification and token pasting. I handled this by allocating +for stringizing and token pasting. I handled this by allocating space for these tokens from the lexer's token run chain. This means they automatically receive the same lifetime guarantees as lexed tokens, and we don't need to concern ourselves with freeing them. @@ -480,7 +478,7 @@ I strongly recommend you have a good grasp of how the C and C++ standards require macros to be expanded before diving into this section, let alone the code!. If you don't have a clear mental -picture of how things like nested macro expansion, stringification and +picture of how things like nested macro expansion, stringizing and token pasting are supposed to work, damage to your sanity can quickly result. @@ -746,7 +744,7 @@ carries source token @samp{foo} with no leading space. It is vital that cpplib get spacing correct in these examples since any -of these macro expansions could be stringified, where spacing matters. +of these macro expansions could be stringized, where spacing matters. So, this demonstrates that not just entering macro and argument expansions, but leaving them requires special handling too. I made