[PATCH] D130894: [clang] Print more information about failed static assertions
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 11 04:47:15 PDT 2022
aaron.ballman added a comment.
In D130894#3715143 <https://reviews.llvm.org/D130894#3715143>, @xbolva00 wrote:
> 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
I pushed up a change to "fix" this, but I believe GCC is wrong to give an error here. At least, nobody else gives one and GCC is inconsistent about what it diagnoses: https://godbolt.org/z/hTqM8MPch
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