summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.jason/init3.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/init3.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/init3.C42
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/init3.C b/gcc/testsuite/g++.old-deja/g++.jason/init3.C
new file mode 100644
index 000000000..38e0e61d3
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.jason/init3.C
@@ -0,0 +1,42 @@
+// { dg-do run }
+// PRMS Id: 5652
+// Bug: strings does not get initialized.
+
+#include <string.h>
+
+class My_string {
+ char *str;
+ int len;
+public:
+ My_string(const char* string);
+ My_string(const My_string &);
+ ~My_string() { delete str; }
+ char* char_p() { return str; }
+};
+
+const My_string strings[4] = {
+ "first string",
+ "second string",
+ "third string",
+ "fourth string"
+};
+
+My_string::My_string(const char* string)
+{
+ len = strlen(string) + 1;
+ str = new char[len];
+ memcpy(str, string, len);
+}
+
+My_string::My_string(const My_string &string)
+{
+ len = string.len;
+ str = new char[len];
+ memcpy(str, string.str, len);
+}
+
+int main()
+{
+ My_string str1 = strings[0];
+ return strcmp ("first string", str1.char_p ()) != 0;
+}