From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/g++.dg/parse/access1.C | 13 ++ gcc/testsuite/g++.dg/parse/access10.C | 11 + gcc/testsuite/g++.dg/parse/access2.C | 15 ++ gcc/testsuite/g++.dg/parse/access3.C | 14 ++ gcc/testsuite/g++.dg/parse/access4.C | 20 ++ gcc/testsuite/g++.dg/parse/access5.C | 18 ++ gcc/testsuite/g++.dg/parse/access6.C | 24 ++ gcc/testsuite/g++.dg/parse/access7.C | 13 ++ gcc/testsuite/g++.dg/parse/access8.C | 12 + gcc/testsuite/g++.dg/parse/access9.C | 5 + gcc/testsuite/g++.dg/parse/ambig1.C | 12 + gcc/testsuite/g++.dg/parse/ambig2.C | 27 +++ gcc/testsuite/g++.dg/parse/ambig3.C | 21 ++ gcc/testsuite/g++.dg/parse/ambig4.C | 18 ++ gcc/testsuite/g++.dg/parse/ambig5.C | 7 + gcc/testsuite/g++.dg/parse/ambig6.C | 12 + gcc/testsuite/g++.dg/parse/angle-bracket.C | 9 + gcc/testsuite/g++.dg/parse/angle-bracket2.C | 6 + gcc/testsuite/g++.dg/parse/args1.C | 12 + gcc/testsuite/g++.dg/parse/array-size1.C | 13 ++ gcc/testsuite/g++.dg/parse/array-size2.C | 20 ++ gcc/testsuite/g++.dg/parse/asm1.C | 6 + gcc/testsuite/g++.dg/parse/asm2.C | 6 + gcc/testsuite/g++.dg/parse/asm3.C | 6 + gcc/testsuite/g++.dg/parse/attr-ctor1.C | 9 + .../g++.dg/parse/attr-externally-visible-1.C | 49 ++++ .../g++.dg/parse/attr-externally-visible-2.C | 38 +++ gcc/testsuite/g++.dg/parse/attr1.C | 50 ++++ gcc/testsuite/g++.dg/parse/attr2.C | 12 + gcc/testsuite/g++.dg/parse/attr3.C | 14 ++ gcc/testsuite/g++.dg/parse/bitfield1.C | 11 + gcc/testsuite/g++.dg/parse/bitfield2.C | 34 +++ gcc/testsuite/g++.dg/parse/bitfield3.C | 9 + gcc/testsuite/g++.dg/parse/break-in-for.C | 12 + gcc/testsuite/g++.dg/parse/builtin1.C | 16 ++ gcc/testsuite/g++.dg/parse/builtin2.C | 5 + gcc/testsuite/g++.dg/parse/cast1.C | 11 + gcc/testsuite/g++.dg/parse/cast2.C | 13 ++ gcc/testsuite/g++.dg/parse/casting-operator1.C | 11 + gcc/testsuite/g++.dg/parse/casting-operator2.C | 27 +++ gcc/testsuite/g++.dg/parse/catch1.C | 8 + gcc/testsuite/g++.dg/parse/class1.C | 10 + gcc/testsuite/g++.dg/parse/class2.C | 14 ++ gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C | 31 +++ gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C | 15 ++ gcc/testsuite/g++.dg/parse/comma1.C | 14 ++ gcc/testsuite/g++.dg/parse/comma2.C | 19 ++ gcc/testsuite/g++.dg/parse/concat1.C | 15 ++ gcc/testsuite/g++.dg/parse/cond1.C | 6 + gcc/testsuite/g++.dg/parse/cond2.C | 14 ++ gcc/testsuite/g++.dg/parse/cond3.C | 15 ++ gcc/testsuite/g++.dg/parse/cond4.C | 6 + gcc/testsuite/g++.dg/parse/cond5.C | 10 + gcc/testsuite/g++.dg/parse/condexpr1.C | 13 ++ gcc/testsuite/g++.dg/parse/constant1.C | 15 ++ gcc/testsuite/g++.dg/parse/constant2.C | 28 +++ gcc/testsuite/g++.dg/parse/constant3.C | 7 + gcc/testsuite/g++.dg/parse/constant4.C | 40 ++++ gcc/testsuite/g++.dg/parse/constant5.C | 16 ++ gcc/testsuite/g++.dg/parse/constant6.C | 23 ++ gcc/testsuite/g++.dg/parse/constant7.C | 9 + gcc/testsuite/g++.dg/parse/constructor1.C | 8 + gcc/testsuite/g++.dg/parse/constructor2.C | 11 + gcc/testsuite/g++.dg/parse/constructor3.C | 14 ++ gcc/testsuite/g++.dg/parse/conv_op1.C | 30 +++ gcc/testsuite/g++.dg/parse/crash1.C | 1 + gcc/testsuite/g++.dg/parse/crash10.C | 13 ++ gcc/testsuite/g++.dg/parse/crash11.C | 34 +++ gcc/testsuite/g++.dg/parse/crash12.C | 24 ++ gcc/testsuite/g++.dg/parse/crash13.C | 22 ++ gcc/testsuite/g++.dg/parse/crash14.C | 20 ++ gcc/testsuite/g++.dg/parse/crash15.C | 9 + gcc/testsuite/g++.dg/parse/crash16.C | 8 + gcc/testsuite/g++.dg/parse/crash17.C | 9 + gcc/testsuite/g++.dg/parse/crash18.C | 7 + gcc/testsuite/g++.dg/parse/crash19.C | 7 + gcc/testsuite/g++.dg/parse/crash2.C | 7 + gcc/testsuite/g++.dg/parse/crash20.C | 14 ++ gcc/testsuite/g++.dg/parse/crash21.C | 7 + gcc/testsuite/g++.dg/parse/crash22.C | 25 ++ gcc/testsuite/g++.dg/parse/crash23.C | 12 + gcc/testsuite/g++.dg/parse/crash24.C | 6 + gcc/testsuite/g++.dg/parse/crash25.C | 10 + gcc/testsuite/g++.dg/parse/crash26.C | 12 + gcc/testsuite/g++.dg/parse/crash27.C | 4 + gcc/testsuite/g++.dg/parse/crash28.C | 14 ++ gcc/testsuite/g++.dg/parse/crash29.C | 10 + gcc/testsuite/g++.dg/parse/crash3.C | 2 + gcc/testsuite/g++.dg/parse/crash30.C | 18 ++ gcc/testsuite/g++.dg/parse/crash31.C | 9 + gcc/testsuite/g++.dg/parse/crash32.C | 13 ++ gcc/testsuite/g++.dg/parse/crash33.C | 8 + gcc/testsuite/g++.dg/parse/crash34.C | 6 + gcc/testsuite/g++.dg/parse/crash35.C | 7 + gcc/testsuite/g++.dg/parse/crash36.C | 12 + gcc/testsuite/g++.dg/parse/crash37.C | 15 ++ gcc/testsuite/g++.dg/parse/crash38.C | 11 + gcc/testsuite/g++.dg/parse/crash39.C | 3 + gcc/testsuite/g++.dg/parse/crash4.C | 12 + gcc/testsuite/g++.dg/parse/crash40.C | 42 ++++ gcc/testsuite/g++.dg/parse/crash41.C | 8 + gcc/testsuite/g++.dg/parse/crash42.C | 9 + gcc/testsuite/g++.dg/parse/crash43.C | 9 + gcc/testsuite/g++.dg/parse/crash44.C | 15 ++ gcc/testsuite/g++.dg/parse/crash45.C | 7 + gcc/testsuite/g++.dg/parse/crash46.C | 18 ++ gcc/testsuite/g++.dg/parse/crash47.C | 9 + gcc/testsuite/g++.dg/parse/crash48.C | 9 + gcc/testsuite/g++.dg/parse/crash49.C | 10 + gcc/testsuite/g++.dg/parse/crash5.C | 15 ++ gcc/testsuite/g++.dg/parse/crash50.C | 10 + gcc/testsuite/g++.dg/parse/crash51.C | 9 + gcc/testsuite/g++.dg/parse/crash52.C | 3 + gcc/testsuite/g++.dg/parse/crash53.C | 13 ++ gcc/testsuite/g++.dg/parse/crash54.C | 15 ++ gcc/testsuite/g++.dg/parse/crash55.C | 8 + gcc/testsuite/g++.dg/parse/crash56.C | 17 ++ gcc/testsuite/g++.dg/parse/crash57.C | 10 + gcc/testsuite/g++.dg/parse/crash6.C | 10 + gcc/testsuite/g++.dg/parse/crash7.C | 10 + gcc/testsuite/g++.dg/parse/crash9.C | 9 + gcc/testsuite/g++.dg/parse/ctor1.C | 9 + gcc/testsuite/g++.dg/parse/ctor2.C | 4 + gcc/testsuite/g++.dg/parse/ctor3.C | 8 + gcc/testsuite/g++.dg/parse/ctor4.C | 7 + gcc/testsuite/g++.dg/parse/ctor5.C | 14 ++ gcc/testsuite/g++.dg/parse/ctor6.C | 11 + gcc/testsuite/g++.dg/parse/ctor7.C | 15 ++ gcc/testsuite/g++.dg/parse/ctor8.C | 9 + gcc/testsuite/g++.dg/parse/ctor9.C | 7 + gcc/testsuite/g++.dg/parse/dce1.C | 13 ++ gcc/testsuite/g++.dg/parse/decl-specifier-1.C | 17 ++ gcc/testsuite/g++.dg/parse/def-tmpl-arg1.C | 9 + gcc/testsuite/g++.dg/parse/defarg1.C | 5 + gcc/testsuite/g++.dg/parse/defarg10.C | 11 + gcc/testsuite/g++.dg/parse/defarg11.C | 9 + gcc/testsuite/g++.dg/parse/defarg12.C | 13 ++ gcc/testsuite/g++.dg/parse/defarg13.C | 8 + gcc/testsuite/g++.dg/parse/defarg14.C | 6 + gcc/testsuite/g++.dg/parse/defarg15.C | 5 + gcc/testsuite/g++.dg/parse/defarg2.C | 9 + gcc/testsuite/g++.dg/parse/defarg3.C | 5 + gcc/testsuite/g++.dg/parse/defarg4.C | 32 +++ gcc/testsuite/g++.dg/parse/defarg5.C | 15 ++ gcc/testsuite/g++.dg/parse/defarg6.C | 11 + gcc/testsuite/g++.dg/parse/defarg7.C | 5 + gcc/testsuite/g++.dg/parse/defarg8.C | 10 + gcc/testsuite/g++.dg/parse/defarg9.C | 20 ++ .../g++.dg/parse/direct-initialization-2.C | 18 ++ gcc/testsuite/g++.dg/parse/dot1.C | 4 + gcc/testsuite/g++.dg/parse/dtor1.C | 6 + gcc/testsuite/g++.dg/parse/dtor10.C | 9 + gcc/testsuite/g++.dg/parse/dtor11.C | 12 + gcc/testsuite/g++.dg/parse/dtor12.C | 6 + gcc/testsuite/g++.dg/parse/dtor13.C | 8 + gcc/testsuite/g++.dg/parse/dtor14.C | 8 + gcc/testsuite/g++.dg/parse/dtor15.C | 16 ++ gcc/testsuite/g++.dg/parse/dtor2.C | 4 + gcc/testsuite/g++.dg/parse/dtor3.C | 16 ++ gcc/testsuite/g++.dg/parse/dtor4.C | 10 + gcc/testsuite/g++.dg/parse/dtor5.C | 12 + gcc/testsuite/g++.dg/parse/dtor6.C | 8 + gcc/testsuite/g++.dg/parse/dtor7.C | 4 + gcc/testsuite/g++.dg/parse/dtor8.C | 8 + gcc/testsuite/g++.dg/parse/dtor9.C | 5 + gcc/testsuite/g++.dg/parse/dupl-tmpl-args1.C | 13 ++ gcc/testsuite/g++.dg/parse/eh-decl.C | 8 + gcc/testsuite/g++.dg/parse/elab1.C | 9 + gcc/testsuite/g++.dg/parse/elab2.C | 7 + gcc/testsuite/g++.dg/parse/else-2.C | 11 + gcc/testsuite/g++.dg/parse/else.C | 13 ++ gcc/testsuite/g++.dg/parse/enum1.C | 4 + gcc/testsuite/g++.dg/parse/enum2.C | 7 + gcc/testsuite/g++.dg/parse/enum3.C | 5 + gcc/testsuite/g++.dg/parse/enum4.C | 10 + gcc/testsuite/g++.dg/parse/enum5.C | 17 ++ gcc/testsuite/g++.dg/parse/error-column.C | 9 + gcc/testsuite/g++.dg/parse/error1.C | 7 + gcc/testsuite/g++.dg/parse/error10.C | 19 ++ gcc/testsuite/g++.dg/parse/error11.C | 71 ++++++ gcc/testsuite/g++.dg/parse/error12.C | 13 ++ gcc/testsuite/g++.dg/parse/error13.C | 14 ++ gcc/testsuite/g++.dg/parse/error14.C | 26 +++ gcc/testsuite/g++.dg/parse/error15.C | 41 ++++ gcc/testsuite/g++.dg/parse/error16.C | 9 + gcc/testsuite/g++.dg/parse/error17.C | 9 + gcc/testsuite/g++.dg/parse/error18.C | 8 + gcc/testsuite/g++.dg/parse/error19.C | 15 ++ gcc/testsuite/g++.dg/parse/error2.C | 15 ++ gcc/testsuite/g++.dg/parse/error20.C | 18 ++ gcc/testsuite/g++.dg/parse/error21.C | 13 ++ gcc/testsuite/g++.dg/parse/error22.C | 6 + gcc/testsuite/g++.dg/parse/error23.C | 9 + gcc/testsuite/g++.dg/parse/error24.C | 8 + gcc/testsuite/g++.dg/parse/error25.C | 18 ++ gcc/testsuite/g++.dg/parse/error26.C | 14 ++ gcc/testsuite/g++.dg/parse/error27.C | 8 + gcc/testsuite/g++.dg/parse/error28.C | 12 + gcc/testsuite/g++.dg/parse/error29.C | 13 ++ gcc/testsuite/g++.dg/parse/error3.C | 9 + gcc/testsuite/g++.dg/parse/error30.C | 12 + gcc/testsuite/g++.dg/parse/error31.C | 14 ++ gcc/testsuite/g++.dg/parse/error32.C | 12 + gcc/testsuite/g++.dg/parse/error33.C | 16 ++ gcc/testsuite/g++.dg/parse/error34.C | 8 + gcc/testsuite/g++.dg/parse/error35.C | 8 + gcc/testsuite/g++.dg/parse/error36.C | 32 +++ gcc/testsuite/g++.dg/parse/error37.C | 5 + gcc/testsuite/g++.dg/parse/error4.C | 10 + gcc/testsuite/g++.dg/parse/error5.C | 19 ++ gcc/testsuite/g++.dg/parse/error6.C | 11 + gcc/testsuite/g++.dg/parse/error7.C | 7 + gcc/testsuite/g++.dg/parse/error8.C | 9 + gcc/testsuite/g++.dg/parse/error9.C | 9 + gcc/testsuite/g++.dg/parse/explicit1.C | 11 + gcc/testsuite/g++.dg/parse/expr1.C | 8 + gcc/testsuite/g++.dg/parse/expr2.C | 8 + gcc/testsuite/g++.dg/parse/expr3.C | 32 +++ gcc/testsuite/g++.dg/parse/extern-C-1.C | 13 ++ gcc/testsuite/g++.dg/parse/extern1.C | 14 ++ gcc/testsuite/g++.dg/parse/fn-typedef1.C | 19 ++ gcc/testsuite/g++.dg/parse/fn-typedef2.C | 7 + gcc/testsuite/g++.dg/parse/for1.C | 7 + gcc/testsuite/g++.dg/parse/friend1.C | 9 + gcc/testsuite/g++.dg/parse/friend2.C | 16 ++ gcc/testsuite/g++.dg/parse/friend3.C | 10 + gcc/testsuite/g++.dg/parse/friend4.C | 8 + gcc/testsuite/g++.dg/parse/friend5.C | 8 + gcc/testsuite/g++.dg/parse/friend6.C | 3 + gcc/testsuite/g++.dg/parse/friend7.C | 37 +++ gcc/testsuite/g++.dg/parse/friend8.C | 8 + gcc/testsuite/g++.dg/parse/func-def1.C | 11 + gcc/testsuite/g++.dg/parse/funptr1.C | 13 ++ gcc/testsuite/g++.dg/parse/fused-params1.C | 12 + gcc/testsuite/g++.dg/parse/inline1.C | 7 + gcc/testsuite/g++.dg/parse/int-as-enum1.C | 6 + gcc/testsuite/g++.dg/parse/invalid-op1.C | 14 ++ gcc/testsuite/g++.dg/parse/limits-initializer1.C | 37 +++ gcc/testsuite/g++.dg/parse/linkage1.C | 11 + gcc/testsuite/g++.dg/parse/linkage2.C | 3 + gcc/testsuite/g++.dg/parse/linkage3.C | 7 + gcc/testsuite/g++.dg/parse/local-class1.C | 14 ++ gcc/testsuite/g++.dg/parse/local1.C | 18 ++ gcc/testsuite/g++.dg/parse/long1.C | 11 + gcc/testsuite/g++.dg/parse/lookup1.C | 9 + gcc/testsuite/g++.dg/parse/lookup2.C | 21 ++ gcc/testsuite/g++.dg/parse/lookup3.C | 12 + gcc/testsuite/g++.dg/parse/lookup4.C | 7 + gcc/testsuite/g++.dg/parse/lookup5.C | 26 +++ gcc/testsuite/g++.dg/parse/memfnquals1.C | 6 + gcc/testsuite/g++.dg/parse/missing-template1.C | 23 ++ gcc/testsuite/g++.dg/parse/mutable1.C | 7 + gcc/testsuite/g++.dg/parse/named_ops.C | 13 ++ gcc/testsuite/g++.dg/parse/namespace-definition.C | 10 + gcc/testsuite/g++.dg/parse/namespace1.C | 7 + gcc/testsuite/g++.dg/parse/namespace10.C | 9 + gcc/testsuite/g++.dg/parse/namespace11.C | 7 + gcc/testsuite/g++.dg/parse/namespace12.C | 7 + gcc/testsuite/g++.dg/parse/namespace2.C | 15 ++ gcc/testsuite/g++.dg/parse/namespace3.C | 12 + gcc/testsuite/g++.dg/parse/namespace4.C | 18 ++ gcc/testsuite/g++.dg/parse/namespace5.C | 5 + gcc/testsuite/g++.dg/parse/namespace6.C | 10 + gcc/testsuite/g++.dg/parse/namespace7.C | 8 + gcc/testsuite/g++.dg/parse/namespace8.C | 6 + gcc/testsuite/g++.dg/parse/namespace9.C | 8 + gcc/testsuite/g++.dg/parse/new1.C | 7 + gcc/testsuite/g++.dg/parse/new2.C | 9 + gcc/testsuite/g++.dg/parse/new3.C | 4 + gcc/testsuite/g++.dg/parse/new4.C | 7 + gcc/testsuite/g++.dg/parse/no-type-defn1.C | 5 + gcc/testsuite/g++.dg/parse/no-typename1.C | 11 + gcc/testsuite/g++.dg/parse/no-value1.C | 14 ++ gcc/testsuite/g++.dg/parse/non-dependent1.C | 19 ++ gcc/testsuite/g++.dg/parse/non-dependent2.C | 37 +++ gcc/testsuite/g++.dg/parse/non-dependent3.C | 17 ++ gcc/testsuite/g++.dg/parse/non-templ1.C | 10 + gcc/testsuite/g++.dg/parse/nontype1.C | 9 + gcc/testsuite/g++.dg/parse/octal1.C | 1 + gcc/testsuite/g++.dg/parse/offsetof1.C | 11 + gcc/testsuite/g++.dg/parse/offsetof2.C | 12 + gcc/testsuite/g++.dg/parse/offsetof3.C | 11 + gcc/testsuite/g++.dg/parse/offsetof4.C | 13 ++ gcc/testsuite/g++.dg/parse/offsetof5.C | 13 ++ gcc/testsuite/g++.dg/parse/offsetof6.C | 19 ++ gcc/testsuite/g++.dg/parse/offsetof7.C | 18 ++ gcc/testsuite/g++.dg/parse/offsetof8.C | 16 ++ gcc/testsuite/g++.dg/parse/offsetof9.C | 32 +++ gcc/testsuite/g++.dg/parse/operator1.C | 11 + gcc/testsuite/g++.dg/parse/operator2.C | 15 ++ gcc/testsuite/g++.dg/parse/operator3.C | 11 + gcc/testsuite/g++.dg/parse/operator4.C | 1 + gcc/testsuite/g++.dg/parse/operator5.C | 7 + gcc/testsuite/g++.dg/parse/operator6.C | 5 + gcc/testsuite/g++.dg/parse/operator7.C | 4 + .../g++.dg/parse/parameter-declaration-1.C | 6 + .../g++.dg/parse/parameter-declaration-2.C | 1 + gcc/testsuite/g++.dg/parse/parens1.C | 18 ++ gcc/testsuite/g++.dg/parse/parens2.C | 11 + gcc/testsuite/g++.dg/parse/parse1.C | 9 + gcc/testsuite/g++.dg/parse/parse2.C | 8 + gcc/testsuite/g++.dg/parse/parse3.C | 7 + gcc/testsuite/g++.dg/parse/parse4.C | 25 ++ gcc/testsuite/g++.dg/parse/parse5.C | 33 +++ gcc/testsuite/g++.dg/parse/parse6.C | 31 +++ gcc/testsuite/g++.dg/parse/parse7.C | 24 ++ gcc/testsuite/g++.dg/parse/parser-pr14875-2.C | 31 +++ gcc/testsuite/g++.dg/parse/parser-pr14875.C | 20 ++ gcc/testsuite/g++.dg/parse/parser-pr28152-2.C | 13 ++ gcc/testsuite/g++.dg/parse/parser-pr28152.C | 13 ++ gcc/testsuite/g++.dg/parse/pr16696-permissive.C | 17 ++ gcc/testsuite/g++.dg/parse/pr16696.C | 17 ++ gcc/testsuite/g++.dg/parse/pr20118.C | 9 + gcc/testsuite/g++.dg/parse/pr26997.C | 50 ++++ gcc/testsuite/g++.dg/parse/pr37862.C | 25 ++ gcc/testsuite/g++.dg/parse/pr56239.C | 13 ++ gcc/testsuite/g++.dg/parse/pragma1.C | 8 + gcc/testsuite/g++.dg/parse/pragma2.C | 8 + gcc/testsuite/g++.dg/parse/pragma3.C | 26 +++ gcc/testsuite/g++.dg/parse/primary-expression-1.C | 58 +++++ gcc/testsuite/g++.dg/parse/ptrmem1.C | 10 + gcc/testsuite/g++.dg/parse/ptrmem2.C | 11 + gcc/testsuite/g++.dg/parse/ptrmem3.C | 11 + gcc/testsuite/g++.dg/parse/ptrmem4.C | 4 + gcc/testsuite/g++.dg/parse/ptrmem5.C | 9 + gcc/testsuite/g++.dg/parse/ptrmem6.C | 11 + gcc/testsuite/g++.dg/parse/pure1.C | 11 + gcc/testsuite/g++.dg/parse/qualified1.C | 14 ++ gcc/testsuite/g++.dg/parse/qualified2.C | 4 + gcc/testsuite/g++.dg/parse/qualified3.C | 8 + gcc/testsuite/g++.dg/parse/qualified4.C | 6 + gcc/testsuite/g++.dg/parse/redef1.C | 10 + gcc/testsuite/g++.dg/parse/redef2.C | 7 + gcc/testsuite/g++.dg/parse/ref1.C | 17 ++ gcc/testsuite/g++.dg/parse/register1.C | 14 ++ gcc/testsuite/g++.dg/parse/repo1.C | 10 + gcc/testsuite/g++.dg/parse/ret-type1.C | 10 + gcc/testsuite/g++.dg/parse/ret-type2.C | 10 + gcc/testsuite/g++.dg/parse/ret-type3.C | 8 + gcc/testsuite/g++.dg/parse/saved1.C | 6 + gcc/testsuite/g++.dg/parse/semicolon1.C | 4 + gcc/testsuite/g++.dg/parse/semicolon1.h | 2 + gcc/testsuite/g++.dg/parse/semicolon2.C | 9 + gcc/testsuite/g++.dg/parse/semicolon3.C | 260 +++++++++++++++++++++ gcc/testsuite/g++.dg/parse/semicolon4.C | 37 +++ gcc/testsuite/g++.dg/parse/specialization1.C | 7 + gcc/testsuite/g++.dg/parse/stack1.C | 14 ++ gcc/testsuite/g++.dg/parse/stmtexpr1.C | 9 + gcc/testsuite/g++.dg/parse/stmtexpr2.C | 11 + gcc/testsuite/g++.dg/parse/stmtexpr3.C | 8 + gcc/testsuite/g++.dg/parse/struct-1.C | 4 + gcc/testsuite/g++.dg/parse/struct-2.C | 7 + gcc/testsuite/g++.dg/parse/struct-3.C | 10 + gcc/testsuite/g++.dg/parse/struct-4.C | 13 ++ gcc/testsuite/g++.dg/parse/struct-as-enum1.C | 10 + gcc/testsuite/g++.dg/parse/template1.C | 11 + gcc/testsuite/g++.dg/parse/template10.C | 15 ++ gcc/testsuite/g++.dg/parse/template11.C | 15 ++ gcc/testsuite/g++.dg/parse/template12.C | 10 + gcc/testsuite/g++.dg/parse/template13.C | 10 + gcc/testsuite/g++.dg/parse/template14.C | 17 ++ gcc/testsuite/g++.dg/parse/template15.C | 26 +++ gcc/testsuite/g++.dg/parse/template16.C | 15 ++ gcc/testsuite/g++.dg/parse/template17.C | 13 ++ gcc/testsuite/g++.dg/parse/template18.C | 52 +++++ gcc/testsuite/g++.dg/parse/template19.C | 11 + gcc/testsuite/g++.dg/parse/template2.C | 7 + gcc/testsuite/g++.dg/parse/template20.C | 7 + gcc/testsuite/g++.dg/parse/template21.C | 5 + gcc/testsuite/g++.dg/parse/template22.C | 5 + gcc/testsuite/g++.dg/parse/template23.C | 10 + gcc/testsuite/g++.dg/parse/template24.C | 8 + gcc/testsuite/g++.dg/parse/template25.C | 14 ++ gcc/testsuite/g++.dg/parse/template3.C | 19 ++ gcc/testsuite/g++.dg/parse/template4.C | 21 ++ gcc/testsuite/g++.dg/parse/template5.C | 19 ++ gcc/testsuite/g++.dg/parse/template6.C | 20 ++ gcc/testsuite/g++.dg/parse/template7.C | 5 + gcc/testsuite/g++.dg/parse/template8.C | 16 ++ gcc/testsuite/g++.dg/parse/template9.C | 6 + gcc/testsuite/g++.dg/parse/tmpl-outside1.C | 10 + gcc/testsuite/g++.dg/parse/tmpl-tmpl-operator1.C | 20 ++ gcc/testsuite/g++.dg/parse/tmpl-tmpl-param1.C | 14 ++ gcc/testsuite/g++.dg/parse/too-many-tmpl-args1.C | 11 + gcc/testsuite/g++.dg/parse/try-catch-1.C | 14 ++ gcc/testsuite/g++.dg/parse/typedef1.C | 3 + gcc/testsuite/g++.dg/parse/typedef2.C | 3 + gcc/testsuite/g++.dg/parse/typedef3.C | 7 + gcc/testsuite/g++.dg/parse/typedef4.C | 12 + gcc/testsuite/g++.dg/parse/typedef5.C | 6 + gcc/testsuite/g++.dg/parse/typedef6.C | 6 + gcc/testsuite/g++.dg/parse/typedef7.C | 2 + gcc/testsuite/g++.dg/parse/typedef8.C | 11 + gcc/testsuite/g++.dg/parse/typedef9.C | 8 + gcc/testsuite/g++.dg/parse/typename1.C | 5 + gcc/testsuite/g++.dg/parse/typename10.C | 8 + gcc/testsuite/g++.dg/parse/typename11.C | 16 ++ gcc/testsuite/g++.dg/parse/typename2.C | 17 ++ gcc/testsuite/g++.dg/parse/typename3.C | 8 + gcc/testsuite/g++.dg/parse/typename4.C | 7 + gcc/testsuite/g++.dg/parse/typename5.C | 12 + gcc/testsuite/g++.dg/parse/typename6.C | 17 ++ gcc/testsuite/g++.dg/parse/typename7.C | 33 +++ gcc/testsuite/g++.dg/parse/typename8.C | 11 + gcc/testsuite/g++.dg/parse/typename9.C | 6 + gcc/testsuite/g++.dg/parse/typespec1.C | 4 + gcc/testsuite/g++.dg/parse/undefined1.C | 10 + gcc/testsuite/g++.dg/parse/undefined2.C | 12 + gcc/testsuite/g++.dg/parse/undefined3.C | 6 + gcc/testsuite/g++.dg/parse/undefined4.C | 11 + gcc/testsuite/g++.dg/parse/undefined5.C | 5 + gcc/testsuite/g++.dg/parse/undefined6.C | 6 + gcc/testsuite/g++.dg/parse/undefined7.C | 5 + gcc/testsuite/g++.dg/parse/using1.C | 1 + gcc/testsuite/g++.dg/parse/using2.C | 8 + gcc/testsuite/g++.dg/parse/using3.C | 22 ++ gcc/testsuite/g++.dg/parse/varmod1.C | 7 + gcc/testsuite/g++.dg/parse/wrong-inline1.C | 12 + 418 files changed, 5576 insertions(+) create mode 100644 gcc/testsuite/g++.dg/parse/access1.C create mode 100644 gcc/testsuite/g++.dg/parse/access10.C create mode 100644 gcc/testsuite/g++.dg/parse/access2.C create mode 100644 gcc/testsuite/g++.dg/parse/access3.C create mode 100644 gcc/testsuite/g++.dg/parse/access4.C create mode 100644 gcc/testsuite/g++.dg/parse/access5.C create mode 100644 gcc/testsuite/g++.dg/parse/access6.C create mode 100644 gcc/testsuite/g++.dg/parse/access7.C create mode 100644 gcc/testsuite/g++.dg/parse/access8.C create mode 100644 gcc/testsuite/g++.dg/parse/access9.C create mode 100644 gcc/testsuite/g++.dg/parse/ambig1.C create mode 100644 gcc/testsuite/g++.dg/parse/ambig2.C create mode 100644 gcc/testsuite/g++.dg/parse/ambig3.C create mode 100644 gcc/testsuite/g++.dg/parse/ambig4.C create mode 100644 gcc/testsuite/g++.dg/parse/ambig5.C create mode 100644 gcc/testsuite/g++.dg/parse/ambig6.C create mode 100644 gcc/testsuite/g++.dg/parse/angle-bracket.C create mode 100644 gcc/testsuite/g++.dg/parse/angle-bracket2.C create mode 100644 gcc/testsuite/g++.dg/parse/args1.C create mode 100644 gcc/testsuite/g++.dg/parse/array-size1.C create mode 100644 gcc/testsuite/g++.dg/parse/array-size2.C create mode 100644 gcc/testsuite/g++.dg/parse/asm1.C create mode 100644 gcc/testsuite/g++.dg/parse/asm2.C create mode 100644 gcc/testsuite/g++.dg/parse/asm3.C create mode 100644 gcc/testsuite/g++.dg/parse/attr-ctor1.C create mode 100644 gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C create mode 100644 gcc/testsuite/g++.dg/parse/attr-externally-visible-2.C create mode 100644 gcc/testsuite/g++.dg/parse/attr1.C create mode 100644 gcc/testsuite/g++.dg/parse/attr2.C create mode 100644 gcc/testsuite/g++.dg/parse/attr3.C create mode 100644 gcc/testsuite/g++.dg/parse/bitfield1.C create mode 100644 gcc/testsuite/g++.dg/parse/bitfield2.C create mode 100644 gcc/testsuite/g++.dg/parse/bitfield3.C create mode 100644 gcc/testsuite/g++.dg/parse/break-in-for.C create mode 100644 gcc/testsuite/g++.dg/parse/builtin1.C create mode 100644 gcc/testsuite/g++.dg/parse/builtin2.C create mode 100644 gcc/testsuite/g++.dg/parse/cast1.C create mode 100644 gcc/testsuite/g++.dg/parse/cast2.C create mode 100644 gcc/testsuite/g++.dg/parse/casting-operator1.C create mode 100644 gcc/testsuite/g++.dg/parse/casting-operator2.C create mode 100644 gcc/testsuite/g++.dg/parse/catch1.C create mode 100644 gcc/testsuite/g++.dg/parse/class1.C create mode 100644 gcc/testsuite/g++.dg/parse/class2.C create mode 100644 gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C create mode 100644 gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C create mode 100644 gcc/testsuite/g++.dg/parse/comma1.C create mode 100644 gcc/testsuite/g++.dg/parse/comma2.C create mode 100644 gcc/testsuite/g++.dg/parse/concat1.C create mode 100644 gcc/testsuite/g++.dg/parse/cond1.C create mode 100644 gcc/testsuite/g++.dg/parse/cond2.C create mode 100644 gcc/testsuite/g++.dg/parse/cond3.C create mode 100644 gcc/testsuite/g++.dg/parse/cond4.C create mode 100644 gcc/testsuite/g++.dg/parse/cond5.C create mode 100644 gcc/testsuite/g++.dg/parse/condexpr1.C create mode 100644 gcc/testsuite/g++.dg/parse/constant1.C create mode 100644 gcc/testsuite/g++.dg/parse/constant2.C create mode 100644 gcc/testsuite/g++.dg/parse/constant3.C create mode 100644 gcc/testsuite/g++.dg/parse/constant4.C create mode 100644 gcc/testsuite/g++.dg/parse/constant5.C create mode 100644 gcc/testsuite/g++.dg/parse/constant6.C create mode 100644 gcc/testsuite/g++.dg/parse/constant7.C create mode 100644 gcc/testsuite/g++.dg/parse/constructor1.C create mode 100644 gcc/testsuite/g++.dg/parse/constructor2.C create mode 100644 gcc/testsuite/g++.dg/parse/constructor3.C create mode 100644 gcc/testsuite/g++.dg/parse/conv_op1.C create mode 100644 gcc/testsuite/g++.dg/parse/crash1.C create mode 100644 gcc/testsuite/g++.dg/parse/crash10.C create mode 100644 gcc/testsuite/g++.dg/parse/crash11.C create mode 100644 gcc/testsuite/g++.dg/parse/crash12.C create mode 100644 gcc/testsuite/g++.dg/parse/crash13.C create mode 100644 gcc/testsuite/g++.dg/parse/crash14.C create mode 100644 gcc/testsuite/g++.dg/parse/crash15.C create mode 100644 gcc/testsuite/g++.dg/parse/crash16.C create mode 100644 gcc/testsuite/g++.dg/parse/crash17.C create mode 100644 gcc/testsuite/g++.dg/parse/crash18.C create mode 100644 gcc/testsuite/g++.dg/parse/crash19.C create mode 100644 gcc/testsuite/g++.dg/parse/crash2.C create mode 100644 gcc/testsuite/g++.dg/parse/crash20.C create mode 100644 gcc/testsuite/g++.dg/parse/crash21.C create mode 100644 gcc/testsuite/g++.dg/parse/crash22.C create mode 100644 gcc/testsuite/g++.dg/parse/crash23.C create mode 100644 gcc/testsuite/g++.dg/parse/crash24.C create mode 100644 gcc/testsuite/g++.dg/parse/crash25.C create mode 100644 gcc/testsuite/g++.dg/parse/crash26.C create mode 100644 gcc/testsuite/g++.dg/parse/crash27.C create mode 100644 gcc/testsuite/g++.dg/parse/crash28.C create mode 100644 gcc/testsuite/g++.dg/parse/crash29.C create mode 100644 gcc/testsuite/g++.dg/parse/crash3.C create mode 100644 gcc/testsuite/g++.dg/parse/crash30.C create mode 100644 gcc/testsuite/g++.dg/parse/crash31.C create mode 100644 gcc/testsuite/g++.dg/parse/crash32.C create mode 100644 gcc/testsuite/g++.dg/parse/crash33.C create mode 100644 gcc/testsuite/g++.dg/parse/crash34.C create mode 100644 gcc/testsuite/g++.dg/parse/crash35.C create mode 100644 gcc/testsuite/g++.dg/parse/crash36.C create mode 100644 gcc/testsuite/g++.dg/parse/crash37.C create mode 100644 gcc/testsuite/g++.dg/parse/crash38.C create mode 100644 gcc/testsuite/g++.dg/parse/crash39.C create mode 100644 gcc/testsuite/g++.dg/parse/crash4.C create mode 100644 gcc/testsuite/g++.dg/parse/crash40.C create mode 100644 gcc/testsuite/g++.dg/parse/crash41.C create mode 100644 gcc/testsuite/g++.dg/parse/crash42.C create mode 100644 gcc/testsuite/g++.dg/parse/crash43.C create mode 100644 gcc/testsuite/g++.dg/parse/crash44.C create mode 100644 gcc/testsuite/g++.dg/parse/crash45.C create mode 100644 gcc/testsuite/g++.dg/parse/crash46.C create mode 100644 gcc/testsuite/g++.dg/parse/crash47.C create mode 100644 gcc/testsuite/g++.dg/parse/crash48.C create mode 100644 gcc/testsuite/g++.dg/parse/crash49.C create mode 100644 gcc/testsuite/g++.dg/parse/crash5.C create mode 100644 gcc/testsuite/g++.dg/parse/crash50.C create mode 100644 gcc/testsuite/g++.dg/parse/crash51.C create mode 100644 gcc/testsuite/g++.dg/parse/crash52.C create mode 100644 gcc/testsuite/g++.dg/parse/crash53.C create mode 100644 gcc/testsuite/g++.dg/parse/crash54.C create mode 100644 gcc/testsuite/g++.dg/parse/crash55.C create mode 100644 gcc/testsuite/g++.dg/parse/crash56.C create mode 100644 gcc/testsuite/g++.dg/parse/crash57.C create mode 100644 gcc/testsuite/g++.dg/parse/crash6.C create mode 100644 gcc/testsuite/g++.dg/parse/crash7.C create mode 100644 gcc/testsuite/g++.dg/parse/crash9.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor1.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor2.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor3.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor4.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor5.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor6.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor7.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor8.C create mode 100644 gcc/testsuite/g++.dg/parse/ctor9.C create mode 100644 gcc/testsuite/g++.dg/parse/dce1.C create mode 100644 gcc/testsuite/g++.dg/parse/decl-specifier-1.C create mode 100644 gcc/testsuite/g++.dg/parse/def-tmpl-arg1.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg1.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg10.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg11.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg12.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg13.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg14.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg15.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg2.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg3.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg4.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg5.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg6.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg7.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg8.C create mode 100644 gcc/testsuite/g++.dg/parse/defarg9.C create mode 100644 gcc/testsuite/g++.dg/parse/direct-initialization-2.C create mode 100644 gcc/testsuite/g++.dg/parse/dot1.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor1.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor10.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor11.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor12.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor13.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor14.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor15.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor2.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor3.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor4.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor5.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor6.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor7.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor8.C create mode 100644 gcc/testsuite/g++.dg/parse/dtor9.C create mode 100644 gcc/testsuite/g++.dg/parse/dupl-tmpl-args1.C create mode 100644 gcc/testsuite/g++.dg/parse/eh-decl.C create mode 100644 gcc/testsuite/g++.dg/parse/elab1.C create mode 100644 gcc/testsuite/g++.dg/parse/elab2.C create mode 100644 gcc/testsuite/g++.dg/parse/else-2.C create mode 100644 gcc/testsuite/g++.dg/parse/else.C create mode 100644 gcc/testsuite/g++.dg/parse/enum1.C create mode 100644 gcc/testsuite/g++.dg/parse/enum2.C create mode 100644 gcc/testsuite/g++.dg/parse/enum3.C create mode 100644 gcc/testsuite/g++.dg/parse/enum4.C create mode 100644 gcc/testsuite/g++.dg/parse/enum5.C create mode 100644 gcc/testsuite/g++.dg/parse/error-column.C create mode 100644 gcc/testsuite/g++.dg/parse/error1.C create mode 100644 gcc/testsuite/g++.dg/parse/error10.C create mode 100644 gcc/testsuite/g++.dg/parse/error11.C create mode 100644 gcc/testsuite/g++.dg/parse/error12.C create mode 100644 gcc/testsuite/g++.dg/parse/error13.C create mode 100644 gcc/testsuite/g++.dg/parse/error14.C create mode 100644 gcc/testsuite/g++.dg/parse/error15.C create mode 100644 gcc/testsuite/g++.dg/parse/error16.C create mode 100644 gcc/testsuite/g++.dg/parse/error17.C create mode 100644 gcc/testsuite/g++.dg/parse/error18.C create mode 100644 gcc/testsuite/g++.dg/parse/error19.C create mode 100644 gcc/testsuite/g++.dg/parse/error2.C create mode 100644 gcc/testsuite/g++.dg/parse/error20.C create mode 100644 gcc/testsuite/g++.dg/parse/error21.C create mode 100644 gcc/testsuite/g++.dg/parse/error22.C create mode 100644 gcc/testsuite/g++.dg/parse/error23.C create mode 100644 gcc/testsuite/g++.dg/parse/error24.C create mode 100644 gcc/testsuite/g++.dg/parse/error25.C create mode 100644 gcc/testsuite/g++.dg/parse/error26.C create mode 100644 gcc/testsuite/g++.dg/parse/error27.C create mode 100644 gcc/testsuite/g++.dg/parse/error28.C create mode 100644 gcc/testsuite/g++.dg/parse/error29.C create mode 100644 gcc/testsuite/g++.dg/parse/error3.C create mode 100644 gcc/testsuite/g++.dg/parse/error30.C create mode 100644 gcc/testsuite/g++.dg/parse/error31.C create mode 100644 gcc/testsuite/g++.dg/parse/error32.C create mode 100644 gcc/testsuite/g++.dg/parse/error33.C create mode 100644 gcc/testsuite/g++.dg/parse/error34.C create mode 100644 gcc/testsuite/g++.dg/parse/error35.C create mode 100644 gcc/testsuite/g++.dg/parse/error36.C create mode 100644 gcc/testsuite/g++.dg/parse/error37.C create mode 100644 gcc/testsuite/g++.dg/parse/error4.C create mode 100644 gcc/testsuite/g++.dg/parse/error5.C create mode 100644 gcc/testsuite/g++.dg/parse/error6.C create mode 100644 gcc/testsuite/g++.dg/parse/error7.C create mode 100644 gcc/testsuite/g++.dg/parse/error8.C create mode 100644 gcc/testsuite/g++.dg/parse/error9.C create mode 100644 gcc/testsuite/g++.dg/parse/explicit1.C create mode 100644 gcc/testsuite/g++.dg/parse/expr1.C create mode 100644 gcc/testsuite/g++.dg/parse/expr2.C create mode 100644 gcc/testsuite/g++.dg/parse/expr3.C create mode 100644 gcc/testsuite/g++.dg/parse/extern-C-1.C create mode 100644 gcc/testsuite/g++.dg/parse/extern1.C create mode 100644 gcc/testsuite/g++.dg/parse/fn-typedef1.C create mode 100644 gcc/testsuite/g++.dg/parse/fn-typedef2.C create mode 100644 gcc/testsuite/g++.dg/parse/for1.C create mode 100644 gcc/testsuite/g++.dg/parse/friend1.C create mode 100644 gcc/testsuite/g++.dg/parse/friend2.C create mode 100644 gcc/testsuite/g++.dg/parse/friend3.C create mode 100644 gcc/testsuite/g++.dg/parse/friend4.C create mode 100644 gcc/testsuite/g++.dg/parse/friend5.C create mode 100644 gcc/testsuite/g++.dg/parse/friend6.C create mode 100644 gcc/testsuite/g++.dg/parse/friend7.C create mode 100644 gcc/testsuite/g++.dg/parse/friend8.C create mode 100644 gcc/testsuite/g++.dg/parse/func-def1.C create mode 100644 gcc/testsuite/g++.dg/parse/funptr1.C create mode 100644 gcc/testsuite/g++.dg/parse/fused-params1.C create mode 100644 gcc/testsuite/g++.dg/parse/inline1.C create mode 100644 gcc/testsuite/g++.dg/parse/int-as-enum1.C create mode 100644 gcc/testsuite/g++.dg/parse/invalid-op1.C create mode 100644 gcc/testsuite/g++.dg/parse/limits-initializer1.C create mode 100644 gcc/testsuite/g++.dg/parse/linkage1.C create mode 100644 gcc/testsuite/g++.dg/parse/linkage2.C create mode 100644 gcc/testsuite/g++.dg/parse/linkage3.C create mode 100644 gcc/testsuite/g++.dg/parse/local-class1.C create mode 100644 gcc/testsuite/g++.dg/parse/local1.C create mode 100644 gcc/testsuite/g++.dg/parse/long1.C create mode 100644 gcc/testsuite/g++.dg/parse/lookup1.C create mode 100644 gcc/testsuite/g++.dg/parse/lookup2.C create mode 100644 gcc/testsuite/g++.dg/parse/lookup3.C create mode 100644 gcc/testsuite/g++.dg/parse/lookup4.C create mode 100644 gcc/testsuite/g++.dg/parse/lookup5.C create mode 100644 gcc/testsuite/g++.dg/parse/memfnquals1.C create mode 100644 gcc/testsuite/g++.dg/parse/missing-template1.C create mode 100644 gcc/testsuite/g++.dg/parse/mutable1.C create mode 100644 gcc/testsuite/g++.dg/parse/named_ops.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace-definition.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace1.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace10.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace11.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace12.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace2.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace3.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace4.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace5.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace6.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace7.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace8.C create mode 100644 gcc/testsuite/g++.dg/parse/namespace9.C create mode 100644 gcc/testsuite/g++.dg/parse/new1.C create mode 100644 gcc/testsuite/g++.dg/parse/new2.C create mode 100644 gcc/testsuite/g++.dg/parse/new3.C create mode 100644 gcc/testsuite/g++.dg/parse/new4.C create mode 100644 gcc/testsuite/g++.dg/parse/no-type-defn1.C create mode 100644 gcc/testsuite/g++.dg/parse/no-typename1.C create mode 100644 gcc/testsuite/g++.dg/parse/no-value1.C create mode 100644 gcc/testsuite/g++.dg/parse/non-dependent1.C create mode 100644 gcc/testsuite/g++.dg/parse/non-dependent2.C create mode 100644 gcc/testsuite/g++.dg/parse/non-dependent3.C create mode 100644 gcc/testsuite/g++.dg/parse/non-templ1.C create mode 100644 gcc/testsuite/g++.dg/parse/nontype1.C create mode 100644 gcc/testsuite/g++.dg/parse/octal1.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof1.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof2.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof3.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof4.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof5.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof6.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof7.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof8.C create mode 100644 gcc/testsuite/g++.dg/parse/offsetof9.C create mode 100644 gcc/testsuite/g++.dg/parse/operator1.C create mode 100644 gcc/testsuite/g++.dg/parse/operator2.C create mode 100644 gcc/testsuite/g++.dg/parse/operator3.C create mode 100644 gcc/testsuite/g++.dg/parse/operator4.C create mode 100644 gcc/testsuite/g++.dg/parse/operator5.C create mode 100644 gcc/testsuite/g++.dg/parse/operator6.C create mode 100644 gcc/testsuite/g++.dg/parse/operator7.C create mode 100644 gcc/testsuite/g++.dg/parse/parameter-declaration-1.C create mode 100644 gcc/testsuite/g++.dg/parse/parameter-declaration-2.C create mode 100644 gcc/testsuite/g++.dg/parse/parens1.C create mode 100644 gcc/testsuite/g++.dg/parse/parens2.C create mode 100644 gcc/testsuite/g++.dg/parse/parse1.C create mode 100644 gcc/testsuite/g++.dg/parse/parse2.C create mode 100644 gcc/testsuite/g++.dg/parse/parse3.C create mode 100644 gcc/testsuite/g++.dg/parse/parse4.C create mode 100644 gcc/testsuite/g++.dg/parse/parse5.C create mode 100644 gcc/testsuite/g++.dg/parse/parse6.C create mode 100644 gcc/testsuite/g++.dg/parse/parse7.C create mode 100644 gcc/testsuite/g++.dg/parse/parser-pr14875-2.C create mode 100644 gcc/testsuite/g++.dg/parse/parser-pr14875.C create mode 100644 gcc/testsuite/g++.dg/parse/parser-pr28152-2.C create mode 100644 gcc/testsuite/g++.dg/parse/parser-pr28152.C create mode 100644 gcc/testsuite/g++.dg/parse/pr16696-permissive.C create mode 100644 gcc/testsuite/g++.dg/parse/pr16696.C create mode 100644 gcc/testsuite/g++.dg/parse/pr20118.C create mode 100644 gcc/testsuite/g++.dg/parse/pr26997.C create mode 100644 gcc/testsuite/g++.dg/parse/pr37862.C create mode 100644 gcc/testsuite/g++.dg/parse/pr56239.C create mode 100644 gcc/testsuite/g++.dg/parse/pragma1.C create mode 100644 gcc/testsuite/g++.dg/parse/pragma2.C create mode 100644 gcc/testsuite/g++.dg/parse/pragma3.C create mode 100644 gcc/testsuite/g++.dg/parse/primary-expression-1.C create mode 100644 gcc/testsuite/g++.dg/parse/ptrmem1.C create mode 100644 gcc/testsuite/g++.dg/parse/ptrmem2.C create mode 100644 gcc/testsuite/g++.dg/parse/ptrmem3.C create mode 100644 gcc/testsuite/g++.dg/parse/ptrmem4.C create mode 100644 gcc/testsuite/g++.dg/parse/ptrmem5.C create mode 100644 gcc/testsuite/g++.dg/parse/ptrmem6.C create mode 100644 gcc/testsuite/g++.dg/parse/pure1.C create mode 100644 gcc/testsuite/g++.dg/parse/qualified1.C create mode 100644 gcc/testsuite/g++.dg/parse/qualified2.C create mode 100644 gcc/testsuite/g++.dg/parse/qualified3.C create mode 100644 gcc/testsuite/g++.dg/parse/qualified4.C create mode 100644 gcc/testsuite/g++.dg/parse/redef1.C create mode 100644 gcc/testsuite/g++.dg/parse/redef2.C create mode 100644 gcc/testsuite/g++.dg/parse/ref1.C create mode 100644 gcc/testsuite/g++.dg/parse/register1.C create mode 100644 gcc/testsuite/g++.dg/parse/repo1.C create mode 100644 gcc/testsuite/g++.dg/parse/ret-type1.C create mode 100644 gcc/testsuite/g++.dg/parse/ret-type2.C create mode 100644 gcc/testsuite/g++.dg/parse/ret-type3.C create mode 100644 gcc/testsuite/g++.dg/parse/saved1.C create mode 100644 gcc/testsuite/g++.dg/parse/semicolon1.C create mode 100644 gcc/testsuite/g++.dg/parse/semicolon1.h create mode 100644 gcc/testsuite/g++.dg/parse/semicolon2.C create mode 100644 gcc/testsuite/g++.dg/parse/semicolon3.C create mode 100644 gcc/testsuite/g++.dg/parse/semicolon4.C create mode 100644 gcc/testsuite/g++.dg/parse/specialization1.C create mode 100644 gcc/testsuite/g++.dg/parse/stack1.C create mode 100644 gcc/testsuite/g++.dg/parse/stmtexpr1.C create mode 100644 gcc/testsuite/g++.dg/parse/stmtexpr2.C create mode 100644 gcc/testsuite/g++.dg/parse/stmtexpr3.C create mode 100644 gcc/testsuite/g++.dg/parse/struct-1.C create mode 100644 gcc/testsuite/g++.dg/parse/struct-2.C create mode 100644 gcc/testsuite/g++.dg/parse/struct-3.C create mode 100644 gcc/testsuite/g++.dg/parse/struct-4.C create mode 100644 gcc/testsuite/g++.dg/parse/struct-as-enum1.C create mode 100644 gcc/testsuite/g++.dg/parse/template1.C create mode 100644 gcc/testsuite/g++.dg/parse/template10.C create mode 100644 gcc/testsuite/g++.dg/parse/template11.C create mode 100644 gcc/testsuite/g++.dg/parse/template12.C create mode 100644 gcc/testsuite/g++.dg/parse/template13.C create mode 100644 gcc/testsuite/g++.dg/parse/template14.C create mode 100644 gcc/testsuite/g++.dg/parse/template15.C create mode 100644 gcc/testsuite/g++.dg/parse/template16.C create mode 100644 gcc/testsuite/g++.dg/parse/template17.C create mode 100644 gcc/testsuite/g++.dg/parse/template18.C create mode 100644 gcc/testsuite/g++.dg/parse/template19.C create mode 100644 gcc/testsuite/g++.dg/parse/template2.C create mode 100644 gcc/testsuite/g++.dg/parse/template20.C create mode 100644 gcc/testsuite/g++.dg/parse/template21.C create mode 100644 gcc/testsuite/g++.dg/parse/template22.C create mode 100644 gcc/testsuite/g++.dg/parse/template23.C create mode 100644 gcc/testsuite/g++.dg/parse/template24.C create mode 100644 gcc/testsuite/g++.dg/parse/template25.C create mode 100644 gcc/testsuite/g++.dg/parse/template3.C create mode 100644 gcc/testsuite/g++.dg/parse/template4.C create mode 100644 gcc/testsuite/g++.dg/parse/template5.C create mode 100644 gcc/testsuite/g++.dg/parse/template6.C create mode 100644 gcc/testsuite/g++.dg/parse/template7.C create mode 100644 gcc/testsuite/g++.dg/parse/template8.C create mode 100644 gcc/testsuite/g++.dg/parse/template9.C create mode 100644 gcc/testsuite/g++.dg/parse/tmpl-outside1.C create mode 100644 gcc/testsuite/g++.dg/parse/tmpl-tmpl-operator1.C create mode 100644 gcc/testsuite/g++.dg/parse/tmpl-tmpl-param1.C create mode 100644 gcc/testsuite/g++.dg/parse/too-many-tmpl-args1.C create mode 100644 gcc/testsuite/g++.dg/parse/try-catch-1.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef1.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef2.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef3.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef4.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef5.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef6.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef7.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef8.C create mode 100644 gcc/testsuite/g++.dg/parse/typedef9.C create mode 100644 gcc/testsuite/g++.dg/parse/typename1.C create mode 100644 gcc/testsuite/g++.dg/parse/typename10.C create mode 100644 gcc/testsuite/g++.dg/parse/typename11.C create mode 100644 gcc/testsuite/g++.dg/parse/typename2.C create mode 100644 gcc/testsuite/g++.dg/parse/typename3.C create mode 100644 gcc/testsuite/g++.dg/parse/typename4.C create mode 100644 gcc/testsuite/g++.dg/parse/typename5.C create mode 100644 gcc/testsuite/g++.dg/parse/typename6.C create mode 100644 gcc/testsuite/g++.dg/parse/typename7.C create mode 100644 gcc/testsuite/g++.dg/parse/typename8.C create mode 100644 gcc/testsuite/g++.dg/parse/typename9.C create mode 100644 gcc/testsuite/g++.dg/parse/typespec1.C create mode 100644 gcc/testsuite/g++.dg/parse/undefined1.C create mode 100644 gcc/testsuite/g++.dg/parse/undefined2.C create mode 100644 gcc/testsuite/g++.dg/parse/undefined3.C create mode 100644 gcc/testsuite/g++.dg/parse/undefined4.C create mode 100644 gcc/testsuite/g++.dg/parse/undefined5.C create mode 100644 gcc/testsuite/g++.dg/parse/undefined6.C create mode 100644 gcc/testsuite/g++.dg/parse/undefined7.C create mode 100644 gcc/testsuite/g++.dg/parse/using1.C create mode 100644 gcc/testsuite/g++.dg/parse/using2.C create mode 100644 gcc/testsuite/g++.dg/parse/using3.C create mode 100644 gcc/testsuite/g++.dg/parse/varmod1.C create mode 100644 gcc/testsuite/g++.dg/parse/wrong-inline1.C (limited to 'gcc/testsuite/g++.dg/parse') diff --git a/gcc/testsuite/g++.dg/parse/access1.C b/gcc/testsuite/g++.dg/parse/access1.C new file mode 100644 index 000000000..f8994e39e --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access1.C @@ -0,0 +1,13 @@ +// { dg-do compile } + +// Origin: Volker Lukas + +// PR c++/9554: Access checking for template ID as class head. + +class enclose +{ + template struct enclosed; +}; + +template <> +struct enclose::enclosed; diff --git a/gcc/testsuite/g++.dg/parse/access10.C b/gcc/testsuite/g++.dg/parse/access10.C new file mode 100644 index 000000000..62adc1b16 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access10.C @@ -0,0 +1,11 @@ +// PR c++/18698 +// The compiler was giving an error message for invalid syntax +// that irrelevantly talked about using-declarations. + +template struct A +{ + ::A~(); // { dg-bogus "using-declaration" } +}; + +// Instead of the bogus error we get a different error. +// { dg-error "template-name" "" { target *-*-* } 7 } diff --git a/gcc/testsuite/g++.dg/parse/access2.C b/gcc/testsuite/g++.dg/parse/access2.C new file mode 100644 index 000000000..ee8cd234e --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access2.C @@ -0,0 +1,15 @@ +// Copyright (C) 2003 Free Software Foundation +// Contributed by Kriang Lerdsuwanakij +// { dg-do compile } + +// Deferred access checking of variable declaration. + +class A { + typedef int X; // { dg-error "private" } + static X a, b, c; +}; + +A::X A::a; +A::X A::b, x; // { dg-error "this context" } +A::X y, A::c; // { dg-error "this context" } +A::X z; // { dg-error "this context" } diff --git a/gcc/testsuite/g++.dg/parse/access3.C b/gcc/testsuite/g++.dg/parse/access3.C new file mode 100644 index 000000000..43303c95a --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access3.C @@ -0,0 +1,14 @@ +// { dg-do compile } + +// Origin: + +// PR c++/7809: Befriending inaccessible name. + +class A { +private: + void f(); // { dg-error "private" } +}; + +class B { + friend void A::f(); // { dg-error "context" } +}; diff --git a/gcc/testsuite/g++.dg/parse/access4.C b/gcc/testsuite/g++.dg/parse/access4.C new file mode 100644 index 000000000..d3870bd34 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access4.C @@ -0,0 +1,20 @@ +// { dg-do compile } + +// Origin: Mike Reed + +// PR c++/11174: Access checking of pointer-to-member function + +class A { +protected: + void foo() {} // { dg-error "protected" } +public: + A(); +}; + +class B : public A { + void bar() { + A a; + void (A::*pmf)() = &A::foo; // { dg-error "this context" } + (a.*pmf)(); + } +}; diff --git a/gcc/testsuite/g++.dg/parse/access5.C b/gcc/testsuite/g++.dg/parse/access5.C new file mode 100644 index 000000000..cd1789eed --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access5.C @@ -0,0 +1,18 @@ +// { dg-do compile } + +// Origin: Giovanni Bajo + +// PR c++/11174: Access checking on pointer to member data. + +struct A +{ +protected: + int a; // { dg-error "protected" } +}; + +struct B : A +{ + void foo() { + (void)&A::a; // { dg-error "this context" } + } +}; diff --git a/gcc/testsuite/g++.dg/parse/access6.C b/gcc/testsuite/g++.dg/parse/access6.C new file mode 100644 index 000000000..33d509058 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access6.C @@ -0,0 +1,24 @@ +// { dg-do compile } + +// Origin: David Baron + +// PR c++/3765: Changing access from public to private by member +// using declaration. + +class A +{ + public: + int foo() { return 1; } // { dg-error "inaccessible" } +}; + +class B : public A +{ + private: + using A::foo; +}; + +int main() +{ + B b; + return b.foo(); // { dg-error "this context" } +} diff --git a/gcc/testsuite/g++.dg/parse/access7.C b/gcc/testsuite/g++.dg/parse/access7.C new file mode 100644 index 000000000..2a7ca3c42 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access7.C @@ -0,0 +1,13 @@ +// { dg-do compile } + +// Origin: Paolo Carlini + +// PR c++/5655: Access of member redeclaration. + +struct S { + class A; + template class B; +private: + class A {}; // { dg-error "different access" } + template class B {}; // { dg-error "different access" } +}; diff --git a/gcc/testsuite/g++.dg/parse/access8.C b/gcc/testsuite/g++.dg/parse/access8.C new file mode 100644 index 000000000..45f4be702 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access8.C @@ -0,0 +1,12 @@ +// PR c++/22618 + +class foo +{ + typedef int memfun; // { dg-error "private" } +}; + +template +struct fm_obj { }; // { dg-error "context" } + +template // { dg-error "context" } +struct S {}; diff --git a/gcc/testsuite/g++.dg/parse/access9.C b/gcc/testsuite/g++.dg/parse/access9.C new file mode 100644 index 000000000..2c29016b0 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/access9.C @@ -0,0 +1,5 @@ +// PR c++/24782 + +class Foo { public: typedef int type1; }; +class Bar { private: typedef Foo type2; }; // { dg-error "private" } +void g(Bar::type2::type1) {} // { dg-error "context" } diff --git a/gcc/testsuite/g++.dg/parse/ambig1.C b/gcc/testsuite/g++.dg/parse/ambig1.C new file mode 100644 index 000000000..2645879b3 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/ambig1.C @@ -0,0 +1,12 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 4 Jan 2003 + +// PR 9109. Ambiguity. [dcl.ambig.res]/7 + +template void Foo (int (T)) +{ + try {} + catch (int (T)) {} +} diff --git a/gcc/testsuite/g++.dg/parse/ambig2.C b/gcc/testsuite/g++.dg/parse/ambig2.C new file mode 100644 index 000000000..7b000c620 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/ambig2.C @@ -0,0 +1,27 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 6 Jan 2003 + +// PR 9212. We erroneously accepted an ill-formed +// function-declaration, rather than a variable initializer. + + +struct A +{ + enum E { e }; + A(E); +}; + +struct B +{ + enum F { f }; + B(F); +}; + +struct C +{ + C(A, B, A); +}; + +C c(A(A::e), B(B::f), A(A::e)); // This is not a function declaration diff --git a/gcc/testsuite/g++.dg/parse/ambig3.C b/gcc/testsuite/g++.dg/parse/ambig3.C new file mode 100644 index 000000000..41390710f --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/ambig3.C @@ -0,0 +1,21 @@ +// PR c++/9452 +// Origin: Wolfgang Bangerth +// { dg-do compile } + +template struct A { static const int i = 1; }; +template struct B {}; + +template int foo(B<0>) +{ + return 0; +} + +template B::i-1> foo(B) +{ + return B<0>(); +} + +int main() +{ + return foo(B<0>()); +} diff --git a/gcc/testsuite/g++.dg/parse/ambig4.C b/gcc/testsuite/g++.dg/parse/ambig4.C new file mode 100644 index 000000000..868f07cf7 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/ambig4.C @@ -0,0 +1,18 @@ +// PR c++/20293 + +namespace hide { // { dg-error "hide" } + int k; +} + +namespace { + int i; + namespace hide { // { dg-error "hide" } + int j; + } +} + +void F(int) {} + +int main() { + F(hide::j); // { dg-error "ambiguous" } +} diff --git a/gcc/testsuite/g++.dg/parse/ambig5.C b/gcc/testsuite/g++.dg/parse/ambig5.C new file mode 100644 index 000000000..e554d961f --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/ambig5.C @@ -0,0 +1,7 @@ +// PR c++/41786 + +struct A { A(int, char const*); }; +int main() { + int i = 0, *b = &i; + A a(int(b[i]), "hello"); +} diff --git a/gcc/testsuite/g++.dg/parse/ambig6.C b/gcc/testsuite/g++.dg/parse/ambig6.C new file mode 100644 index 000000000..8f37feaea --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/ambig6.C @@ -0,0 +1,12 @@ +// PR c++/48046 + +namespace N1 { typedef int T; } // { dg-error "" } +namespace N2 { typedef float T; } // { dg-error "" } + +int main() +{ + using namespace N1; + using namespace N2; + + static T t; // { dg-error "" } +} diff --git a/gcc/testsuite/g++.dg/parse/angle-bracket.C b/gcc/testsuite/g++.dg/parse/angle-bracket.C new file mode 100644 index 000000000..39bb4eb10 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/angle-bracket.C @@ -0,0 +1,9 @@ +// Contributed by Gabriel Dos Reis +// Origin: Bill Somerville +// { dg-do compile } + +int main() +{ + ( int() > int() ); + return 0; +} diff --git a/gcc/testsuite/g++.dg/parse/angle-bracket2.C b/gcc/testsuite/g++.dg/parse/angle-bracket2.C new file mode 100644 index 000000000..fb758e33f --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/angle-bracket2.C @@ -0,0 +1,6 @@ +// { dg-do compile } +// Contributed by MattyT +// PR c++/14028: Parser accepts invalid unbalanced bracket. + +template struct A {}; +template class B : public A<4 {}; // { dg-error "" } diff --git a/gcc/testsuite/g++.dg/parse/args1.C b/gcc/testsuite/g++.dg/parse/args1.C new file mode 100644 index 000000000..0eb6e64b6 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/args1.C @@ -0,0 +1,12 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 9 Jul 2003 + +// PR c++ 11050. Accepted ill-formed + + +void Foo (int) +{ + Foo(2 2); // { dg-error "expected" "" } +} diff --git a/gcc/testsuite/g++.dg/parse/array-size1.C b/gcc/testsuite/g++.dg/parse/array-size1.C new file mode 100644 index 000000000..2bc31f758 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/array-size1.C @@ -0,0 +1,13 @@ +// PR c++/38 +// Origin: Wolfgang Bangerth +// { dg-do compile } + +template struct A +{ + static const int n = 1; + typedef double X[n]; + + A (const X&); +}; + +template A::A (const X&) {} diff --git a/gcc/testsuite/g++.dg/parse/array-size2.C b/gcc/testsuite/g++.dg/parse/array-size2.C new file mode 100644 index 000000000..355ed6133 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/array-size2.C @@ -0,0 +1,20 @@ +// PR c/25682 +// { dg-do compile } +// Test whether we don't ICE on questionable constructs where offsetof +// should have been used instead. + +struct S +{ + char a[4]; + int b; +}; + +extern void bar (char *, char *); + +void +foo (void) +{ + char g[(char *) &((struct S *) 0)->b - (char *) 0]; + char h[(__SIZE_TYPE__) &((struct S *) 8)->b]; + bar (g, h); +} diff --git a/gcc/testsuite/g++.dg/parse/asm1.C b/gcc/testsuite/g++.dg/parse/asm1.C new file mode 100644 index 000000000..009ffbd3a --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/asm1.C @@ -0,0 +1,6 @@ +//PR c++/30849 + +void foo() +{ + asm("" : 0); // { dg-error "numeric constant|token" } +} diff --git a/gcc/testsuite/g++.dg/parse/asm2.C b/gcc/testsuite/g++.dg/parse/asm2.C new file mode 100644 index 000000000..09924c9c7 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/asm2.C @@ -0,0 +1,6 @@ +//PR c++/30850 + +void foo() +{ + asm("" :: 0); // { dg-error "numeric constant|token" } +} diff --git a/gcc/testsuite/g++.dg/parse/asm3.C b/gcc/testsuite/g++.dg/parse/asm3.C new file mode 100644 index 000000000..91f19e48c --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/asm3.C @@ -0,0 +1,6 @@ +//PR c++/30851 + +void foo() +{ + asm ("%[x]" : [0](x)); // { dg-error "numeric constant|token" } +} diff --git a/gcc/testsuite/g++.dg/parse/attr-ctor1.C b/gcc/testsuite/g++.dg/parse/attr-ctor1.C new file mode 100644 index 000000000..23d488a20 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/attr-ctor1.C @@ -0,0 +1,9 @@ +// PR c++/6992 +// Origin: +// { dg-do compile } +// { dg-require-named-sections "" } + +class A +{ + __attribute__((section("whatever"))) A(); +}; diff --git a/gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C b/gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C new file mode 100644 index 000000000..845d873aa --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C @@ -0,0 +1,49 @@ +// { dg-do compile } +// { dg-options "-O3 -fwhole-program" } +// { dg-add-options bind_pic_locally } +// { dg-final { scan-assembler "foo1" } } +// { dg-final { scan-assembler "foo2" } } +// { dg-final { scan-assembler "foo3" } } +// { dg-final { scan-assembler "foo4" } } +// { dg-final { scan-assembler "foo5" } } +// { dg-final { scan-assembler-not "foo6" } } +// { dg-final { scan-assembler "bar1" } } +// { dg-final { scan-assembler "bar2" } } +// { dg-final { scan-assembler "bar3" } } +// { dg-final { scan-assembler "bar4" } } +// { dg-final { scan-assembler "bar5" } } +// { dg-final { scan-assembler-not "bar6" } } + +extern void foo1 (void) __attribute__((externally_visible)); +void foo1 (void) { } + +extern void foo2 (void) __attribute__((externally_visible)); +__attribute__((externally_visible)) void foo2 (void) { } + +extern void foo3 (void); +__attribute__((externally_visible)) void foo3 (void) { } + +__attribute__((externally_visible)) void foo4 (void) { } + +void foo5 (void) { } +extern void foo5 (void) __attribute__((externally_visible)); + +void foo6 (void) { } + +extern char *bar1 __attribute__((externally_visible)); +char *bar1; + +extern char *bar2 __attribute__((externally_visible)); +char *bar2 __attribute__((externally_visible)); + +extern char *bar3; +char *bar3 __attribute__((externally_visible)); + +char *bar4 __attribute__((externally_visible)); + +char *bar5; +extern char *bar5 __attribute__((externally_visible)); + +char *bar6; + +int main (void) { } diff --git a/gcc/testsuite/g++.dg/parse/attr-externally-visible-2.C b/gcc/testsuite/g++.dg/parse/attr-externally-visible-2.C new file mode 100644 index 000000000..d7feaabb2 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/attr-externally-visible-2.C @@ -0,0 +1,38 @@ +// { dg-do compile } +// { dg-options "-O -fwhole-program" } + +static void foo1 (void) { } // { dg-warning "have effect only on public" } +extern void foo1 (void) __attribute__((externally_visible)); + +struct C +{ + __attribute__((externally_visible)) void foo3 (void) { } +}; + +__attribute__((externally_visible)) static void foo3 (void) { } // { dg-warning "have effect only on public" } + +static int bar1; +extern int bar1 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } + +static int bar2 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } + +void fn1 (void) +{ + static int bar3 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } +} + +void fn2 (void) +{ + int bar4 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } +} + +struct A +{ +} __attribute__((externally_visible)); // { dg-warning "does not apply to types" } + +typedef int B __attribute__((externally_visible)); // { dg-warning "attribute ignored" } + +struct D +{ + static int d __attribute__((externally_visible)); +}; diff --git a/gcc/testsuite/g++.dg/parse/attr1.C b/gcc/testsuite/g++.dg/parse/attr1.C new file mode 100644 index 000000000..10d6f57d3 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/attr1.C @@ -0,0 +1,50 @@ +// Test whether attributes are accepted both immediately after +// struct/union keyword and after the closing brace. +// { dg-do compile } + +struct foo +{ + union __attribute__ ((packed)) + { + int a; + long b; + }; + union __attribute__ ((packed)) __attribute__ ((unused)) + { + int c; + long d; + }; +}; + +union __attribute__ ((packed)) bar +{ + int c; + long d; +}; + +struct __attribute__ ((packed)) baz +{ + int e; + long f; +}; + +struct foo2 +{ + union + { + int a; + long b; + } __attribute__ ((packed)); +}; + +union bar2 +{ + int c; + long d; +} __attribute__ ((packed)); + +struct baz2 +{ + int e; + long f; +} __attribute__ ((packed)); diff --git a/gcc/testsuite/g++.dg/parse/attr2.C b/gcc/testsuite/g++.dg/parse/attr2.C new file mode 100644 index 000000000..ce770029c --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/attr2.C @@ -0,0 +1,12 @@ +// PR c++/16337 + +#define vector __attribute__((vector_size(16))) +void foo (void) +{ + vector signed int v1 = { 1, 2, 3, 4 }; + vector signed int v2, v3; + vector signed int v4; + v2 = v1; + v3 = v1; + v4 = v1; +} diff --git a/gcc/testsuite/g++.dg/parse/attr3.C b/gcc/testsuite/g++.dg/parse/attr3.C new file mode 100644 index 000000000..848df055c --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/attr3.C @@ -0,0 +1,14 @@ +// PR c++/39219 + +enum __attribute__ ((deprecated)) E { e }; +struct S { enum __attribute__ ((deprecated)) F { f = e }; }; + +int main () { + E x; // { dg-warning "'E' is deprecated" "" } + x = e; + + S::F y; // { dg-warning "'F' is deprecated" "" } + y = S::f; + + return x + y; +} diff --git a/gcc/testsuite/g++.dg/parse/bitfield1.C b/gcc/testsuite/g++.dg/parse/bitfield1.C new file mode 100644 index 000000000..2e0760585 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/bitfield1.C @@ -0,0 +1,11 @@ +// PR c++/27803 + +struct A +{ + double i : 8; // { dg-error "type" } +}; + +void foo(A& a) +{ + (char)a.i; // { dg-error "no member" } +} diff --git a/gcc/testsuite/g++.dg/parse/bitfield2.C b/gcc/testsuite/g++.dg/parse/bitfield2.C new file mode 100644 index 000000000..a04d2adf8 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/bitfield2.C @@ -0,0 +1,34 @@ +//PR c++/28053 + +struct X {}; + +struct A +{ + X x : 2; // { dg-error "non-integral type" } +}; +struct B : A {}; + +template +struct C +{ + T t : 3; +}; + +C c; + +template +struct D +{ + T t : 3; // { dg-error "non-integral type" } +}; + +D d; // { dg-message "instantiated" } + +template +struct E +{ + typedef T* U; + U t : 3; // { dg-error "non-integral type" } +}; + +E e; diff --git a/gcc/testsuite/g++.dg/parse/bitfield3.C b/gcc/testsuite/g++.dg/parse/bitfield3.C new file mode 100644 index 000000000..387548a68 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/bitfield3.C @@ -0,0 +1,9 @@ +/* PR c++/35320 */ +/* { dg-do compile } */ + +typedef void (func_type)(); + +struct A +{ + friend func_type f : 2; /* { dg-error "with non-integral type" } */ +}; diff --git a/gcc/testsuite/g++.dg/parse/break-in-for.C b/gcc/testsuite/g++.dg/parse/break-in-for.C new file mode 100644 index 000000000..3028cdc80 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/break-in-for.C @@ -0,0 +1,12 @@ +/* PR17412 - ICE in fold_const.c during parsing. + fold would try to fold the operands of the break statement. */ +/* { dg-do compile } */ +/* { dg-options "" } */ + + +void foo () +{ + for (;;) + for (;;({break;})); +} + diff --git a/gcc/testsuite/g++.dg/parse/builtin1.C b/gcc/testsuite/g++.dg/parse/builtin1.C new file mode 100644 index 000000000..3b826bd86 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/builtin1.C @@ -0,0 +1,16 @@ +namespace std { +class Base {}; +} + +struct Derived : public std::Base { + operator const char*() const; + operator bool(void) const; +}; + +void log(const char* str); + +void nothing() +{ + Derived temp; + log(temp); +} diff --git a/gcc/testsuite/g++.dg/parse/builtin2.C b/gcc/testsuite/g++.dg/parse/builtin2.C new file mode 100644 index 000000000..c524ea684 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/builtin2.C @@ -0,0 +1,5 @@ +// PR c++/14432 +// { dg-options "" } + +struct Y {}; +Y y1; diff --git a/gcc/testsuite/g++.dg/parse/cast1.C b/gcc/testsuite/g++.dg/parse/cast1.C new file mode 100644 index 000000000..c8dbed1ac --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cast1.C @@ -0,0 +1,11 @@ +// PR c++/13536 +// { dg-require-effective-target ilp32 } */ +// { dg-options "-w" } + +#include + +void f() { + (int((char*)0)); + sizeof ((int((char*)0))); + typeid ((int((char*)0))); +} diff --git a/gcc/testsuite/g++.dg/parse/cast2.C b/gcc/testsuite/g++.dg/parse/cast2.C new file mode 100644 index 000000000..d447bb4ba --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cast2.C @@ -0,0 +1,13 @@ +// PR c++/13736 + +struct string +{ + string() {} + string(const string&) {} + string(const char*) {} +}; + +int main() +{ + string s2(string( (const char*)(""))); +} diff --git a/gcc/testsuite/g++.dg/parse/casting-operator1.C b/gcc/testsuite/g++.dg/parse/casting-operator1.C new file mode 100644 index 000000000..867221a35 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/casting-operator1.C @@ -0,0 +1,11 @@ +// PR c++/8578 +// Origin: +// { dg-do compile } + +template struct A +{ + typedef typename T::X X; + operator X(); +}; + +template A::operator typename A::X () {} diff --git a/gcc/testsuite/g++.dg/parse/casting-operator2.C b/gcc/testsuite/g++.dg/parse/casting-operator2.C new file mode 100644 index 000000000..008fa62dc --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/casting-operator2.C @@ -0,0 +1,27 @@ +// { dg-do compile } +// Contributed by Martin Loewis +// PR c++/8856: Make sure template conversion operators are not parsed as +// template names. + +struct K {}; +template struct K2 {}; + +template struct A { + template operator U() { return U(); } +}; + +int main() { + A a; + + (void)a.operator int(); + (void)a.operator double(); + (void)a.operator K2(); + (void)a.A::operator int(); + (void)a.A::operator double(); + (void)a.A::operator K2(); + + (void)a.operator double(); // { dg-error "not a template" } + (void)a.operator K(); // { dg-error "not a template" } + (void)a.A::operator double(); // { dg-error "not a template" } + (void)a.A::operator K(); // { dg-error "not a template" } +} diff --git a/gcc/testsuite/g++.dg/parse/catch1.C b/gcc/testsuite/g++.dg/parse/catch1.C new file mode 100644 index 000000000..877402231 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/catch1.C @@ -0,0 +1,8 @@ +// PR c++/28249 +// { dg-do compile } + +void foo() +{ + try {} + catch (long long long) {} // { dg-error "long long long" } +} diff --git a/gcc/testsuite/g++.dg/parse/class1.C b/gcc/testsuite/g++.dg/parse/class1.C new file mode 100644 index 000000000..819c48d9c --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/class1.C @@ -0,0 +1,10 @@ +namespace N +{ + struct A; + int f() { + struct N::A { // { dg-error "" } + A() {} + }; + return 0; + } +} diff --git a/gcc/testsuite/g++.dg/parse/class2.C b/gcc/testsuite/g++.dg/parse/class2.C new file mode 100644 index 000000000..2014f9b50 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/class2.C @@ -0,0 +1,14 @@ +// PR c++/13140 + +struct foo { + foo(); + void f(); + static int i; +}; + + +namespace bar { + foo::foo() {} // { dg-error "namespace" } + void foo::f() {} // { dg-error "namespace" } + int foo::i; // { dg-error "namespace" } +} diff --git a/gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C b/gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C new file mode 100644 index 000000000..8e25fbac2 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/colon-autocorrect-1.C @@ -0,0 +1,31 @@ +// PR c++/44522 +// { dg-do compile } + +namespace x { + struct a { }; + a A0; +} + +x:a a2; // { dg-error "nested-name-specifier" } +x::a a3 = a2; + +x:a f (void) // { dg-error "nested-name-specifier" } +{ + x::a a4; // x:a would parse like a label + return a4; +} + +x::a g (x:a a4) // { dg-error "nested-name-specifier" } +{ + return a4; +} + +class B +{ + x::a f(void) // x:a would parse like a bitfield + { + x::a a4; + a4 = x:A0; // { dg-error "nested-name-specifier" } + return a4; + } +}; diff --git a/gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C b/gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C new file mode 100644 index 000000000..1dfcbc068 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C @@ -0,0 +1,15 @@ +// PR c++/44523 +// { dg-do compile } + +namespace x { + struct a { }; +} + +template +class foo { +}; + +foo a1; +foo a2; // { dg-error "nested-name-specifier" } + +x::a a3 = a2; // { dg-error "conversion" } diff --git a/gcc/testsuite/g++.dg/parse/comma1.C b/gcc/testsuite/g++.dg/parse/comma1.C new file mode 100644 index 000000000..4983535a5 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/comma1.C @@ -0,0 +1,14 @@ +// PR c++/14278 +// { dg-options "" } + +struct X { + X (int p); +}; + +struct A { + A(X); +}; + +void *p_fun; + +A a(X ((*(int (*)(int, int)) p_fun)(0, 0))); diff --git a/gcc/testsuite/g++.dg/parse/comma2.C b/gcc/testsuite/g++.dg/parse/comma2.C new file mode 100644 index 000000000..0f405876d --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/comma2.C @@ -0,0 +1,19 @@ +// { dg-do compile } + +// Copyright (C) 2005 Free Software Foundation, Inc. + +// PR c++/24907 [3.4/4.0/4.1/4.2 Regression] "int x, ;" accepted + +int x; +int y,; /* { dg-error "expected" } */ + +int main() +{ + int a; + int b,; /* { dg-error "expected" } */ + int c,d; + int e,f,; /* { dg-error "expected" } */ + int g,h,i; + int j,k,l,;/* { dg-error "expected" } */ + int m,,,n; /* { dg-error "expected" } */ +} diff --git a/gcc/testsuite/g++.dg/parse/concat1.C b/gcc/testsuite/g++.dg/parse/concat1.C new file mode 100644 index 000000000..7bf97a628 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/concat1.C @@ -0,0 +1,15 @@ +/* PR c/3581 */ +/* { dg-do compile } */ + +/* Intended as a compile-time test for string literal concatenation. + The fact that the string isn't actually used in the resulting program + should allow this to compile for any target. */ + +#define e0 "a" +#define e1 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 +#define e2 e1 e1 e1 e1 e1 e1 e1 e1 e1 e1 +#define e3 e2 e2 e2 e2 e2 e2 e2 e2 e2 e2 +#define e4 e3 e3 e3 e3 e3 e3 e3 e3 e3 e3 +#define e5 e4 e4 e4 e4 e4 e4 e4 e4 e4 e4 + +void foo() { (void)(e5); } diff --git a/gcc/testsuite/g++.dg/parse/cond1.C b/gcc/testsuite/g++.dg/parse/cond1.C new file mode 100644 index 000000000..699477305 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cond1.C @@ -0,0 +1,6 @@ +// PR c++/18389 + +void foo() +{ + for (; struct A {}; ); // { dg-error "" } +} diff --git a/gcc/testsuite/g++.dg/parse/cond2.C b/gcc/testsuite/g++.dg/parse/cond2.C new file mode 100644 index 000000000..2dbe42b34 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cond2.C @@ -0,0 +1,14 @@ +// PR c++/20905 + +struct name {}; + +int +f (); + +void +g () +{ + if (int name = f ()) + { + } +} diff --git a/gcc/testsuite/g++.dg/parse/cond3.C b/gcc/testsuite/g++.dg/parse/cond3.C new file mode 100644 index 000000000..96d9c1e3b --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cond3.C @@ -0,0 +1,15 @@ +// PR c++/30847 +// { dg-do compile } +// { dg-options "" } + +int j, k, l; +extern void baz (); + +void +foo (int i) +{ + (i ? j : k) = ({ l++; (void) l; }); // { dg-error "void value not ignored" } + (i ? j : k) += ({ l++; (void) l; }); // { dg-error "void value not ignored" } + (i ? j : k) = baz (); // { dg-error "void value not ignored" } + (i ? j : k) *= baz (); // { dg-error "void value not ignored" } +} diff --git a/gcc/testsuite/g++.dg/parse/cond4.C b/gcc/testsuite/g++.dg/parse/cond4.C new file mode 100644 index 000000000..ae210e0d7 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cond4.C @@ -0,0 +1,6 @@ +// PR c++/38635 +// { dg-do compile } + +void foo() +{ + if (struct A{}// { dg-error "types may not be defined|expected" } diff --git a/gcc/testsuite/g++.dg/parse/cond5.C b/gcc/testsuite/g++.dg/parse/cond5.C new file mode 100644 index 000000000..7ed9fbe89 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/cond5.C @@ -0,0 +1,10 @@ +// PR c++/40566 + +void +f (int x, int y) +{ + int c = x ? 23 : throw "bla"; + short d = y ? throw "bla" : 23; + char e = x ? 23 : throw "bla"; + long f = x ? 23 : throw "bla"; +} diff --git a/gcc/testsuite/g++.dg/parse/condexpr1.C b/gcc/testsuite/g++.dg/parse/condexpr1.C new file mode 100644 index 000000000..1ca7dbfa6 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/condexpr1.C @@ -0,0 +1,13 @@ +// PR c++/10247 +// Origin: Lars Gullik Bjønes +// { dg-do compile } + +struct A {}; + +A const foo(); + +void bar() +{ + A a = foo(); + A b = true ? a : foo(); +} diff --git a/gcc/testsuite/g++.dg/parse/constant1.C b/gcc/testsuite/g++.dg/parse/constant1.C new file mode 100644 index 000000000..c8a948a57 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constant1.C @@ -0,0 +1,15 @@ +// { dg-options -std=c++98 } + +void f () { + switch (0) { + case (3, 0): // { dg-error "" } + break; + } +} + +int g (); + +struct S { + int i : (false ? g () : 1); // { dg-error "" } +}; + diff --git a/gcc/testsuite/g++.dg/parse/constant2.C b/gcc/testsuite/g++.dg/parse/constant2.C new file mode 100644 index 000000000..43fad2e28 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constant2.C @@ -0,0 +1,28 @@ +// { dg-do compile } +// Origin: +// PR c++/10750: error when using a static const member initialized +// with a dependent expression as constant-expression + +struct A +{ + enum { a = 42 }; +}; + +template +struct B +{ + static const int b = Q::a; +}; + +template class P> +struct C +{ + static const bool a = T::a; + static const bool a_ = a; + static const bool b = P::b; + static const bool b_ = b; + static const int c = sizeof(T); + static const int c_ = c; +}; + +template struct C; diff --git a/gcc/testsuite/g++.dg/parse/constant3.C b/gcc/testsuite/g++.dg/parse/constant3.C new file mode 100644 index 000000000..c029e33ed --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constant3.C @@ -0,0 +1,7 @@ +const int i = 1; +const int j (2); +const int k = { 3 }; + +enum { a = i, b = j, c = k }; + + diff --git a/gcc/testsuite/g++.dg/parse/constant4.C b/gcc/testsuite/g++.dg/parse/constant4.C new file mode 100644 index 000000000..a1be5dd02 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constant4.C @@ -0,0 +1,40 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 31 Jul 2003 + +// PR c++/11525 incorrect error about non-constant initalizer + +template class X; +template class Y {}; + + +template +void Foo () +{ + static const unsigned I = X::I; + + Y i; + + static const unsigned J = X::J; // { dg-message "not initialized with a constant expression" } + + Y j; // { dg-error "constant|template argument" "" } +} + +struct A +{ + operator unsigned () const; +}; + +template struct X +{ + enum {I}; + static A const J; +}; + +void Baz () +{ + Foo (); // { dg-message "instantiated" "" } +} + + diff --git a/gcc/testsuite/g++.dg/parse/constant5.C b/gcc/testsuite/g++.dg/parse/constant5.C new file mode 100644 index 000000000..f868108a6 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constant5.C @@ -0,0 +1,16 @@ +// { dg-options "-std=c++98 -pedantic-errors" } + +enum E { + a = 24.2, // { dg-error "constant" } + b = (int)3.7, + c = int(4.2), + d = (int)(4.2 + 3.7), // { dg-error "constant" } + e = int(4.2 - 3.7), // { dg-error "constant" } + f = (int)17.25 +}; + +struct S { + static const int i = (int)4.2; + int j[(int)4.2]; + static const int k = static_cast(3.7); +}; diff --git a/gcc/testsuite/g++.dg/parse/constant6.C b/gcc/testsuite/g++.dg/parse/constant6.C new file mode 100644 index 000000000..dae01d47b --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constant6.C @@ -0,0 +1,23 @@ +// PR c++/19883 + +template struct A +{ + static const T i = 1; + char a[int(i)]; +}; + +template struct B {}; + +template struct C +{ + static const T i = 2; + B a; +}; + +template< typename T, T N > +struct integral_c +{ + static const T value = N; + + typedef integral_c< T, static_cast((value + 1)) > next; +}; diff --git a/gcc/testsuite/g++.dg/parse/constant7.C b/gcc/testsuite/g++.dg/parse/constant7.C new file mode 100644 index 000000000..c54ad55c1 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constant7.C @@ -0,0 +1,9 @@ +// PR c++/19991 + +enum { e = 1 }; + +template struct A +{ + static const int i = e; + char a[i]; +}; diff --git a/gcc/testsuite/g++.dg/parse/constructor1.C b/gcc/testsuite/g++.dg/parse/constructor1.C new file mode 100644 index 000000000..1bb9ee0a1 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constructor1.C @@ -0,0 +1,8 @@ +// { dg-do compile } +// { dg-options "-fshow-column" } + +ACE_Process_Descriptor::ACE_Process_Descriptor () : + // { dg-error "does not name a type" "no type" { target *-*-* } 4 } + process_ (0) +{ +} diff --git a/gcc/testsuite/g++.dg/parse/constructor2.C b/gcc/testsuite/g++.dg/parse/constructor2.C new file mode 100644 index 000000000..e514e9397 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constructor2.C @@ -0,0 +1,11 @@ +// PR c++/14260 + +template +class T +{ +public: + T(short,short f=0) {} + T(int f) {} + T(int f=0,const char* b=0) {} +}; + diff --git a/gcc/testsuite/g++.dg/parse/constructor3.C b/gcc/testsuite/g++.dg/parse/constructor3.C new file mode 100644 index 000000000..fe741c833 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/constructor3.C @@ -0,0 +1,14 @@ +/* PR c++/29077 */ +/* { dg-do compile } */ + +class c { + c(); + c(const c&); + ~c(); +}; + +namespace m { + c::c() {} /* { dg-error "c::c" } */ + c::c(const c&) {} /* { dg-error "c::c" } */ + c::~c() {} /* { dg-error "c::~c" } */ +} diff --git a/gcc/testsuite/g++.dg/parse/conv_op1.C b/gcc/testsuite/g++.dg/parse/conv_op1.C new file mode 100644 index 000000000..e892f01aa --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/conv_op1.C @@ -0,0 +1,30 @@ + +// { dg-do compile } + +// Copyright (C) 2002 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 21 Dec 2002 + +// PR 8572. ICE with templated conversion operators. + +template struct A +{ + struct B { }; + operator B* () const; + B *Foo (); +}; + +template typename A::B *A::Foo () +{ + return 0; +} + +template A::operator typename A::B* () const +{ + return 0; +} + +void Foo (A &p) +{ + p.Foo (); + static_cast ::B *> (p); +} diff --git a/gcc/testsuite/g++.dg/parse/crash1.C b/gcc/testsuite/g++.dg/parse/crash1.C new file mode 100644 index 000000000..750ed18e5 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash1.C @@ -0,0 +1 @@ +struct s { s(std::b o) { } }; // { dg-error "" } diff --git a/gcc/testsuite/g++.dg/parse/crash10.C b/gcc/testsuite/g++.dg/parse/crash10.C new file mode 100644 index 000000000..712e87674 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash10.C @@ -0,0 +1,13 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 22 Jul 2003 + +// PR c++ 10953. ICE + +// { dg-bogus "" "" { target *-*-* } 14 } + +class +{ + typename:: +; // { dg-error "" "" } diff --git a/gcc/testsuite/g++.dg/parse/crash11.C b/gcc/testsuite/g++.dg/parse/crash11.C new file mode 100644 index 000000000..eb5cf3c24 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash11.C @@ -0,0 +1,34 @@ +// { dg-do compile } + +// Origin: priesnit@math.uni-goettingen.de + +// PR c++/5767: ICE parsing typename with invalid scope. + +template