On 2024-11-08 18:44, Christophe Lyon wrote:
On Thu, 7 Nov 2024 at 18:05, Torbjörn SVENSSON
<torbjorn.svens...@foss.st.com> wrote:

Changes since v1:

- Updated the error message to mention that arm_mve_types.h needs to be
   included.
- Corrected some spelling errors in commit message.

As the warning for pure functions returning void is not related to this
patch, I'll leave it for you Christophe to look into. :)

Ok for trunk and releases/gcc-14?

OK,

Pushed as r15-5057-g8b04f60f880 and r14.2.0-386-ge277e1082a8.

Kind regards,
Torbjörn


Thanks

Christophe

--

Starting with r14-435-g00d97bf3b5a, doing `#pragma arm "arm_mve.h"
false` or `#pragma arm "arm_mve.h" true` without first doing
`#pragma arm "arm_mve_types.h"` causes GCC to ICE.

gcc/ChangeLog:

       PR target/117408
       * config/arm/arm-mve-builtins.cc(handle_arm_mve_h): Detect if MVE
       types are missing and if so, return error.

gcc/testsuite/ChangeLog:

       PR target/117408
       * gcc.target/arm/mve/pr117408-1.c: New test.
       * gcc.target/arm/mve/pr117408-2.c: Likewise.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
---
  gcc/config/arm/arm-mve-builtins.cc            | 7 +++++++
  gcc/testsuite/gcc.target/arm/mve/pr117408-1.c | 7 +++++++
  gcc/testsuite/gcc.target/arm/mve/pr117408-2.c | 7 +++++++
  3 files changed, 21 insertions(+)
  create mode 100644 gcc/testsuite/gcc.target/arm/mve/pr117408-1.c
  create mode 100644 gcc/testsuite/gcc.target/arm/mve/pr117408-2.c

diff --git a/gcc/config/arm/arm-mve-builtins.cc 
b/gcc/config/arm/arm-mve-builtins.cc
index af1908691b6..ed3d6000641 100644
--- a/gcc/config/arm/arm-mve-builtins.cc
+++ b/gcc/config/arm/arm-mve-builtins.cc
@@ -535,6 +535,13 @@ handle_arm_mve_h (bool preserve_user_namespace)
        return;
      }

+  if (!handle_arm_mve_types_p)
+    {
+      error ("this definition requires MVE types, please include %qs",
+            "arm_mve_types.h");
+      return;
+    }
+
    /* Define MVE functions.  */
    function_table = new hash_table<registered_function_hasher> (1023);
    function_builder builder;
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr117408-1.c 
b/gcc/testsuite/gcc.target/arm/mve/pr117408-1.c
new file mode 100644
index 00000000000..25eaf67e297
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/mve/pr117408-1.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_v8_1m_mve_ok } */
+/* { dg-add-options arm_v8_1m_mve } */
+
+/* It doesn't really matter if this produces errors missing types,
+      but it mustn't trigger an ICE.  */
+#pragma GCC arm "arm_mve.h" false /* { dg-error "this definition requires MVE 
types, please include 'arm_mve_types.h'" } */
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr117408-2.c 
b/gcc/testsuite/gcc.target/arm/mve/pr117408-2.c
new file mode 100644
index 00000000000..c3a0af25f77
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/mve/pr117408-2.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_v8_1m_mve_ok } */
+/* { dg-add-options arm_v8_1m_mve } */
+
+/* It doesn't really matter if this produces errors missing types,
+      but it mustn't trigger an ICE.  */
+#pragma GCC arm "arm_mve.h" true /* { dg-error "this definition requires MVE types, 
please include 'arm_mve_types.h'" } */
--
2.25.1


Reply via email to