[PATCH] D38406: [dump] Remove NDEBUG from test to enable dump methods [NFC]
Matthias Braun via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 29 11:01:39 PDT 2017
MatzeB added a comment.
I like this change.
In https://reviews.llvm.org/D38406#884686, @hintonda wrote:
> While `#ifdef LLVM_ENABLE_DUMP` is arguably better than `#ifndef NDEBUG`, it's still problematic if we extend this to declarations in headers. Some headers that declare `void dump() const`, don't include any headers, so they won't `#ifdef` away the declaration which would have helped catch the problem at compile-time.
To put it differently: Your concern is that someone uses `#ifdef LLVM_ENABLE_DUMP` but forgets the `#include "llvm/Config/llvm-config.h"`?
> To fix this, we could test for a value instead of just definition, i.e., `#if LLVM_ENABLE_DUMP`, or even `#if LLVM_ENABLE_DUMP > [some value]`.
I'm not convinced that helps all that much (not that it is a problem either though).
You would expect to see compile problems when implementing the dump() function if llvm-config.h wasn't present in the header. It's also customary to include "foo.h" as first thing in "foo.cpp" so we have at least 1 file where we only have a no other headers included before "foo.h".
So I'd lean towards staying with `#ifdef LLVM_ENABLE_DUMP` as that is a more common idiom which avoids the other failure case where someone does `#ifdef XXX` working anyway even though XXX was defined to 0.
(No strong opinion from my side though so if others disagree I can be convinced to use this style).
https://reviews.llvm.org/D38406
More information about the llvm-commits
mailing list