[clang] [clang] Add zero-initialization for fixed point types (PR #80781)

2024-02-06 Thread via cfe-commits

https://github.com/PiJoules closed 
https://github.com/llvm/llvm-project/pull/80781
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Add zero-initialization for fixed point types (PR #80781)

2024-02-06 Thread Fangrui Song via cfe-commits

https://github.com/MaskRay approved this pull request.


https://github.com/llvm/llvm-project/pull/80781
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Add zero-initialization for fixed point types (PR #80781)

2024-02-06 Thread via cfe-commits

https://github.com/PiJoules updated 
https://github.com/llvm/llvm-project/pull/80781

>From 3b267b1aeb49aa5ab54920da5f6a1fa7492ae88c Mon Sep 17 00:00:00 2001
From: Leonard Chan 
Date: Mon, 5 Feb 2024 17:58:08 -0800
Subject: [PATCH] [clang] Add zero-initialization for fixed point types

---
 clang/lib/AST/ExprConstant.cpp   | 4 
 clang/test/AST/fixed-point-zero-init.cpp | 5 +
 2 files changed, 9 insertions(+)
 create mode 100644 clang/test/AST/fixed-point-zero-init.cpp

diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 63453890d98798..089bc2094567f7 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -11427,6 +11427,10 @@ class FixedPointExprEvaluator
 return true;
   }
 
+  bool ZeroInitialization(const Expr *E) {
+return Success(0, E);
+  }
+
   
//======//
   //Visitor Methods
   
//======//
diff --git a/clang/test/AST/fixed-point-zero-init.cpp 
b/clang/test/AST/fixed-point-zero-init.cpp
new file mode 100644
index 00..abe8aa8c396a85
--- /dev/null
+++ b/clang/test/AST/fixed-point-zero-init.cpp
@@ -0,0 +1,5 @@
+// RUN: %clang_cc1 -ffixed-point %s -verify
+// expected-no-diagnostics
+
+constexpr _Accum a[2] = {};
+static_assert(a[0] == 0 && a[0] != 1);

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Add zero-initialization for fixed point types (PR #80781)

2024-02-05 Thread Fangrui Song via cfe-commits


@@ -0,0 +1,9 @@
+// RUN: %clang_cc1 -ffixed-point -S -emit-llvm %s -o - | FileCheck %s
+
+// CHECK: @_ZL1a = internal constant [2 x i32] zeroinitializer
+constexpr _Accum a[2] = {};

MaskRay wrote:

Consider a `test/AST/` test like `static_assert(a[0] == 0 && a[0] != 1);`

This is not supported by -fexperimental-new-constant-interpreter, but I think 
it is ok.

https://github.com/llvm/llvm-project/pull/80781
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Add zero-initialization for fixed point types (PR #80781)

2024-02-05 Thread via cfe-commits

github-actions[bot] wrote:




:warning: C/C++ code formatter, clang-format found issues in your code. 
:warning:



You can test this locally with the following command:


``bash
git-clang-format --diff cf401f72e1b5aa6be0719ab45c95c10ea06bec9a 
916a10f1cebbb339dec98bd18c945b63991190f1 -- 
clang/test/CodeGenCXX/fixed-point-zero-init.cpp clang/lib/AST/ExprConstant.cpp
``





View the diff from clang-format here.


``diff
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 089bc20945..79541ff8ea 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -11427,9 +11427,7 @@ class FixedPointExprEvaluator
 return true;
   }
 
-  bool ZeroInitialization(const Expr *E) {
-return Success(0, E);
-  }
+  bool ZeroInitialization(const Expr *E) { return Success(0, E); }
 
   
//======//
   //Visitor Methods

``




https://github.com/llvm/llvm-project/pull/80781
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Add zero-initialization for fixed point types (PR #80781)

2024-02-05 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-clang

Author: None (PiJoules)


Changes



---
Full diff: https://github.com/llvm/llvm-project/pull/80781.diff


2 Files Affected:

- (modified) clang/lib/AST/ExprConstant.cpp (+4) 
- (added) clang/test/CodeGenCXX/fixed-point-zero-init.cpp (+9) 


``diff
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 63453890d9879..089bc2094567f 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -11427,6 +11427,10 @@ class FixedPointExprEvaluator
 return true;
   }
 
+  bool ZeroInitialization(const Expr *E) {
+return Success(0, E);
+  }
+
   
//======//
   //Visitor Methods
   
//======//
diff --git a/clang/test/CodeGenCXX/fixed-point-zero-init.cpp 
b/clang/test/CodeGenCXX/fixed-point-zero-init.cpp
new file mode 100644
index 0..9a7a6600fe556
--- /dev/null
+++ b/clang/test/CodeGenCXX/fixed-point-zero-init.cpp
@@ -0,0 +1,9 @@
+// RUN: %clang_cc1 -ffixed-point -S -emit-llvm %s -o - | FileCheck %s
+
+// CHECK: @_ZL1a = internal constant [2 x i32] zeroinitializer
+constexpr _Accum a[2] = {};
+
+void func2(const _Accum *);
+void func() {
+  func2(a);
+}

``




https://github.com/llvm/llvm-project/pull/80781
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [clang] Add zero-initialization for fixed point types (PR #80781)

2024-02-05 Thread via cfe-commits

https://github.com/PiJoules created 
https://github.com/llvm/llvm-project/pull/80781

None

>From 916a10f1cebbb339dec98bd18c945b63991190f1 Mon Sep 17 00:00:00 2001
From: Leonard Chan 
Date: Mon, 5 Feb 2024 17:58:08 -0800
Subject: [PATCH] [clang] Add zero-initialization for fixed point types

---
 clang/lib/AST/ExprConstant.cpp  | 4 
 clang/test/CodeGenCXX/fixed-point-zero-init.cpp | 9 +
 2 files changed, 13 insertions(+)
 create mode 100644 clang/test/CodeGenCXX/fixed-point-zero-init.cpp

diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 63453890d9879..089bc2094567f 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -11427,6 +11427,10 @@ class FixedPointExprEvaluator
 return true;
   }
 
+  bool ZeroInitialization(const Expr *E) {
+return Success(0, E);
+  }
+
   
//======//
   //Visitor Methods
   
//======//
diff --git a/clang/test/CodeGenCXX/fixed-point-zero-init.cpp 
b/clang/test/CodeGenCXX/fixed-point-zero-init.cpp
new file mode 100644
index 0..9a7a6600fe556
--- /dev/null
+++ b/clang/test/CodeGenCXX/fixed-point-zero-init.cpp
@@ -0,0 +1,9 @@
+// RUN: %clang_cc1 -ffixed-point -S -emit-llvm %s -o - | FileCheck %s
+
+// CHECK: @_ZL1a = internal constant [2 x i32] zeroinitializer
+constexpr _Accum a[2] = {};
+
+void func2(const _Accum *);
+void func() {
+  func2(a);
+}

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits