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: [email protected]
          Reporter: [email protected]
                CC: [email protected]

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.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to