Il 30/01/2013 19:55, Argyrios Kyrtzidis ha scritto: > Author: akirtzidis > Date: Wed Jan 30 12:55:52 2013 > New Revision: 173952 > > URL: http://llvm.org/viewvc/llvm-project?rev=173952&view=rev > Log: > [preprocessor] Don't warn about "disabled expansion of recursive macro" > for "#define X X". > > This is a pattern that, for example, stdbool.h uses. > rdar://12435773
Please revert this commit: this has already been discussed in detail in past and we decided otherwise. Last time it has been discussed in this thread: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20121029/067098.html > > Modified: > cfe/trunk/lib/Lex/PPMacroExpansion.cpp > cfe/trunk/test/Headers/stdbool.cpp > cfe/trunk/test/Preprocessor/warn-disabled-macro-expansion.c > > Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPMacroExpansion.cpp?rev=173952&r1=173951&r2=173952&view=diff > ============================================================================== > --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original) > +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Wed Jan 30 12:55:52 2013 > @@ -459,7 +459,10 @@ bool Preprocessor::HandleMacroExpandedId > if (MacroInfo *NewMI = getMacroInfo(NewII)) > if (!NewMI->isEnabled() || NewMI == MI) { > Identifier.setFlag(Token::DisableExpand); > - Diag(Identifier, diag::pp_disabled_macro_expansion); > + // Don't warn for "#define X X" like "#define bool bool" from > + // stdbool.h. Would you be so kind to add a comment here to remember that the choice to have this warning for thar case (although disabled by default) is deliberate? > + if (NewMI != MI) > + Diag(Identifier, diag::pp_disabled_macro_expansion); > } > } > > > Modified: cfe/trunk/test/Headers/stdbool.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/stdbool.cpp?rev=173952&r1=173951&r2=173952&view=diff > ============================================================================== > --- cfe/trunk/test/Headers/stdbool.cpp (original) > +++ cfe/trunk/test/Headers/stdbool.cpp Wed Jan 30 12:55:52 2013 > @@ -1,5 +1,6 @@ > // RUN: %clang_cc1 -E -dM %s | FileCheck --check-prefix=CHECK-GNU-COMPAT %s > // RUN: %clang_cc1 -std=c++98 -E -dM %s | FileCheck > --check-prefix=CHECK-CONFORMING %s > +// RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -verify -Weverything %s > #include <stdbool.h> > #define zzz > > @@ -12,3 +13,7 @@ > // CHECK-CONFORMING: #define __CHAR_BIT__ > // CHECK-CONFORMING-NOT: #define false false > // CHECK-CONFORMING: #define zzz > + > +zzz > +// expected-no-diagnostics > +extern bool x; > > Modified: cfe/trunk/test/Preprocessor/warn-disabled-macro-expansion.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/warn-disabled-macro-expansion.c?rev=173952&r1=173951&r2=173952&view=diff > ============================================================================== > --- cfe/trunk/test/Preprocessor/warn-disabled-macro-expansion.c (original) > +++ cfe/trunk/test/Preprocessor/warn-disabled-macro-expansion.c Wed Jan 30 > 12:55:52 2013 > @@ -16,7 +16,7 @@ > > #define z(x) (z)(x) > > -p // expected-warning {{recursive macro}} > +p // no warning > > a // expected-warning {{recursive macro}} > > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > -- Abramo Bagnara Opera Unica Phone: +39.0546.656023 Via Borghesi, 16 48014 Castel Bolognese (RA) - Italy _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
