No testcase for this, since I haven't found a way to turn the incorrect
attribute into incorrect codegen.

Bootstrapped and tested on aarch64-none-linux gnu.

gcc/

        * config/aarch64/aarch64-builtins.c
        (aarch64_get_attributes): Fix choice of pure/const attributes.

---

diff --git a/gcc/config/aarch64/aarch64-builtins.cc 
b/gcc/config/aarch64/aarch64-builtins.cc
index 
e0a741ac663188713e21f457affa57217d074783..877f54aab787862794413259cd36ca0fb7bd49c5
 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -1085,9 +1085,9 @@ aarch64_get_attributes (unsigned int f, machine_mode mode)
   if (!aarch64_modifies_global_state_p (f, mode))
     {
       if (aarch64_reads_global_state_p (f, mode))
-       attrs = aarch64_add_attribute ("pure", attrs);
-      else
        attrs = aarch64_add_attribute ("const", attrs);
+      else
+       attrs = aarch64_add_attribute ("pure", attrs);
     }

   if (!flag_non_call_exceptions || !aarch64_could_trap_p (f, mode))

Reply via email to