[PATCH] D130894: [clang] Print more information about failed static assertions

Dávid Bolvanský via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 11 00:15:57 PDT 2022


xbolva00 added a comment.

In D130894#3715124 <https://reviews.llvm.org/D130894#3715124>, @mstorsjo wrote:

> This broke building with GCC (also noted by buildbot mails):
>
>   ../tools/clang/lib/Sema/SemaDeclCXX.cpp: In member function ‘void clang::Sema::DiagnoseStaticAssertDetails(const clang::Expr*)’:
>   ../tools/clang/lib/Sema/SemaDeclCXX.cpp:16666:19: error: declaration of ‘const clang::Expr* clang::Sema::DiagnoseStaticAssertDetails(const clang::Expr*)::<unnamed struct>::Expr’ changes meaning of ‘Expr’ [-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: ‘Expr’ declared here as ‘class clang::Expr’
>     109 | class Expr : public ValueStmt {
>         |       ^~~~

It is kinda bad that GCC throws an error and Clang does not even print a warning.

How is it even possible? Clang does not implement strict(er) rules ? @aaron.ballman


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130894/new/

https://reviews.llvm.org/D130894



More information about the cfe-commits mailing list