Skip to content
  • Richard Smith's avatar
    Fix -Wmismatched-tags to not warn on redeclarations of structs in system · a4ca4ca2
    Richard Smith authored
    headers.
    
    Previously, we would only check whether the new declaration is in a
    system header, but that requires the user to be able to correctly guess
    whether a declaration in a system header is declared as a struct or a
    class when specializing standard library traits templates.
    
    We now entirely ignore declarations for which the warning was disabled
    when determining whether to warn on a tag mismatch.
    
    Also extend the diagnostic message to clarify that
     a) code containing such a tag mismatch is in fact valid and correct,
        and
     b) the (non-coding-style) reason to emit such a warning is that the
        Microsoft C++ ABI is broken and includes the tag kind in decorated
        names,
    as it seems a lot of users are confused by our diagnostic here (either
    not understanding why we produce it, or believing that it represents an
    actual language rule).
    
    llvm-svn: 348233
    a4ca4ca2
Loading