diff options
author | no-author <no-author@gcc.gnu.org> | 2002-12-03 22:57:20 +0000 |
---|---|---|
committer | no-author <no-author@gcc.gnu.org> | 2002-12-03 22:57:20 +0000 |
commit | 54cae262c9ca867d53a08dfe01def84cdb3590da (patch) | |
tree | 2f853afecc70c62df9042ab024c3f788626b7e19 /gcc/testsuite/g++.dg | |
parent | 4cdbdeff0cb5f33caa32c24dec17b0e6260f7f37 (diff) |
This commit was manufactured by cvs2svn to create branch
'tree-ssa-20020619-branch'.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/tree-ssa-20020619-branch@59786 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r-- | gcc/testsuite/g++.dg/abi/empty10.C | 27 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/abi/empty11.C | 19 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/inherit/typedef1.C | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/inherit/typeinfo1.C | 18 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/brace2.C | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/brace3.C | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/string1.C | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lookup/anon2.C | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/overload/ambig1.C | 23 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/defarg1.C | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/rtti/cv1.C | 17 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/char1.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/ctor2.C | 18 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/friend8.C | 18 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/strlen1.C | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/varmod1.C | 10 |
16 files changed, 199 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/abi/empty10.C b/gcc/testsuite/g++.dg/abi/empty10.C new file mode 100644 index 00000000000..970afbaf512 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/empty10.C @@ -0,0 +1,27 @@ +// { dg-do run { target i?86-*-* } } +// { dg-options "-fabi-version=0 -w" } + +struct E {}; +struct E2 : public E {}; + +struct A { + int i; +}; + +struct B { + int j; +}; + +struct C : + public E, + public A, + public E2, + virtual public B { +}; + +C c; + +int main () { + if (((char*)(B*)&c - (char*)&c) != 8) + return 1; +} diff --git a/gcc/testsuite/g++.dg/abi/empty11.C b/gcc/testsuite/g++.dg/abi/empty11.C new file mode 100644 index 00000000000..b35363f5bf6 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/empty11.C @@ -0,0 +1,19 @@ +// { dg-do run } +// { dg-options "-w -fabi-version=0" } + +struct E {}; +struct E2 : public E {}; +struct E3 : public E, public E2 {}; +struct E4 : public E, public E2, public E3 { }; +struct E5 : public E, public E2, public E3, public E4 {}; + +struct S : public virtual E5 { + E e; +}; + +S s; + +int main () { + if ((char*)(E4*)&s - (char*)&s == 0) + return 1; +} diff --git a/gcc/testsuite/g++.dg/inherit/typedef1.C b/gcc/testsuite/g++.dg/inherit/typedef1.C new file mode 100644 index 00000000000..20da08b2c43 --- /dev/null +++ b/gcc/testsuite/g++.dg/inherit/typedef1.C @@ -0,0 +1,8 @@ +namespace NS { +class X {}; +typedef X Y; +} + +struct Base : virtual public NS::Y { + Base() : NS::Y() {} +}; diff --git a/gcc/testsuite/g++.dg/inherit/typeinfo1.C b/gcc/testsuite/g++.dg/inherit/typeinfo1.C new file mode 100644 index 00000000000..794776ecbe8 --- /dev/null +++ b/gcc/testsuite/g++.dg/inherit/typeinfo1.C @@ -0,0 +1,18 @@ +typedef struct { + virtual const char *blah() { + return "Heya::blah"; + } +} Heya; + +struct Grok : public Heya { + virtual const char *blah() { + return "Grok::blah"; + } +}; + +int main() { + Grok *g = new Grok(); + delete g; + return 0; +} + diff --git a/gcc/testsuite/g++.dg/init/brace2.C b/gcc/testsuite/g++.dg/init/brace2.C new file mode 100644 index 00000000000..488d916aa42 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/brace2.C @@ -0,0 +1,8 @@ +// { dg-do compile } +// [dcl.init] paragraph 13. +int x = { 2 }; +const char * y = { "hello" }; +int a = 2; +int b = { 2,3 }; // { dg-error "requires one element" } +int c = { { 2 } } ; // { dg-error "braces around scalar initializer" } + diff --git a/gcc/testsuite/g++.dg/init/brace3.C b/gcc/testsuite/g++.dg/init/brace3.C new file mode 100644 index 00000000000..0a1ee8f00a9 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/brace3.C @@ -0,0 +1 @@ +int array[2][1] = { {0} {1} }; // { dg-error "" } diff --git a/gcc/testsuite/g++.dg/init/string1.C b/gcc/testsuite/g++.dg/init/string1.C new file mode 100644 index 00000000000..597b8619e72 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/string1.C @@ -0,0 +1,8 @@ +extern void f (char*); + +extern const char * const target = "foo"; + +void g () +{ + f (target); // { dg-error "conversion" } +} diff --git a/gcc/testsuite/g++.dg/lookup/anon2.C b/gcc/testsuite/g++.dg/lookup/anon2.C new file mode 100644 index 00000000000..b0a7c07af96 --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/anon2.C @@ -0,0 +1,6 @@ +// { dg-do compile } +// { dg-options "" } + +class { int i; } a; // { dg-error "private" } +void foo() { a.i; } // { dg-error "context" } + diff --git a/gcc/testsuite/g++.dg/overload/ambig1.C b/gcc/testsuite/g++.dg/overload/ambig1.C new file mode 100644 index 00000000000..2adc78c795a --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/ambig1.C @@ -0,0 +1,23 @@ +// [over.best.ics]: For the purpose of ranking implicit conversion +// sequences as described in _over.ics.rank_, the ambiguous conversion +// sequence is treated as a user-defined sequence that is indistinguishable +// from any other user- defined conversion sequence. + +struct A +{ + A(long); + A(char); +}; + +struct B +{ + B(int); +}; + +void f(A); // { dg-error "" "candidate" } +void f(B); // { dg-error "" "candidate" } + +int main() +{ + f (42); // { dg-error "ambiguous" "ambiguous" } +} diff --git a/gcc/testsuite/g++.dg/parse/defarg1.C b/gcc/testsuite/g++.dg/parse/defarg1.C new file mode 100644 index 00000000000..77c50e8c3a9 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/defarg1.C @@ -0,0 +1,5 @@ +class A +{ +public: + A(int nBits = ((int)0x8) | ((int)0x4) | ((int)0x2)); +}; diff --git a/gcc/testsuite/g++.dg/rtti/cv1.C b/gcc/testsuite/g++.dg/rtti/cv1.C new file mode 100644 index 00000000000..59dd6592c9d --- /dev/null +++ b/gcc/testsuite/g++.dg/rtti/cv1.C @@ -0,0 +1,17 @@ +// { dg-do run } + +#include <typeinfo> +#include <string.h> + +struct S {}; + +typedef S volatile T[4]; + +T t[3]; + +const std::type_info& ti = typeid (t); + +int main () { + if (strcmp (ti.name (), "A3_A4_1S") != 0) + return 1; +} diff --git a/gcc/testsuite/g++.dg/template/char1.C b/gcc/testsuite/g++.dg/template/char1.C new file mode 100644 index 00000000000..64ffda8fd36 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/char1.C @@ -0,0 +1,4 @@ +template <class CharType, CharType line_terminator = 0> +class String {}; + +String<char, 255> s; diff --git a/gcc/testsuite/g++.dg/template/ctor2.C b/gcc/testsuite/g++.dg/template/ctor2.C new file mode 100644 index 00000000000..1c8d8a65d9b --- /dev/null +++ b/gcc/testsuite/g++.dg/template/ctor2.C @@ -0,0 +1,18 @@ +// { dg-do run } + +int i; + +template <class T> +struct S +{ + S () { i = 1; } +}; + +static S<int> s[1]; + +int main () +{ + if (!i) + return 1; +} + diff --git a/gcc/testsuite/g++.dg/template/friend8.C b/gcc/testsuite/g++.dg/template/friend8.C new file mode 100644 index 00000000000..21fd242f183 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/friend8.C @@ -0,0 +1,18 @@ +template <int N> struct ivector +{ + template <int r, int c> friend void + mult_mv (); +}; + +template struct ivector<3>; + +template <int r, int c> void +mult_mv () +{ + c; +} + +void get_local_point_pos () +{ + mult_mv<7, 3> (); +} diff --git a/gcc/testsuite/g++.dg/template/strlen1.C b/gcc/testsuite/g++.dg/template/strlen1.C new file mode 100644 index 00000000000..ddec51d7b1e --- /dev/null +++ b/gcc/testsuite/g++.dg/template/strlen1.C @@ -0,0 +1,9 @@ +template <typename A1> +void monk2 (A1) {} + +unsigned int strlen (const char*); + +void monk () +{ + monk2 (strlen ("")); +} diff --git a/gcc/testsuite/g++.dg/template/varmod1.C b/gcc/testsuite/g++.dg/template/varmod1.C new file mode 100644 index 00000000000..0747fe99587 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/varmod1.C @@ -0,0 +1,10 @@ +// { dg-options "-w" } + +template<typename T> void foo(T); + +void bar() +{ + int i; + int A[i][i]; + foo(A); // { dg-error "" } +} |