diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-12-28 07:48:15 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-12-28 07:48:15 +0000 |
commit | af45f70df31a6451b1832c86be161abac8836c66 (patch) | |
tree | 53677ebe6cc9166c3b0826cc1dbf2ec72af1651a | |
parent | 71ab34dfba03526c2b819746fcc92b869f361bec (diff) | |
download | gcc-af45f70df31a6451b1832c86be161abac8836c66.tar.gz |
* g++.dg/eh/spec4.C: Remove stray semicolon.
* g++.dg/expr/pmf-1.C: Change error message.
* g++.dg/ext/asm1.C: Remove stray semicolon.
* g++.dg/ext/typename1.C: Add missing typenames.
* g++.dg/inherit/template-as-base.C: Change error message.
* g++.dg/lookup/scoped1.C: Likewise.
* g++.dg/lookup/scoped2.C: Likewise.
* g++.dg/lookup/using2.C: Likewise.
* g++.dg/other/component1.C: Remove stray semicolon.
* g++.dg/other/do1.C: Change error message.
* g++.dg/other/error2.C: Likewise.
* g++.dg/other/init1.C: Likewise.
* g++.dg/other/packed1.C: Remove stray semicolon.
* g++.dg/other/ptrmem2.C: Change error message.
* g++.dg/parse/parameter-declaration-1.C: Remove line number
marker.
* g++.dg/special/initp1.C: Remove invalid attribute usage.
* g++.dg/template/access3.C: Add typename keyword.
* g++.dg/template/access5.C: Remove stray semicolon.
* g++.dg/template/access6.C: Likewise.
* g++.dg/template/complit1.C: Likewise.
* g++.dg/template/crash1.C: Change error message.
* g++.dg/template/inherit2.C: Remove stray semicolon.
* g++.dg/template/instantiate2.C: Likewise.
* g++.dg/template/instantiate3.C: Change error message.
* g++.dg/template/qual1.C: Remove stray semicolon.
* g++.dg/template/qualttp18.C: Change error message.
* g++.dg/template/ref1.C: Remove stray semicolon.
* g++.dg/template/sizeof1.C (A::value): Declare it.
* g++.dg/template/spec4.C: Change error message.
* g++.dg/template/static1.C: Likewise.
* g++.dg/template/type1.C: Likewise.
* g++.dg/template/typename3.C: Likewise.
* g++.old-deja/g++.benjamin/13478.C: Change error message.
* g++.old-deja/g++.benjamin/15799.C: Remove stray semicolon.
* g++.old-deja/g++.benjamin/bool01.C: Likewise.
* g++.old-deja/g++.benjamin/bool02.C: Likewise.
* g++.old-deja/g++.benjamin/p13417.C: Now fails due to use of
named return value extension.
* g++.old-deja/g++.benjamin/tem06.C: Remove stray semicolon.
* g++.old-deja/g++.benjmain/warn01.C: Likewise.
* g++.old-deja/g++.bob/extern_C.C: Likewise.
* g++.old-deja/g++.bob/inherit2.C: Likewise.
* g++.old-deja/g++.brendan/complex1.C: Likewise.
* g++.old-deja/g++.brendan/copy5.C: Likewise.
* g++.old-deja/g++.brendan/crash13.C: Likewise.
* g++.old-deja/g++.brendan/crash15.C: Likewise.
* g++.old-deja/g++.brendan/crash18.C: Change error message.
* g++.old-deja/g++.brendan/crash37.C: Remove stray semicolon.
* g++.old-deja/g++.brendan/crash38.C: Likewise.
* g++.old-deja/g++.brendan/crash50.C: Likewise.
* g++.old-deja/g++.brendan/crash56.C: Likewise.
* g++.old-deja/g++.brendan/crash6.C: Use explicit specialization
syntax.
* g++.old-deja/g++.brendan/crash66.C: Remove stray semicolon.
* g++.old-deja/g++.brendan/crash8.C: Change error message.
* g++.old-deja/g++.brendan/ctors1.C: Remove stray semicolon.
* g++.old-deja/g++.brendan/ctors2.C: Likewise.
* g++.old-deja/g++.brendan/shadow1.C: Likewise.
* g++.old-deja/g++.brendan/template11.C: Likewise.
* g++.old-deja/g++.brendan/template26.C: Likewise.
* g++.old-deja/g++.brendan/template27.C: Use explicit
specialization syntax.
* g++.old-deja/g++.brendan/template30.C: Likewise.
* g++.old-deja/g++.brendan/template5.C: Remove stray semicolon.
* g++.old-deja/g++.brendan/visibility3.C: Account for use of
non-dependent names.
* g++.old-deja/g++.brendan/warnings4.C: Remove stray semicolon.
* g++.old-deja/g++.brendan/warnings7.C: Likewise.
* g++.old-deja/g++.bugs/900121_02.C: Likewise.
* g++.old-deja/g++.eh/catchptr1.C: Likewise.
* g++.old-deja/g++.ext/addrfunc4.C: Likewise.
* g++.old-deja/g++.ext/namedret1.C: Now fails due to use of
named return value extension.
* g++.old-deja/g++.ext/namedret2.C: Likewise.
* g++.old-deja/g++.ext/namedret3.C: Likewise.
* g++.old-deja/g++.ext/return1.C: Likewise.
* g++.old-deja/g++.ext/typename1.C: Add missing typename keywords.
* g++.old-deja/g++.jason/access17.C: Issue more error messages.
* g++.old-deja/g++.jason/access8.C: Likewise.
* g++.old-deja/g++.jason/bool.C: Remove stray semicolon.
* g++.old-deja/g++.jason/destruct.C: Remove incorrect
pseudo-destructor names.
* g++.old-deja/g++.jason/dtor3.C: Remove stray semicolon.
* g++.old-deja/g++.jason/dtor5.C: Remove incorrect
pseudo-destructor names.
* g++.old-deja/g++.jason/opeq3.C: Remove stray semicolon.
* g++.old-deja/g++.jason/overload19.C: Likewise.
* g++.old-deja/g++.jason/overload32.C: Likewise.
* g++.old-deja/g++.jason/parse11.C: Issue error messages about
stray semicolons.
* g++.old-deja/g++.jason/pmem2.C: Remove stray semicolon.
* g++.old-deja/g++.jason/return.C: Likewise.
* g++.old-deja/g++.jason/return2.C: Likewise.
* g++.old-deja/g++.jason/shadow1.C: Likewise.
* g++.old-deja/g++.jason/special.C: Use explicit specialization
syntax.
* g++.old-deja/g++.jason/template10.C: Account for use of
non-dependent names.
* g++.old-deja/g++.jason/template11.C: Use explicit specialization
syntax.
* g++.old-deja/g++.jason/template37.C: Likewise.
* g++.old-deja/g++.law/access4.C: Change error messages.
* g++.old-deja/g++.law/arm13.C: Remove incorrect
pseudo-destructor names.
* g++.old-deja/g++.law/code-gen5.C: Remove stray semicolon.
* g++.old-deja/g++.law/ctors9.C: Likewise.
* g++.old-deja/g++.law/cvt22.C: Likewise.
* g++.old-deja/g++.law/dtors5.C: Likewise.
* g++.old-deja/g++.law/global-init1.C: Likewise.
* g++.old-deja/g++.law/missed-error3.C: Likewise.
* g++.old-deja/g++.law/operators28.C: Likewise.
* g++.old-deja/g++.law/visibility28.C: Likewise.
* g++.old-deja/g++.martin/eval1.C: Likewise.
* g++.old-deja/g++.martin/pmf2.C: Remove qualifier in constructor
name.
* g++.old-deja/g++.mike/hog1.C: Remove stray semicolon.
* g++.old-deja/g++.mike/net34.C: Likewise.
* g++.old-deja/g++.mike/net36.C: Likewise.
* g++.old-deja/g++.mike/ns2.C: Likewise.
* g++.old-deja/g++.mike/p12306.C: Likewise.
* g++.old-deja/g++.mike/p646.C: Adjust for removal of named return
value extension.
* g++.old-deja/g++.mike/p700.C: Likewise.
* g++.old-deja/g++.mike/p701.C: Remove stray semicolon.
* g++.old-deja/g++.mike/p710.C: Likewise.
* g++.old-deja/g++.mike/p784.C: Adjust for removal of named return
value extension.
* g++.old-deja/g++.mike/pmf7.C: Remove stray semicolon.
* g++.old-deja/g++.mike/pmf9.C: Likewise.
* g++.old-deja/g++.ns/crash2.C: Likewise.
* g++.old-deja/g++.ns/crash3.C: Likewise.
* g++.old-deja/g++.ns/invalid1.C: Likewise.
* g++.old-deja/g++.ns/ns17.C: Likewise.
* g++.old-deja/g++.ns/template16.C: Likewise.
* g++.old-deja/g++.ns/template5.C: Remove invalid use of template
keyword.
* g++.old-deja/g++.ns/template6.C: Remove stray semicolon.
* g++.old-deja/g++.ns/using9.C: Remove stray semicolon.
* g++.old-deja/g++.oliva/nameret1.C: Now fails due to use of
named return value extension.
* g++.old-deja/g++.oliva/nameret2.C: Likewise.
* g++.old-deja/g++.other/access4.C: Issue additional error
messages.
* g++.old-deja/g++.other/array6.C: Remove stray semicolon.
* g++.old-deja/g++.other/crash1.C: Isue additional error messages.
* g++.old-deja/g++.other/crash11.C: Add missing class-key.
* g++.old-deja/g++.other/crash25.C: Change error message.
* g++.old-deja/g++.other/crash4.C: Change error message.
* g++.old-deja/g++.other/debug7.C: Remove stray semicolon.
* g++.old-deja/g++.other/decl5.C: Issue more error messages.
* g++.old-deja/g++.other/defarg7.C: Remove circular dependency
checks.
* g++.old-deja/g++.other/defarg8.C: Likewise.
* g++.old-deja/g++.other/dtor1.C: Remove stray semicolon.
* g++.old-deja/g++.other/dtor10.C: Likewise.
* g++.old-deja/g++.other/incomplete.C: Likewise.
* g++.old-deja/g++.other/linkage7.C: Likewise.
* g++.old-deja/g++.other/lookup19.C: Now fails due to corrected
lookup algorithm.
* g++.old-deja/g++.other/mangle2.C: Likewise.
* g++.old-deja/g++.other/refinit2.C: Likewise.
* g++.old-deja/g++.other/sizeof2.C: Change error messages.
* g++.old-deja/g++.other/std1.C: Remove stray semicolon.
* g++.old-deja/g++.pt/crash28.C: Likewise.
* g++.old-deja/g++.pt/crash29.C: Use explicit specialization
syntax.
* g++.old-deja/g++.pt/crash32.C: Change error message.
* g++.old-deja/g++.pt/crash43.C: Adjust error messages.
* g++.old-deja/g++.pt/crash58.C: Remove stray semicolon.
* g++.old-deja/g++.pt/crash65.C: Tweak to acount for change in
error message position.
* g++.old-deja/g++.pt/defarg5.C: Remove stray semicolon.
* g++.old-deja/g++.pt/defarg8.C: Change error message.
* g++.old-deja/g++.pt/eichin01.C: Use explicit specialization
syntax.
* g++.old-deja/g++.pt/eichin01a.C: Define static data members.
* g++.old-deja/g++.pt/eichin01b.C: Likewise.
* g++.old-deja/g++.pt/enum7.C: Remove stray semicolon.
* g++.old-deja/g++.pt/explicit12.C: Remove invalid use of template
keyword.
* g++.old-deja/g++.pt/explicit31.C: Likewise.
* g++.old-deja/g++.pt/explicit33.C: Remove stray semicolon.
* g++.old-deja/g++.pt/explicit35.C: Remove invalid use of template
keyword.
* g++.old-deja/g++.pt/explicit71.C: Change error message.
* g++.old-deja/g++.pt/explicit80.C: Use explicit specialization
syntax.
* g++.old-deja/g++.pt/friend28.C: Account for use of
non-dependent names.
* g++.old-deja/g++.pt/friend29.C: Likewise.
* g++.old-deja/g++.pt/friend46.C: Adjust for correct name lookup
rules.
* g++.old-deja/g++.pt/friend48.C: Remove stray semicolon.
* g++.old-deja/g++.pt/instantiate1.C: Use correct class-key.
* g++.old-deja/g++.pt/instantiate11.C: Adjust for correct name
lookup rules.
* g++.old-deja/g++.pt/instantiate8.C: Remove stray semicolon.
* g++.old-deja/g++.pt/instantiate9.C: Insert missing typename
keyword.
* g++.old-deja/g++.pt/memclass20.C: Likewise.
* g++.old-deja/g++.pt/memclass5.C: Likewise.
* g++.old-deja/g++.pt/memclass7.C: Remove invalid use of template
keyword.
* g++.old-deja/g++.pt/memtemp75.C: Likewise.
* g++.old-deja/g++.pt/memtemp81.C: Remove stray semicolon.
* g++.old-deja/g++.pt/memtemp87.C: Add missing access specifier.
* g++.old-deja/g++.pt/overload13.C: Correct error messages.
* g++.old-deja/g++.pt/parms2.C: Add missing typename keyword.
* g++.old-deja/g++.pt/ptrmem1.C: Remove invalid use of template
keyword.
* g++.old-deja/g++.pt/spec10.C: Likewise.
* g++.old-deja/g++.pt/spec28.C: Reorder declarations.
* g++.old-deja/g++.pt/t10.C: Add explicit specialization syntax.
* g++.old-deja/g++.pt/t32.C: Remove stray semicolon.
* g++.old-deja/g++.pt/t35a.C: Add explicit specialization syntax.
* g++.old-deja/g++.pt/ttp24.C: Remove stray semicolon.
* g++.old-deja/g++.pt/ttp62.C: Likewise.
* g++.old-deja/g++.pt/ttp64.C: Likewise.
* g++.old-deja/g++.pt/typename11.C: Add missing typename keyword.
* g++.old-deja/g++.pt/typename15.C: Likewise.
* g++.old-deja/g++.pt/typename22.C: Likewise.
* g++.old-deja/g++.pt/typename6.C: Change error messages.
* g++.old-deja/g++.pt/using1.C: Remove stray semicolon.
* g++.old-deja/g++.pt/virtual2.C: Likewise.
* g++.old-deja/g++.robertl/eb118.C: Add explicit specialization
syntax.
* g++.old-deja/g++.robertl/eb27.C: Now fails due to use of named
return value extension.
* g++.old-deja/g++.robertl/eb43.C: Remove stray semicolon.
* g++.old-deja/g++.robertl/eb79.C: Correct for new name lookup rules.
* g++.old-deja/g++.robertl/eb82.C: Remove stray semicolons.
* g++.old-deja/g++.robertl/eb86.C: Add missing forward declaration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60559 138bc75d-0d04-0410-961f-82ee72b054a4
204 files changed, 727 insertions, 477 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c54c1c2c1c0..cf8b61866ac 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,239 @@ +2002-12-27 Mark Mitchell <mark@codesourcery.com> + + * g++.dg/eh/spec4.C: Remove stray semicolon. + * g++.dg/expr/pmf-1.C: Change error message. + * g++.dg/ext/asm1.C: Remove stray semicolon. + * g++.dg/ext/typename1.C: Add missing typenames. + * g++.dg/inherit/template-as-base.C: Change error message. + * g++.dg/lookup/scoped1.C: Likewise. + * g++.dg/lookup/scoped2.C: Likewise. + * g++.dg/lookup/using2.C: Likewise. + * g++.dg/other/component1.C: Remove stray semicolon. + * g++.dg/other/do1.C: Change error message. + * g++.dg/other/error2.C: Likewise. + * g++.dg/other/init1.C: Likewise. + * g++.dg/other/packed1.C: Remove stray semicolon. + * g++.dg/other/ptrmem2.C: Change error message. + * g++.dg/parse/parameter-declaration-1.C: Remove line number + marker. + * g++.dg/special/initp1.C: Remove invalid attribute usage. + * g++.dg/template/access3.C: Add typename keyword. + * g++.dg/template/access5.C: Remove stray semicolon. + * g++.dg/template/access6.C: Likewise. + * g++.dg/template/complit1.C: Likewise. + * g++.dg/template/crash1.C: Change error message. + * g++.dg/template/inherit2.C: Remove stray semicolon. + * g++.dg/template/instantiate2.C: Likewise. + * g++.dg/template/instantiate3.C: Change error message. + * g++.dg/template/qual1.C: Remove stray semicolon. + * g++.dg/template/qualttp18.C: Change error message. + * g++.dg/template/ref1.C: Remove stray semicolon. + * g++.dg/template/sizeof1.C (A::value): Declare it. + * g++.dg/template/spec4.C: Change error message. + * g++.dg/template/static1.C: Likewise. + * g++.dg/template/type1.C: Likewise. + * g++.dg/template/typename3.C: Likewise. + * g++.old-deja/g++.benjamin/13478.C: Change error message. + * g++.old-deja/g++.benjamin/15799.C: Remove stray semicolon. + * g++.old-deja/g++.benjamin/bool01.C: Likewise. + * g++.old-deja/g++.benjamin/bool02.C: Likewise. + * g++.old-deja/g++.benjamin/p13417.C: Now fails due to use of + named return value extension. + * g++.old-deja/g++.benjamin/tem06.C: Remove stray semicolon. + * g++.old-deja/g++.benjmain/warn01.C: Likewise. + * g++.old-deja/g++.bob/extern_C.C: Likewise. + * g++.old-deja/g++.bob/inherit2.C: Likewise. + * g++.old-deja/g++.brendan/complex1.C: Likewise. + * g++.old-deja/g++.brendan/copy5.C: Likewise. + * g++.old-deja/g++.brendan/crash13.C: Likewise. + * g++.old-deja/g++.brendan/crash15.C: Likewise. + * g++.old-deja/g++.brendan/crash18.C: Change error message. + * g++.old-deja/g++.brendan/crash37.C: Remove stray semicolon. + * g++.old-deja/g++.brendan/crash38.C: Likewise. + * g++.old-deja/g++.brendan/crash50.C: Likewise. + * g++.old-deja/g++.brendan/crash56.C: Likewise. + * g++.old-deja/g++.brendan/crash6.C: Use explicit specialization + syntax. + * g++.old-deja/g++.brendan/crash66.C: Remove stray semicolon. + * g++.old-deja/g++.brendan/crash8.C: Change error message. + * g++.old-deja/g++.brendan/ctors1.C: Remove stray semicolon. + * g++.old-deja/g++.brendan/ctors2.C: Likewise. + * g++.old-deja/g++.brendan/shadow1.C: Likewise. + * g++.old-deja/g++.brendan/template11.C: Likewise. + * g++.old-deja/g++.brendan/template26.C: Likewise. + * g++.old-deja/g++.brendan/template27.C: Use explicit + specialization syntax. + * g++.old-deja/g++.brendan/template30.C: Likewise. + * g++.old-deja/g++.brendan/template5.C: Remove stray semicolon. + * g++.old-deja/g++.brendan/visibility3.C: Account for use of + non-dependent names. + * g++.old-deja/g++.brendan/warnings4.C: Remove stray semicolon. + * g++.old-deja/g++.brendan/warnings7.C: Likewise. + * g++.old-deja/g++.bugs/900121_02.C: Likewise. + * g++.old-deja/g++.eh/catchptr1.C: Likewise. + * g++.old-deja/g++.ext/addrfunc4.C: Likewise. + * g++.old-deja/g++.ext/namedret1.C: Now fails due to use of + named return value extension. + * g++.old-deja/g++.ext/namedret2.C: Likewise. + * g++.old-deja/g++.ext/namedret3.C: Likewise. + * g++.old-deja/g++.ext/return1.C: Likewise. + * g++.old-deja/g++.ext/typename1.C: Add missing typename keywords. + * g++.old-deja/g++.jason/access17.C: Issue more error messages. + * g++.old-deja/g++.jason/access8.C: Likewise. + * g++.old-deja/g++.jason/bool.C: Remove stray semicolon. + * g++.old-deja/g++.jason/destruct.C: Remove incorrect + pseudo-destructor names. + * g++.old-deja/g++.jason/dtor3.C: Remove stray semicolon. + * g++.old-deja/g++.jason/dtor5.C: Remove incorrect + pseudo-destructor names. + * g++.old-deja/g++.jason/opeq3.C: Remove stray semicolon. + * g++.old-deja/g++.jason/overload19.C: Likewise. + * g++.old-deja/g++.jason/overload32.C: Likewise. + * g++.old-deja/g++.jason/parse11.C: Issue error messages about + stray semicolons. + * g++.old-deja/g++.jason/pmem2.C: Remove stray semicolon. + * g++.old-deja/g++.jason/return.C: Likewise. + * g++.old-deja/g++.jason/return2.C: Likewise. + * g++.old-deja/g++.jason/shadow1.C: Likewise. + * g++.old-deja/g++.jason/special.C: Use explicit specialization + syntax. + * g++.old-deja/g++.jason/template10.C: Account for use of + non-dependent names. + * g++.old-deja/g++.jason/template11.C: Use explicit specialization + syntax. + * g++.old-deja/g++.jason/template37.C: Likewise. + * g++.old-deja/g++.law/access4.C: Change error messages. + * g++.old-deja/g++.law/arm13.C: Remove incorrect + pseudo-destructor names. + * g++.old-deja/g++.law/code-gen5.C: Remove stray semicolon. + * g++.old-deja/g++.law/ctors9.C: Likewise. + * g++.old-deja/g++.law/cvt22.C: Likewise. + * g++.old-deja/g++.law/dtors5.C: Likewise. + * g++.old-deja/g++.law/global-init1.C: Likewise. + * g++.old-deja/g++.law/missed-error3.C: Likewise. + * g++.old-deja/g++.law/operators28.C: Likewise. + * g++.old-deja/g++.law/visibility28.C: Likewise. + * g++.old-deja/g++.martin/eval1.C: Likewise. + * g++.old-deja/g++.martin/pmf2.C: Remove qualifier in constructor + name. + * g++.old-deja/g++.mike/hog1.C: Remove stray semicolon. + * g++.old-deja/g++.mike/net34.C: Likewise. + * g++.old-deja/g++.mike/net36.C: Likewise. + * g++.old-deja/g++.mike/ns2.C: Likewise. + * g++.old-deja/g++.mike/p12306.C: Likewise. + * g++.old-deja/g++.mike/p646.C: Adjust for removal of named return + value extension. + * g++.old-deja/g++.mike/p700.C: Likewise. + * g++.old-deja/g++.mike/p701.C: Remove stray semicolon. + * g++.old-deja/g++.mike/p710.C: Likewise. + * g++.old-deja/g++.mike/p784.C: Adjust for removal of named return + value extension. + * g++.old-deja/g++.mike/pmf7.C: Remove stray semicolon. + * g++.old-deja/g++.mike/pmf9.C: Likewise. + * g++.old-deja/g++.ns/crash2.C: Likewise. + * g++.old-deja/g++.ns/crash3.C: Likewise. + * g++.old-deja/g++.ns/invalid1.C: Likewise. + * g++.old-deja/g++.ns/ns17.C: Likewise. + * g++.old-deja/g++.ns/template16.C: Likewise. + * g++.old-deja/g++.ns/template5.C: Remove invalid use of template + keyword. + * g++.old-deja/g++.ns/template6.C: Remove stray semicolon. + * g++.old-deja/g++.ns/using9.C: Remove stray semicolon. + * g++.old-deja/g++.oliva/nameret1.C: Now fails due to use of + named return value extension. + * g++.old-deja/g++.oliva/nameret2.C: Likewise. + * g++.old-deja/g++.other/access4.C: Issue additional error + messages. + * g++.old-deja/g++.other/array6.C: Remove stray semicolon. + * g++.old-deja/g++.other/crash1.C: Isue additional error messages. + * g++.old-deja/g++.other/crash11.C: Add missing class-key. + * g++.old-deja/g++.other/crash25.C: Change error message. + * g++.old-deja/g++.other/crash4.C: Change error message. + * g++.old-deja/g++.other/debug7.C: Remove stray semicolon. + * g++.old-deja/g++.other/decl5.C: Issue more error messages. + * g++.old-deja/g++.other/defarg7.C: Remove circular dependency + checks. + * g++.old-deja/g++.other/defarg8.C: Likewise. + * g++.old-deja/g++.other/dtor1.C: Remove stray semicolon. + * g++.old-deja/g++.other/dtor10.C: Likewise. + * g++.old-deja/g++.other/incomplete.C: Likewise. + * g++.old-deja/g++.other/linkage7.C: Likewise. + * g++.old-deja/g++.other/lookup19.C: Now fails due to corrected + lookup algorithm. + * g++.old-deja/g++.other/mangle2.C: Likewise. + * g++.old-deja/g++.other/refinit2.C: Likewise. + * g++.old-deja/g++.other/sizeof2.C: Change error messages. + * g++.old-deja/g++.other/std1.C: Remove stray semicolon. + * g++.old-deja/g++.pt/crash28.C: Likewise. + * g++.old-deja/g++.pt/crash29.C: Use explicit specialization + syntax. + * g++.old-deja/g++.pt/crash32.C: Change error message. + * g++.old-deja/g++.pt/crash43.C: Adjust error messages. + * g++.old-deja/g++.pt/crash58.C: Remove stray semicolon. + * g++.old-deja/g++.pt/crash65.C: Tweak to acount for change in + error message position. + * g++.old-deja/g++.pt/defarg5.C: Remove stray semicolon. + * g++.old-deja/g++.pt/defarg8.C: Change error message. + * g++.old-deja/g++.pt/eichin01.C: Use explicit specialization + syntax. + * g++.old-deja/g++.pt/eichin01a.C: Define static data members. + * g++.old-deja/g++.pt/eichin01b.C: Likewise. + * g++.old-deja/g++.pt/enum7.C: Remove stray semicolon. + * g++.old-deja/g++.pt/explicit12.C: Remove invalid use of template + keyword. + * g++.old-deja/g++.pt/explicit31.C: Likewise. + * g++.old-deja/g++.pt/explicit33.C: Remove stray semicolon. + * g++.old-deja/g++.pt/explicit35.C: Remove invalid use of template + keyword. + * g++.old-deja/g++.pt/explicit71.C: Change error message. + * g++.old-deja/g++.pt/explicit80.C: Use explicit specialization + syntax. + * g++.old-deja/g++.pt/friend28.C: Account for use of + non-dependent names. + * g++.old-deja/g++.pt/friend29.C: Likewise. + * g++.old-deja/g++.pt/friend46.C: Adjust for correct name lookup + rules. + * g++.old-deja/g++.pt/friend48.C: Remove stray semicolon. + * g++.old-deja/g++.pt/instantiate1.C: Use correct class-key. + * g++.old-deja/g++.pt/instantiate11.C: Adjust for correct name + lookup rules. + * g++.old-deja/g++.pt/instantiate8.C: Remove stray semicolon. + * g++.old-deja/g++.pt/instantiate9.C: Insert missing typename + keyword. + * g++.old-deja/g++.pt/memclass20.C: Likewise. + * g++.old-deja/g++.pt/memclass5.C: Likewise. + * g++.old-deja/g++.pt/memclass7.C: Remove invalid use of template + keyword. + * g++.old-deja/g++.pt/memtemp75.C: Likewise. + * g++.old-deja/g++.pt/memtemp81.C: Remove stray semicolon. + * g++.old-deja/g++.pt/memtemp87.C: Add missing access specifier. + * g++.old-deja/g++.pt/overload13.C: Correct error messages. + * g++.old-deja/g++.pt/parms2.C: Add missing typename keyword. + * g++.old-deja/g++.pt/ptrmem1.C: Remove invalid use of template + keyword. + * g++.old-deja/g++.pt/spec10.C: Likewise. + * g++.old-deja/g++.pt/spec28.C: Reorder declarations. + * g++.old-deja/g++.pt/t10.C: Add explicit specialization syntax. + * g++.old-deja/g++.pt/t32.C: Remove stray semicolon. + * g++.old-deja/g++.pt/t35a.C: Add explicit specialization syntax. + * g++.old-deja/g++.pt/ttp24.C: Remove stray semicolon. + * g++.old-deja/g++.pt/ttp62.C: Likewise. + * g++.old-deja/g++.pt/ttp64.C: Likewise. + * g++.old-deja/g++.pt/typename11.C: Add missing typename keyword. + * g++.old-deja/g++.pt/typename15.C: Likewise. + * g++.old-deja/g++.pt/typename22.C: Likewise. + * g++.old-deja/g++.pt/typename6.C: Change error messages. + * g++.old-deja/g++.pt/using1.C: Remove stray semicolon. + * g++.old-deja/g++.pt/virtual2.C: Likewise. + * g++.old-deja/g++.robertl/eb118.C: Add explicit specialization + syntax. + * g++.old-deja/g++.robertl/eb27.C: Now fails due to use of named + return value extension. + * g++.old-deja/g++.robertl/eb43.C: Remove stray semicolon. + * g++.old-deja/g++.robertl/eb79.C: Correct for new name lookup rules. + * g++.old-deja/g++.robertl/eb82.C: Remove stray semicolons. + * g++.old-deja/g++.robertl/eb86.C: Add missing forward declaration. + 2002-12-26 Nathan Sidwell <nathan@codesourcery.com> * g++.dg/warn/inline1.C: New test. diff --git a/gcc/testsuite/g++.dg/eh/spec4.C b/gcc/testsuite/g++.dg/eh/spec4.C index a41605f5637..8edd3a1c649 100644 --- a/gcc/testsuite/g++.dg/eh/spec4.C +++ b/gcc/testsuite/g++.dg/eh/spec4.C @@ -14,4 +14,4 @@ public: typedef HandlerStack<std::set_terminate> Terminate; -template<> void Terminate::defaultHandler() {}; +template<> void Terminate::defaultHandler() {} diff --git a/gcc/testsuite/g++.dg/expr/pmf-1.C b/gcc/testsuite/g++.dg/expr/pmf-1.C index 61457ecbdc6..9bb8a037d75 100644 --- a/gcc/testsuite/g++.dg/expr/pmf-1.C +++ b/gcc/testsuite/g++.dg/expr/pmf-1.C @@ -13,7 +13,7 @@ struct A void h() { void (A::*p)() = &A::f; - void (A::*q)() = &(A::f); // { dg-error "parenthesis" "" } + void (A::*q)() = &(A::f); // { dg-error "parenthesized" "" } foo(&g<int>); // { dg-error "" "" } } }; diff --git a/gcc/testsuite/g++.dg/ext/asm1.C b/gcc/testsuite/g++.dg/ext/asm1.C index 8a010eee068..dd4aede2424 100644 --- a/gcc/testsuite/g++.dg/ext/asm1.C +++ b/gcc/testsuite/g++.dg/ext/asm1.C @@ -20,7 +20,7 @@ int foo (void) [third] "i" (j + 2), [fourth] "i" (100)); return i; -}; +} template<class TYPE> TYPE bar (TYPE t) diff --git a/gcc/testsuite/g++.dg/ext/typename1.C b/gcc/testsuite/g++.dg/ext/typename1.C index 1c6b8389092..f66210ff506 100644 --- a/gcc/testsuite/g++.dg/ext/typename1.C +++ b/gcc/testsuite/g++.dg/ext/typename1.C @@ -2,6 +2,6 @@ // { dg-options "-fpermissive -w" } template <class T> struct A { typedef int X; }; -template <class T> struct B { typedef A<T> Y; void f (Y::X); }; -template <class T, class T1, class T2, class T3> struct C : public B<T> { void g (Y::X); }; +template <class T> struct B { typedef A<T> Y; void f (typename Y::X); }; +template <class T, class T1, class T2, class T3> struct C : public B<T> { void g (typename Y::X); }; template class B<int>; diff --git a/gcc/testsuite/g++.dg/inherit/template-as-base.C b/gcc/testsuite/g++.dg/inherit/template-as-base.C index f9cd330ea98..5d34b15d8fc 100644 --- a/gcc/testsuite/g++.dg/inherit/template-as-base.C +++ b/gcc/testsuite/g++.dg/inherit/template-as-base.C @@ -6,4 +6,4 @@ namespace N template<typename> struct X { }; } -struct A : N::X { }; // { dg-error "invalid base-class" "" } +struct A : N::X { }; // { dg-error "expected class-name" "" } diff --git a/gcc/testsuite/g++.dg/lookup/scoped1.C b/gcc/testsuite/g++.dg/lookup/scoped1.C index 0fe8d33b6ec..fc6c4b3c269 100644 --- a/gcc/testsuite/g++.dg/lookup/scoped1.C +++ b/gcc/testsuite/g++.dg/lookup/scoped1.C @@ -4,7 +4,7 @@ struct A { static int i1; - int i2; + int i2; // { dg-error "inaccessible" "" } static void f1 (); void f2 (); }; @@ -15,7 +15,7 @@ struct C: public B void g () { ::A::i1 = 1; - ::A::i2 = 1; // { dg-error "access" "" } + ::A::i2 = 1; // { dg-error "(access)|(context)" "" } ::A::f1 (); ::A::f2 (); // { dg-error "access" "" { xfail *-*-* } } } diff --git a/gcc/testsuite/g++.dg/lookup/scoped2.C b/gcc/testsuite/g++.dg/lookup/scoped2.C index 80cfb1f5f00..08882d97438 100644 --- a/gcc/testsuite/g++.dg/lookup/scoped2.C +++ b/gcc/testsuite/g++.dg/lookup/scoped2.C @@ -13,7 +13,7 @@ struct Derived : Base { void Foo () { - Base::Baz (); // { dg-error "has no member" "" } + Base::Baz (); // { dg-error "is not a member" "" } }; }; diff --git a/gcc/testsuite/g++.dg/lookup/scoped3.C b/gcc/testsuite/g++.dg/lookup/scoped3.C index 992f1d12809..12ef8c8a578 100644 --- a/gcc/testsuite/g++.dg/lookup/scoped3.C +++ b/gcc/testsuite/g++.dg/lookup/scoped3.C @@ -20,4 +20,4 @@ struct C : public B }; -template C<int>; +template struct C<int>; diff --git a/gcc/testsuite/g++.dg/lookup/using2.C b/gcc/testsuite/g++.dg/lookup/using2.C index 92f134eaf84..c7aa09c466d 100644 --- a/gcc/testsuite/g++.dg/lookup/using2.C +++ b/gcc/testsuite/g++.dg/lookup/using2.C @@ -1,4 +1,4 @@ -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -25,7 +25,7 @@ namespace N template<int> void f() {} } -using N; // { dg-error "parse error" "" } +using N; // { dg-error "(using-declaration)|(nested-name)" "" } using ::N; // { dg-error "using-declaration" "" } using N::f< 0 >; // { dg-error "using-declaration" "" } @@ -41,6 +41,6 @@ struct B : A { struct C : A { using A::f<double>; // { dg-error "using-declaration" "" } - using A::X<int>; // { dg-error "parse error" "" } + using A::X<int>; // { dg-error "using-declaration" "" } }; diff --git a/gcc/testsuite/g++.dg/other/component1.C b/gcc/testsuite/g++.dg/other/component1.C index 3041a23193f..80b95609d0e 100644 --- a/gcc/testsuite/g++.dg/other/component1.C +++ b/gcc/testsuite/g++.dg/other/component1.C @@ -1,6 +1,6 @@ // { dg-do compile } -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 28 Dec 2001 <nathan@codesourcery.com> // PR 5123. ICE @@ -26,4 +26,4 @@ void Foo () { c.g == 1; // { dg-error "invalid use of" "" } c.f == 1; // { dg-error "invalid use of" "" } c.f<int> == 1; // { dg-error "invalid use of" "" } -}; +} diff --git a/gcc/testsuite/g++.dg/other/do1.C b/gcc/testsuite/g++.dg/other/do1.C index 5ff6c5682ba..8cbd1a35f1f 100644 --- a/gcc/testsuite/g++.dg/other/do1.C +++ b/gcc/testsuite/g++.dg/other/do1.C @@ -8,6 +8,6 @@ void init () { do { } while (0) - obj = 0; // { dg-error "parse error" "" } + obj = 0; // { dg-error "expected|undeclared" "" } } diff --git a/gcc/testsuite/g++.dg/other/error2.C b/gcc/testsuite/g++.dg/other/error2.C index 9910ada2a8b..344be234f3b 100644 --- a/gcc/testsuite/g++.dg/other/error2.C +++ b/gcc/testsuite/g++.dg/other/error2.C @@ -10,5 +10,5 @@ namespace N class B { friend void operator>>(int, class B); }; class N { friend void operator>>(int,class N); }; } -void N::operator>>(int, N::B) // { dg-error "no type `B' in `N::N'" "" } +void N::operator>>(int, N::B) // { dg-error "`B' is not a member of `class N::N'|non-function|primary-expression" "" } { } // { dg-error "" "" } diff --git a/gcc/testsuite/g++.dg/other/init1.C b/gcc/testsuite/g++.dg/other/init1.C index bf4c0794758..ec1986e9b7a 100644 --- a/gcc/testsuite/g++.dg/other/init1.C +++ b/gcc/testsuite/g++.dg/other/init1.C @@ -1,6 +1,6 @@ // { dg-do compile } -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 13 Nov 2001 <nathan@codesourcery.com> // Bug 3154 @@ -17,7 +17,7 @@ struct B : A class T { typedef int Foo; - T () : Foo () {} // { dg-error "type `T::Foo' is not" "" } + T () : Foo () {} // { dg-error "T::Foo' is not" "" } }; struct S : B diff --git a/gcc/testsuite/g++.dg/other/packed1.C b/gcc/testsuite/g++.dg/other/packed1.C index b515854a849..4fb7194dd9f 100644 --- a/gcc/testsuite/g++.dg/other/packed1.C +++ b/gcc/testsuite/g++.dg/other/packed1.C @@ -19,4 +19,4 @@ int main () return 0; -}; +} diff --git a/gcc/testsuite/g++.dg/other/ptrmem2.C b/gcc/testsuite/g++.dg/other/ptrmem2.C index ec451be39da..d267df15be1 100644 --- a/gcc/testsuite/g++.dg/other/ptrmem2.C +++ b/gcc/testsuite/g++.dg/other/ptrmem2.C @@ -1,6 +1,6 @@ // { dg-do compile } -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 31 Dec 2001 <nathan@codesourcery.com> // PR 4379. We created pointers to member references and pointers to @@ -8,7 +8,7 @@ struct D { - int &m; // { dg-error "member `D::m' is non-static" "" } + int &m; // { dg-error "invalid use of non-static data member" "" } static int &s; int Foo (); @@ -29,7 +29,7 @@ int D::Foo () int Foo () { f1( &D::m); // { dg-error "cannot create pointer to ref" "" } - f1( &(D::m)); // { dg-error "at this point" "" } + f1( &(D::m)); // { dg-error "from this location" "" } f2( &D::s); // ok f2( &(D::s)); // ok return 0; diff --git a/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C b/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C index 11a9c7b7da9..22d6f214d7d 100644 --- a/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C +++ b/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C @@ -3,4 +3,4 @@ // { dg-do compile } struct { - a(void = 0; a(0), a(0) // { dg-error "" "" { target *-*-* } 7 } + a(void = 0; a(0), a(0) // { dg-error "" "" { target *-*-* } } diff --git a/gcc/testsuite/g++.dg/special/initp1.C b/gcc/testsuite/g++.dg/special/initp1.C index 7615023e7cd..adde34fefa6 100644 --- a/gcc/testsuite/g++.dg/special/initp1.C +++ b/gcc/testsuite/g++.dg/special/initp1.C @@ -19,7 +19,7 @@ extern Two goo; extern Two coo[]; extern Two koo[]; -Two foo( 5, 6 ) __attribute__((init_priority(1005))); +Two foo __attribute__((init_priority(1005))) ( 5, 6 ); Two goo __attribute__((init_priority(1007))) = Two( 7, 8 ); diff --git a/gcc/testsuite/g++.dg/template/access3.C b/gcc/testsuite/g++.dg/template/access3.C index 1674f5f57ab..e8ee1041d13 100644 --- a/gcc/testsuite/g++.dg/template/access3.C +++ b/gcc/testsuite/g++.dg/template/access3.C @@ -4,7 +4,7 @@ // Enforcing access of typename type. template <class T> struct A { - typename T::X<int> x; // { dg-error "this context" } + typename T::template X<int> x; // { dg-error "this context" } }; class B { diff --git a/gcc/testsuite/g++.dg/template/access5.C b/gcc/testsuite/g++.dg/template/access5.C index a9cb8a5075d..b2da190ff4e 100644 --- a/gcc/testsuite/g++.dg/template/access5.C +++ b/gcc/testsuite/g++.dg/template/access5.C @@ -16,6 +16,6 @@ class Outer { template <int dim> typename Outer::Inner<dim>::T Outer::Inner<dim>::foo () { return 1; -}; +} -template Outer::Inner<2>; +template struct Outer::Inner<2>; diff --git a/gcc/testsuite/g++.dg/template/access6.C b/gcc/testsuite/g++.dg/template/access6.C index fc80402ba1b..cbc8000d185 100644 --- a/gcc/testsuite/g++.dg/template/access6.C +++ b/gcc/testsuite/g++.dg/template/access6.C @@ -11,7 +11,7 @@ template <class> class Base { template <class T> struct Derived : public Base<T> { typedef typename Base<T>::Type Type; - template <class Arg> void f(Type = Type()) {}; + template <class Arg> void f(Type = Type()) {} }; template void Derived<char>::f<int> (Type); diff --git a/gcc/testsuite/g++.dg/template/complit1.C b/gcc/testsuite/g++.dg/template/complit1.C index ab057b3b7ee..00eb23e83b3 100644 --- a/gcc/testsuite/g++.dg/template/complit1.C +++ b/gcc/testsuite/g++.dg/template/complit1.C @@ -6,6 +6,6 @@ template <int D> struct C { }; template<int D> -C<D>::C() : d((int[]){1,2,3}) {}; +C<D>::C() : d((int[]){1,2,3}) {} template class C<1>; diff --git a/gcc/testsuite/g++.dg/template/crash1.C b/gcc/testsuite/g++.dg/template/crash1.C index e3c83bcd22f..3879ad5abda 100644 --- a/gcc/testsuite/g++.dg/template/crash1.C +++ b/gcc/testsuite/g++.dg/template/crash1.C @@ -8,10 +8,10 @@ class S { public: - template <class I> void Foo(int (*f)(S& o) ); // { dg-error "candidate" "" } + template <class I> void Foo(int (*f)(S& o) ); }; template <class I> -void S::Foo(int (*f)(TYPO&o) ) -{ // { dg-error "template definition|variable declaration|prototype" "" } +void S::Foo(int (*f)(TYPO&o) ) // { dg-error "Foo" } +{ // { dg-error "expected `;'" } } diff --git a/gcc/testsuite/g++.dg/template/inherit2.C b/gcc/testsuite/g++.dg/template/inherit2.C index 0e2eba3239d..4fd7ec063ee 100644 --- a/gcc/testsuite/g++.dg/template/inherit2.C +++ b/gcc/testsuite/g++.dg/template/inherit2.C @@ -16,4 +16,4 @@ struct B: public A { int main() { B<int> a; -}; +} diff --git a/gcc/testsuite/g++.dg/template/instantiate2.C b/gcc/testsuite/g++.dg/template/instantiate2.C index a76eaa4701c..a6faf17aea1 100644 --- a/gcc/testsuite/g++.dg/template/instantiate2.C +++ b/gcc/testsuite/g++.dg/template/instantiate2.C @@ -4,5 +4,5 @@ // PR c++/2862 // Default function argument and template instantiation. -template <int dim> void f (int=0) {}; +template <int dim> void f (int=0) {} template void f<1> (); // { dg-error "not match" } diff --git a/gcc/testsuite/g++.dg/template/instantiate3.C b/gcc/testsuite/g++.dg/template/instantiate3.C index e75b570cf82..14dbcdac079 100644 --- a/gcc/testsuite/g++.dg/template/instantiate3.C +++ b/gcc/testsuite/g++.dg/template/instantiate3.C @@ -10,7 +10,7 @@ template <class TYPE> struct ACE_Cleanup_Adapter { TYPE &object () - { return object_; } // { dg-error "no member" } + { return object_; } // { dg-error "undeclared|reported" } TYPE object_; // { dg-error "incomplete type" } }; diff --git a/gcc/testsuite/g++.dg/template/qual1.C b/gcc/testsuite/g++.dg/template/qual1.C index 3d512c1e1be..8fa79b3d2e7 100644 --- a/gcc/testsuite/g++.dg/template/qual1.C +++ b/gcc/testsuite/g++.dg/template/qual1.C @@ -7,7 +7,7 @@ public: void sort (int (*compare) (T *const&,T *const&)); }; -int shift_compare (int *const &, int *const &) {}; +int shift_compare (int *const &, int *const &) {} template<class T> void Link_array<T>::sort (int (*compare) (T *const&,T *const&)) diff --git a/gcc/testsuite/g++.dg/template/qualttp18.C b/gcc/testsuite/g++.dg/template/qualttp18.C index 2c9cf065ceb..31dfa6a83d0 100644 --- a/gcc/testsuite/g++.dg/template/qualttp18.C +++ b/gcc/testsuite/g++.dg/template/qualttp18.C @@ -1,4 +1,4 @@ -// Copyright (C) 2001 Free Software Foundation +// Copyright (C) 2001, 2002 Free Software Foundation // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> // { dg-do compile } @@ -14,7 +14,7 @@ template <template <class> class TT> struct X struct C { - X<A::template B> x; // { dg-error "template|forbid" } + X<A::template B> x; // { dg-error "" } }; int main() diff --git a/gcc/testsuite/g++.dg/template/ref1.C b/gcc/testsuite/g++.dg/template/ref1.C index 3f133d488f5..92ccc42cb11 100644 --- a/gcc/testsuite/g++.dg/template/ref1.C +++ b/gcc/testsuite/g++.dg/template/ref1.C @@ -1,3 +1,3 @@ class a {} a1; template <a & p> class b { public: b() { static_cast <a &> (p); }; }; -int main() { b <a1> b1; }; +int main() { b <a1> b1; } diff --git a/gcc/testsuite/g++.dg/template/sizeof1.C b/gcc/testsuite/g++.dg/template/sizeof1.C index 328d647473c..45a7db48c92 100644 --- a/gcc/testsuite/g++.dg/template/sizeof1.C +++ b/gcc/testsuite/g++.dg/template/sizeof1.C @@ -3,7 +3,7 @@ // { dg-do compile } -template <unsigned I> struct A {}; +template <unsigned I> struct A { static char *value; }; template <typename SizeType> struct B diff --git a/gcc/testsuite/g++.dg/template/spec4.C b/gcc/testsuite/g++.dg/template/spec4.C index 97ee4fc2d5d..18116acb529 100644 --- a/gcc/testsuite/g++.dg/template/spec4.C +++ b/gcc/testsuite/g++.dg/template/spec4.C @@ -8,4 +8,4 @@ struct X { template <int dim> void f(int=0); }; -template <> void X::f<1> () {} // { dg-error "(not match|syntax error)" } +template <> void X::f<1> () {} // { dg-error "(not match|declaration)" } diff --git a/gcc/testsuite/g++.dg/template/static1.C b/gcc/testsuite/g++.dg/template/static1.C index f01d0322e99..98e1acb9e51 100644 --- a/gcc/testsuite/g++.dg/template/static1.C +++ b/gcc/testsuite/g++.dg/template/static1.C @@ -1,4 +1,4 @@ template <typename T> struct A { - static const int t[1][1]={{0}}; // { dg-error "in-class" } + static const int t[1][1]={{0}}; // { dg-error "brace-enclosed|in-class" } }; diff --git a/gcc/testsuite/g++.dg/template/type1.C b/gcc/testsuite/g++.dg/template/type1.C index cd5cf5f0cd3..98a4bd3bf03 100644 --- a/gcc/testsuite/g++.dg/template/type1.C +++ b/gcc/testsuite/g++.dg/template/type1.C @@ -5,4 +5,4 @@ struct A { }; int A::B::c; // { dg-error "parameters" } -int A::C::d; // { dg-error "no type" } +int A::C::d; // { dg-error "class" } diff --git a/gcc/testsuite/g++.dg/template/typename3.C b/gcc/testsuite/g++.dg/template/typename3.C index 1c573baa0df..0ad9a2a0c41 100644 --- a/gcc/testsuite/g++.dg/template/typename3.C +++ b/gcc/testsuite/g++.dg/template/typename3.C @@ -3,5 +3,5 @@ template <class A> struct B { - typedef A::C::D E; // { dg-error "no type|parse error" } + typedef A::C::D E; // { dg-error "" } }; diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/13478.C b/gcc/testsuite/g++.old-deja/g++.benjamin/13478.C index 55a948d9388..47f634b1fdb 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/13478.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/13478.C @@ -19,7 +19,7 @@ protected: static const hand_table table_1[]; static const AData table_2; private: - void foo (void); // ERROR - candidate + void foo (void); }; const hand_table Agent::table_1[] = diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C index 01a06b042d5..713e3fb90aa 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C @@ -24,6 +24,6 @@ enum { first, last}; void foo(void) { sanjose obj(first); // ERROR - // ERROR - -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/bool01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/bool01.C index 482150bcf6f..bd4d3f06f3f 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/bool01.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/bool01.C @@ -4,8 +4,8 @@ #include <assert.h> #include <limits.h> -void bar ( bool x ) {}; -void bars ( short x ) {}; +void bar ( bool x ) {} +void bars ( short x ) {} /* 980326 bkoz this is not initialized and so can have indeterminate value. */ #if 0 diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/bool02.C b/gcc/testsuite/g++.old-deja/g++.benjamin/bool02.C index c17c935287b..a7730f07899 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/bool02.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/bool02.C @@ -4,8 +4,8 @@ #include <assert.h> -void bar ( bool x ) {}; -void bars ( short x ) {}; +void bar ( bool x ) {} +void bars ( short x ) {} #if 0 int andb(){ diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C b/gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C index ddf02f5004f..75253f2c0c5 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C @@ -7,5 +7,5 @@ public: explicit Foo (int){} }; Foo f(10); -Foo blat() return f(4){}; //this should not give an error +Foo blat() return f(4){} // ERROR - named return value diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C index 0e4c389b506..1dae2a97eae 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C @@ -126,7 +126,7 @@ public: template <class T161> friend bool foo(T161 u) { - Xseven<T161, 5, int> obj; + Xseven<T161, 5, int> obj; // ERROR - .* return (obj.inst == u.inst); } diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C index e55ee6aafb4..7ccfc16fd7f 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C @@ -17,7 +17,7 @@ template<class T> void blah (const T &) { T y; x (4); -}; +} int main () { const foo<int> v; diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/warn01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/warn01.C index d0cf0d01785..9e7839a253b 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/warn01.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/warn01.C @@ -12,7 +12,7 @@ void f (void) { catch( int) { } -}; +} // //2 g++/12923 __attribute__((__unused__)) not working for objects @@ -77,7 +77,7 @@ int foofunc(T x){ Mutex sm(2); AutoMutex m(&sm); return 0; -}; +} //5 sanity check to make sure other attributes cannot be used diff --git a/gcc/testsuite/g++.old-deja/g++.bob/extern_C.C b/gcc/testsuite/g++.old-deja/g++.bob/extern_C.C index 6b91adc36e3..18311ce13b5 100644 --- a/gcc/testsuite/g++.old-deja/g++.bob/extern_C.C +++ b/gcc/testsuite/g++.old-deja/g++.bob/extern_C.C @@ -4,6 +4,6 @@ extern "C" { public: void a(); }; -}; +} void A::a() {} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C b/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C index a7aa4fe0adf..bf5f0895f9c 100644 --- a/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C +++ b/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C @@ -16,7 +16,7 @@ public: }; void f(B b) { -}; +} void g() { B h; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/complex1.C b/gcc/testsuite/g++.old-deja/g++.brendan/complex1.C index a2378bedf73..0e3f4f6f685 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/complex1.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/complex1.C @@ -9,7 +9,7 @@ extern "C" { int printf (const char *, ...); void exit (int); void abort (void); -}; +} __complex__ double cd; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy5.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy5.C index a42bdb5a775..4c8620b128b 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy5.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/copy5.C @@ -49,7 +49,7 @@ void BaseClass::Increm( int r ) i += r; else die (); -}; +} class DerivedClass : public BaseClass { public: diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash13.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash13.C index a1084d6275c..d4496f5128e 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash13.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash13.C @@ -31,7 +31,7 @@ gen_op Spul_U_axis() { gen_op U1; U1 = Fe(); -}; // ERROR - reaches end of non-void function +} // ERROR - reaches end of non-void function int -main () {}; +main () {} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C index 953144ac5ac..62ad0895638 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C @@ -4,12 +4,12 @@ class A { public: - virtual ~A() {std::cout << "executed ~A()\n";}; + virtual ~A() {std::cout << "executed ~A()\n";} }; class B : public A { public: - virtual ~B() {std::cout << "executed ~B()\n";}; + virtual ~B() {std::cout << "executed ~B()\n";} }; int @@ -18,5 +18,5 @@ main() { B b; b.~A();// ERROR - destructor std::cout << "done\n"; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash18.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash18.C index d4a4c60b7c8..8cccfcb6d88 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash18.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash18.C @@ -13,5 +13,5 @@ public: { return v != index; }// ERROR - .* private: // friend class List<T>; - element *index; + element *index; // ERROR - invalid use of member }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash37.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash37.C index 18eb64a7683..8dafcf9b2e5 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash37.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash37.C @@ -6,7 +6,7 @@ extern "C" { } extern "C" { extern void foo(); -}; +} class SS { friend void foo(); protected: diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash38.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash38.C index 5f0cf9bd2c2..e6f1b6c791a 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash38.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash38.C @@ -37,7 +37,7 @@ main() Implicit<Implicit<INTEGER, 2> , 3> y; y = 10; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash50.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash50.C index fd87d75a2e6..52e05887ddf 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash50.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash50.C @@ -5,7 +5,7 @@ class B public: int i; }; -int operator & (const B &s) { return ( s.i );}; +int operator & (const B &s) { return ( s.i );} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C index 4aeb330274d..739dfcba030 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C @@ -341,7 +341,7 @@ operator>=(const SetLD<T>& a, const SetLD<T>& b) { return ! (a < b); } class String { }; class IcaseString: public String { }; -class SetLD< IcaseString >: public SetLD< String > { public: SetLD (): SetLD< String >() { }; SetLD (const ListD< IcaseString >& other): SetLD< String >() { ListD< IcaseString >::Vix x; for (other.first(x); 0 != x; other.next(x)) add(other(x)); }; SetLD (const SetLD & other): SetLD< String >(other) { }; const IcaseString & operator()(const Vix& x) const { return ( IcaseString &) SetLD< String >::operator()(x); } }; typedef SetLD< String > SetLD_String_IcaseString_old_tmp99; typedef SetLD< IcaseString > SetLD_String_IcaseString_new_tmp99; +template <> class SetLD< IcaseString >: public SetLD< String > { public: SetLD (): SetLD< String >() { }; SetLD (const ListD< IcaseString >& other): SetLD< String >() { ListD< IcaseString >::Vix x; for (other.first(x); 0 != x; other.next(x)) add(other(x)); }; SetLD (const SetLD & other): SetLD< String >(other) { }; const IcaseString & operator()(const Vix& x) const { return ( IcaseString &) SetLD< String >::operator()(x); } }; typedef SetLD< String > SetLD_String_IcaseString_old_tmp99; typedef SetLD< IcaseString > SetLD_String_IcaseString_new_tmp99; inline int operator== (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) {// ERROR - candidate for call const SetLD_String_IcaseString_old_tmp99& oa = a; @@ -371,7 +371,7 @@ inline int operator>= (const SetLD_String_IcaseString_new_tmp99& a, const SetLD { const SetLD_String_IcaseString_old_tmp99& oa = a; const SetLD_String_IcaseString_old_tmp99& ob = b; -return operator>= (oa, ob); } ; +return operator>= (oa, ob); } typedef SetLD<IcaseString> SLDiS; static void nop(int i) diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash6.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash6.C index a6527a5cbd4..2472ed4de8b 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash6.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash6.C @@ -9,6 +9,7 @@ template<int> class Program { } ; +template<> class Program<0> { public: inline friend float EvalNextArg() diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash66.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash66.C index 878957b84e6..d15993196ab 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash66.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash66.C @@ -23,7 +23,7 @@ swaplong(ulong value) { ulong v = (value << 16) | (value >> 16); return ((v >> 8) & 0x00ff00ff) | ((v << 8) & 0xff00ff00); -}; +} struct elong { ulong data; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash8.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash8.C index 2c4a91d7498..f7906c5ddb3 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash8.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash8.C @@ -8,5 +8,5 @@ class Elvis template<int a> class Elvis<0> { // ERROR - incorrect number of parameters - int geta() { return a ; } // ERROR - not in a class + int geta() { return a ; } } ; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C index 4b82843ea02..0a48eef950d 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C @@ -24,4 +24,4 @@ base::base(int arg1, int arg2) { f1 = arg1; f2 = arg2; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C b/gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C index 6f1a36a9600..127dd36b895 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C @@ -25,4 +25,4 @@ base::base(int arg1, int arg2) { f1 = arg1; f2 = arg2; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/shadow1.C b/gcc/testsuite/g++.old-deja/g++.brendan/shadow1.C index 6a1d9d1f8e3..b9b36367c3d 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/shadow1.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/shadow1.C @@ -5,4 +5,4 @@ void f( int a) { { int a; } -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template11.C b/gcc/testsuite/g++.old-deja/g++.brendan/template11.C index 4a953a34082..8316c2f5641 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template11.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/template11.C @@ -24,7 +24,7 @@ aCallback<Called>::aCallback(Called& obj, int (Called::*met)()) : object(obj), method(met) -{}; +{} template <class Called> int aCallback<Called>::callback() diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template26.C b/gcc/testsuite/g++.old-deja/g++.brendan/template26.C index 6dc15551f81..d245423abc6 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template26.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/template26.C @@ -18,10 +18,10 @@ template <int I> class BB : public virtual V { BB(int); }; -template <int I> AA<I>::AA() {}; -template <int I> AA<I>::AA(int i): V(i) {}; -template <int I> BB<I>::BB() {}; -template <int I> BB<I>::BB(int i) {}; +template <int I> AA<I>::AA() {} +template <int I> AA<I>::AA(int i): V(i) {} +template <int I> BB<I>::BB() {} +template <int I> BB<I>::BB(int i) {} class CC : public AA<1>, public BB<2> { public: diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template27.C b/gcc/testsuite/g++.old-deja/g++.brendan/template27.C index a2649d439e0..25752160a14 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template27.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/template27.C @@ -5,7 +5,8 @@ class X1 { }; class RefProto { }; template<class REP> class Ref { }; - + + template <> class MapLS<String, Ref<X1> >: public MapLS<String, RefProto> { public: ~MapLS(); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template30.C b/gcc/testsuite/g++.old-deja/g++.brendan/template30.C index 97357d63a80..dcbd9c19da5 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template30.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/template30.C @@ -6,7 +6,8 @@ class X1 { }; class RefProto { }; template<class REP> class Ref { }; - + + template <> class MapLS<String, Ref<X1> >: public MapLS<String, RefProto> { public: ~MapLS(); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template5.C b/gcc/testsuite/g++.old-deja/g++.brendan/template5.C index 39b74d6a4df..810f0cb0c13 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template5.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/template5.C @@ -18,16 +18,16 @@ Vector<T>::Vector(int x) { sz = x; v = new T (sz); -} ; +} template<class T> Vector<T>::~Vector() - { delete [] v; } ; + { delete [] v; } template<class T> T & Vector<T>::operator [] (int i) - { return v[i]; } ; + { return v[i]; } int main(int, char **) diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility3.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility3.C index 6e84da5ac51..62cdfeef4bb 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility3.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/visibility3.C @@ -7,6 +7,13 @@ class A {}; template <class TP> +class B; + +template <class TP> +inline A & +operator<< (A &o, const B<TP> &m); + +template <class TP> class B { A &(*_f) (A &, TP); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C index d733522824e..f22a57e7e0b 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C @@ -7,4 +7,4 @@ main () int * foo = &x; // in C++ it's perfectly legal to do this return 0; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings7.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings7.C index 24e7a2cde0d..2fc2892a4ac 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings7.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/warnings7.C @@ -18,4 +18,4 @@ x() x.kill(0); X<Y> y; y.kill(0); -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C index c90dfd9aaa4..79a669cd429 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C @@ -44,6 +44,6 @@ void function () u0 u0_object_1; u0_object_0 = u0_object_1; -}; +} int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.eh/catchptr1.C b/gcc/testsuite/g++.old-deja/g++.eh/catchptr1.C index 723b437d7ed..bddca378b5d 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/catchptr1.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/catchptr1.C @@ -1,10 +1,10 @@ // Test pointer chain catching -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 9 Apr 2000 <nathan@nathan@codesourcery.com> #include <stdio.h> -void fn () {}; +void fn () {} struct A {void fn () {}}; static int var = 1; static const int const_var = 2; diff --git a/gcc/testsuite/g++.old-deja/g++.ext/addrfunc4.C b/gcc/testsuite/g++.old-deja/g++.ext/addrfunc4.C index d8e9987a45c..a4949f60d4c 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/addrfunc4.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/addrfunc4.C @@ -21,4 +21,4 @@ int main() fn1 = a.f; fn1 = (pmf1)a.f; fn2 = (pmf2)a.f; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/default.C b/gcc/testsuite/g++.old-deja/g++.ext/default.C index f434749ef33..30c4510e7c7 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/default.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/default.C @@ -5,8 +5,8 @@ extern "C" int printf (const char *, ...); class A { public: - static A*func (int = 3); - static A*(*ptr)(int = 4); + static A*func (int = 3); + static A*(*ptr)(int = 4); // ERROR - .* }; A*(*A::ptr)(int) = &A::func; @@ -15,7 +15,7 @@ int main() { A foo; - A::ptr(); + A::ptr(); // ERROR - .* A::ptr(47); } diff --git a/gcc/testsuite/g++.old-deja/g++.ext/namedret1.C b/gcc/testsuite/g++.old-deja/g++.ext/namedret1.C index 64df8d1dc77..ad1e36f77db 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/namedret1.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/namedret1.C @@ -1,6 +1,6 @@ // Special g++ Options: -Wno-deprecated -int f(int x) return y(x) { } +int f(int x) return y(x) { } // ERROR - extern "C" void abort (); diff --git a/gcc/testsuite/g++.old-deja/g++.ext/namedret2.C b/gcc/testsuite/g++.old-deja/g++.ext/namedret2.C index 8e2b4e620c1..277a9964f84 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/namedret2.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/namedret2.C @@ -5,7 +5,7 @@ // The Alpha ABI specifies that 32-bit return values have bit 31 propagated, // i.e. the value is sign-extended even if the unpromoted type is unsigned. -unsigned int f(unsigned int x) return y(x) { } +unsigned int f(unsigned int x) return y(x) { } // ERROR - extern "C" void abort (); diff --git a/gcc/testsuite/g++.old-deja/g++.ext/namedret3.C b/gcc/testsuite/g++.old-deja/g++.ext/namedret3.C index 0c4e4b45256..7ea66137276 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/namedret3.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/namedret3.C @@ -8,9 +8,9 @@ int f2(int *x) return 2; } -int f1() return x +int f1() return x // ERROR - { - f2(&x); + f2(&x); // ERROR - } void g() diff --git a/gcc/testsuite/g++.old-deja/g++.ext/return1.C b/gcc/testsuite/g++.old-deja/g++.ext/return1.C index 29e1fc31f4c..53d0c6fb1b9 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/return1.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/return1.C @@ -7,9 +7,9 @@ void f (int &i) i = 42; } -int g () return r +int g () return r // ERROR - named return value { - f (r); + f (r); // ERROR - undeclared } int main () diff --git a/gcc/testsuite/g++.old-deja/g++.ext/typename1.C b/gcc/testsuite/g++.old-deja/g++.ext/typename1.C index 31de28fe8fe..2e489ab10fb 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/typename1.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/typename1.C @@ -1,8 +1,6 @@ // Bug: g++ forgets about the instantiation of class1 when looking up // class11_value, and tries to look things up in class1<class2>. -// Special g++ Options: - template<class ItIsInt> struct class1 { struct class11 { @@ -18,7 +16,7 @@ struct class3 { template<class ItIsClass2> int class3<ItIsClass2>::f() { - return class1<typename ItIsClass2::class2_value>::class11::class11_value(10); + return typename class1<typename ItIsClass2::class2_value>::class11::class11_value(10); } struct class2 { diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access17.C b/gcc/testsuite/g++.old-deja/g++.jason/access17.C index 676eac1bcc1..8f41b5f8e0b 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/access17.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/access17.C @@ -12,8 +12,8 @@ struct B: public A { static int (A::*fp)(); }; -int A::* B::p = &A::i; -int (A::* B::fp)() = &A::f; +int A::* B::p = &A::i; // ERROR - +int (A::* B::fp)() = &A::f; // ERROR - struct C { static int A::*p; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access8.C b/gcc/testsuite/g++.old-deja/g++.jason/access8.C index 40bb4babe4e..c0c46ff7c89 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/access8.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/access8.C @@ -3,7 +3,7 @@ // Bug: g++ forgets access decls after the definition. // Build don't link: -class inh { +class inh { // ERROR - inaccessible int a; protected: void myf(int); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool.C b/gcc/testsuite/g++.old-deja/g++.jason/bool.C index e446f12fab6..30eb23fa063 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/bool.C @@ -31,7 +31,7 @@ void g () template <class T> struct F { }; template class F<bool>; -template <class T> void f (T, bool) { }; +template <class T> void f (T, bool) { } template void f (bool, bool); /* Special cases. */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/destruct.C b/gcc/testsuite/g++.old-deja/g++.jason/destruct.C index c5b3be61004..6c9c2964d33 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/destruct.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/destruct.C @@ -14,6 +14,7 @@ public: }; typedef char * cp; +typedef int I; int main () { @@ -22,10 +23,10 @@ int main () int i; cp c; - i.~int(); - i.int::~int(); - (&i)->~int(); - (&i)->int::~int(); + i.~I(); + i.I::~I(); + (&i)->~I(); + (&i)->I::~I(); c.~cp(); c.cp::~cp(); (&c)->~cp(); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dtor3.C b/gcc/testsuite/g++.old-deja/g++.jason/dtor3.C index 0c5e68abb47..5b17bcc540b 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/dtor3.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/dtor3.C @@ -4,7 +4,7 @@ #include <stddef.h> -void *operator new(size_t Size, void* pThing) { return pThing; }; +void *operator new(size_t Size, void* pThing) { return pThing; } template <class T> class Stack { public: diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dtor5.C b/gcc/testsuite/g++.old-deja/g++.jason/dtor5.C index 4761bedf2cc..4f4016c6b5e 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/dtor5.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/dtor5.C @@ -18,7 +18,8 @@ int main() int* p = (int*) new char[sizeof (int)]; new (p + r++) int; - p[--r].~int(); + typedef int I; + p[--r].~I(); return r; } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C index e290f7a21ba..1152aa08917 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C @@ -12,4 +12,4 @@ void foo () int one=1, two=2; X a(one), b(two); a = b; // ERROR - no assignment semantics defined -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload19.C b/gcc/testsuite/g++.old-deja/g++.jason/overload19.C index ad5817565fb..99dcc915d98 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload19.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/overload19.C @@ -3,7 +3,7 @@ enum E { A=5, B=32, C=100 }; -E operator|(E a, E b) { return C; }; +E operator|(E a, E b) { return C; } int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload32.C b/gcc/testsuite/g++.old-deja/g++.jason/overload32.C index 95f251d6664..6e207be3257 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload32.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/overload32.C @@ -16,4 +16,4 @@ void f( const D & ); void g( const X & x ) { f( x ); -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse11.C b/gcc/testsuite/g++.old-deja/g++.jason/parse11.C index e9f285cee8d..6c9c1fa6492 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse11.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/parse11.C @@ -3,7 +3,7 @@ class aClass { - ; + ; // ERROR - missing declaration private: - ; // This line causes problems + ; // ERROR - missing declaration }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmem2.C b/gcc/testsuite/g++.old-deja/g++.jason/pmem2.C index 99adf1c143f..d34809cb3e1 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmem2.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/pmem2.C @@ -20,7 +20,7 @@ aCallback<Called>::aCallback(Called& obj, int (Called::*met)()) : object(obj), method(met) -{}; +{} template <class Called> int aCallback<Called>::callback() diff --git a/gcc/testsuite/g++.old-deja/g++.jason/return.C b/gcc/testsuite/g++.old-deja/g++.jason/return.C index c737a3ea8bd..c20d2506ee1 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/return.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/return.C @@ -12,7 +12,7 @@ struct X { const X foo() { return X(3); -}; +} int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.jason/return2.C b/gcc/testsuite/g++.old-deja/g++.jason/return2.C index 272390903e8..29da5b28e58 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/return2.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/return2.C @@ -14,7 +14,7 @@ struct Y { Y foo() { return X(3); -}; +} int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.jason/shadow1.C b/gcc/testsuite/g++.old-deja/g++.jason/shadow1.C index 59ffcbd15c3..f3f4d17979c 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/shadow1.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/shadow1.C @@ -8,7 +8,7 @@ private: int foo; }; -void x::fun() { }; +void x::fun() { } main () { diff --git a/gcc/testsuite/g++.old-deja/g++.jason/special.C b/gcc/testsuite/g++.old-deja/g++.jason/special.C index 9f6202ecf44..41fae60b9fd 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/special.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/special.C @@ -1,6 +1,6 @@ // Make sure that forward declarations of specializations work... template <class T> class A { }; -class A<int>; +template <> class A<int>; A<int> a; // ERROR - incomplete type -class A<int> { }; +template <> class A<int> { }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template10.C b/gcc/testsuite/g++.old-deja/g++.jason/template10.C index 18a574a28eb..c63e1d03155 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/template10.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/template10.C @@ -3,6 +3,11 @@ class ostream; +template <class TP> class smanip; + +template<class TP> +ostream& operator<<(ostream& o, const smanip<TP>& m); + template <class TP> class smanip { public: friend ostream& operator<< <>(ostream &o, const smanip<TP>&m); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template11.C b/gcc/testsuite/g++.old-deja/g++.jason/template11.C index d58bdfe9e03..fed322e8415 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/template11.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/template11.C @@ -6,6 +6,7 @@ template <class T> struct A { int foo () { return 1; } +template <> int A<int>::t = foo (); int main () diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template37.C b/gcc/testsuite/g++.old-deja/g++.jason/template37.C index 53607ee7fbe..dd3ec299191 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/template37.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/template37.C @@ -17,6 +17,7 @@ { } + template <> class ONE<int> { public: diff --git a/gcc/testsuite/g++.old-deja/g++.law/access4.C b/gcc/testsuite/g++.old-deja/g++.law/access4.C index 994a6109bde..17f0db8f38c 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/access4.C +++ b/gcc/testsuite/g++.old-deja/g++.law/access4.C @@ -6,7 +6,7 @@ // Subject: g++ 2.5.5 doesn't warn about inaccessible virtual base ctor // Message-ID: <9403030024.AA04534@ses.com> -class ForceLeafSterile { +class ForceLeafSterile { // ERROR - friend class Sterile; ForceLeafSterile() {} // ERROR - }; diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm13.C b/gcc/testsuite/g++.old-deja/g++.law/arm13.C index cf6227830af..a33f5229d89 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/arm13.C +++ b/gcc/testsuite/g++.old-deja/g++.law/arm13.C @@ -8,7 +8,8 @@ int main() { int* p = (int*) malloc(sizeof(int)); (void) new (p) int(1); - p->int::~int(); + typedef int I; + p->I::~I(); free(p); printf ("PASS\n"); } diff --git a/gcc/testsuite/g++.old-deja/g++.law/code-gen5.C b/gcc/testsuite/g++.old-deja/g++.law/code-gen5.C index ff908758c4f..f150a723542 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/code-gen5.C +++ b/gcc/testsuite/g++.old-deja/g++.law/code-gen5.C @@ -248,7 +248,7 @@ operator double() { assert( v.r->vec != 0 ); return *v.r->vec; -}; +} double VecElem:: operator=( double d ) diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C index 4a7d24c6664..88ff255cc75 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C +++ b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C @@ -28,7 +28,7 @@ struct var_Foo: public Foo int blort(Foo& f) { return f->a; -}; +} int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt22.C b/gcc/testsuite/g++.old-deja/g++.law/cvt22.C index c9a80baa617..b26a88743bf 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt22.C +++ b/gcc/testsuite/g++.old-deja/g++.law/cvt22.C @@ -11,4 +11,4 @@ typedef int A[10]; int main() { int* a1 = new A; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.law/dtors5.C b/gcc/testsuite/g++.old-deja/g++.law/dtors5.C index 0628041751c..302acd5f044 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/dtors5.C +++ b/gcc/testsuite/g++.old-deja/g++.law/dtors5.C @@ -21,7 +21,7 @@ public: void sub(foo f) { ; -}; +} int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.law/global-init1.C b/gcc/testsuite/g++.old-deja/g++.law/global-init1.C index 3a671585b56..9047067c81f 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/global-init1.C +++ b/gcc/testsuite/g++.old-deja/g++.law/global-init1.C @@ -9,7 +9,7 @@ struct S { int a; int c; }; int i = 3; S s = {6, i}; -S * the_s () { return &s; }; +S * the_s () { return &s; } int main () { S * cls = the_s (); diff --git a/gcc/testsuite/g++.old-deja/g++.law/missed-error3.C b/gcc/testsuite/g++.old-deja/g++.law/missed-error3.C index 017ce5dd420..d80bae27e4b 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/missed-error3.C +++ b/gcc/testsuite/g++.old-deja/g++.law/missed-error3.C @@ -120,5 +120,5 @@ public: void Fixed_List::go_offleft() const { cursor_position = 0;// ERROR - -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators28.C b/gcc/testsuite/g++.old-deja/g++.law/operators28.C index 3600fb27418..e089382a027 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/operators28.C +++ b/gcc/testsuite/g++.old-deja/g++.law/operators28.C @@ -19,7 +19,7 @@ void* new_test::operator new(size_t sz, int count, int type) p = new char[sz * count]; ((new_test *)p)->type = type; return p; -}; +} int main() { @@ -27,4 +27,4 @@ int main() int count = 13; test = new(count, 1) new_test; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility28.C b/gcc/testsuite/g++.old-deja/g++.law/visibility28.C index e92c299960f..086a18ed7b6 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility28.C +++ b/gcc/testsuite/g++.old-deja/g++.law/visibility28.C @@ -4,13 +4,13 @@ extern "C" int printf( const char *, ...); class B { public: - B() { }; - virtual ~B() { printf( "B::~B\n"); }; + B() { } + virtual ~B() { printf( "B::~B\n"); } }; class D : public B { public: - virtual ~D() { printf( "D::~D\n"); }; + virtual ~D() { printf( "D::~D\n"); } void operator = ( int i) { this->~B(); }// ERROR - D has no ~B part to it }; @@ -21,4 +21,4 @@ main() B * pb = pd; delete pb; return 0; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.martin/eval1.C b/gcc/testsuite/g++.old-deja/g++.martin/eval1.C index 6488da5be6d..ad7f2e478c4 100644 --- a/gcc/testsuite/g++.old-deja/g++.martin/eval1.C +++ b/gcc/testsuite/g++.old-deja/g++.martin/eval1.C @@ -9,7 +9,7 @@ struct S S* S::foo(){ i = 0; return this; -}; +} int S::i = 1; int main(void) diff --git a/gcc/testsuite/g++.old-deja/g++.martin/pmf2.C b/gcc/testsuite/g++.old-deja/g++.martin/pmf2.C index 481fe2cb865..fea7ebf4589 100644 --- a/gcc/testsuite/g++.old-deja/g++.martin/pmf2.C +++ b/gcc/testsuite/g++.old-deja/g++.martin/pmf2.C @@ -4,7 +4,7 @@ struct A{ int i; - A::A():i(1){} + A () :i(1){} virtual void foo(); }a; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh41.C b/gcc/testsuite/g++.old-deja/g++.mike/eh41.C index 7c7b5bc5ce7..3cd9bc86b1e 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh41.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/eh41.C @@ -26,4 +26,4 @@ int main () { return 0; } return 1; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/hog1.C b/gcc/testsuite/g++.old-deja/g++.mike/hog1.C index 8627100f2de..4d677ba9e33 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/hog1.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/hog1.C @@ -184,4 +184,4 @@ void super::operator++(void) int main(void) { -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net34.C b/gcc/testsuite/g++.old-deja/g++.mike/net34.C index 9cf550c126e..0756e2e9036 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/net34.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/net34.C @@ -17,7 +17,7 @@ public: class bar_2 : public foo { public: - bar_2(int i) : foo(i) {}; + bar_2(int i) : foo(i) {} int get_k() {return k;} }; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net36.C b/gcc/testsuite/g++.old-deja/g++.mike/net36.C index 21c3a1ee1a0..c9d0fe9cb94 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/net36.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/net36.C @@ -16,4 +16,4 @@ public: void f(B* b) { b->setHandler(A::handlerFn); // ERROR - -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns2.C b/gcc/testsuite/g++.old-deja/g++.mike/ns2.C index 365eb8c0923..8e2a1713022 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns2.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/ns2.C @@ -1,6 +1,6 @@ namespace N { int i; -}; +} using namespace N; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p12306.C b/gcc/testsuite/g++.old-deja/g++.mike/p12306.C index 12b4a453b9a..d156c6f8924 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p12306.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p12306.C @@ -72,4 +72,4 @@ int main(int argc, char **argv) { Sim_Event_Manager foo; foo.post_event(); return fail; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3579.C b/gcc/testsuite/g++.old-deja/g++.mike/p3579.C index d960599450f..372965060df 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3579.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p3579.C @@ -36,4 +36,4 @@ int main (int, char **) { } printf("PASS\n"); return 0; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p646.C b/gcc/testsuite/g++.old-deja/g++.mike/p646.C index 72f75b3bfb2..226ac3a321f 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p646.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p646.C @@ -83,13 +83,6 @@ return_foo () } foo -return_named_foo () return f -{ - printf ("returning named foo\n"); - return f; -} - -foo foo_parm_returns_foo (foo f) { return f; @@ -133,12 +126,6 @@ warn_return_foo () } // WARNING - control reaches end foo -nowarn_return_named_foo () return f -{ - printf ("returning named foo\n"); -} - -foo warn_foo_parm_returns_foo (foo f) { f; @@ -155,7 +142,7 @@ main () int k = return_sum (-69, 69); if (k != 0) abort_because ("wrong value returned"); - foo f1 = return_named_foo (); + foo f1 = return_foo (); if (foo::si != 1) abort_because ("wrong number of foos"); f1.i = 5; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p700.C b/gcc/testsuite/g++.old-deja/g++.mike/p700.C index 5413d575652..814604fcab9 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p700.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p700.C @@ -249,73 +249,73 @@ inline int& operator >>=(int& a, const Int & b) //# 289 "../../../../libg++/etc/benchmarks/Int.h" -inline Int operator - (const Int & a) return r(a) -{ r.negate(); } -inline Int operator ~ (const Int & a) return r(a) -{ r.complement(); } - -inline Int operator + (const Int & a, const Int & b) return r(a) -{ r += b.Int::val(); } -inline Int operator - (const Int & a, const Int & b) return r(a) -{ r -= b.Int::val(); } -inline Int operator * (const Int & a, const Int & b) return r(a) -{ r *= b.Int::val(); } -inline Int operator / (const Int & a, const Int & b) return r(a) -{ r /= b.Int::val(); } -inline Int operator % (const Int & a, const Int & b) return r(a) -{ r %= b.Int::val(); } -inline Int operator << (const Int & a, const Int & b) return r(a) -{ r <<= b.Int::val(); } -inline Int operator >> (const Int & a, const Int & b) return r(a) -{ r >>= b.Int::val(); } -inline Int operator & (const Int & a, const Int & b) return r(a) -{ r &= b.Int::val(); } -inline Int operator | (const Int & a, const Int & b) return r(a) -{ r |= b.Int::val(); } -inline Int operator ^ (const Int & a, const Int & b) return r(a) -{ r ^= b.Int::val(); } - -inline Int operator + (const Int & a, const int b) return r(a) -{ r += b; } -inline Int operator - (const Int & a, const int b) return r(a) -{ r -= b; } -inline Int operator * (const Int & a, const int b) return r(a) -{ r *= b; } -inline Int operator / (const Int & a, const int b) return r(a) -{ r /= b; } -inline Int operator % (const Int & a, const int b) return r(a) -{ r %= b; } -inline Int operator << (const Int & a, const int b) return r(a) -{ r <<= b; } -inline Int operator >> (const Int & a, const int b) return r(a) -{ r >>= b; } -inline Int operator & (const Int & a, const int b) return r(a) -{ r &= b; } -inline Int operator | (const Int & a, const int b) return r(a) -{ r |= b; } -inline Int operator ^ (const Int & a, const int b) return r(a) -{ r ^= b; } - -inline Int operator + (const int a, const Int & b) return r(a) -{ r += b.Int::val(); } -inline Int operator - (const int a, const Int & b) return r(a) -{ r -= b.Int::val(); } -inline Int operator * (const int a, const Int & b) return r(a) -{ r *= b.Int::val(); } -inline Int operator / (const int a, const Int & b) return r(a) -{ r /= b.Int::val(); } -inline Int operator % (const int a, const Int & b) return r(a) -{ r %= b.Int::val(); } -inline Int operator << (const int a, const Int & b) return r(a) -{ r <<= b.Int::val(); } -inline Int operator >> (const int a, const Int & b) return r(a) -{ r >>= b.Int::val(); } -inline Int operator & (const int a, const Int & b) return r(a) -{ r &= b.Int::val(); } -inline Int operator | (const int a, const Int & b) return r(a) -{ r |= b.Int::val(); } -inline Int operator ^ (const int a, const Int & b) return r(a) -{ r ^= b.Int::val(); } +inline Int operator - (const Int & a) return r(a) // ERROR - +{ r.negate(); } // ERROR - +inline Int operator ~ (const Int & a) return r(a) // ERROR - +{ r.complement(); } // ERROR - + +inline Int operator + (const Int & a, const Int & b) return r(a) // ERROR - +{ r += b.Int::val(); } // ERROR - +inline Int operator - (const Int & a, const Int & b) return r(a) // ERROR - +{ r -= b.Int::val(); } // ERROR - +inline Int operator * (const Int & a, const Int & b) return r(a) // ERROR - +{ r *= b.Int::val(); } // ERROR - +inline Int operator / (const Int & a, const Int & b) return r(a) // ERROR - +{ r /= b.Int::val(); } // ERROR - +inline Int operator % (const Int & a, const Int & b) return r(a) // ERROR - +{ r %= b.Int::val(); } // ERROR - +inline Int operator << (const Int & a, const Int & b) return r(a) // ERROR - +{ r <<= b.Int::val(); } // ERROR - +inline Int operator >> (const Int & a, const Int & b) return r(a) // ERROR - +{ r >>= b.Int::val(); } // ERROR - +inline Int operator & (const Int & a, const Int & b) return r(a) // ERROR - +{ r &= b.Int::val(); } // ERROR - +inline Int operator | (const Int & a, const Int & b) return r(a) // ERROR - +{ r |= b.Int::val(); } // ERROR - +inline Int operator ^ (const Int & a, const Int & b) return r(a) // ERROR - +{ r ^= b.Int::val(); } // ERROR - + +inline Int operator + (const Int & a, const int b) return r(a) // ERROR - +{ r += b; } // ERROR - +inline Int operator - (const Int & a, const int b) return r(a) // ERROR - +{ r -= b; } // ERROR - +inline Int operator * (const Int & a, const int b) return r(a) // ERROR - +{ r *= b; } // ERROR - +inline Int operator / (const Int & a, const int b) return r(a) // ERROR - +{ r /= b; } // ERROR - +inline Int operator % (const Int & a, const int b) return r(a) // ERROR - +{ r %= b; } // ERROR - +inline Int operator << (const Int & a, const int b) return r(a) // ERROR - +{ r <<= b; } // ERROR - +inline Int operator >> (const Int & a, const int b) return r(a) // ERROR - +{ r >>= b; } // ERROR - +inline Int operator & (const Int & a, const int b) return r(a) // ERROR - +{ r &= b; } // ERROR - +inline Int operator | (const Int & a, const int b) return r(a) // ERROR - +{ r |= b; } // ERROR - +inline Int operator ^ (const Int & a, const int b) return r(a) // ERROR - +{ r ^= b; } // ERROR - + +inline Int operator + (const int a, const Int & b) return r(a) // ERROR - +{ r += b.Int::val(); } // ERROR - +inline Int operator - (const int a, const Int & b) return r(a) // ERROR - +{ r -= b.Int::val(); } // ERROR - +inline Int operator * (const int a, const Int & b) return r(a) // ERROR - +{ r *= b.Int::val(); } // ERROR - +inline Int operator / (const int a, const Int & b) return r(a) // ERROR - +{ r /= b.Int::val(); } // ERROR - +inline Int operator % (const int a, const Int & b) return r(a) // ERROR - +{ r %= b.Int::val(); } // ERROR - +inline Int operator << (const int a, const Int & b) return r(a) // ERROR - +{ r <<= b.Int::val(); } // ERROR - +inline Int operator >> (const int a, const Int & b) return r(a) // ERROR - +{ r >>= b.Int::val(); } // ERROR - +inline Int operator & (const int a, const Int & b) return r(a) // ERROR - +{ r &= b.Int::val(); } // ERROR - +inline Int operator | (const int a, const Int & b) return r(a) // ERROR - +{ r |= b.Int::val(); } // ERROR - +inline Int operator ^ (const int a, const Int & b) return r(a) // ERROR - +{ r ^= b.Int::val(); } // ERROR - @@ -588,73 +588,73 @@ inline char& operator >>=(char& a, const Char & b) //# 291 "../../../../libg++/etc/benchmarks/Char.h" -inline Char operator - (const Char & a) return r(a) -{ r.negate(); } -inline Char operator ~ (const Char & a) return r(a) -{ r.complement(); } - -inline Char operator + (const Char & a, const Char & b) return r(a) -{ r += b.Char::val(); } -inline Char operator - (const Char & a, const Char & b) return r(a) -{ r -= b.Char::val(); } -inline Char operator * (const Char & a, const Char & b) return r(a) -{ r *= b.Char::val(); } -inline Char operator / (const Char & a, const Char & b) return r(a) -{ r /= b.Char::val(); } -inline Char operator % (const Char & a, const Char & b) return r(a) -{ r %= b.Char::val(); } -inline Char operator << (const Char & a, const Char & b) return r(a) -{ r <<= b.Char::val(); } -inline Char operator >> (const Char & a, const Char & b) return r(a) -{ r >>= b.Char::val(); } -inline Char operator & (const Char & a, const Char & b) return r(a) -{ r &= b.Char::val(); } -inline Char operator | (const Char & a, const Char & b) return r(a) -{ r |= b.Char::val(); } -inline Char operator ^ (const Char & a, const Char & b) return r(a) -{ r ^= b.Char::val(); } - -inline Char operator + (const Char & a, const char b) return r(a) -{ r += b; } -inline Char operator - (const Char & a, const char b) return r(a) -{ r -= b; } -inline Char operator * (const Char & a, const char b) return r(a) -{ r *= b; } -inline Char operator / (const Char & a, const char b) return r(a) -{ r /= b; } -inline Char operator % (const Char & a, const char b) return r(a) -{ r %= b; } -inline Char operator << (const Char & a, const char b) return r(a) -{ r <<= b; } -inline Char operator >> (const Char & a, const char b) return r(a) -{ r >>= b; } -inline Char operator & (const Char & a, const char b) return r(a) -{ r &= b; } -inline Char operator | (const Char & a, const char b) return r(a) -{ r |= b; } -inline Char operator ^ (const Char & a, const char b) return r(a) -{ r ^= b; } - -inline Char operator + (const char a, const Char & b) return r(a) -{ r += b.Char::val(); } -inline Char operator - (const char a, const Char & b) return r(a) -{ r -= b.Char::val(); } -inline Char operator * (const char a, const Char & b) return r(a) -{ r *= b.Char::val(); } -inline Char operator / (const char a, const Char & b) return r(a) -{ r /= b.Char::val(); } -inline Char operator % (const char a, const Char & b) return r(a) -{ r %= b.Char::val(); } -inline Char operator << (const char a, const Char & b) return r(a) -{ r <<= b.Char::val(); } -inline Char operator >> (const char a, const Char & b) return r(a) -{ r >>= b.Char::val(); } -inline Char operator & (const char a, const Char & b) return r(a) -{ r &= b.Char::val(); } -inline Char operator | (const char a, const Char & b) return r(a) -{ r |= b.Char::val(); } -inline Char operator ^ (const char a, const Char & b) return r(a) -{ r ^= b.Char::val(); } +inline Char operator - (const Char & a) return r(a) // ERROR - +{ r.negate(); } // ERROR - +inline Char operator ~ (const Char & a) return r(a) // ERROR - +{ r.complement(); } // ERROR - + +inline Char operator + (const Char & a, const Char & b) return r(a) // ERROR - +{ r += b.Char::val(); } // ERROR - +inline Char operator - (const Char & a, const Char & b) return r(a) // ERROR - +{ r -= b.Char::val(); } // ERROR - +inline Char operator * (const Char & a, const Char & b) return r(a) // ERROR - +{ r *= b.Char::val(); } // ERROR - +inline Char operator / (const Char & a, const Char & b) return r(a) // ERROR - +{ r /= b.Char::val(); } // ERROR - +inline Char operator % (const Char & a, const Char & b) return r(a) // ERROR - +{ r %= b.Char::val(); } // ERROR - +inline Char operator << (const Char & a, const Char & b) return r(a) // ERROR - +{ r <<= b.Char::val(); } // ERROR - +inline Char operator >> (const Char & a, const Char & b) return r(a) // ERROR - +{ r >>= b.Char::val(); } // ERROR - +inline Char operator & (const Char & a, const Char & b) return r(a) // ERROR - +{ r &= b.Char::val(); } // ERROR - +inline Char operator | (const Char & a, const Char & b) return r(a) // ERROR - +{ r |= b.Char::val(); } // ERROR - +inline Char operator ^ (const Char & a, const Char & b) return r(a) // ERROR - +{ r ^= b.Char::val(); } // ERROR - + +inline Char operator + (const Char & a, const char b) return r(a) // ERROR - +{ r += b; } // ERROR - +inline Char operator - (const Char & a, const char b) return r(a) // ERROR - +{ r -= b; } // ERROR - +inline Char operator * (const Char & a, const char b) return r(a) // ERROR - +{ r *= b; } // ERROR - +inline Char operator / (const Char & a, const char b) return r(a) // ERROR - +{ r /= b; } // ERROR - +inline Char operator % (const Char & a, const char b) return r(a) // ERROR - +{ r %= b; } // ERROR - +inline Char operator << (const Char & a, const char b) return r(a) // ERROR - +{ r <<= b; } // ERROR - +inline Char operator >> (const Char & a, const char b) return r(a) // ERROR - +{ r >>= b; } // ERROR - +inline Char operator & (const Char & a, const char b) return r(a) // ERROR - +{ r &= b; } // ERROR - +inline Char operator | (const Char & a, const char b) return r(a) // ERROR - +{ r |= b; } // ERROR - +inline Char operator ^ (const Char & a, const char b) return r(a) // ERROR - +{ r ^= b; } // ERROR - + +inline Char operator + (const char a, const Char & b) return r(a) // ERROR - +{ r += b.Char::val(); } // ERROR - +inline Char operator - (const char a, const Char & b) return r(a) // ERROR - +{ r -= b.Char::val(); } // ERROR - +inline Char operator * (const char a, const Char & b) return r(a) // ERROR - +{ r *= b.Char::val(); } // ERROR - +inline Char operator / (const char a, const Char & b) return r(a) // ERROR - +{ r /= b.Char::val(); } // ERROR - +inline Char operator % (const char a, const Char & b) return r(a) // ERROR - +{ r %= b.Char::val(); } // ERROR - +inline Char operator << (const char a, const Char & b) return r(a) // ERROR - +{ r <<= b.Char::val(); } // ERROR - +inline Char operator >> (const char a, const Char & b) return r(a) // ERROR - +{ r >>= b.Char::val(); } // ERROR - +inline Char operator & (const char a, const Char & b) return r(a) // ERROR - +{ r &= b.Char::val(); } // ERROR - +inline Char operator | (const char a, const Char & b) return r(a) // ERROR - +{ r |= b.Char::val(); } // ERROR - +inline Char operator ^ (const char a, const Char & b) return r(a) // ERROR - +{ r ^= b.Char::val(); } // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p701.C b/gcc/testsuite/g++.old-deja/g++.mike/p701.C index c222ea1e888..f4e7f9341f0 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p701.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p701.C @@ -4,7 +4,7 @@ extern "C" { int printf(const char *, ...); -}; +} void Munge(int& x) diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p710.C b/gcc/testsuite/g++.old-deja/g++.mike/p710.C index 62dffe9ff8e..4e9e602a4bb 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p710.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p710.C @@ -19,7 +19,7 @@ extern "C" { int printf(const char*, ...); -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p784.C b/gcc/testsuite/g++.old-deja/g++.mike/p784.C index 23ceaf477ab..f83baf2b06b 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p784.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p784.C @@ -5,7 +5,7 @@ //# 1 "GctSymbol.GctSymbol.CHMap.cc" // This may look like C code, but it is really -*- C++ -*- /* -Copyright (C) 1988, 2000 Free Software Foundation +Copyright (C) 1988, 2000, 2002 Free Software Foundation written by Doug Lea (dl@rocky.oswego.edu) This file is part of the GNU C++ Library. This library is free @@ -1602,74 +1602,74 @@ inline void String:: operator +=(char y) -inline String operator + (const String& x, const String& y) return r; +inline String operator + (const String& x, const String& y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const String& x, const SubString& y) return r; +inline String operator + (const String& x, const SubString& y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const String& x, const char* y) return r; +inline String operator + (const String& x, const char* y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const String& x, char y) return r; +inline String operator + (const String& x, char y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const SubString& x, const String& y) return r; +inline String operator + (const SubString& x, const String& y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const SubString& x, const SubString& y) return r; +inline String operator + (const SubString& x, const SubString& y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const SubString& x, const char* y) return r; +inline String operator + (const SubString& x, const char* y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const SubString& x, char y) return r; +inline String operator + (const SubString& x, char y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const char* x, const String& y) return r; +inline String operator + (const char* x, const String& y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String operator + (const char* x, const SubString& y) return r; +inline String operator + (const char* x, const SubString& y) return r; // ERROR - { - cat(x, y, r); + cat(x, y, r); // ERROR - } -inline String reverse(const String& x) return r; +inline String reverse(const String& x) return r; // ERROR - { - r.rep = Sreverse(x.rep, r.rep); + r.rep = Sreverse(x.rep, r.rep); // ERROR - } -inline String upcase(const String& x) return r; +inline String upcase(const String& x) return r; // ERROR - { - r.rep = Supcase(x.rep, r.rep); + r.rep = Supcase(x.rep, r.rep); // ERROR - } -inline String downcase(const String& x) return r; +inline String downcase(const String& x) return r; // ERROR - { - r.rep = Sdowncase(x.rep, r.rep); + r.rep = Sdowncase(x.rep, r.rep); // ERROR - } -inline String capitalize(const String& x) return r; +inline String capitalize(const String& x) return r; // ERROR - { - r.rep = Scapitalize(x.rep, r.rep); + r.rep = Scapitalize(x.rep, r.rep); // ERROR - } //# 883 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf7.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf7.C index b238171ba5f..ceea3bf963e 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf7.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/pmf7.C @@ -10,7 +10,7 @@ public: template<class SP, class CB> SP& call_dummy(SP* sp, CB cb) { sp->dummy(cb); return *sp; -}; +} class A { public: diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf9.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf9.C index 800618ff6c6..9a352301c7e 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf9.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/pmf9.C @@ -13,7 +13,7 @@ private: int Q::g() { return (kp->f)(42); -}; +} int main () { diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash2.C b/gcc/testsuite/g++.old-deja/g++.ns/crash2.C index d49189bfbe1..a4b1ba3d958 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/crash2.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/crash2.C @@ -7,6 +7,6 @@ namespace hei { class CSomeClass {}; extern CSomeClass SomeClass; -}; +} -hei::CSomeClass hei::CSomeClass; // ERROR - should be hei::SomeClass +hei::CSomeClass hei::CSomeClass; // ERROR - should be hei::SomeClass - XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash3.C b/gcc/testsuite/g++.old-deja/g++.ns/crash3.C index 842ed090bcc..dbffae1b9af 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/crash3.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/crash3.C @@ -2,7 +2,7 @@ namespace N { template <class T> struct S; -}; +} void f() { diff --git a/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C b/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C index 76d3d70db38..9ec2adfe855 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C @@ -1,5 +1,5 @@ //Build don't link: -namespace x { }; +namespace x { } void f(int); diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns17.C b/gcc/testsuite/g++.old-deja/g++.ns/ns17.C index 8d1fdd7e2ac..2357c5f01f9 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns17.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/ns17.C @@ -4,7 +4,7 @@ namespace foo class c { }; -}; +} int foo::c:fn () // ERROR - syntax error diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template16.C b/gcc/testsuite/g++.old-deja/g++.ns/template16.C index 760be469dc8..9d5367995cf 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/template16.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/template16.C @@ -6,10 +6,10 @@ namespace N { template <class T> void f () { } template <class T> struct A { friend void f<T>(); }; -}; +} namespace M { struct B; -}; +} struct M::B: public N::A<int> { }; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template5.C b/gcc/testsuite/g++.old-deja/g++.ns/template5.C index 9dc7a396a7e..d9b487bc921 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/template5.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/template5.C @@ -23,7 +23,7 @@ int main() X::Y<int> z; if (z.f(4) != 1) return 1; - z.template g<long>(); + z.g<long>(); Y<int> z1; if (z1.f(5) != 2) diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template6.C b/gcc/testsuite/g++.old-deja/g++.ns/template6.C index 324b4d22a59..f0137b4cffe 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/template6.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/template6.C @@ -15,7 +15,7 @@ namespace A { template <> const unsigned B<int,int>::count = 2; // ERROR - duplicate init } -}; +} int main() diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using9.C b/gcc/testsuite/g++.old-deja/g++.ns/using9.C index 547ae3101fd..e664ccde5df 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/using9.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/using9.C @@ -3,8 +3,8 @@ // Build don't link: namespace standard -{ void print(int) {}; - void dump(int) {}; +{ void print(int) {} + void dump(int) {} } namespace A { using standard::print; } namespace B { using namespace standard; } diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C b/gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C index 6cb5c9ec385..9ef5131e875 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C @@ -1,5 +1,5 @@ // Build don't link: -// Copyright (C) 1999, 2000 Free Software Foundation +// Copyright (C) 1999, 2000, 2002 Free Software Foundation // by Alexandre Oliva <oliva@lsd.ic.unicamp.br> @@ -7,7 +7,7 @@ // Special g++ Options: -Wno-deprecated -inline int bar () return r {} +inline int bar () return r {} // ERROR - int foo () { return bar (); diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C b/gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C index f54d55c7255..092e4cd5747 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C @@ -1,5 +1,5 @@ // Build don't link: -// Copyright (C) 1999, 2000 Free Software Foundation +// Copyright (C) 1999, 2000, 2002 Free Software Foundation // by Alexandre Oliva <oliva@lsd.ic.unicamp.br> @@ -7,7 +7,7 @@ // Special g++ Options: -O1 -Wno-deprecated -inline int bar () return r {} +inline int bar () return r {} // ERROR - int& foo (int& x) { bar (); diff --git a/gcc/testsuite/g++.old-deja/g++.other/access4.C b/gcc/testsuite/g++.old-deja/g++.other/access4.C index 75f3a6191a3..7cf472fb980 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/access4.C +++ b/gcc/testsuite/g++.old-deja/g++.other/access4.C @@ -1,11 +1,11 @@ // Build don't link: -struct A { +struct A { // ERROR - inaccessible static int i; }; struct B : private A { }; struct C : public B { - int f () { return A::i; } + int f () { return A::i; } // ERROR - context }; diff --git a/gcc/testsuite/g++.old-deja/g++.other/array6.C b/gcc/testsuite/g++.old-deja/g++.other/array6.C index ab076f2af38..e824850a44a 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/array6.C +++ b/gcc/testsuite/g++.old-deja/g++.other/array6.C @@ -5,16 +5,16 @@ int count = 0; double foo () { count++; return 0; -}; +} double bar () { const double x[1] = { foo() }; return x[0]; -}; +} int main () { bar(); if (count != 1) return 1; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash1.C b/gcc/testsuite/g++.old-deja/g++.other/crash1.C index f7caa2f00ba..a4734122641 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/crash1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/crash1.C @@ -1,6 +1,6 @@ class A { - enum B { ONE, TWO, THREE }; + enum B { ONE, TWO, THREE }; // ERROR - private }; -class A::B; // ERROR - A::B is not a class type +class A::B; // ERROR - A::B is not a class type, context diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash11.C b/gcc/testsuite/g++.old-deja/g++.other/crash11.C index 535a6a2d630..6b78b2f8b7f 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/crash11.C +++ b/gcc/testsuite/g++.old-deja/g++.other/crash11.C @@ -18,4 +18,4 @@ struct string max_size() const { return size; } }; -template string <char>; +template struct string <char>; diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash25.C b/gcc/testsuite/g++.old-deja/g++.other/crash25.C index 2f471fb866f..6c9e1a1c084 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/crash25.C +++ b/gcc/testsuite/g++.old-deja/g++.other/crash25.C @@ -11,6 +11,6 @@ X::x() { // ERROR - } -X::~x() -{ // ERROR - +X::~x() // ERROR - +{ } diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash4.C b/gcc/testsuite/g++.old-deja/g++.other/crash4.C index d86a6bb3f66..cedaa5041bb 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/crash4.C +++ b/gcc/testsuite/g++.old-deja/g++.other/crash4.C @@ -4,4 +4,4 @@ struct T { struct S __attribute__ ((packed)) { // ERROR - parse error int i; }; -}; // ERROR - parse error +}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/debug7.C b/gcc/testsuite/g++.old-deja/g++.other/debug7.C index f79b00a9cc7..8b3efccefed 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/debug7.C +++ b/gcc/testsuite/g++.old-deja/g++.other/debug7.C @@ -4,7 +4,7 @@ namespace std { const int __stl_chunk_size = 7; -}; +} int main () { diff --git a/gcc/testsuite/g++.old-deja/g++.other/decl5.C b/gcc/testsuite/g++.old-deja/g++.other/decl5.C index 98a7c462d42..00086d0035f 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/decl5.C +++ b/gcc/testsuite/g++.old-deja/g++.other/decl5.C @@ -1,6 +1,6 @@ // Build don't link: -// Copyright (C) 1999, 2000 Free Software Foundation, Inc. +// Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 22 Apr 1999 <nathan@acm.org> // derived from a bug report by <rch@larissa.sd.bi.ruhr-uni-bochum.de> // http://gcc.gnu.org/ml/gcc-bugs/1999-04n/msg00631.html @@ -26,12 +26,12 @@ struct B { struct A::fink { // ERROR - no such member int m; }; - struct A::Z { // ERROR XFAIL - A::Z not a member of B + struct A::Z { // ERROR - A::Z not a member of B XFAIL int m; }; int m; int n; - struct ::Q { // ERROR XFAIL - ::Q not a member of B + struct ::Q { // ERROR - ::Q not a member of B XFAIL int m; }; int A::fn() { // ERROR - A::fn not a member of B @@ -66,7 +66,7 @@ namespace NMS int N::fn() { // ERROR - N::fn not a member of NMS return 0; } - struct N::F { // ERROR XFAIL - N::F not a member of NMS + struct N::F { // ERROR - N::F not a member of NMS XFAIL int i; }; } diff --git a/gcc/testsuite/g++.old-deja/g++.other/defarg7.C b/gcc/testsuite/g++.old-deja/g++.other/defarg7.C index cb5a6daeae1..e4a27a39bc9 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/defarg7.C +++ b/gcc/testsuite/g++.old-deja/g++.other/defarg7.C @@ -1,15 +1,18 @@ // Build don't link: -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 7 Jan 2001 <nathan@codesourcery.com> +// As of G++ 3.4, we no longer attempt to detect dependencies; the +// standard does not require that we do. + // Bug 1038. Default args on class members can produce circular dependencies. // Make sure we spot them, and don't depend on a particular ordering. struct A { - static int Foo (int = Baz ()); // WARNING - circular - static int Baz (int = Foo ()); // WARNING - circular + static int Foo (int = Baz ()); // ERROR - + static int Baz (int = Foo ()); }; struct Test @@ -21,7 +24,7 @@ struct Test struct B { static int Bar (int = Foo (1)); - static int Foo (int = Baz ()); + static int Foo (int = Baz ()); // ERROR - static int Baz (int = Foo (1)); }; diff --git a/gcc/testsuite/g++.old-deja/g++.other/defarg8.C b/gcc/testsuite/g++.old-deja/g++.other/defarg8.C index 7188209cb22..42ddcb8f4d4 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/defarg8.C +++ b/gcc/testsuite/g++.old-deja/g++.other/defarg8.C @@ -1,23 +1,26 @@ // Build don't link: // Special g++ options: -pedantic-errors -ansi -w -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 7 Jan 2001 <nathan@codesourcery.com> +// As of G++ 3.4, we no longer attempt to detect dependencies; the +// standard does not require that we do. + // Bug 1038. Default args on class members can produce circular dependencies. // Make sure we spot them, and don't depend on a particular ordering. struct AA { - static int Foo (int = Baz ()); // ERROR - candidate - static int Baz (int = Foo ()); // ERROR - candidate + static int Foo (int = Baz ()); // ERROR - not yet been parsed + static int Baz (int = Foo ()); }; int main () { - AA::Foo (); // ERROR - no candidate + AA::Foo (); AA::Foo (1); - AA::Baz (); // ERROR - no candidate + AA::Baz (); AA::Baz (1); return 0; diff --git a/gcc/testsuite/g++.old-deja/g++.other/dtor1.C b/gcc/testsuite/g++.old-deja/g++.other/dtor1.C index 3f9803c39a8..18ab8b05821 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/dtor1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/dtor1.C @@ -14,4 +14,4 @@ main () { X* p = new (bar) X; p->~foo(); -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.other/dtor10.C b/gcc/testsuite/g++.old-deja/g++.other/dtor10.C index c8f7babb064..78bf613eefd 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/dtor10.C +++ b/gcc/testsuite/g++.old-deja/g++.other/dtor10.C @@ -31,7 +31,7 @@ T f () { } void g (S) { -}; +} int main () { diff --git a/gcc/testsuite/g++.old-deja/g++.other/incomplete.C b/gcc/testsuite/g++.old-deja/g++.other/incomplete.C index f5e9a581faf..1bdccbd607e 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/incomplete.C +++ b/gcc/testsuite/g++.old-deja/g++.other/incomplete.C @@ -8,8 +8,8 @@ struct S; // ERROR - forward ref void f(S); // ok void f(S s) {} // ERROR - incomplete type -void j (int){}; // ok -void k (){}; // ok +void j (int){} // ok +void k (){} // ok void q (void){} // ok void t (void t); // ERROR - incomplete void r (void, ...); // ERROR - incomplete diff --git a/gcc/testsuite/g++.old-deja/g++.other/linkage7.C b/gcc/testsuite/g++.old-deja/g++.other/linkage7.C index b168e013db1..561181bbe75 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/linkage7.C +++ b/gcc/testsuite/g++.old-deja/g++.other/linkage7.C @@ -7,7 +7,7 @@ namespace N { void f () { i = 3; } -}; +} int i; diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup19.C b/gcc/testsuite/g++.old-deja/g++.other/lookup19.C index e355f2d392a..12663e701eb 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup19.C +++ b/gcc/testsuite/g++.old-deja/g++.other/lookup19.C @@ -6,10 +6,10 @@ typedef int B; struct A { int B; - operator B *(); + operator B *(); // ERROR - }; -A::operator B * () +A::operator B * () // ERROR - { return 0; } @@ -48,7 +48,7 @@ struct G }; typedef double H; -G::operator H * () // ERROR - mismatch +G::operator H * () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.other/mangle2.C b/gcc/testsuite/g++.old-deja/g++.other/mangle2.C index 25bab87a249..2a8065ec482 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/mangle2.C +++ b/gcc/testsuite/g++.old-deja/g++.other/mangle2.C @@ -13,7 +13,7 @@ inline bool operator!=(const c& x, const c& y) { return x.a != y.a; } -}; +} void foo(); diff --git a/gcc/testsuite/g++.old-deja/g++.other/refinit2.C b/gcc/testsuite/g++.old-deja/g++.other/refinit2.C index 1246e783772..6b0211c395e 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/refinit2.C +++ b/gcc/testsuite/g++.old-deja/g++.other/refinit2.C @@ -1,6 +1,6 @@ // Build don't link: // -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 10 Aug 2000 <nathan@codesourcery.com> // bug 381. We gave slightly different diagnostics, when binding an rvalue to @@ -8,7 +8,7 @@ namespace A { template <class T> void f(T) {} -}; +} void (* &h)(int) = A::f<int>; // ERROR - rvalue to non-const void (*const volatile &i)(int) = A::f<int>; // ERROR - rvalue to volatile void (*const &j)(int) = A::f<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.other/sizeof2.C b/gcc/testsuite/g++.old-deja/g++.other/sizeof2.C index c597844ae2e..1a45fe385e4 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/sizeof2.C +++ b/gcc/testsuite/g++.old-deja/g++.other/sizeof2.C @@ -3,13 +3,13 @@ struct S { - int j; // ERROR - member - int i[2]; // ERROR - member + int j; // ERROR - non-static data member + int i[2]; // ERROR - non-static data member }; void f () { - sizeof (S::j); // ERROR - non-static data member - sizeof (S::i[0]); // ERROR - non-static data member + sizeof (S::j); // ERROR - used here + sizeof (S::i[0]); // ERROR - used here } diff --git a/gcc/testsuite/g++.old-deja/g++.other/std1.C b/gcc/testsuite/g++.old-deja/g++.other/std1.C index dc36519d050..67614048590 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/std1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/std1.C @@ -9,4 +9,4 @@ namespace std { void f () { memcmp (0, 0, 0); } -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash28.C b/gcc/testsuite/g++.old-deja/g++.pt/crash28.C index ab46d8f5914..6b0df69f16a 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash28.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash28.C @@ -11,4 +11,4 @@ void f(unsigned int n) { int x[n]; asize(x); // ERROR - no matching function -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash29.C b/gcc/testsuite/g++.old-deja/g++.pt/crash29.C index 05bef969836..5334cd30c5c 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash29.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash29.C @@ -50,6 +50,7 @@ public: : MetaClassGeneric( TypeIDInit<T>::info ) {} }; +template <> class MetaClass<UUId> : public NameInfo<UUId> { diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash32.C b/gcc/testsuite/g++.old-deja/g++.pt/crash32.C index af6ef5b95cd..80864db73cd 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash32.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash32.C @@ -8,6 +8,6 @@ template <class T> struct A template<class T> struct C { - friend typename A<T>::B; // ERROR - struct is required + friend typename A<T>::B; // ERROR - `typename' not allowed }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash43.C b/gcc/testsuite/g++.old-deja/g++.pt/crash43.C index e324491e4b1..802e01d0849 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash43.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash43.C @@ -7,7 +7,7 @@ struct S { struct Y {}; template <int U> - friend struct S<U>::X; // ERROR - typename as friend + friend struct S<U>::X; template <int U> friend typename S<U>::Y; // ERROR - typename as friend @@ -15,7 +15,7 @@ struct S { struct T { template <int T> - friend struct S<T>::X; // ERROR - typename as friend + friend struct S<T>::X; }; struct U { diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash58.C b/gcc/testsuite/g++.old-deja/g++.pt/crash58.C index 10d23a03d6a..387b5f54571 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash58.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash58.C @@ -1,13 +1,13 @@ // Build don't link: // -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 5 Sept 2000 <nathan@codesourcery.com> // bug 147. We ICE'd on an unprocessed LOOKUP_EXPR during tsubsting namespace EManip { template <class T> void do_assign(T* d); // ERROR - candidate -}; +} template <class T> void do_assign(T* d); // ERROR - candidate template <class T> diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash65.C b/gcc/testsuite/g++.old-deja/g++.pt/crash65.C index 7b632a60a1d..2e66d5d92c3 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash65.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash65.C @@ -1,6 +1,6 @@ // Build don't link: -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 11 Jan 2001 <nathan@codesourcery.com> // Bug 1506. We ICE'd on a struct definition inside a template parms. @@ -10,3 +10,4 @@ template<class T = struct W {}; // ERROR - inside template parms +> struct S{}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg5.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg5.C index 6a68bad8251..facd0b67158 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg5.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/defarg5.C @@ -21,4 +21,4 @@ template <> void bar<2>::foo (Point<2> p) { const int dim = 2; Point<dim> q = p; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg8.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg8.C index 6bb1125259c..b267409974b 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg8.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/defarg8.C @@ -8,7 +8,7 @@ template <class T, class U> class foo2; struct bar { template <class T, class U> - bar(int i = foo1<T>::baz, // ok + bar(int i = foo1<T>::baz, // gets bogus error - XFAIL *-*-* int j = int(foo2<T, U>::baz), // ok int k = foo2<T, U>::baz) {} // gets bogus error - before > - XFAIL *-*-* }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/eichin01.C b/gcc/testsuite/g++.old-deja/g++.pt/eichin01.C index 154587b0ac9..102ab290edc 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/eichin01.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/eichin01.C @@ -15,8 +15,8 @@ public: void sz(X s) { sss = s; } }; -float TC<float>::sss; -long TC<long>::sss; +template <> float TC<float>::sss = 0.0; +template <> long TC<long>::sss = 0; TC<long> xjj(1,2); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C b/gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C index 1a37eebfc23..a4c5f1643c1 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C @@ -8,8 +8,8 @@ public: }; -long TC<long>::sss; -float TC<float>::sss; +template <> long TC<long>::sss = 0; +template <> float TC<float>::sss = 0.0; TC<long> xjj(1,2); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/eichin01b.C b/gcc/testsuite/g++.old-deja/g++.pt/eichin01b.C index 51bb4474c8f..25f269ce89d 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/eichin01b.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/eichin01b.C @@ -8,8 +8,8 @@ public: void syy(X syarg) { sss = syarg; } }; -long TC<long>::sss; -float TC<float>::sss; +template <> long TC<long>::sss = 0; +template <> float TC<float>::sss = 0.0; TC<long> xjj(1,2); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum7.C b/gcc/testsuite/g++.old-deja/g++.pt/enum7.C index 47dcbfa6761..d2ea2016d7d 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum7.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/enum7.C @@ -8,7 +8,7 @@ int f() E e; e = a; return (int) e; - }; + } }; S s; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit12.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit12.C index 820da3d62bc..03355a7639f 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit12.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit12.C @@ -16,5 +16,5 @@ void S<char*>::foo<int>(int) {} int main() { S<char*> s; - s.template foo<int>(3.0); + s.foo<int>(3.0); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit31.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit31.C index 900ba1157e5..54f0b6c2270 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit31.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit31.C @@ -11,7 +11,7 @@ struct S int main() { - double d = S<int>::template foo<char>(3.3); + double d = S<int>::foo<char>(3.3); return (d >= 3.1); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit33.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit33.C index 048a3565be8..d9d3b07322b 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit33.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit33.C @@ -4,6 +4,6 @@ template <class T> void foo(T t); template <> -void foo(int) {}; +void foo(int) {} void foo(int) {} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit35.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit35.C index e39a27bc501..1aee1317514 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit35.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit35.C @@ -13,5 +13,5 @@ void S::foo<int>(int i) { } int main() { S s; - s.template foo<int>(3.0); + s.foo<int>(3.0); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C index c84eebcc428..23c8d276b14 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C @@ -12,4 +12,4 @@ class bug { }; template <class X> template <> // ERROR - invalid specialization -class bug<X>::a<char> {}; // ERROR - "" +class bug<X>::a<char> {}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit80.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit80.C index c53982daa81..2cbdeab0cb6 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit80.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit80.C @@ -10,7 +10,7 @@ struct A class B; }; -class A<int>::B { }; +template <> class A<int>::B { }; template class A<int>; template class A<double>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend28.C b/gcc/testsuite/g++.old-deja/g++.pt/friend28.C index f86d0b67b95..84e39941e4d 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend28.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend28.C @@ -2,6 +2,10 @@ class mystream; +template <class T> class a; + +template <class T> mystream& operator>>( mystream& s, a<T>& thea ); + template <class T> class a { public: friend mystream& operator>> <>( mystream&, a<T>& thea ); @@ -9,8 +13,6 @@ private: T amember; }; -template <class T> mystream& operator>>( mystream& s, a<T>& thea ); - template<> mystream& operator>> <int>( mystream& s, a<int>& thea ); template class a<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend29.C b/gcc/testsuite/g++.old-deja/g++.pt/friend29.C index e141aaa363f..7eea65398cf 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend29.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend29.C @@ -1,5 +1,9 @@ // Build don't link: +template <class T> class a; + +template <class T> void foo( a<T>& thea ); + template <class T> class a { public: friend void foo<>( a<T>& thea ); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend46.C b/gcc/testsuite/g++.old-deja/g++.pt/friend46.C index 58c87c49644..d8b33fdf989 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend46.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend46.C @@ -1,5 +1,5 @@ // Build don't link: -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 17 Nov 2000 <nathan@codesourcery.com> // bug 43. Two failings, bison parser ickiness caused us to find the member @@ -17,7 +17,7 @@ namespace X { V (const T&); void operator- (); - friend void operator-<> (const P<T>& a); + friend void X::operator-<> (const P<T>& a); }; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend48.C b/gcc/testsuite/g++.old-deja/g++.pt/friend48.C index af0e3caf15c..3e087f1e12f 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend48.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend48.C @@ -14,4 +14,4 @@ class D { template <class U> friend class N::D; }; -}; +} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate1.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate1.C index 11f9c781988..b2759bbfaac 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate1.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate1.C @@ -16,7 +16,7 @@ struct S }; -template S<char>; +template struct S<char>; template void S<int>::bar(int); template void S<double>::baz<short>(short); template void S<long>::baz<>(char); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate11.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate11.C index ae53224e9c8..7e9af2a74ae 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate11.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate11.C @@ -15,7 +15,7 @@ public: vect<t>& operator=( const vect<t>& v ); vect<t> operator-( void ) const; - friend vect<t> operator- <>( const vect<t>&, const vect<t>& ); + friend vect<t> (::operator- <>)( const vect<t>&, const vect<t>& ); private: t a_; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate8.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate8.C index beffa02477f..5c4945d35c2 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate8.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate8.C @@ -1,5 +1,5 @@ // Build don't link: -// Copyright (C) 2000 Free Software Foundation, Inc. +// Copyright (C) 2000, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 14 Nov 2000 <nathan@codesourcery.com> // bug 616. We failed to complete the type of decls in templates, leading to @@ -35,6 +35,6 @@ void f() const X<dim+1> y[3]; Z z2; // ERROR - incomplete typedef Z z3; // ok -}; +} template void f<3> (); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate9.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate9.C index 30ad03b46fc..37c132e182b 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate9.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate9.C @@ -14,7 +14,7 @@ struct A { template <typename T1> struct B { - A<T1>::C<int> s1; + typename A<T1>::template C<int> s1; }; int main() diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass20.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass20.C index c57c27dfe09..3f456e631d6 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass20.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/memclass20.C @@ -12,7 +12,7 @@ struct S<int, X> { template <class T> void f() { - typename S<T, T>::I<T> si; + typename S<T, T>::template I<T> si; } template void f<int>(); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass5.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass5.C index 06a1413eb0e..6fc72199b64 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass5.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/memclass5.C @@ -9,7 +9,7 @@ template <class T, class U> void f () { A<T>::template B<U>::template f<T> (); - typename A<T>::B<U> b; + typename A<T>::template B<U> b; typename A<T>::template B<U> b2; b.A<T>::template B<U>::~B(); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass7.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass7.C index d356a4ed55a..1ae4230bf73 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass7.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/memclass7.C @@ -15,5 +15,5 @@ void S::Y<char>::foo<int>(int i) { } int main() { S::Y<char> s; - s.template foo<int>(3.0); + s.foo<int>(3.0); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp75.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp75.C index 4ff38b6c04c..d9a58e5b8fc 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp75.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp75.C @@ -21,5 +21,5 @@ int main() { bar<int> b; - b.template doit<print>(2); + b.doit<print>(2); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C index 1584f88b802..73a7a7ebc6f 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C @@ -7,7 +7,7 @@ int k; template <int j> int f() const { return this->f<j-1>(); } -int g() const { return f<i>(); }; +int g() const { return f<i>(); } }; template <> diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C index a57ad17fef1..7632049a14c 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C @@ -2,9 +2,10 @@ // crash test - XFAIL *-*-* // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc. -// Copyright (C) 1999 Free Software Foundation +// Copyright (C) 1999, 2002 Free Software Foundation class Q { +public: template<class> class X { }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload13.C b/gcc/testsuite/g++.old-deja/g++.pt/overload13.C index 8f11b8b3002..37a8d8b37bf 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload13.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/overload13.C @@ -1,8 +1,3 @@ -// Test that .template limits overload resolution to member templates. - -// Note that the standard doesn't seem to require this behavior, but -// EDG works this way. - struct A { template <class T> int f (T) { return 0; } int f (int) { return 1; } @@ -11,5 +6,5 @@ struct A { int main () { A a; - return a.template f (0); // gets bogus error XFAIL *-*-* + return a.template f (0); // ERROR - } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/parms2.C b/gcc/testsuite/g++.old-deja/g++.pt/parms2.C index 856d36cd231..d7a644c2073 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/parms2.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/parms2.C @@ -20,11 +20,11 @@ struct Ethel { struct Fred { template <class Q, class LA, class LB> - Ethel<typename Q::Sig<typename LA::WrappedType>::Third> baz (); + Ethel<typename Q::template Sig<typename LA::WrappedType>::Third> baz (); template <class Z, class A, class B> - Ethel<typename Z::Sig<A>::Third> + Ethel<typename Z::template Sig<A>::Third> foo ( const Z&, const Ethel<A>&, const Ethel<B>&) const; }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem1.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem1.C index e14c726c1d7..5bf7dd77f0a 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem1.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem1.C @@ -10,7 +10,7 @@ main() { foo f; - int (foo::*s)() = &foo::template bar<int>; + int (foo::*s)() = &foo::bar<int>; if ((f.*s)() == 7) return 0; else diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec10.C b/gcc/testsuite/g++.old-deja/g++.pt/spec10.C index 5d53e2d76b1..e86f220cfc7 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec10.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/spec10.C @@ -19,9 +19,9 @@ int main() { S<double> s; - if (s.template f<7>(3) != 10) + if (s.f<7>(3) != 10) abort(); - if (s.template f<8>(3) != 11) + if (s.f<8>(3) != 11) abort(); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec28.C b/gcc/testsuite/g++.old-deja/g++.pt/spec28.C index cb073802a92..a6fdc064a7c 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec28.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/spec28.C @@ -1,5 +1,8 @@ // Build don't link: +template <class T> +bool f(T); + template <class T> struct S1 { typedef T X; @@ -16,9 +19,6 @@ struct S2<S1<T> > { }; template <class T> -bool f(T); - -template <class T> typename S2<S1<T> >::Y f(const S1<T>&); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t10.C b/gcc/testsuite/g++.old-deja/g++.pt/t10.C index 4f3fc182e04..c70b902366c 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/t10.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/t10.C @@ -1,6 +1,6 @@ // Build don't link: template <class A> class B { public: A a; B(); }; -class B<char> { public: int y[10]; }; +template <> class B<char> { public: int y[10]; }; static B<int> bi; static B<char> bc; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t32.C b/gcc/testsuite/g++.old-deja/g++.pt/t32.C index 89f8db19108..f2614f8789a 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/t32.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/t32.C @@ -7,7 +7,7 @@ template <class X> struct A { inline int z () { return 5; } }; -template <class Y> int A<Y>::fooo (int t) { return (this->*(x?&A<Y>::y : &A<Y>::z))() + t; }; // gets bogus error +template <class Y> int A<Y>::fooo (int t) { return (this->*(x?&A<Y>::y : &A<Y>::z))() + t; } // gets bogus error A<int> ai; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t35a.C b/gcc/testsuite/g++.old-deja/g++.pt/t35a.C index 40fba4d0997..71712bf5019 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/t35a.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/t35a.C @@ -1,5 +1,5 @@ // Build don't link: template <class X> struct A { }; -struct A<int> { int foo (); }; +template <> struct A<int> { int foo (); }; int A<int>::foo () { return 37; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp24.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp24.C index 1e6278f6b80..b73d1a1b1c7 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp24.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/ttp24.C @@ -13,7 +13,7 @@ template<template<class> class D,class E> int f() { D<E> d; return d.f(); -}; +} int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp62.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp62.C index cf415251874..1ff649d71be 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp62.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/ttp62.C @@ -18,7 +18,7 @@ template <class X> struct D { }; template <class T> bool is_C (const T&) { return is_instance_of<C,T>::answer; -}; +} int main() { if (!is_C(C<int>())) diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp64.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp64.C index c4665fc4bb3..bfbc425d58d 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp64.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/ttp64.C @@ -7,40 +7,40 @@ template <class T> class A2 { public: - A2() {}; - virtual ~A2() {}; + A2() {} + virtual ~A2() {} template <class other> A2 & operator=(const A2<other> o) { i=o.i; return *this; - }; + } T i; T j; }; template <class T> class A1 { public: - A1() {}; - virtual ~A1() {}; + A1() {} + virtual ~A1() {} template <class other> A1 & operator=(const A1<other> o) { i=o.i; return *this; - }; + } template <class other> A1 & operator=(const A2<other> o) { i=o.i; return *this; - }; + } T i; }; template <template <class U> class T> class B { public: - B(){}; - virtual ~B(){}; + B(){} + virtual ~B(){} template <template <class U2> class O> struct rebind { typedef B<O> other ;}; template <template <class U2> class O> B & operator=(const B<O> o) { i=o.i; return *this; - }; + } T<int> i; }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename11.C b/gcc/testsuite/g++.old-deja/g++.pt/typename11.C index cfc9f131ee9..1cee212c903 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename11.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/typename11.C @@ -1,5 +1,4 @@ // Build don't link: -// Special g++ Options: -Wno-deprecated template <class T, int I> struct S { @@ -7,9 +6,9 @@ struct S { }; template <class T, class U, int I> -S<T,I>::X f(T, U) { // WARNING - implicit typename - S<T, I>::X(); - return S<T, I>::X(); +typename S<T,I>::X f(T, U) { + typename S<T, I>::X(); + return typename S<T, I>::X(); } template S<int, 3>::X f<int, double, 3>(int, double); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename15.C b/gcc/testsuite/g++.old-deja/g++.pt/typename15.C index 8e26057922e..8f263f03903 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename15.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/typename15.C @@ -12,7 +12,7 @@ struct S : public R <T, B> { template <class T> void f() { - S<T>::X(); + typename S<T>::X(); } template void f<int>(); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename22.C b/gcc/testsuite/g++.old-deja/g++.pt/typename22.C index 86a82df65cb..ba9da1bc952 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename22.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/typename22.C @@ -14,4 +14,4 @@ struct S { template <class T> template <class U> -typename S<T>::I<U>::X S<T>::I<U>::f() {} +typename S<T>::template I<U>::X S<T>::I<U>::f() {} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C b/gcc/testsuite/g++.old-deja/g++.pt/typename6.C index a3df71840e7..1f72cec1169 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/typename6.C @@ -1,7 +1,4 @@ -// We don't try to make implicit typename handle this case. - // Build don't link: -// Special g++ Options: template <class T> struct A @@ -13,10 +10,10 @@ struct A template <class U> struct B : public A<U> { - A_Type Func(); // ERROR - candidate + A_Type Func(); // ERROR - declaration }; template <class U> -A<U>::A_Type B<U>::Func() -{ // ERROR - no match +A<U>::A_Type B<U>::Func() // ERROR - function +{ } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/using1.C b/gcc/testsuite/g++.old-deja/g++.pt/using1.C index 632fca00a45..3857d701af2 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/using1.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/using1.C @@ -1,4 +1,4 @@ -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 26 Feb 2001 <nathan@codesourcery.com> // Bug 1981. using declarations in namespace scope were not remembered. @@ -6,7 +6,7 @@ namespace A { void swap () {} -}; +} template <class T> void f() { @@ -28,7 +28,7 @@ namespace B return foo (1); } template int baz<float> (); -}; +} int main () { diff --git a/gcc/testsuite/g++.old-deja/g++.pt/virtual2.C b/gcc/testsuite/g++.old-deja/g++.pt/virtual2.C index 052b0497908..59fab8952a5 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/virtual2.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/virtual2.C @@ -14,7 +14,7 @@ struct D : public B<T> { void g() { B<int>* bi = new D<int>; -}; +} template <class T> void B<T>::f() {} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb118.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb118.C index b191ac11717..51d86af4231 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb118.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb118.C @@ -16,6 +16,7 @@ A<T>::test(){ std::cerr << "test for " << typeid(*this).name() << std::endl; } // Specialization declaration +template <> void A<double>::test(); diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C index 3d32f1c0028..4e2d5eafb7c 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C @@ -28,8 +28,8 @@ class test // named return value version template <class T> -test<T> operator + (const test<T>& a, const test<T>& b) return c(a); -{ c += b; }; +test<T> operator + (const test<T>& a, const test<T>& b) return c(a);// ERROR - named return value +{ c += b; } // ERROR - c undeclared int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb43.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb43.C index f98464c91df..c4cf02804c7 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb43.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb43.C @@ -17,7 +17,7 @@ public : }; template <class T > -inline bool compare(const Expr<T> a, const Expr<T> b){ return true; }; +inline bool compare(const Expr<T> a, const Expr<T> b){ return true; } int main() { diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb79.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb79.C index 453916ed097..b95bfafeb36 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb79.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb79.C @@ -19,7 +19,7 @@ int main() double d = 1234.5678; cout.precision(12); - cout << max(d, i) << endl; // #1 - cout << max(i, d) << endl; // #2 + cout << max(d, i) << endl; // ERROR - + cout << max(i, d) << endl; // ERROR - return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb82.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb82.C index 1e4d8c6249c..7492c8f9446 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb82.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb82.C @@ -1,12 +1,12 @@ #include <stdio.h> template <int n1> -double val <int> () -{ // ERROR - bogus code +double val <int> () // ERROR - bogus code +{ return (double) n1; -}; +} int main () { - printf ("%d\n", val<(int)3> ()); + printf ("%d\n", val<(int)3> ()); // ERROR - val undeclared } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb86.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb86.C index 463d2d1cb60..1922dc290f3 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb86.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb86.C @@ -1,4 +1,6 @@ // Build don't link: +template <class T> void foo (); + template <class T> class Q { friend void foo<T> (); |