[llvm] r231214 - Revert "[ADT] fail-fast iterators for DenseMap"

Zachary Turner zturner at google.com
Wed Mar 4 14:51:42 PST 2015


I see.  Yea, that makes sense.

On Wed, Mar 4, 2015 at 2:43 PM Sanjoy Das <sanjoy at playingwithpointers.com>
wrote:

> The problem is that lldb explicitly #defines and #undefs NDEBUG before
> including clang/llvm headers, and it does so inconsistently.  From my
> earlier mail:
>
> '''
> As an example, ClangASTType.h will include clang headers without
> #defining NDEBUG while ClangExternalASTSourceCommon.h will include
> clang headers *after* #defining NDEBUG.
> '''
>
> So you can end up with a copy of InsertIntoBucketImpl compiled with
> NDEBUG set in one TU and without NDEBUG set in another TU.  If a call
> to InsertIntoBucketImpl in the latter gets linked to the definition of
> InsertIntoBucketImplin the former, then you're in trouble.  This is
> what is happening, as far as I can tell.
>
> Did I understand your question correctly?
>
> -- Sanjoy
>
> On Wed, Mar 4, 2015 at 2:35 PM, Zachary Turner <zturner at google.com> wrote:
> > I'm still a little confused about why I was getting the same issue on
> > Windows.  I can understand if someone uses LLVM as a library and they
> use,
> > for example, a release version of clang/llvm but a debug version of LLDB.
> > But I didn't do that.  I build LLDB the same way anyone else builds
> clang or
> > any other subproejct.  I use CMake with -DCMAKE_BUILD_TYPE=Debug, then
> run
> > ninja, and that's it.  So I should have the same value of NDEBUG for both
> > projects, and still I was getting the error.
> >
> > On Wed, Mar 4, 2015 at 2:29 PM Sanjoy Das <sanjoy at playingwithpointers.
> com>
> > wrote:
> >>
> >> > A separate define seems like the best we can do. The downside is that
> we
> >> > can't turn this on by default in a standard +Asserts build, or we've
> >> > just
> >> > moved the ABI incompatibility problem to a different define.
> >>
> >> This may be the most practical solution so far, but I dislike it
> >> because it means a default +Asserts build won't get the kind of
> >> verification it can and should.
> >>
> >> -- Sanjoy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150304/f1863da0/attachment.html>


More information about the llvm-commits mailing list