aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C')
-rw-r--r--gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C114
1 files changed, 114 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C b/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C
new file mode 100644
index 000000000..b2d38cdbe
--- /dev/null
+++ b/gcc-4.8/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C
@@ -0,0 +1,114 @@
+// { dg-do assemble }
+// { dg-options "" }
+// g++ 1.36.1 bug 900210_02
+
+// g++ allows integral type values to be assigned to variables of pointer
+// types. According to the C++ Reference Manual, this is illegal.
+
+// Cfront 2.0 passes this test.
+
+// keywords: integral types, pointer types, implicit type conversions
+// Special Options: -ansi -pedantic-errors
+int i;
+long l;
+short s;
+char c;
+float f;
+double d;
+long double ld;
+enum E {enum_value_0} e;
+
+signed int si;
+signed long sl;
+signed short ss;
+signed char sc;
+
+unsigned int ui;
+unsigned long ul;
+unsigned short us;
+unsigned char uc;
+
+void* vp;
+char* cp;
+int* ip;
+enum E2 {enum_value_1} * ep;
+struct S { int member; } * sp;
+void (*fp) (void);
+
+void global_function ()
+{
+ vp = i; /* { dg-error "" } */
+ vp = l; /* { dg-error "" } */
+ vp = s; /* { dg-error "" } */
+ vp = c; /* { dg-error "" } */
+ vp = si; /* { dg-error "" } */
+ vp = sl; /* { dg-error "" } */
+ vp = ss; /* { dg-error "" } */
+ vp = sc; /* { dg-error "" } */
+ vp = ui; /* { dg-error "" } */
+ vp = ul; /* { dg-error "" } */
+ vp = us; /* { dg-error "" } */
+ vp = uc; /* { dg-error "" } */
+ cp = i; /* { dg-error "" } */
+ cp = l; /* { dg-error "" } */
+ cp = s; /* { dg-error "" } */
+ cp = c; /* { dg-error "" } */
+ cp = si; /* { dg-error "" } */
+ cp = sl; /* { dg-error "" } */
+ cp = ss; /* { dg-error "" } */
+ cp = sc; /* { dg-error "" } */
+ cp = ui; /* { dg-error "" } */
+ cp = ul; /* { dg-error "" } */
+ cp = us; /* { dg-error "" } */
+ cp = uc; /* { dg-error "" } */
+ ip = i; /* { dg-error "" } */
+ ip = l; /* { dg-error "" } */
+ ip = s; /* { dg-error "" } */
+ ip = c; /* { dg-error "" } */
+ ip = si; /* { dg-error "" } */
+ ip = sl; /* { dg-error "" } */
+ ip = ss; /* { dg-error "" } */
+ ip = sc; /* { dg-error "" } */
+ ip = ui; /* { dg-error "" } */
+ ip = ul; /* { dg-error "" } */
+ ip = us; /* { dg-error "" } */
+ ip = uc; /* { dg-error "" } */
+ ep = i; /* { dg-error "" } */
+ ep = l; /* { dg-error "" } */
+ ep = s; /* { dg-error "" } */
+ ep = c; /* { dg-error "" } */
+ ep = si; /* { dg-error "" } */
+ ep = sl; /* { dg-error "" } */
+ ep = ss; /* { dg-error "" } */
+ ep = sc; /* { dg-error "" } */
+ ep = ui; /* { dg-error "" } */
+ ep = ul; /* { dg-error "" } */
+ ep = us; /* { dg-error "" } */
+ ep = uc; /* { dg-error "" } */
+ sp = i; /* { dg-error "" } */
+ sp = l; /* { dg-error "" } */
+ sp = s; /* { dg-error "" } */
+ sp = c; /* { dg-error "" } */
+ sp = si; /* { dg-error "" } */
+ sp = sl; /* { dg-error "" } */
+ sp = ss; /* { dg-error "" } */
+ sp = sc; /* { dg-error "" } */
+ sp = ui; /* { dg-error "" } */
+ sp = ul; /* { dg-error "" } */
+ sp = us; /* { dg-error "" } */
+ sp = uc; /* { dg-error "" } */
+ fp = i; /* { dg-error "" } */
+ fp = l; /* { dg-error "" } */
+ fp = s; /* { dg-error "" } */
+ fp = c; /* { dg-error "" } */
+ fp = si; /* { dg-error "" } */
+ fp = sl; /* { dg-error "" } */
+ fp = ss; /* { dg-error "" } */
+ fp = sc; /* { dg-error "" } */
+ fp = ui; /* { dg-error "" } */
+ fp = ul; /* { dg-error "" } */
+ fp = us; /* { dg-error "" } */
+ fp = uc; /* { dg-error "" } */
+}
+
+int main () { return 0; }