aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/warn/pr13358-2.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/warn/pr13358-2.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/warn/pr13358-2.C24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/warn/pr13358-2.C b/gcc-4.9/gcc/testsuite/g++.dg/warn/pr13358-2.C
new file mode 100644
index 000000000..9ab8bbc41
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.dg/warn/pr13358-2.C
@@ -0,0 +1,24 @@
+// PR c++/13358: g++ should accept a long long constant sans LL suffix
+// if -Wno-long-long is in use.
+// { dg-do compile }
+// { dg-require-effective-target int32plus }
+// { dg-options "-std=c++98 -pedantic-errors" }
+
+
+void use_longlong ()
+{
+ unsigned long long x1, x2, x3; // { dg-error "ISO C\\+\\+ 1998 does not support 'long long'" }
+ // make sure we error with hex, decimal and octal
+ x1 = 0x1b27da572ef3cd86; // { dg-error "integer constant is too large for 'long' type" "long long" { target { llp64 || ilp32 } } }
+ x2 = 1956772631100509574; // { dg-error "integer constant is too large for 'long' type" "long long" { target { llp64 || ilp32 } } }
+ x3 = 0154476645345674746606; // { dg-error "integer constant is too large for 'long' type" "long long" { target { llp64 || ilp32 } } }
+}
+
+void use_longlong2 ()
+{
+ unsigned long long x1, x2, x3; // { dg-error "ISO C\\+\\+ 1998 does not support 'long long'" }
+ // make sure we error with hex, decimal and octal
+ x1 = 0x1b27da572ef3cd86LL; // { dg-error "long long" }
+ x2 = 1956772631100509574LL; // { dg-error "long long" }
+ x3 = 0154476645345674746606LL; // { dg-error "long long" }
+}