[cfe-dev] Invalid assert in lib/Sema/Lookup.h ?

Eli Friedman eli.friedman at gmail.com
Mon Aug 9 12:53:49 PDT 2010


On Mon, Aug 9, 2010 at 12:42 AM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Mon, Aug 9, 2010 at 12:34 AM, Eli Friedman <eli.friedman at gmail.com> wrote:
>> On Mon, Aug 9, 2010 at 12:17 AM, EI <geneing at gmail.com> wrote:
>>> Hello,
>>> What is the meaning of this assert statement in Lookup.h?
>>>   void setNotFoundInCurrentInstantiation() {
>>>     assert(ResultKind == NotFound && Decls.empty());
>>>     ResultKind = NotFoundInCurrentInstantiation;
>>>   }
>>> I saw assert failing when compiling some code that includes Qt headers. I
>>> think the code I was compiling was actually missing some class definitions,
>>> so I was expecting to see an error - not a failing assert. Btw, in the
>>> debugger I see that ResultKind == NotFoundInCurrentInstantiation when assert
>>> statement is reached.
>>
>> It roughly means that the caller thinks nothing was found when
>> something actually was found.  It's hard to say more without more
>> information; can you provide a preprocessed file which reproduces the
>> issue, or at least a backtrace?
>
> Erm, wait, actually, what's most likely happening is that
> LookupQualifiedName is getting called multiple times and failing...
> random guess: does -fno-spell-checking help?

Umm, actually, I just realized we already have a bug filed for this;
see http://llvm.org/bugs/show_bug.cgi?id=7625 .

-Eli




More information about the cfe-dev mailing list