llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: None (c8ef) <details> <summary>Changes</summary> close: #<!-- -->93650 --- Full diff: https://github.com/llvm/llvm-project/pull/94299.diff 2 Files Affected: - (modified) clang/lib/AST/Expr.cpp (+1-3) - (added) clang/test/SemaCXX/GH93650.cpp (+12) ``````````diff diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index ac0b1b38f0162..f9d634550dc06 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -3618,12 +3618,10 @@ bool Expr::HasSideEffects(const ASTContext &Ctx, case ConceptSpecializationExprClass: case RequiresExprClass: case SYCLUniqueStableNameExprClass: + case PackIndexingExprClass: // These never have a side-effect. return false; - case PackIndexingExprClass: - return cast<PackIndexingExpr>(this)->getSelectedExpr()->HasSideEffects( - Ctx, IncludePossibleEffects); case ConstantExprClass: // FIXME: Move this into the "return false;" block above. return cast<ConstantExpr>(this)->getSubExpr()->HasSideEffects( diff --git a/clang/test/SemaCXX/GH93650.cpp b/clang/test/SemaCXX/GH93650.cpp new file mode 100644 index 0000000000000..cc82bd084248e --- /dev/null +++ b/clang/test/SemaCXX/GH93650.cpp @@ -0,0 +1,12 @@ +// RUN: %clang_cc1 -std=c++2c -fsyntax-only -verify %s +// expected-no-diagnostics + +namespace std { +struct type_info { + const char *name; +}; +} // namespace std + +namespace GH93650_bug { +auto func(auto... inputArgs) { return typeid(inputArgs...[0]); } +} // namespace GH93650_bug `````````` </details> https://github.com/llvm/llvm-project/pull/94299 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits