This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Assume C89 "volatile"
authorAaron Crane <arc@cpan.org>
Thu, 12 Oct 2017 13:45:54 +0000 (15:45 +0200)
committerAaron Crane <arc@cpan.org>
Sat, 21 Oct 2017 15:45:08 +0000 (16:45 +0100)
The U/perl/perlxv.u unit can just use the "volatile" keyword directly (as
U/perl/d_u32align.U already does); and U/modified/d_volatile.U itself no
longer promises to define the "volatile" keyword in config_h.SH.

U/modified/d_volatile.U
U/perl/perlxv.U

index f2dd20c..86e6f3d 100644 (file)
@@ -34,7 +34,6 @@
 ?H:?%<:#define volatile
 ?H:?%<:#endif
 ?H:.
-?W:%<:volatile
 ?LINT:set d_volatile
 ?LINT:known volatile
 : check for volatile keyword
index cc857b6..a9ab082 100644 (file)
@@ -13,7 +13,7 @@
        echo rm_try use64bitint d_quad quadtype uquadtype usequadmath \
        d_longdbl uselongdouble longdblsize doublesize i_quadmath \
        shortsize intsize longsize i_stdlib i_string libs gccversion \
-       cat Compile i_inttypes test d_volatile signal_t run
+       cat Compile i_inttypes test signal_t run
 ?MAKE: -pick add $@ %<
 ?S:ivtype:
 ?S:    This variable contains the C type used for Perl's IV.
 ?H:?%<:#   endif
 ?H:?%<:#endif
 ?H:.
-?T:volatile
 ?T:xxx
 ?T:d
 ?F:!try
@@ -429,10 +428,6 @@ case "$i64type" in
 esac
 
 $echo "Checking how many bits of your UVs your NVs can preserve..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 #$i_stdlib I_STDLIB
@@ -442,7 +437,8 @@ $cat <<EOP >try.c
 #include <sys/types.h>
 #include <signal.h>
 #ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
 $signal_t blech(int s) { bletched = 1; }
 #endif
 int main() {
@@ -493,10 +489,6 @@ esac
 $rm_try
 
 $echo "Checking to find the largest integer value your NVs can hold..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 
@@ -508,10 +500,11 @@ main() {
   int count = 1;
 
   while(count < 256) {
-    $volatile NV up = value + 1.0;
-    $volatile NV negated = -value;
-    $volatile NV down = negated - 1.0;
-    $volatile NV got_up = up - value;
+    /* volatile so that the compiler has to store it out to memory */
+    volatile NV up = value + 1.0;
+    volatile NV negated = -value;
+    volatile NV down = negated - 1.0;
+    volatile NV got_up = up - value;
     int up_good = got_up == 1.0;
     int got_down = down - negated;
     int down_good = got_down == -1.0;
@@ -576,10 +569,6 @@ fi
 $rm_try
 
 $echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 #$i_stdlib I_STDLIB
@@ -595,7 +584,8 @@ $cat <<EOP >try.c
 #include <sys/types.h>
 #include <signal.h>
 #ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
 $signal_t blech(int s) { bletched = 1; }
 #endif