[clang] [clang][Parser] Fix crash on invalid attribute in constexpr function (PR #144286)
via cfe-commits
cfe-commits at lists.llvm.org
Sun Jun 15 18:38:42 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Iris Shi (el-ev)
<details>
<summary>Changes</summary>
- Closes #<!-- -->144264
---
Full diff: https://github.com/llvm/llvm-project/pull/144286.diff
2 Files Affected:
- (modified) clang/lib/Parse/ParseDeclCXX.cpp (+4)
- (added) clang/test/Parser/cxx-invalid-attr-in-constexpr-crash.cpp (+8)
``````````diff
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp
index f31c9265a0074..ed401c894f71c 100644
--- a/clang/lib/Parse/ParseDeclCXX.cpp
+++ b/clang/lib/Parse/ParseDeclCXX.cpp
@@ -760,6 +760,10 @@ Parser::DeclGroupPtrTy Parser::ParseUsingDeclaration(
Decl *AD = ParseAliasDeclarationAfterDeclarator(
TemplateInfo, UsingLoc, D, DeclEnd, AS, Attrs, &DeclFromDeclSpec);
+
+ if (!AD)
+ return nullptr;
+
return Actions.ConvertDeclToDeclGroup(AD, DeclFromDeclSpec);
}
diff --git a/clang/test/Parser/cxx-invalid-attr-in-constexpr-crash.cpp b/clang/test/Parser/cxx-invalid-attr-in-constexpr-crash.cpp
new file mode 100644
index 0000000000000..82104779ca67e
--- /dev/null
+++ b/clang/test/Parser/cxx-invalid-attr-in-constexpr-crash.cpp
@@ -0,0 +1,8 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+// issue144264
+constexpr void test()
+{
+ using TT = struct T[deprecated{};
+ // expected-error at -1 {{use of undeclared identifier 'deprecated'}}
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/144286
More information about the cfe-commits
mailing list