On Thu, Mar 8, 2012 at 11:08 AM, Matthieu Monrocq <[email protected]> wrote: > > > Le 8 mars 2012 02:43, Daniel Dunbar <[email protected]> a écrit : > >> Author: ddunbar >> Date: Wed Mar 7 19:43:06 2012 >> New Revision: 152279 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=152279&view=rev >> Log: >> Sema: Don't emit a gajillion calls to sanity() -- an empty function -- in >> NDEBUG >> builds. Sheesh. >> >> Modified: >> cfe/trunk/include/clang/Sema/Lookup.h >> cfe/trunk/lib/Sema/SemaLookup.cpp >> >> Modified: cfe/trunk/include/clang/Sema/Lookup.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Lookup.h?rev=152279&r1=152278&r2=152279&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang/Sema/Lookup.h (original) >> +++ cfe/trunk/include/clang/Sema/Lookup.h Wed Mar 7 19:43:06 2012 >> @@ -600,7 +600,13 @@ >> void configure(); >> >> // Sanity checks. >> - void sanity() const; >> + void sanityImpl() const; >> + >> + void sanity() const { >> +#ifndef NDEBUG >> + sanityImpl(); >> +#endif >> + } >> >> bool sanityCheckUnresolved() const { >> for (iterator I = begin(), E = end(); I != E; ++I) >> >> Modified: cfe/trunk/lib/Sema/SemaLookup.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLookup.cpp?rev=152279&r1=152278&r2=152279&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/Sema/SemaLookup.cpp (original) >> +++ cfe/trunk/lib/Sema/SemaLookup.cpp Wed Mar 7 19:43:06 2012 >> @@ -302,7 +302,9 @@ >> } >> } >> >> -void LookupResult::sanity() const { >> +void LookupResult::sanityImpl() const { >> + // Note that this function is never called by NDEBUG builds. See >> + // LookupResult::sanity(). >> assert(ResultKind != NotFound || Decls.size() == 0); >> assert(ResultKind != Found || Decls.size() == 1); >> assert(ResultKind != FoundOverloaded || Decls.size() > 1 || >> >> > Since sanityImpl is only ever useful in NDEBUG builds, it could be useful to > #ifdef both its declaration and definition with NDEBUG, would not it ?
I don't like changing the external API based on NDEBUG or not. - Daniel > -- Matthieu > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
