[llvm-bugs] [Bug 43639] New: Assertion failure: matchesNodeFullFast doesn't match matchesNodeFullSlow

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Oct 10 09:13:25 PDT 2019


https://bugs.llvm.org/show_bug.cgi?id=43639

            Bug ID: 43639
           Summary: Assertion failure: matchesNodeFullFast doesn't match
                    matchesNodeFullSlow
           Product: clang
           Version: 8.0
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Tooling
          Assignee: unassignedclangbugs at nondot.org
          Reporter: kpreisert at gmail.com
                CC: llvm-bugs at lists.llvm.org

The following code triggers the assertion "matchesNodeFullFast(Node) ==
matchesNodeFullSlow(Node)" in HasNameMatcher::matchesNode (part of the AST
matcher infrastructure) when matching the name "::hostent":

void func() {
  struct hostent* s;
}


matchesNodeFullFast says that it's not a match, matchesNodeFullSlow says that
it's a match. The problem seems to be that forward declaring "hostent" inside a
function leads to some weird condition. I couldn't figure out any more details.
It doesn't happen if the struct is named differently, but I'm not sure what's
special about "hostent".

I was only able to test this with 8.0.0, maybe someone can confirm if this
still occurs in later versions.


Note that I previously reported a related bug where the same assertion fires:
https://bugs.llvm.org/show_bug.cgi?id=42193

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20191010/c1c88cc5/attachment.html>


More information about the llvm-bugs mailing list