HerrCai0907 updated this revision to Diff 518915. HerrCai0907 added a comment.
fix in `Sema::BuildArrayType` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D149612/new/ https://reviews.llvm.org/D149612 Files: clang/docs/ReleaseNotes.rst clang/lib/Sema/SemaType.cpp clang/test/Sema/merge-decls.c Index: clang/test/Sema/merge-decls.c =================================================================== --- clang/test/Sema/merge-decls.c +++ clang/test/Sema/merge-decls.c @@ -91,3 +91,7 @@ int x[5]; test7_f(&x); // expected-warning {{incompatible pointer types passing 'int (*)[5]' to parameter of type 'int (*)[10]}} } + +char d; +char x[sizeof(d.data) == 8]; // expected-error {{member reference base type 'char' is not a structure or union}} +char x[sizeof(d.data) == 4]; // expected-error {{member reference base type 'char' is not a structure or union}} Index: clang/lib/Sema/SemaType.cpp =================================================================== --- clang/lib/Sema/SemaType.cpp +++ clang/lib/Sema/SemaType.cpp @@ -2546,6 +2546,9 @@ return QualType(); } + if (!getLangOpts().CPlusPlus && ArraySize && ArraySize->containsErrors()) + return QualType(); + // VLAs always produce at least a -Wvla diagnostic, sometimes an error. unsigned VLADiag; bool VLAIsError; Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -338,6 +338,8 @@ - Fix crash when attempting to perform parenthesized initialization of an aggregate with a base class with only non-public constructors. (`#62296 <https://github.com/llvm/llvm-project/issues/62296>`_) +- Fix crash when redefine variant with invalid type as another invalid type. + (`#62447 <https://github.com/llvm/llvm-project/issues/62447>`_) Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Index: clang/test/Sema/merge-decls.c =================================================================== --- clang/test/Sema/merge-decls.c +++ clang/test/Sema/merge-decls.c @@ -91,3 +91,7 @@ int x[5]; test7_f(&x); // expected-warning {{incompatible pointer types passing 'int (*)[5]' to parameter of type 'int (*)[10]}} } + +char d; +char x[sizeof(d.data) == 8]; // expected-error {{member reference base type 'char' is not a structure or union}} +char x[sizeof(d.data) == 4]; // expected-error {{member reference base type 'char' is not a structure or union}} Index: clang/lib/Sema/SemaType.cpp =================================================================== --- clang/lib/Sema/SemaType.cpp +++ clang/lib/Sema/SemaType.cpp @@ -2546,6 +2546,9 @@ return QualType(); } + if (!getLangOpts().CPlusPlus && ArraySize && ArraySize->containsErrors()) + return QualType(); + // VLAs always produce at least a -Wvla diagnostic, sometimes an error. unsigned VLADiag; bool VLAIsError; Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -338,6 +338,8 @@ - Fix crash when attempting to perform parenthesized initialization of an aggregate with a base class with only non-public constructors. (`#62296 <https://github.com/llvm/llvm-project/issues/62296>`_) +- Fix crash when redefine variant with invalid type as another invalid type. + (`#62447 <https://github.com/llvm/llvm-project/issues/62447>`_) Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits