Do not use the same identifier for a data member as a type; NFC
authorAaron Ballman <aaron@aaronballman.com>
Thu, 11 Aug 2022 11:32:32 +0000 (07:32 -0400)
committerAaron Ballman <aaron@aaronballman.com>
Thu, 11 Aug 2022 11:32:32 +0000 (07:32 -0400)
This should help address a build failure found after
09117b21890c652994f7ada0229d309b35b44259

../tools/clang/lib/Sema/SemaDeclCXX.cpp: In member function \91void clang::Sema::DiagnoseStaticAssertDetails(const clang::Expr*)\92:
../tools/clang/lib/Sema/SemaDeclCXX.cpp:16666:19: error: declaration of \91const clang::Expr* clang::Sema::DiagnoseStaticAssertDetails(const clang::Expr*)::<unnamed struct>::Expr\92 changes meaning of \91Expr\92 [-fpermissive]
16666 |       const Expr *Expr;
      |                   ^~~~
In file included from ../tools/clang/include/clang/AST/DeclCXX.h:22,
                 from ../tools/clang/include/clang/AST/ASTLambda.h:18,
                 from ../tools/clang/lib/Sema/SemaDeclCXX.cpp:15:
../tools/clang/include/clang/AST/Expr.h:109:7: note: \91Expr\92 declared here as \91class clang::Expr\92
  109 | class Expr : public ValueStmt {
      |       ^~~~

clang/lib/Sema/SemaDeclCXX.cpp

index 13eb9ac..ab3af12 100644 (file)
@@ -16663,14 +16663,14 @@ void Sema::DiagnoseStaticAssertDetails(const Expr *E) {
       return;
 
     struct {
-      const clang::Expr *Expr;
+      const clang::Expr *Cond;
       Expr::EvalResult Result;
       SmallString<12> ValueString;
       bool Print;
     } DiagSide[2] = {{LHS, Expr::EvalResult(), {}, false},
                      {RHS, Expr::EvalResult(), {}, false}};
     for (unsigned I = 0; I < 2; I++) {
-      const Expr *Side = DiagSide[I].Expr;
+      const Expr *Side = DiagSide[I].Cond;
 
       Side->EvaluateAsRValue(DiagSide[I].Result, Context, true);