Skip to content

[clang++] Worse diagnostics and no fixit for misspelled variable since version 21 #162525

@vedgy

Description

@vedgy

For the following C++ code

class C{ int someVariable; };
int main() { C c; c.someVariablf = 1; }

Clang 20.1.8 or earlier prints:

<source>:2:21: error: no member named 'someVariablf' in 'C'; did you mean 'someVariable'?
    2 | int main() { C c; c.someVariablf = 1; }
      |                     ^~~~~~~~~~~~
      |                     someVariable
<source>:1:14: note: 'someVariable' declared here
    1 | class C{ int someVariable; };
      |              ^
1 error generated.
Compiler returned: 1

Clang 21.1.0 or later prints less useful info:

<source>:2:21: error: no member named 'someVariablf' in 'C'
    2 | int main() { C c; c.someVariablf = 1; }
      |                   ~ ^
1 error generated.
Compiler returned: 1

Compiler explorer link

Metadata

Metadata

Assignees

No one assigned

    Labels

    clang:diagnosticsNew/improved warning or error message in Clang, but not in clang-tidy or static analyzer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions