OSDN Git Service

* g++.old-deja/g++.other/warn4.C: New test.
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Nov 1999 16:10:58 +0000 (16:10 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Nov 1999 16:10:58 +0000 (16:10 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30617 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.other/warn4.C [new file with mode: 0644]

index 8cb182d..146865a 100644 (file)
@@ -1,5 +1,9 @@
 1999-11-22  Nathan Sidwell  <nathan@acm.org>
 
+       * g++.old-deja/g++.other/warn4.C: New test.
+
+1999-11-22  Nathan Sidwell  <nathan@acm.org>
+
        * g++.old-deja/g++.eh/cleanup2.C: New test.
        * g++.old-deja/g++.ext/pretty2.C: New test.
        * g++.old-deja/g++.ext/pretty3.C: New test.
diff --git a/gcc/testsuite/g++.old-deja/g++.other/warn4.C b/gcc/testsuite/g++.old-deja/g++.other/warn4.C
new file mode 100644 (file)
index 0000000..e2baf47
--- /dev/null
@@ -0,0 +1,67 @@
+// Build don't link:
+
+// Copyright (C) 1999 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 21 Nov 1999 <nathan@acm.org>
+
+// make sure we only warn on assigning a negative (signed) value
+// to an unsigned type, and don't warn just if the unsigned value
+// happens to have the top bit set.
+
+typedef unsigned U;
+
+void fn (unsigned);
+
+void fu ()
+{
+  unsigned s1 = -1u;
+  unsigned s2(-1u);
+  unsigned volatile s3 = -1u;
+  unsigned const s4 = -1u;
+  unsigned const &s5(-1u);
+  s1 = -1u;
+  fn (-1u);
+}
+
+void fU ()
+{
+  U s1 = -1u;
+  U s2(-1u);
+  U volatile s3 = -1u;
+  U const s4 = -1u;
+  U const &s5(-1u);
+  s1 = -1u;
+  fn (-1u);
+}
+
+void fs ()
+{
+  unsigned s1 = -1;         // WARNING - initialization
+  unsigned s2(-1);          // WARNING - initialization
+  unsigned volatile s3 = -1;// WARNING - initialization
+  unsigned const s4 = -1;   // WARNING - initialization
+  unsigned const &s5(-1);   // WARNING - initialization
+  s1 = -1;                  // WARNING - assignment
+  fn (-1);                  // WARNING - passing
+}
+
+void fss ()
+{
+  unsigned s1 = -(-1);
+  unsigned s2(-(-1));
+  unsigned volatile s3 = -(-1);
+  unsigned const s4 = -(-1);
+  unsigned const &s5(-(-1));
+  s1 = -(-1);
+  fn (-(-1));
+}
+
+void fsz ()
+{
+  unsigned s1 = -0;
+  unsigned s2(-0);
+  unsigned volatile s3 = -0;
+  unsigned const s4 = -0;
+  unsigned const &s5(-0);
+  s1 = -0;
+  fn (-0);
+}