aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2000-12-22 08:00:00 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2000-12-22 08:00:00 +0000
commitc2651d6650caf16ae1f0ce58689e2f50acb037b8 (patch)
tree65b9835d195948d192f9ad00d78d02707a520616 /libstdc++-v3
parent86a42a5f2443414d63765a4bc84df0530bc32557 (diff)
downloadgcc-c2651d6650caf16ae1f0ce58689e2f50acb037b8.zip
gcc-c2651d6650caf16ae1f0ce58689e2f50acb037b8.tar.gz
gcc-c2651d6650caf16ae1f0ce58689e2f50acb037b8.tar.bz2
mknumeric_limits: Output to temporary files, and rename them at the end.
* mknumeric_limits: Output to temporary files, and rename them at the end. From-SVN: r38443
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog5
-rwxr-xr-xlibstdc++-v3/mknumeric_limits19
2 files changed, 17 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 98c031a..acda825 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2000-12-22 Alexandre Oliva <aoliva@redhat.com>
+
+ * mknumeric_limits: Output to temporary files, and rename them at
+ the end.
+
2000-12-21 Benjamin Kosnik <bkoz@redhat.com>
* configure.in: Change GLIBCPP_ENABLE_SHADOW to
diff --git a/libstdc++-v3/mknumeric_limits b/libstdc++-v3/mknumeric_limits
index 600d6f1..25d8a27 100755
--- a/libstdc++-v3/mknumeric_limits
+++ b/libstdc++-v3/mknumeric_limits
@@ -45,7 +45,7 @@ OUT_H="$BUILD_DIR/include/bits/std_limits.h"
OUT_C="$BUILD_DIR/src/limitsMEMBERS.cc"
if [ -f $OUT_C ]; then
- rm -f $OUT_H OUT_C
+ rm -f $OUT_H $OUT_C $OUT_H-t $OUT_C-t
fi
SRC_DIR=$2
@@ -64,7 +64,9 @@ fi
: ${CXX:="$BUILD_DIR/../../gcc/g++ -B$BUILD_DIR/../../gcc/"}
-cat <<EOF > $OUT_H
+# We output to a temporary file, so that we don't appear to have
+# succeeded unless we actually do.
+cat <<EOF > $OUT_H-t
// The template and inlines for the -*- C++ -*- numeric_limits classes.
// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
@@ -189,9 +191,9 @@ if [ ! -f "$BUILD_DIR/src/gen-num-limits" ]; then
exit 1
fi
-"$BUILD_DIR/src/gen-num-limits" >> $OUT_H
+"$BUILD_DIR/src/gen-num-limits" >> $OUT_H-t
-cat <<EOF >> $OUT_H
+cat <<EOF >> $OUT_H-t
} // namespace std
#endif // _CPP_NUMERIC_LIMITS
@@ -245,8 +247,8 @@ for type_name in bool char 'signed char' 'unsigned char' \
long 'unsigned long' 'long long' 'unsigned long long' \
float double 'long double'
do
- grep "<$type_name>" $OUT_H >/dev/null 2>&1 || continue
- cat <<EOF >> $OUT_C
+ grep "<$type_name>" $OUT_H-t >/dev/null 2>&1 || continue
+ cat <<EOF >> $OUT_C-t
const bool $trait_name<$type_name>::is_specialized;
const int $trait_name<$type_name>::digits;
@@ -274,8 +276,11 @@ EOF
done
-cat <<EOF >> $OUT_C
+cat <<EOF >> $OUT_C-t
} // namespace std
EOF
+
+mv $OUT_C-t $OUT_C
+mv $OUT_H-t $OUT_H