[clang] [clang][bytecode] Visit 2nd atomic_is_lock_free arg as lvalue (PR #179673)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 4 06:36:56 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Timm Baeder (tbaederr)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/179673.diff
2 Files Affected:
- (modified) clang/lib/AST/ByteCode/Compiler.cpp (+9)
- (modified) clang/test/Sema/sizeless-1.c (+4)
``````````diff
diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp
index af076f90733df..122f2d7ee47af 100644
--- a/clang/lib/AST/ByteCode/Compiler.cpp
+++ b/clang/lib/AST/ByteCode/Compiler.cpp
@@ -5164,6 +5164,15 @@ bool Compiler<Emitter>::VisitBuiltinCallExpr(const CallExpr *E,
case Builtin::BI__builtin_assume:
// Argument is not evaluated.
break;
+ case Builtin::BI__atomic_is_lock_free:
+ case Builtin::BI__atomic_always_lock_free: {
+ assert(E->getNumArgs() == 2);
+ if (!this->visit(E->getArg(0)))
+ return false;
+ if (!this->visitAsLValue(E->getArg(1)))
+ return false;
+ } break;
+
default:
if (!Context::isUnevaluatedBuiltin(BuiltinID)) {
// Put arguments on the stack.
diff --git a/clang/test/Sema/sizeless-1.c b/clang/test/Sema/sizeless-1.c
index b6b92e7a68c19..7c8eed994a6a1 100644
--- a/clang/test/Sema/sizeless-1.c
+++ b/clang/test/Sema/sizeless-1.c
@@ -2,6 +2,10 @@
// RUN: %clang_cc1 -fsyntax-only -verify -Wall -W -Wno-strict-prototypes -triple arm64-linux-gnu -target-feature +sve -std=c11 %s
// RUN: %clang_cc1 -fsyntax-only -verify -Wall -W -Wno-strict-prototypes -triple arm64-linux-gnu -target-feature +sve -std=gnu11 %s
+// RUN: %clang_cc1 -fsyntax-only -verify -Wall -W -Wno-comment -Wno-strict-prototypes -triple arm64-linux-gnu -target-feature +sve -std=c90 %s -fexperimental-new-constant-interpreter
+// RUN: %clang_cc1 -fsyntax-only -verify -Wall -W -Wno-strict-prototypes -triple arm64-linux-gnu -target-feature +sve -std=c11 %s -fexperimental-new-constant-interpreter
+// RUN: %clang_cc1 -fsyntax-only -verify -Wall -W -Wno-strict-prototypes -triple arm64-linux-gnu -target-feature +sve -std=gnu11 %s -fexperimental-new-constant-interpreter
+
typedef __SVInt8_t svint8_t;
typedef __SVInt16_t svint16_t;
``````````
</details>
https://github.com/llvm/llvm-project/pull/179673
More information about the cfe-commits
mailing list