summaryrefslogtreecommitdiffstats
path: root/gcc/testsuite/g++.dg/inherit
Commit message (Collapse)AuthorAgeFilesLines
* /cppaolo2014-01-311-0/+10
| | | | | | | | | | | | | | | | | | 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59082 * class.c (build_vfield_ref): Early return error_mark_node if TYPE_VFIELD (type) is null. (build_base_path): Check return value of build_vfield_ref. /testsuite 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59082 * g++.dg/inherit/crash4.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207359 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/59645jason2014-01-301-0/+17
| | | | | | * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207301 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/59031jason2013-11-231-0/+17
| | | | | | | | * call.c (build_new_method_call_1): Comnpare function context with BASELINK_BINFO type rather than instance type before marking the call with LOOKUP_NONVIRTUAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205317 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2013-07-241-0/+9
| | | | | | | | | | | | | | | | | | 2013-07-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57942 * typeck.c (ptr_reasonably_similar): Use COMPARE_STRICT if one of the target types is incomplete; return a bool, not an int. * cp-tree.h (ptr_reasonably_similar): Adjust declaration. /testsuite 2013-07-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57942 * g++.dg/inherit/pr57942.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201201 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2013-07-051-0/+11
| | | | | | | | | | | | | | | | 2013-07-05 Paolo Carlini <paolo.carlini@oracle.com> PR c++/14263 * class.c (build_base_path): Improve diagnostic. /testsuite 2013-07-05 Paolo Carlini <paolo.carlini@oracle.com> PR c++/14263 * g++.dg/inherit/virtual10.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200718 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/56358jason2013-02-271-1/+1
| | | | | | | | | | | PR c++/56323 * name-lookup.c (do_class_using_decl): Use ctor_identifier instead of the base name for inheriting ctors. (push_class_level_binding_1): Remove inheriting ctor handling. * pt.c (tsubst_decl) [USING_DECL]: Likewise. * class.c (add_implicitly_declared_members): Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196316 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/ChangeLogfabien2012-11-141-0/+44
| | | | | | | | | | | | | | | | | | | 2012-11-14 Fabien ChĂȘne <fabien@gcc.gnu.org> PR c++/11750 * g++.dg/inherit/vitual9.C: New. gcc/cp/ChangeLog 2012-11-14 Fabien ChĂȘne <fabien@gcc.gnu.org> PR c++/11750 * call.c (build_new_method_call_1): Check that the instance type and the function context are the same before setting the flag LOOKUP_NONVIRTUAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193504 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/51812jason2012-01-241-0/+10
| | | | | | | * cgraphunit.c (cgraph_decide_is_function_needed): Don't always output static aliases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183475 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/51889jason2012-01-191-0/+12
| | | | | | | * class.c (finish_struct): Call add_method here for function usings. * semantics.c (finish_member_declaration): Not here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183304 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/51614jason2012-01-111-0/+14
| | | | | | * class.c (build_base_path): Diagnose ambiguous base. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183088 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/ChangeLogfabien2012-01-012-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2011-12-31 Fabien Chene <fabien@gcc.gnu.org> * g++.old-deja/g++.brendan/crash25.C: Adjust. * g++.old-deja/g++.brendan/crash56.C: Likewise. * g++.old-deja/g++.jason/access14.C: Likewise. * g++.old-deja/g++.jason/access8.C: Likewise. * g++.old-deja/g++.jason/access1.C: Likewise. * g++.old-deja/g++.other/access3.C: Likewise. * g++.old-deja/g++.other/access5.C: Likewise. * g++.old-deja/g++.law/unsorted1.C: Likewise. * g++.old-deja/g++.law/visibility22.C: Likewise. * g++.old-deja/g++.law/visibility26.C: Likewise. * g++.old-deja/g++.mike/p2746.C: Likewise. * g++.dg/debug/using1.C: Likewise. * g++.dg/lookup/using51.C: Likewise. * g++.dg/inherit/using5.C: Likewise. * g++.dg/inherit/pr30297.C: Likewise. * g++.dg/inherit/access8.C: Likewise. * g++.dg/torture/pr39362.C: Likewise. * g++.dg/template/crash13.C: Likewise. * g++.dg/template/using10.C: Likewise. gcc/cp/ChangeLog 2011-12-31 Fabien Chene <fabien@gcc.gnu.org> * parser.c (cp_parser_using_declaration): Add a warning about deprecated access declarations when no errors were encountered while parsing the access declaration. Save the first token in order to emit the warning at the right place. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182772 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2011-12-011-0/+11
| | | | | | | | | | | | | | | | | 2011-12-01 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51326 * call.c (build_user_type_conversion_1): Early return NULL if expr is NULL_TREE. /testsuite 2011-12-01 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51326 * g++.dg/inherit/crash3.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181895 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/6936jason2011-11-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR c++/25994 PR c++/26256 PR c++/30195 * search.c (lookup_field_1): Look through USING_DECL. (lookup_field_r): Call lookup_fnfields_slot instead of lookup_fnfields_1. * semantics.c (finish_member_declaration): Remove the check that prevents USING_DECLs from being verified by pushdecl_class_level. Call add_method for using declarations that designates functions if the using declaration is in a template class. Set DECL_IGNORED_P on class-scope using declarations. * typeck.c (build_class_member_access_expr): Handle USING_DECLs. * class.c (check_field_decls): Keep using declarations. (add_method): Remove two diagnostics about conflicting using declarations. * parser.c (cp_parser_nonclass_name): Handle USING_DECLs. * decl.c (start_enum): Call xref_tag whenever possible. * cp-tree.h (strip_using_decl): Declare, and reident the previous function. * name-lookup.c (strip_using_decl): New function. (supplement_binding_1): Call strip_using_decl on decl and bval. Perform most of the checks with USING_DECLs stripped. Also check that the target decl and the target bval does not refer to the same declaration. Allow pushing an enum multiple times in a template class. Adjustment to diagnose using redeclarations. Call diagnose_name_conflict. (push_class_level_binding): Call strip_using_decl on decl and bval. Perform most of the checks with USING_DECLs stripped. Return true if both decl and bval refer to USING_DECLs and are dependent. (diagnose_name_conflict): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181359 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2011-10-171-0/+14
| | | | | | | | | | | | | | | | | 2011-10-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/48489 * typeck.c (finish_class_member_access_expr): Fix error call for TREE_CODE (access_path) == TREE_BINFO. /testsuite 2011-10-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/48489 * g++.dg/inherit/error5.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180080 138bc75d-0d04-0410-961f-82ee72b054a4
* Add x32 support to GCC testsuite.hjl2011-07-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2011-07-09 H.J. Lu <hongjiu.lu@intel.com> * c-c++-common/dfp/func-vararg-alternate-d128-2.c: Support x32. * c-c++-common/dfp/func-vararg-mixed-2.c: Likewise. * g++.dg/abi/bitfield3.C: Likewise. * g++.dg/eh/pr38662.C: Likewise. * g++.dg/ext/attrib36.C: Likewise. * g++.dg/ext/attrib37.C: Likewise. * g++.dg/ext/attrib8.C: Likewise. * g++.dg/ext/tmplattr1.C: Likewise. * g++.dg/inherit/override-attribs.C: Likewise. * g++.dg/opt/inline9.C: Likewise. * g++.dg/opt/life1.C: Likewise. * g++.dg/opt/longbranch2.C: Likewise. * g++.dg/opt/nrv12.C: Likewise. * g++.dg/opt/reg-stack4.C: Likewise. * g++.dg/other/pr35504.C: Likewise. * g++.dg/other/pr39496.C: Likewise. * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise. * g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise. * g++.dg/torture/stackalign/stdcall-1.C: Likewise. * g++.dg/torture/stackalign/unwind-0.C: Likewise. * g++.dg/torture/stackalign/unwind-1.C: Likewise. * g++.dg/torture/stackalign/unwind-2.C: Likewise. * g++.dg/torture/stackalign/unwind-3.C: Likewise. * g++.dg/torture/stackalign/unwind-4.C: Likewise. * g++.dg/torture/stackalign/unwind-5.C: Likewise. * g++.dg/torture/stackalign/unwind-6.C: Likewise. * g++.dg/warn/pr15774-1.C: Likewise. * g++.dg/warn/pr15774-2.C: Likewise. * g++.old-deja/g++.ext/attrib1.C: Likewise. * g++.old-deja/g++.ext/attrib2.C: Likewise. * g++.old-deja/g++.ext/attrib3.C: Likewise. * g++.old-deja/g++.pt/asm2.C: Likewise. * gcc.c-torture/compile/20000804-1.c: Likewise. * gcc.c-torture/compile/pr16566-2.c: Likewise. * gcc.c-torture/execute/ieee/ieee.exp: Likewise. * gcc.dg/20020108-1.c: Likewise. * gcc.dg/20020122-2.c: Likewise. * gcc.dg/20020122-3.c: Likewise. * gcc.dg/20020206-1.c: Likewise. * gcc.dg/20020219-1.c: Likewise. * gcc.dg/20020310-1.c: Likewise. * gcc.dg/20020411-1.c: Likewise. * gcc.dg/20020418-2.c: Likewise. * gcc.dg/20020426-2.c: Likewise. * gcc.dg/20020517-1.c: Likewise. * gcc.dg/20030204-1.c: Likewise. * gcc.dg/20030826-2.c: Likewise. * gcc.dg/20031102-1.c: Likewise. * gcc.dg/20031202-1.c: Likewise. * gcc.dg/20050111-1.c: Likewise. * gcc.dg/20050503-1.c: Likewise. * gcc.dg/array-init-1.c: Likewise. * gcc.dg/builtin-apply4.c: Likewise. * gcc.dg/dfp/pr31344.c: Likewise. * gcc.dg/gomp/atomic-11.c: Likewise. * gcc.dg/graphite/pr40281.c: Likewise. * gcc.dg/ia64-sync-1.c: Likewise. * gcc.dg/ia64-sync-2.c: Likewise. * gcc.dg/ia64-sync-3.c: Likewise. * gcc.dg/ia64-sync-4.c: Likewise. * gcc.dg/ifcvt-fabs-1.c: Likewise. * gcc.dg/invalid-call-1.c: Likewise. * gcc.dg/loop-3.c: Likewise. * gcc.dg/lower-subreg-1.c: Likewise. * gcc.dg/lto/pr47259_0.c: Likewise. * gcc.dg/nested-calls-1.c: Likewise. * gcc.dg/pr20017.c: Likewise. * gcc.dg/pr25023.c: Likewise. * gcc.dg/pr27671-2.c: Likewise. * gcc.dg/pr32176.c: Likewise. * gcc.dg/pr33676.c: Likewise. * gcc.dg/pr35045.c: Likewise. * gcc.dg/pr36015.c: Likewise. * gcc.dg/pr36584.c: Likewise. * gcc.dg/pr36998.c: Likewise. * gcc.dg/pr37438.c: Likewise. * gcc.dg/pr37908.c: Likewise. * gcc.dg/pr41241.c: Likewise. * gcc.dg/pr41340.c: Likewise. * gcc.dg/pr44136.c: Likewise. * gcc.dg/pr44194-1.c: Likewise. * gcc.dg/pr46212.c: Likewise. * gcc.dg/prefetch-loop-arrays-1.c: Likewise. * gcc.dg/setjmp-2.c: Likewise. * gcc.dg/short-compare-1.c: Likewise. * gcc.dg/short-compare-2.c: Likewise. * gcc.dg/smod-1.c: Likewise. * gcc.dg/sync-2.c: Likewise. * gcc.dg/sync-3.c: Likewise. * gcc.dg/tls/opt-1.c: Likewise. * gcc.dg/tls/opt-2.c: Likewise. * gcc.dg/tls/opt-3.c: Likewise. * gcc.dg/torture/badshift.c: Likewise. * gcc.dg/torture/fp-int-convert-float80-timode.c: Likewise. * gcc.dg/torture/pr20314-2.c: Likewise. * gcc.dg/torture/pr36891.c: Likewise. * gcc.dg/torture/pr38774.c: Likewise. * gcc.dg/torture/stackalign/alloca-2.c: Likewise. * gcc.dg/torture/stackalign/alloca-4.c: Likewise. * gcc.dg/torture/stackalign/alloca-5.c: Likewise. * gcc.dg/torture/stackalign/alloca-6.c: Likewise. * gcc.dg/torture/stackalign/fastcall-1.c: Likewise. * gcc.dg/torture/stackalign/push-1.c: Likewise. * gcc.dg/torture/stackalign/regparm-1.c: Likewise. * gcc.dg/torture/stackalign/thiscall-1.c: Likewise. * gcc.dg/tree-ssa/loop-28.c: Likewise. * gcc.dg/tree-ssa/prefetch-3.c: Likewise. * gcc.dg/tree-ssa/prefetch-4.c: Likewise. * gcc.dg/tree-ssa/prefetch-5.c: Likewise. * gcc.dg/tree-ssa/prefetch-6.c: Likewise. * gcc.dg/tree-ssa/prefetch-7.c: Likewise. * gcc.dg/tree-ssa/prefetch-8.c: Likewise. * gcc.dg/tree-ssa/prefetch-9.c: Likewise. * gcc.dg/tree-ssa/stdarg-2.c: Likewise. * gcc.dg/tree-ssa/stdarg-3.c: Likewise. * gcc.dg/tree-ssa/stdarg-4.c: Likewise. * gcc.dg/tree-ssa/stdarg-5.c: Likewise. * gcc.dg/tree-ssa/update-unroll-1.c: Likewise. * gcc.dg/unroll-1.c: Likewise. * gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Likewise. * gcc.misc-tests/i386-pf-3dnow-1.c: Likewise. * gcc.misc-tests/i386-pf-athlon-1.c: Likewise. * gcc.misc-tests/i386-pf-none-1.c: Likewise. * gcc.misc-tests/i386-pf-sse-1.c: Likewise. * gcc.target/i386/20000609-1.c: Likewise. * gcc.target/i386/20000720-1.c: Likewise. * gcc.target/i386/20000724-1.c: Likewise. * gcc.target/i386/20011107-1.c: Likewise. * gcc.target/i386/20011119-1.c: Likewise. * gcc.target/i386/20020201-3.c: Likewise. * gcc.target/i386/20020218-1.c: Likewise. * gcc.target/i386/20020729-1.c: Likewise. * gcc.target/i386/20030926-1.c: Likewise. * gcc.target/i386/20060125-1.c: Likewise. * gcc.target/i386/20060125-2.c: Likewise. * gcc.target/i386/20060512-1.c: Likewise. * gcc.target/i386/20060512-2.c: Likewise. * gcc.target/i386/20060512-3.c: Likewise. * gcc.target/i386/20060512-4.c: Likewise. * gcc.target/i386/387-1.c: Likewise. * gcc.target/i386/387-2.c: Likewise. * gcc.target/i386/387-5.c: Likewise. * gcc.target/i386/387-6.c: Likewise. * gcc.target/i386/980312-1.c: Likewise. * gcc.target/i386/980313-1.c: Likewise. * gcc.target/i386/990117-1.c: Likewise. * gcc.target/i386/990424-1.c: Likewise. * gcc.target/i386/990524-1.c: Likewise. * gcc.target/i386/991129-1.c: Likewise. * gcc.target/i386/991214-1.c: Likewise. * gcc.target/i386/991230-1.c: Likewise. * gcc.target/i386/addr-sel-1.c: Likewise. * gcc.target/i386/aggregate-ret1.c: Likewise. * gcc.target/i386/aggregate-ret2.c: Likewise. * gcc.target/i386/align-main-3.c: Likewise. * gcc.target/i386/amd64-abi-1.c: Likewise. * gcc.target/i386/amd64-abi-2.c: Likewise. * gcc.target/i386/amd64-abi-4.c: Likewise. * gcc.target/i386/amd64-abi-5.c: Likewise. * gcc.target/i386/amd64-abi-6.c: Likewise. * gcc.target/i386/asm-1.c: Likewise. * gcc.target/i386/asm-3.c: Likewise. * gcc.target/i386/asm-5.c: Likewise. * gcc.target/i386/attributes-error.c: Likewise. * gcc.target/i386/avx-vcvtsd2si-2.c: Likewise. * gcc.target/i386/avx-vcvtsi2sd-2.c: Likewise. * gcc.target/i386/avx-vcvtsi2ss-2.c: Likewise. * gcc.target/i386/avx-vcvtss2si-2.c: Likewise. * gcc.target/i386/avx-vcvttsd2si-2.c: Likewise. * gcc.target/i386/avx-vcvttss2si-2.c: Likewise. * gcc.target/i386/avx-vinsertps-3.c: Likewise. * gcc.target/i386/avx-vmovd-2.c: Likewise. * gcc.target/i386/avx-vmovq-2.c: Likewise. * gcc.target/i386/avx-vmovq-3.c: Likewise. * gcc.target/i386/avx-vpextrq-1.c: Likewise. * gcc.target/i386/avx-vpinsrq-1.c: Likewise. * gcc.target/i386/avx-vzeroupper-16.c: Likewise. * gcc.target/i386/avx-vzeroupper-17.c: Likewise. * gcc.target/i386/avx-vzeroupper-18.c: Likewise. * gcc.target/i386/bitfield1.c: Likewise. * gcc.target/i386/bitfield2.c: Likewise. * gcc.target/i386/bmi-2.c: Likewise. * gcc.target/i386/bmi-5.c: Likewise. * gcc.target/i386/builtin-unreachable.c: Likewise. * gcc.target/i386/cleanup-2.c: Likewise. * gcc.target/i386/clobbers.c: Likewise. * gcc.target/i386/cmov8.c: Likewise. * gcc.target/i386/cmpxchg16b-1.c: Likewise. * gcc.target/i386/compress-float-387-pic.c: Likewise. * gcc.target/i386/compress-float-387.c: Likewise. * gcc.target/i386/compress-float-sse-pic.c: Likewise. * gcc.target/i386/compress-float-sse.c: Likewise. * gcc.target/i386/crc32-2.c: Likewise. * gcc.target/i386/crc32-3.c: Likewise. * gcc.target/i386/divmod-7.c: Likewise. * gcc.target/i386/divmod-8.c: Likewise. * gcc.target/i386/fastcall-sseregparm.c: Likewise. * gcc.target/i386/fma3-builtin.c: Likewise. * gcc.target/i386/fma3-fma.c: Likewise. * gcc.target/i386/fma4-256-vector.c: Likewise. * gcc.target/i386/fma4-builtin.c: Likewise. * gcc.target/i386/fma4-fma-2.c: Likewise. * gcc.target/i386/fma4-fma.c: Likewise. * gcc.target/i386/fma4-vector-2.c: Likewise. * gcc.target/i386/fma4-vector.c: Likewise. * gcc.target/i386/funcspec-1.c: Likewise. * gcc.target/i386/funcspec-10.c: Likewise. * gcc.target/i386/funcspec-11.c: Likewise. * gcc.target/i386/funcspec-2.c: Likewise. * gcc.target/i386/funcspec-5.c: Likewise. * gcc.target/i386/funcspec-6.c: Likewise. * gcc.target/i386/gcc-have-sync-compare-and-swap-1.c: Likewise. * gcc.target/i386/gcc-have-sync-compare-and-swap-2.c: Likewise. * gcc.target/i386/gcc-have-sync-compare-and-swap-3.c: Likewise. * gcc.target/i386/gcc-have-sync-compare-and-swap-4.c: Likewise. * gcc.target/i386/incoming-1.c: Likewise. * gcc.target/i386/incoming-10.c: Likewise. * gcc.target/i386/incoming-11.c: Likewise. * gcc.target/i386/incoming-12.c: Likewise. * gcc.target/i386/incoming-13.c: Likewise. * gcc.target/i386/incoming-14.c: Likewise. * gcc.target/i386/incoming-15.c: Likewise. * gcc.target/i386/incoming-2.c: Likewise. * gcc.target/i386/incoming-3.c: Likewise. * gcc.target/i386/incoming-4.c: Likewise. * gcc.target/i386/incoming-5.c: Likewise. * gcc.target/i386/incoming-6.c: Likewise. * gcc.target/i386/incoming-7.c: Likewise. * gcc.target/i386/incoming-8.c: Likewise. * gcc.target/i386/incoming-9.c: Likewise. * gcc.target/i386/lea.c: Likewise. * gcc.target/i386/local.c: Likewise. * gcc.target/i386/loop-1.c: Likewise. * gcc.target/i386/loop-2.c: Likewise. * gcc.target/i386/loop-3.c: Likewise. * gcc.target/i386/max-stack-align.c: Likewise. * gcc.target/i386/memcpy-1.c: Likewise. * gcc.target/i386/movbe-2.c: Likewise. * gcc.target/i386/movq-2.c: Likewise. * gcc.target/i386/movq.c: Likewise. * gcc.target/i386/nrv1.c: Likewise. * gcc.target/i386/pad-4.c: Likewise. * gcc.target/i386/pad-5a.c: Likewise. * gcc.target/i386/pad-5b.c: Likewise. * gcc.target/i386/pad-6a.c: Likewise. * gcc.target/i386/pad-6b.c: Likewise. * gcc.target/i386/pad-7.c: Likewise. * gcc.target/i386/pad-9.c: Likewise. * gcc.target/i386/pentium4-not-mull.c: Likewise. * gcc.target/i386/pic-1.c: Likewise. * gcc.target/i386/pr12092-1.c: Likewise. * gcc.target/i386/pr12329.c: Likewise. * gcc.target/i386/pr21518.c: Likewise. * gcc.target/i386/pr22362.c: Likewise. * gcc.target/i386/pr22585.c: Likewise. * gcc.target/i386/pr23098.c: Likewise. * gcc.target/i386/pr25196.c: Likewise. * gcc.target/i386/pr25293.c: Likewise. * gcc.target/i386/pr25654.c: Likewise. * gcc.target/i386/pr26449.c: Likewise. * gcc.target/i386/pr26778.c: Likewise. * gcc.target/i386/pr26826.c: Likewise. * gcc.target/i386/pr27266.c: Likewise. * gcc.target/i386/pr29978.c: Likewise. * gcc.target/i386/pr30505.c: Likewise. * gcc.target/i386/pr30961-1.c: Likewise. * gcc.target/i386/pr31628.c: Likewise. * gcc.target/i386/pr32000-2.c: Likewise. * gcc.target/i386/pr32661-1.c: Likewise. * gcc.target/i386/pr32708-2.c: Likewise. * gcc.target/i386/pr32708-3.c: Likewise. * gcc.target/i386/pr34256.c: Likewise. * gcc.target/i386/pr34312.c: Likewise. * gcc.target/i386/pr34522.c: Likewise. * gcc.target/i386/pr35160.c: Likewise. * gcc.target/i386/pr35281.c: Likewise. * gcc.target/i386/pr36246.c: Likewise. * gcc.target/i386/pr36786.c: Likewise. * gcc.target/i386/pr37275.c: Likewise. * gcc.target/i386/pr37843-3.c: Likewise. * gcc.target/i386/pr37843-4.c: Likewise. * gcc.target/i386/pr39082-1.c: Likewise. * gcc.target/i386/pr39431.c: Likewise. * gcc.target/i386/pr39496.c: Likewise. * gcc.target/i386/pr39543-2.c: Likewise. * gcc.target/i386/pr39911.c: Likewise. * gcc.target/i386/pr40718.c: Likewise. * gcc.target/i386/pr40906-1.c: Likewise. * gcc.target/i386/pr40906-2.c: Likewise. * gcc.target/i386/pr40906-3.c: Likewise. * gcc.target/i386/pr40934.c: Likewise. * gcc.target/i386/pr41900.c: Likewise. * gcc.target/i386/pr42589.c: Likewise. * gcc.target/i386/pr43662.c: Likewise. * gcc.target/i386/pr43671.c: Likewise. * gcc.target/i386/pr43766.c: Likewise. * gcc.target/i386/pr43869.c: Likewise. * gcc.target/i386/pr44942.c: Likewise. * gcc.target/i386/pr44948-2a.c: Likewise. * gcc.target/i386/pr45234.c: Likewise. * gcc.target/i386/pr45336-2.c: Likewise. * gcc.target/i386/pr45336-4.c: Likewise. * gcc.target/i386/pr45852.c: Likewise. * gcc.target/i386/pr46470.c: Likewise. * gcc.target/i386/pr48037-1.c: Likewise. * gcc.target/i386/pr48389.c: Likewise. * gcc.target/i386/pr49095.c: Likewise. * gcc.target/i386/pr9771-1.c: Likewise. * gcc.target/i386/rdfsbase-1.c: Likewise. * gcc.target/i386/rdfsbase-2.c: Likewise. * gcc.target/i386/rdgsbase-1.c: Likewise. * gcc.target/i386/rdgsbase-2.c: Likewise. * gcc.target/i386/rdrand-3.c: Likewise. * gcc.target/i386/regparm-stdcall.c: Likewise. * gcc.target/i386/regparm.c: Likewise. * gcc.target/i386/reload-1.c: Likewise. * gcc.target/i386/rotate-2.c: Likewise. * gcc.target/i386/sibcall-5.c: Likewise. * gcc.target/i386/signbit-1.c: Likewise. * gcc.target/i386/signbit-2.c: Likewise. * gcc.target/i386/signbit-3.c: Likewise. * gcc.target/i386/sse-5.c: Likewise. * gcc.target/i386/sse-8.c: Likewise. * gcc.target/i386/sse-cvtsi2ss-2.c: Likewise. * gcc.target/i386/sse-cvtss2si-2.c: Likewise. * gcc.target/i386/sse-cvttss2si-2.c: Likewise. * gcc.target/i386/sse2-cvtsd2si-2.c: Likewise. * gcc.target/i386/sse2-cvtsi2sd-2.c: Likewise. * gcc.target/i386/sse2-cvttsd2si-2.c: Likewise. * gcc.target/i386/sse2-init-v2di-2.c: Likewise. * gcc.target/i386/sse2-movq-2.c: Likewise. * gcc.target/i386/sse2-movq-3.c: Likewise. * gcc.target/i386/sse4_1-insertps-3.c: Likewise. * gcc.target/i386/sse4_1-pextrq.c: Likewise. * gcc.target/i386/sse4_1-pinsrq.c: Likewise. * gcc.target/i386/sse4_2-crc32q.c: Likewise. * gcc.target/i386/sse4_2-popcntq.c: Likewise. * gcc.target/i386/ssefn-1.c: Likewise. * gcc.target/i386/ssefn-2.c: Likewise. * gcc.target/i386/sseregparm-1.c: Likewise. * gcc.target/i386/sseregparm-2.c: Likewise. * gcc.target/i386/sseregparm-3.c: Likewise. * gcc.target/i386/sseregparm-4.c: Likewise. * gcc.target/i386/sseregparm-5.c: Likewise. * gcc.target/i386/sseregparm-6.c: Likewise. * gcc.target/i386/sseregparm-7.c: Likewise. * gcc.target/i386/sseregparm-8.c: Likewise. * gcc.target/i386/stack-realign.c: Likewise. * gcc.target/i386/stack-usage-realign.c: Likewise. * gcc.target/i386/stackalign/asm-1.c: Likewise. * gcc.target/i386/stackalign/longlong-1.c: Likewise. * gcc.target/i386/stackalign/longlong-2.c: Likewise. * gcc.target/i386/stackalign/return-1.c: Likewise. * gcc.target/i386/stackalign/return-2.c: Likewise. * gcc.target/i386/stackalign/return-3.c: Likewise. * gcc.target/i386/tailcall-1.c: Likewise. * gcc.target/i386/tbm-2.c: Likewise. * gcc.target/i386/udivmod-7.c: Likewise. * gcc.target/i386/udivmod-8.c: Likewise. * gcc.target/i386/unroll-1.c: Likewise. * gcc.target/i386/vararg-1.c: Likewise. * gcc.target/i386/vararg-2.c: Likewise. * gcc.target/i386/vect8-ret.c: Likewise. * gcc.target/i386/vectorize5.c: Likewise. * gcc.target/i386/wmul-1.c: Likewise. * gcc.target/i386/wmul-2.c: Likewise. * gcc.target/i386/wrfsbase-1.c: Likewise. * gcc.target/i386/wrfsbase-2.c: Likewise. * gcc.target/i386/wrgsbase-1.c: Likewise. * gcc.target/i386/wrgsbase-2.c: Likewise. * gcc.target/i386/xop-pcmov.c: Likewise. * gcc.target/i386/xop-pcmov2.c: Likewise. * gcc.target/i386/xop-rotate1-vector.c: Likewise. * gcc.target/i386/xop-rotate2-vector.c: Likewise. * gcc.target/i386/xop-rotate3-vector.c: Likewise. * gcc.target/i386/xop-shift1-vector.c: Likewise. * gcc.target/i386/xop-shift2-vector.c: Likewise. * gcc.target/i386/xop-shift3-vector.c: Likewise. * gcc.target/i386/zee.c: Likewise. * gcc.target/x86_64/abi/callabi/callabi.exp: Likewise. * gfortran.dg/compiler-directive_2.f: Likewise. * gfortran.dg/g77/20010216-1.f: Likewise. * gfortran.dg/gomp/pr39152.f90: Likewise. * gfortran.dg/pr33794.f90: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176090 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/48969jason2011-06-072-2/+2
| | | | | | | | | | | | | | | PR c++/44175 gcc/c-family/ * c-common.c (max_tinst_depth): Lower default to 900. gcc/cp/ * error.c (subst_to_string): New. (cp_printer): Use it for 'S'. (print_instantiation_partial_context_line): Handle subst context. * pt.c (push_tinst_level): Handle subst context. (deduction_tsubst_fntype): Don't track specific substitutions. Use push_tinst_level. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174772 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement final on class.jason2011-05-141-60/+0
| | | | | | | | | | | * class.c (check_bases): Diagnose derivation from a final class. * cp-tree.h (lang_type_class): Add is_final and adjust dummy. (CLASSTYPE_FINAL): New. * parser.c (cp_parser_class_head): Parse class-virt-specifier, set CLASSTYPE_FINAL. * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173761 138bc75d-0d04-0410-961f-82ee72b054a4
* Fixes for override/final.jason2011-05-101-4/+25
| | | | | | | | * class.c (check_for_override): Diagnose final on a nonvirtual member function, diagnose override for a virtual with no matching override. Don't fiddle around with DECL_VINDEX. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173626 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement final/override for member functions.jason2011-05-091-0/+39
| | | | | | | | | | | | | | | | | | | | gcc/ * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST): Convert to enum. (TYPE_QUAL_VOLATILE, TYPE_QUAL_RESTRICT): Likewise. gcc/cp/ * class.c (check_for_override): Check for DECL_OVERRIDE_P. * cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New. (cp_virt_specifiers, enum virt_specifier): New. * decl.c (set_virt_specifiers): New. (grokdeclarator): Use them. Diagnose virt-specifiers on non-fields. * parser.c (make_call_declarator): add virt-specifiers parameter. (cp_parser_lambda_declarator_opt): Adjust. (cp_parser_direct_declarator): Likewise. (cp_parser_virt_specifier_seq_opt): New. * search.c (check_final_overrider): Diagnose attempts to override a final member function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173581 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2011-04-281-0/+4
| | | | | | | | | | | | | | | | | | 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com> PR c++/48798 * semantics.c (finish_base_specifier): cv-qualified base class is fine, per DR 484. /testsuite 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com> PR c++/48798 * g++.dg/inherit/pr48798.C: New. * g++.old-deja/g++.other/base1.C: Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173124 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/48035jakub2011-03-111-0/+48
| | | | | | | | | | | | | | * init.c (build_zero_init_1): Extracted from build_zero_init. Add FIELD_SIZE argument, if non-NULL and field bit_position as not smaller than that, don't add that field's initializer. Pass DECL_SIZE as last argument to build_zero_init_1 for DECL_FIELD_IS_BASE fields. (build_zero_init): Use build_zero_init_1. * g++.dg/inherit/virtual8.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170874 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/46220jason2011-03-041-0/+14
| | | | | | | * search.c (check_final_overrider): Allow pointer to same incomplete class type with different cv-quals. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170676 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/47873jason2011-02-281-0/+41
| | | | | | | * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P after checking for a non-thunk. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170576 138bc75d-0d04-0410-961f-82ee72b054a4
* * gfortran.dg/allocate_deferred_char_scalar_1.f03: Fix dg-do syntax.uros2011-02-232-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gfortran.dg/count_init_expr.f03: Ditto. * gfortran.dg/gomp/pr43711.f90: Ditto. * gcc.dg/struct-parse-2.c: Ditto. * gcc.dg/parse-error-3.c: Ditto. * gcc.dg/Wlogical-op-1.c: Ditto. * gcc.dg/Walways-true-1.c: Ditto. * gcc.dg/pr24225.c: Ditto. * gcc.dg/Walways-true-2.c: Ditto. * gcc.dg/tree-ssa/foldcast-1.c: Ditto. * gcc.dg/tree-ssa/struct-aliasing-1.c: Ditto. * gcc.dg/tree-ssa/struct-aliasing-2.c: Ditto. * g++.dg/overload/defarg4.C: Ditto. * g++.dg/inherit/covariant16.C: Ditto. * g++.dg/inherit/virtual7.C: Ditto. * g++.dg/template/canon-type-9.C: Ditto. * g++.dg/template/access19.C: Ditto. * g++.dg/template/call7.C: Ditto. * g++.dg/template/canon-type-2.C: Ditto. * g++.dg/template/init7.C: Ditto. * g++.dg/template/sizeof-template-argument.C: Ditto. * g++.dg/template/const3.C: Ditto. * g++.dg/template/sfinae26.C: Ditto. * g++.dg/template/sfinae26.C: Ditto. * g++.dg/template/canon-type-11.C: Ditto. * g++.dg/template/union2.C: Ditto. * g++.dg/template/canon-type-3.C: Ditto. * g++.dg/template/canon-type-1.C: Ditto. * g++.dg/template/canon-type-5.C: Ditto. * g++.dg/template/canon-type-7.C: Ditto. * g++.dg/template/canon-type-10.C: Ditto. * g++.dg/template/spec36.C: Ditto. * g++.dg/template/typedef38.C: Ditto. * g++.dg/template/canon-type-4.C: Ditto. * g++.dg/template/canon-type-6.C: Ditto. * g++.dg/template/canon-type-13.C: Ditto. * g++.dg/template/instantiate9.C: Ditto. * g++.dg/template/ttp22.C: Ditto. * g++.dg/warn/Wreturn-type-6.C: Ditto. * g++.dg/warn/Walways-true-1.C: Ditto. * g++.dg/warn/Wlogical-op-1.C: Ditto. * g++.dg/warn/Walways-true-2.C: Ditto. * g++.dg/conversion/op4.C: Ditto. * g++.dg/opt/pr19650.C: Ditto. * g++.dg/lookup/friend11.C: Ditto. * g++.dg/other/default2.C: Ditto. * g++.dg/other/default3.C: Ditto. * g++.dg/other/dtor2.C: Ditto. * g++.dg/other/friend5.C: Ditto. * g++.dg/other/default5.C: Ditto. * g++.dg/init/brace6.C: Ditto. * g++.dg/init/aggr5.C: Ditto. * g++.dg/init/error2.C: Ditto. * g++.dg/expr/bound-mem-fun.C: Ditto. * g++.dg/expr/cond6.C: Ditto. * g++.dg/expr/stmt-expr-1.C: Ditto. * g++.dg/cpp0x/constexpr-object2.C: Ditto. * g++.dg/cpp0x/constexpr-data1.C: Ditto. * g++.dg/cpp0x/constexpr-function2.C: Ditto. * g++.dg/cpp0x/bracket1.C: Ditto. * g++.dg/cpp0x/variadic-mem-fn.C: Ditto. * g++.dg/cpp0x/pr38646.C: Ditto. * g++.dg/cpp0x/variadic73.C: Ditto. * g++.dg/cpp0x/constexpr-function1.C: Ditto. * g++.dg/cpp0x/bracket4.C: Ditto. * g++.dg/cpp0x/decltype4.C: Ditto. * g++.dg/cpp0x/constexpr-data2.C: Ditto. * g++.dg/cpp0x/constexpr-object1.C: Ditto. * g++.dg/cpp0x/variadic-crash2.C: Ditto. * g++.dg/cpp0x/variadic-new2.C: Ditto. * g++.dg/cpp0x/decltype2.C: Ditto. * g++.dg/cpp0x/decltype1.C: Ditto. * g++.dg/cpp0x/bracket2.C: Ditto. * g++.dg/cpp0x/decltype5.C: Ditto. * g++.dg/cpp0x/constexpr-function3.C: Ditto. * g++.dg/cpp0x/variadic70.C: Ditto. * g++.dg/cpp0x/decltype6.C: Ditto. * g++.dg/cpp0x/rvo.C: Ditto. * g++.dg/cpp0x/vt-40092.C: Ditto. * g++.dg/cpp0x/variadic-new.C: Ditto. * g++.dg/cpp0x/lambda/lambda-pass.C: Ditto. * g++.dg/cpp0x/lambda/lambda-mixed.C: Ditto. * g++.dg/cpp0x/lambda/lambda-nested.C: Ditto. * g++.dg/cpp0x/lambda/lambda-recursive.C: Ditto. * g++.dg/cpp0x/lambda/lambda-copy.C: Ditto. * g++.dg/cpp0x/lambda/lambda-non-const.C: Ditto. * g++.dg/cpp0x/lambda/lambda-ref-default.C: Ditto. * g++.dg/cpp0x/lambda/lambda-deduce.C: Ditto. * g++.dg/cpp0x/lambda/lambda-copy-default.C: Ditto. * g++.dg/cpp0x/lambda/lambda-nop.C: Ditto. * g++.dg/cpp0x/lambda/lambda-capture-const-ref.C: Ditto. * g++.dg/cpp0x/lambda/lambda-ref.C: Ditto. * g++.dg/cpp0x/lambda/lambda-const.C: Ditto. * g++.dg/cpp0x/lambda/lambda-mutable.C: Ditto. * g++.dg/cpp0x/lambda/lambda-in-class.C: Ditto. * g++.dg/cpp0x/pr39639.C: Ditto. * g++.dg/cpp0x/decltype3.C: Ditto. * g++.dg/cpp0x/variadic68.C: Ditto. * g++.dg/cpp0x/variadic-function.C: Ditto. * g++.dg/cpp0x/constexpr-ex1.C: Ditto. * g++.dg/cpp0x/variadic-bind.C: Ditto. * g++.dg/cpp0x/variadic-tuple.C: Ditto. * g++.dg/cpp0x/constexpr-ex2.C: Ditto. * g++.dg/parse/crash35.C: Ditto. * g++.dg/parse/crash40.C: Ditto. * g++.dg/parse/defarg12.C: Ditto. * g++.dg/parse/crash34.C: Ditto. * g++.dg/parse/constructor3.C: Ditto. * g++.dg/parse/template23.C: Ditto. * g++.dg/parse/crash56.C: Ditto. * g++.dg/parse/dtor13.C: Ditto. * g++.dg/parse/error33.C: Ditto. * g++.dg/parse/ctor9.C: Ditto. * g++.dg/parse/error32.C: Ditto. * g++.dg/parse/error37.C: Ditto. * g++.dg/parse/bitfield3.C: Ditto. * g++.dg/parse/struct-4.C: Ditto. * g++.dg/ext/has_trivial_copy.C: Ditto. * g++.dg/ext/is_polymorphic.C: Ditto. * g++.dg/ext/has_nothrow_copy_odr.C: Ditto. * g++.dg/ext/has_nothrow_copy-4.C: Ditto. * g++.dg/ext/has_nothrow_assign.C: Ditto. * g++.dg/ext/is_union.C: Ditto. * g++.dg/ext/has_nothrow_copy-1.C: Ditto. * g++.dg/ext/is_pod.C: Ditto. * g++.dg/ext/has_virtual_destructor.C: Ditto. * g++.dg/ext/has_trivial_constructor.C: Ditto. * g++.dg/ext/has_nothrow_copy-3.C: Ditto. * g++.dg/ext/has_nothrow_copy-5.C: Ditto. * g++.dg/ext/has_trivial_destructor-1.C: Ditto. * g++.dg/ext/has_nothrow_copy-6.C: Ditto. * g++.dg/ext/is_abstract.C: Ditto. * g++.dg/ext/has_trivial_assign.C: Ditto. * g++.dg/ext/is_class.C: Ditto. * g++.dg/ext/has_nothrow_assign_odr.C: Ditto. * g++.dg/ext/has_nothrow_copy-7.C: Ditto. * g++.dg/ext/is_base_of.C: Ditto. * g++.dg/ext/has_nothrow_copy-2.C: Ditto. * g++.dg/ext/has_nothrow_constructor.C: Ditto. * g++.dg/ext/is_empty.C: Ditto. * g++.dg/ext/is_enum.C: Ditto. * g++.dg/ext/has_nothrow_constructor_odr.C: Ditto. * g++.dg/ext/.C: Ditto. * g++.dg/ext/.C: Ditto. * gnat.dg/opt11.adb: Ditto. * obj-c++.dg/pr45735.mm: Ditto. * obj-c++.dg/pr24393.mm: Ditto. * obj-c++.dg/exceptions-2.cc: Ditto. * objc.dg/pr45735.m: Ditto. * objc.dg/pr24393.m: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170438 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix PR c++/47666dodji2011-02-221-0/+27
| | | | | | | | | | | | | | | | | gcc/cp/ PR c++/47666 * class.c (dfs_declare_virt_assop_and_dtor) (declare_virt_assop_and_dtor): New static functions. (add_implicitly_declared_members): Use declare_virt_assop_and_dtor. gcc/testsuite/ PR c++/47666 * g++.dg/inherit/virtual7.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170413 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/46807jason2011-02-161-0/+23
| | | | | | | * method.c (synthesized_method_walk): Always exit early for trivial fn in C++98 mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170207 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/45473jason2010-11-061-0/+15
| | | | | | * search.c (look_for_overrides): A constructor is never virtual. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166391 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/45605hubicka2010-09-101-8/+8
| | | | | | | | * cp/class.c (build_vtbl_initializer): Avoid wrong type conversion in ADDR_EXPR git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164148 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/43120jason2010-07-092-5/+26
| | | | | | | | | * cp-tree.h (BV_LOST_PRIMARY): New macro. * class.c (update_vtable_entry_for_fn): Fix covariant thunk logic. Set BV_LOST_PRIMARY. (build_vtbl_initializer): Check BV_LOST_PRIMARY. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162008 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/43120jason2010-07-081-0/+40
| | | | | | | * class.c (update_vtable_entry_for_fn): Fix handling of dummy virtual bases for covariant thunks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161954 138bc75d-0d04-0410-961f-82ee72b054a4
* * class.c (add_implicitly_declared_members): Implicit assignmentjason2010-06-151-0/+29
| | | | | | | operators can also be virtual overriders. * method.c (lazily_declare_fn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160810 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2010-05-202-0/+12
| | | | | | | | | | | | | | | | | | 2010-05-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/30298 * decl.c (xref_basetypes): Return false in case of ill-formed redefinition. /testsuite 2010-05-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/30298 * g++.dg/inherit/crash1.C: New. * g++.dg/inherit/crash2.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159637 138bc75d-0d04-0410-961f-82ee72b054a4
* * parser.c (cp_parser_class_specifier): Set class location to thatjason2010-04-061-2/+2
| | | | | | | | of IDENTIFIER_NODE instead of '{' when possible. * semantics.c (begin_class_definition): Do not overide locations with less precise ones. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158030 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/42256jakub2009-12-033-0/+31
| | | | | | | | | | | | * optimize.c (maybe_clone_body): Call emit_associated_thunks after expand_or_defer_fn_1. * g++.dg/inherit/thunk11.C: New test. * g++.dg/inherit/thunk11.h: New file. * g++.dg/inherit/thunk11-aux.cc: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154937 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2009-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com> PR c++/40892 * error.c (maybe_warn_cpp0x): Accept enum cpp0x_warn_str as argument. (maybe_warn_variadic_templates): Update the maybe_warn_cpp0x calls to match the new declaration. * cp-tree.h (cpp0x_warn_str): New type. (maybe_warn_cpp0x): Adjust prototype with new argument. * call.c (reference_binding): Update the maybe_warn_cpp0x calls. * decl.c (reshape_init_r, check_initializer, grokdeclarator): Likewise. * parser.c (cp_parser_primary_expression) (cp_parser_parenthesized_expression_list, cp_parser_new_initializer) (cp_parser_assignment_expression, cp_parser_condition) (cp_parser_jump_statement, cp_parser_mem_initializer) (cp_parser_simple_type_specifier, cp_parser_elaborated_type_specifier) (cp_parser_enum_specifier, cp_parser_initializer) (cp_parser_pure_specifier, cp_parser_functional_cast): Likewise. /testsuite 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com> * g++.old-deja/g++.other/crash28.C: Make expected dg-error strings explicit. * g++.dg/inherit/error4.C: Likewise. * g++.dg/template/crash90.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154288 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix missing file and ChangeLog error in previous check-indougkwan2009-03-181-0/+60
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144945 138bc75d-0d04-0410-961f-82ee72b054a4
* PR testsuite/25241janis2008-09-182-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/g++.exp (g++_init): Enable overrides of dg-error, dg-warning for C++ tests. * g++.dg/conversion/ambig1.C: Clean up dg-error/dg-warning; use dg-message for notes. * g++.dg/conversion/simd1.C: Ditto. * g++.dg/conversion/simd3.C: Ditto. * g++.dg/cpp0x/rv2n.C: Ditto. * g++.dg/cpp0x/rv3n.C: Ditto. * g++.dg/cpp0x/rv4n.C: Ditto. * g++.dg/cpp0x/rv5n.C: Ditto. * g++.dg/cpp0x/rv6n.C: Ditto. * g++.dg/cpp0x/rv7n.C: Ditto. * g++.dg/cpp0x/variadic36.C: Ditto. * g++.dg/cpp0x/variadic59.C: Ditto. * g++.dg/cpp0x/variadic71.C: Ditto. * g++.dg/cpp0x/variadic-ex13.C: Ditto. * g++.dg/expr/cond9.C: Ditto. * g++.dg/expr/pmf-1.C: Ditto. * g++.dg/ext/case-range2.C: Ditto. * g++.dg/ext/case-range3.C: Ditto. * g++.dg/ext/is_class_error2.C: Ditto. * g++.dg/ext/label5.C: Ditto. * g++.dg/ext/pr27019.C: Ditto. * g++.dg/gomp/pr26690-1.C: Ditto. * g++.dg/gomp/pr26690-2.C: Ditto. * g++.dg/gomp/pr34694.C: Ditto. * g++.dg/gomp/tpl-parallel-2.C: Ditto. * g++.dg/inherit/base3.C: Ditto. * g++.dg/inherit/using6.C: Ditto. * g++.dg/init/brace6.C: Ditto. * g++.dg/init/ctor4.C: Ditto. * g++.dg/lookup/conv-1.C: Ditto. * g++.dg/lookup/new1.C: Ditto. * g++.dg/lookup/scoped6.C: Ditto. * g++.dg/lookup/using7.C: Ditto. * g++.dg/lookup/using9.C: Ditto. * g++.dg/other/abstract1.C: Ditto. * g++.dg/other/abstract2.C: Ditto. * g++.dg/other/anon5.C: Ditto. * g++.dg/other/crash-4.C: Ditto. * g++.dg/other/error10.C: Ditto. * g++.dg/other/error13.C: Ditto. * g++.dg/other/error20.C: Ditto. * g++.dg/other/error5.C: Ditto. * g++.dg/other/field1.C: Ditto. * g++.dg/other/offsetof5.C: Ditto. * g++.dg/other/semicolon.C: Ditto. * g++.dg/overload/ambig1.C: Ditto. * g++.dg/overload/arg3.C: Ditto. * g++.dg/overload/builtin1.C: Ditto. * g++.dg/overload/copy1.C: Ditto. * g++.dg/overload/new1.C: Ditto. * g++.dg/overload/template4.C: Ditto. * g++.dg/overload/using2.C: Ditto. * g++.dg/parse/bitfield2.C: Ditto. * g++.dg/parse/constant4.C: Ditto. * g++.dg/parse/crash20.C: Ditto. * g++.dg/parse/crash36.C: Ditto. * g++.dg/parse/crash5.C: Ditto. * g++.dg/parse/error11.C: Ditto. * g++.dg/parse/error12.C: Ditto. * g++.dg/parse/error19.C: Ditto. * g++.dg/parse/error28.C: Ditto. * g++.dg/parse/friend5.C: Ditto. * g++.dg/parse/invalid-op1.C: Ditto. * g++.dg/parse/missing-template1.C: Ditto. * g++.dg/parse/non-dependent2.C: Ditto. * g++.dg/parse/ret-type2.C: Ditto. * g++.dg/parse/specialization1.C: Ditto. * g++.dg/parse/template18.C: Ditto. * g++.dg/parse/template3.C: Ditto. * g++.dg/parse/template9.C: Ditto. * g++.dg/tc1/dr108.C: Ditto. * g++.dg/tc1/dr152.C: Ditto. * g++.dg/tc1/dr166.C: Ditto. * g++.dg/template/access11.C: Ditto. * g++.dg/template/access2.C: Ditto. * g++.dg/template/access3.C: Ditto. * g++.dg/template/access7.C: Ditto. * g++.dg/template/copy1.C: Ditto. * g++.dg/template/crash13.C: Ditto. * g++.dg/template/crash37.C: Ditto. * g++.dg/template/crash40.C: Ditto. * g++.dg/template/crash58.C: Ditto. * g++.dg/template/ctor5.C: Ditto. * g++.dg/template/dependent-expr5.C: Ditto. * g++.dg/template/eh2.C: Ditto. * g++.dg/template/error2.C: Ditto. * g++.dg/template/error33.C: Ditto. * g++.dg/template/error4.C: Ditto. * g++.dg/template/friend31.C: Ditto. * g++.dg/template/friend32.C: Ditto. * g++.dg/template/instantiate1.C: Ditto. * g++.dg/template/instantiate3.C: Ditto. * g++.dg/template/instantiate5.C: Ditto. * g++.dg/template/instantiate7.C: Ditto. * g++.dg/template/local6.C: Ditto. * g++.dg/template/lookup2.C: Ditto. * g++.dg/template/member5.C: Ditto. * g++.dg/template/memfriend15.C: Ditto. * g++.dg/template/memfriend16.C: Ditto. * g++.dg/template/memfriend17.C: Ditto. * g++.dg/template/memfriend7.C: Ditto. * g++.dg/template/meminit1.C: Ditto. * g++.dg/template/nested3.C: Ditto. * g++.dg/template/new3.C: Ditto. * g++.dg/template/nontype12.C: Ditto. * g++.dg/template/nontype13.C: Ditto. * g++.dg/template/nontype6.C: Ditto. * g++.dg/template/non-type-template-argument-1.C: Ditto. * g++.dg/template/overload9.C: Ditto. * g++.dg/template/ptrmem15.C: Ditto. * g++.dg/template/ptrmem17.C: Ditto. * g++.dg/template/ptrmem4.C: Ditto. * g++.dg/template/ptrmem6.C: Ditto. * g++.dg/template/ptrmem8.C: Ditto. * g++.dg/template/qualified-id1.C: Ditto. * g++.dg/template/qualttp20.C: Ditto. * g++.dg/template/qualttp3.C: Ditto. * g++.dg/template/qualttp4.C: Ditto. * g++.dg/template/qualttp5.C: Ditto. * g++.dg/template/qualttp6.C: Ditto. * g++.dg/template/qualttp7.C: Ditto. * g++.dg/template/qualttp8.C: Ditto. * g++.dg/template/recurse.C: Ditto. * g++.dg/template/sfinae10.C: Ditto. * g++.dg/template/sfinae3.C: Ditto. * g++.dg/template/spec22.C: Ditto. * g++.dg/template/spec23.C: Ditto. * g++.dg/template/static9.C: Ditto. * g++.dg/template/template-id-2.C: Ditto. * g++.dg/template/typename2.C: Ditto. * g++.dg/template/typename4.C: Ditto. * g++.dg/template/using14.C: Ditto. * g++.dg/template/using2.C: Ditto. * g++.dg/template/warn1.C: Ditto. * g++.dg/warn/incomplete1.C: Ditto. * g++.dg/warn/noeffect2.C: Ditto. * g++.dg/warn/noeffect4.C: Ditto. * g++.dg/warn/pr8570.C: Ditto. * g++.dg/warn/Wparentheses-13.C: Ditto. * g++.dg/warn/Wparentheses-15.C: Ditto. * g++.dg/warn/Wparentheses-16.C: Ditto. * g++.dg/warn/Wparentheses-17.C: Ditto. * g++.dg/warn/Wparentheses-18.C: Ditto. * g++.dg/warn/Wparentheses-19.C: Ditto. * g++.dg/warn/Wparentheses-20.C: Ditto. * g++.dg/warn/Wparentheses-23.C: Ditto. * g++.dg/warn/Wstrict-aliasing-3.C: Ditto. * g++.old-deja/g++.benjamin/15799.C: Ditto. * g++.old-deja/g++.benjamin/15800-1.C: Ditto. * g++.old-deja/g++.benjamin/16077.C: Ditto. * g++.old-deja/g++.bob/inherit2.C: Ditto. * g++.old-deja/g++.brendan/ambiguity1.C: Ditto. * g++.old-deja/g++.brendan/crash29.C: Ditto. * g++.old-deja/g++.brendan/crash48.C: Ditto. * g++.old-deja/g++.brendan/crash56.C: Ditto. * g++.old-deja/g++.brendan/cvt3.C: Ditto. * g++.old-deja/g++.brendan/overload1.C: Ditto. * g++.old-deja/g++.brendan/overload4.C: Ditto. * g++.old-deja/g++.brendan/overload9.C: Ditto. * g++.old-deja/g++.bugs/900127_01.C: Ditto. * g++.old-deja/g++.bugs/900205_04.C: Ditto. * g++.old-deja/g++.bugs/900330_02.C: Ditto. * g++.old-deja/g++.bugs/900404_03.C: Ditto. * g++.old-deja/g++.bugs/900514_03.C: Ditto. * g++.old-deja/g++.eh/ctor1.C: Ditto. * g++.old-deja/g++.eh/spec6.C: Ditto. * g++.old-deja/g++.ext/overload1.C: Ditto. * g++.old-deja/g++.jason/conversion11.C: Ditto. * g++.old-deja/g++.jason/crash3.C: Ditto. * g++.old-deja/g++.jason/lineno3.C: Ditto. * g++.old-deja/g++.jason/lineno4.C: Ditto. * g++.old-deja/g++.jason/opeq3.C: Ditto. * g++.old-deja/g++.jason/overload16.C: Ditto. * g++.old-deja/g++.jason/overload28.C: Ditto. * g++.old-deja/g++.jason/pmf5.C: Ditto. * g++.old-deja/g++.jason/scoping10.C: Ditto. * g++.old-deja/g++.jason/template30.C: Ditto. * g++.old-deja/g++.jason/temporary2.C: Ditto. * g++.old-deja/g++.jason/tredecl4.C: Ditto. * g++.old-deja/g++.law/arg11.C: Ditto. * g++.old-deja/g++.law/arg1.C: Ditto. * g++.old-deja/g++.law/arm9.C: Ditto. * g++.old-deja/g++.law/ctors11.C: Ditto. * g++.old-deja/g++.law/ctors17.C: Ditto. * g++.old-deja/g++.law/ctors5.C: Ditto. * g++.old-deja/g++.law/ctors9.C: Ditto. * g++.old-deja/g++.law/enum4.C: Ditto. * g++.old-deja/g++.law/missed-error2.C: Ditto. * g++.old-deja/g++.law/operators9.C: Ditto. * g++.old-deja/g++.mike/net22.C: Ditto. * g++.old-deja/g++.mike/net2.C: Ditto. * g++.old-deja/g++.mike/p11110.C: Ditto. * g++.old-deja/g++.mike/p1989.C: Ditto. * g++.old-deja/g++.mike/p2431.C: Ditto. * g++.old-deja/g++.mike/p438.C: Ditto. * g++.old-deja/g++.mike/p807a.C: Ditto. * g++.old-deja/g++.mike/p9068.C: Ditto. * g++.old-deja/g++.niklas/t120.C: Ditto. * g++.old-deja/g++.niklas/t121.C: Ditto. * g++.old-deja/g++.niklas/t128.C: Ditto. * g++.old-deja/g++.ns/overload2.C: Ditto. * g++.old-deja/g++.ns/template13.C: Ditto. * g++.old-deja/g++.ns/using12.C: Ditto. * g++.old-deja/g++.oliva/delete1.C: Ditto. * g++.old-deja/g++.oliva/overload1.C: Ditto. * g++.old-deja/g++.other/crash24.C: Ditto. * g++.old-deja/g++.other/crash25.C: Ditto. * g++.old-deja/g++.other/decl3.C: Ditto. * g++.old-deja/g++.other/expr1.C: Ditto. * g++.old-deja/g++.other/overcnv2.C: Ditto. * g++.old-deja/g++.other/overload11.C: Ditto. * g++.old-deja/g++.other/pmf3.C: Ditto. * g++.old-deja/g++.other/ptrmem7.C: Ditto. * g++.old-deja/g++.other/vaarg3.C: Ditto. * g++.old-deja/g++.other/volatile1.C: Ditto. * g++.old-deja/g++.pt/assign1.C: Ditto. * g++.old-deja/g++.pt/auto_ptr.C: Ditto. * g++.old-deja/g++.pt/const2.C: Ditto. * g++.old-deja/g++.pt/crash10.C: Ditto. * g++.old-deja/g++.pt/crash20.C: Ditto. * g++.old-deja/g++.pt/crash36.C: Ditto. * g++.old-deja/g++.pt/crash38.C: Ditto. * g++.old-deja/g++.pt/derived3.C: Ditto. * g++.old-deja/g++.pt/error2.C: Ditto. * g++.old-deja/g++.pt/explicit34.C: Ditto. * g++.old-deja/g++.pt/explicit70.C: Ditto. * g++.old-deja/g++.pt/friend23.C: Ditto. * g++.old-deja/g++.pt/ptrmem10.C: Ditto. * g++.old-deja/g++.pt/redecl1.C: Ditto. * g++.old-deja/g++.pt/spec35.C: Ditto. * g++.old-deja/g++.pt/t05.C: Ditto. * g++.old-deja/g++.pt/typename3.C: Ditto. * g++.old-deja/g++.pt/typename6.C: Ditto. * g++.old-deja/g++.pt/unify8.C: Ditto. * g++.old-deja/g++.pt/vaarg3.C: Ditto. * g++.old-deja/g++.robertl/eb109.C: Ditto. * g++.old-deja/g++.robertl/eb131.C: Ditto. * g++.old-deja/g++.robertl/eb22.C: Ditto. * g++.old-deja/g++.robertl/eb44.C: Ditto. * g++.old-deja/g++.robertl/eb4.C: Ditto. * g++.old-deja/g++.robertl/eb69.C: Ditto. * g++.dg/parse/constructor1.C: Remove "error" from dg-error, preserving column number. * g++.dg/parse/error10.C: Ditto. * g++.dg/parse/error13.C: Ditto. * g++.dg/parse/error14.C: Ditto. * g++.dg/parse/error15.C: Ditto. * g++.dg/parse/error16.C: Ditto. * g++.dg/parse/error17.C: Ditto. * g++.dg/parse/error18.C: Ditto. * g++.dg/parse/error1.C: Ditto. * g++.dg/parse/error20.C: Ditto. * g++.dg/parse/error21.C: Ditto. * g++.dg/parse/error22.C: Ditto. * g++.dg/parse/error23.C: Ditto. * g++.dg/parse/error24.C: Ditto. * g++.dg/parse/error25.C: Ditto. * g++.dg/parse/error26.C: Ditto. * g++.dg/parse/error27.C: Ditto. * g++.dg/parse/error29.C: Ditto. * g++.dg/parse/error2.C: Ditto. * g++.dg/parse/error30.C: Ditto. * g++.dg/parse/error31.C: Ditto. * g++.dg/parse/error3.C: Ditto. * g++.dg/parse/error4.C: Ditto. * g++.dg/parse/error5.C: Ditto. * g++.dg/parse/error6.C: Ditto. * g++.dg/parse/error7.C: Ditto. * g++.dg/parse/error8.C: Ditto. * g++.dg/parse/error9.C: Ditto. * g++.dg/parse/error-column.C: Ditto. * g++.dg/template/crash80.C: Ditto. * g++.dg/template/friend44.C: Ditto. * g++.dg/warn/pr26785.C: Ditto. * g++.old-deja/g++.brendan/crash16.C: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140476 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/37095jakub2008-09-021-0/+14
| | | | | | | | | | | * cgraph.c (cgraph_node): When creating new cgraph node after assembler_name_hash has been populated, record it in the hash table. * g++.dg/inherit/thunk9.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139887 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/35985reichelt2008-08-081-0/+8
| | | | | | | | | | * decl.c (xref_basetypes): Check base for MAYBE_CLASS_TYPE_P, and make sure it is not a union. * g++.dg/inherit/base3.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138886 138bc75d-0d04-0410-961f-82ee72b054a4
* * lib/target-supports.exp (check_effective_target_arm_thumb1_ok):jsm282008-07-251-1/+1
| | | | | | | | New. * g++.dg/inherit/thunk8.C: Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138143 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/cp/ChangeLog:jason2008-07-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-07-02 Jason Merrill <jason@redhat.com> Implement WG21 N2672, Initializer List proposed wording * cp-tree.h (enum cp_tree_index): Add CPTI_INIT_LIST_TYPE. (struct lang_type_class): Add has_list_ctor bitfield. (TYPE_HAS_LIST_CTOR): New macro. (BRACE_ENCLOSED_INITIALIZER_P): Expect init_list_type_node. (CONSTRUCTOR_IS_DIRECT_INIT): New macro. (LOOKUP_NO_NARROWING): New macro. (LOOKUP_NO_COPY_CTOR_CONVERSION): New macro. * parser.c (cp_parse_braced_list): Split out from... (cp_parser_initializer_clause): ...here. (cp_parser_postfix_expression): Build up CONSTRUCTOR for compound literal here. (cp_lexer_next_token_is_not_keyword): New fn. (cp_parser_parenthesized_expression_list): Handle { }. (cp_parser_new_expression, cp_parser_new_initializer): Likewise. (cp_parser_assignment_expression, cp_parser_condition): Likewise. (cp_parser_jump_statement, cp_parser_simple_declaration): Likewise. (cp_parser_mem_initializer, cp_parser_init_declarator): Likewise. (cp_parser_initializer, cp_parser_functional_cast): Likewise. (cp_parser_omp_for_loop, cp_parser_cache_group): Likewise. (cp_parser_save_member_function_body): Likewise. * call.c (conversion_kind): Add ck_list, ck_aggr. (struct conversion): Add check_narrowing bitfield, conversion list. (build_list_conv): New fn. (build_aggr_conv): New fn. (implicit_conversion): Call them. (standard_conversion): Set check_narrowing if appropriate. (add_function_candidate): Handle LOOKUP_NO_COPY_CTOR_CONVERSION. (build_user_type_conversion_1): When converting from an init list, we allow additional conversions except when calling a copy ctor. (convert_like_real): Calling an explicit ctor for an init list is ill-formed. Handle ck_list and ck_addr. Check narrowing. (build_new_method_call): If CONSTRUCTOR_IS_DIRECT_INIT is set and class doesn't have a list ctor, break the {} into a TREE_LIST. (compare_ics): ck_list is better than other UDCs. (set_up_extended_ref_temp): Split out from initialize_reference. (is_std_init_list): New fn. (is_list_ctor): New fn. * decl.c (cxx_init_decl_processing): Create init_list_type_node. (reshape_init_array_1): Pass it to build_constructor. (reshape_init_class): Ditto. (initialize_artificial_var): Pass the appropriate type. (build_aggr_init_full_exprs): Split out from... (check_initializer): ...here. Handle new semantics. (build_init_list_var_init): New subroutine of check_initializer. (grokdeclarator): Converting constructors can have more than one parm. (grok_special_member_properties): Set TYPE_HAS_LIST_CTOR. * init.c (expand_default_init): Only do digest_init for aggregates. * rtti.c (tinfo_base_init): Pass init_list_type_node to build_constructor_from_list. (generic_initializer, ptr_initializer): Ditto. (ptm_initializer, class_initializer): Ditto. (get_pseudo_ti_init): Ditto. * error.c (dump_type): Handle init_list_type_node. (maybe_warn_cpp0x): New fn. (maybe_varn_variadic_templates): Call it. * cvt.c (ocp_convert): Handle conversion from { }. * tree.c (build_array_of_n_type): New fn. * typeck2.c (store_init_value): Use init_list_type_node. (digest_init): Likewise. (check_narrowing): New fn. * semantics.c: (finish_compound_literal): Take CONSTRUCTOR instead of vector of constructor elts. Handle non-aggregate types. Make constant literals static. * pt.c: (tsubst_copy_and_build): Adjust. (unify): Handle { }. * name-lookup.c (arg_assoc_type): Handle init_list_type_node. gcc/ChangeLog: 2008-07-02 Jason Merrill <jason@redhat.com> * tree.c (ctor_to_list): New fn. * tree.h: Declare it. (CONSTRUCTOR_ELT): New macro. (CONSTRUCTOR_NELTS): New macro. libstdc++-v3/ChangeLog: 2008-07-02 Jason Merrill <jason@redhat.com> * libsupc++/initializer_list: New file. * include/bits/stl_map.h (insert(initializer_list)): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137361 138bc75d-0d04-0410-961f-82ee72b054a4
* * g++.dg/inherit/override-attribs.C: Require ilp32 x86 target.uros2008-03-111-1/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133111 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/35007jason2008-01-291-0/+17
| | | | | | | * class.c (build_base_path): Fix !want_pointer case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131931 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/cptromey2007-11-081-0/+11
| | | | | | | | | | | | 2007-11-08 Andrew Pinski <pinskia@gmail.com> PR c++/30297: * tree.c (decl_linkage): Fields have no linkage. gcc/testsuite PR c++/30297: * g++.dg/inherit/pr30297.C: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130018 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/14688dannysmith2007-09-251-0/+22
| | | | | | | | | | | | | | | * config/i386/i386.c (ix86_comp_type_attributes): Check METHOD_TYPE too. cp * search.c (check_final_overrider): Fail if targetm.comp_type_attributes returns 0. testsuite * g++.dg/inherit/override_attribs.C: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128740 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-07-11 Paolo Carlini <pcarlini@suse.de>paolo2007-07-111-0/+24
| | | | | | | | PR c++/31027 * g++.dg/inherit/virtual4.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126558 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.target/arm/pr27387.C: Move and rename to ...kazu2007-05-301-0/+26
| | | | | | | * g++.dg/inherit/thunk8.C: ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125197 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/31074jason2007-04-131-0/+31
| | | | | | | | * call.c (reference_binding): Add c_cast_p parm. If true, add quals to TO as needed to make it reference-compatible. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123805 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-22 Dirk Mueller <dmueller@suse.de>mueller2007-03-223-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * g++.old-deja/g++.brendan/warnings2.C: Don't use -pedantic. * g++.dg/other/static1.C: Remove stray semicolon. * g++.dg/other/init1.C: Likewise. * g++.dg/rtti/dyncast1.C: Likewise. * g++.dg/tree-ssa/pr17153.C: Likewise. * g++.dg/lookup/disamb1.C: Likewise. * g++.dg/lookup/scoped2.C: Likewise. * g++.dg/lookup/friend7.C: Likewise. * g++.dg/parse/parse4.C: Likewise. * g++.dg/parse/parse5.C: Likewise. * g++.dg/expr/pr29066.C: Likewise. * g++.dg/expr/cast4.C: Likewise. * g++.dg/tc1/dr193.C: Likewise. * g++.dg/tc1/dr213.C: Likewise. * g++.dg/abi/dcast1.C: Likewise. * g++.dg/abi/covariant2.C: Likewise. * g++.dg/inherit/covariant11.C: Likewise. * g++.dg/inherit/covariant9.C: Likewise. * g++.dg/inherit/covariant10.C: Likewise. * g++.dg/init/static3.C: Likewise. * g++.dg/init/init-ref3.C: Likewise. * g++.dg/init/ref10.C: Likewise. * g++.dg/template/meminit2.C: Likewise. * g++.dg/template/using9.C: Likewise. * g++.dg/template/friend9.C: Likewise. * g++.dg/template/ref1.C: Likewise. * g++.old-deja/g++.warn/inline.C: Likewise. * g++.old-deja/g++.robertl/eb91.C: Likewise. * g++.old-deja/g++.robertl/eb46.C: Likewise. * g++.old-deja/g++.robertl/eb34.C: Likewise. * g++.old-deja/g++.robertl/eb43.C: Likewise. * g++.old-deja/g++.robertl/eb26.C: Likewise. * g++.old-deja/g++.robertl/eb116.C: Likewise. * g++.old-deja/g++.brendan/copy5.C: Likewise. * g++.old-deja/g++.brendan/overload8.C: Likewise. * g++.old-deja/g++.brendan/overload11.C: Likewise. * g++.old-deja/g++.brendan/copy7.C: Likewise. * g++.old-deja/g++.brendan/crash38.C: Likewise. * g++.old-deja/g++.brendan/template11.C: Likewise. * g++.old-deja/g++.brendan/err-msg3.C: Likewise. * g++.old-deja/g++.brendan/crash50.C: Likewise. * g++.old-deja/g++.brendan/crash16.C: Likewise. * g++.old-deja/g++.jason/pmem2.C: Likewise. * g++.old-deja/g++.jason/parse9.C: Likewise. * g++.old-deja/g++.jason/byval2.C: Likewise. * g++.old-deja/g++.jason/overload8.C: Likewise. * g++.old-deja/g++.jason/pmf8.C: Likewise. * g++.old-deja/g++.jason/template33.C: Likewise. * g++.old-deja/g++.jason/return3.C: Likewise. * g++.old-deja/g++.jason/scoping2.C: Likewise. * g++.old-deja/g++.jason/virtual.C: Likewise. * g++.old-deja/g++.jason/opeq3.C: Likewise. * g++.old-deja/g++.jason/template27.C: Likewise. * g++.old-deja/g++.jason/synth6.C: Likewise. * g++.old-deja/g++.jason/ref8.C: Likewise. * g++.old-deja/g++.jason/offset1.C: Likewise. * g++.old-deja/g++.other/static20.C: Likewise. * g++.old-deja/g++.other/array1.C: Likewise. * g++.old-deja/g++.other/new3.C: Likewise. * g++.old-deja/g++.other/array2.C: Likewise. * g++.old-deja/g++.other/overload9.C: Likewise. * g++.old-deja/g++.other/cast6.C: Likewise. * g++.old-deja/g++.other/ptrmem8.C: Likewise. * g++.old-deja/g++.other/eh4.C: Likewise. * g++.old-deja/g++.other/using7.C: Likewise. * g++.old-deja/g++.other/init18.C: Likewise. * g++.old-deja/g++.other/dyncast1.C: Likewise. * g++.old-deja/g++.other/dyncast2.C: Likewise. * g++.old-deja/g++.other/dtor11.C: Likewise. * g++.old-deja/g++.pt/static11.C: Likewise. * g++.old-deja/g++.pt/crash19.C: Likewise. * g++.old-deja/g++.pt/overload12.C: Likewise. * g++.old-deja/g++.pt/crash46.C: Likewise. * g++.old-deja/g++.pt/mi1.C: Likewise. * g++.old-deja/g++.pt/vaarg3.C: Likewise. * g++.old-deja/g++.pt/nontype5.C: Likewise. * g++.old-deja/g++.pt/local5.C: Likewise. * g++.old-deja/g++.pt/typename2.C: Likewise. * g++.old-deja/g++.pt/explicit80.C: Likewise. * g++.old-deja/g++.pt/auto_ptr.C: Likewise. * g++.old-deja/g++.law/visibility1.C: Likewise. * g++.old-deja/g++.law/visibility2.C: Likewise. * g++.old-deja/g++.law/virtual2.C: Likewise. * g++.old-deja/g++.law/operators19.C: Likewise. * g++.old-deja/g++.law/parsing10.C: Likewise. * g++.old-deja/g++.law/visibility4.C: Likewise. * g++.old-deja/g++.law/operators4.C: Likewise. * g++.old-deja/g++.law/dtors2.C: Likewise. * g++.old-deja/g++.law/missed-error3.C: Likewise. * g++.old-deja/g++.law/visibility10.C: Likewise. * g++.old-deja/g++.law/scope3.C: Likewise. * g++.old-deja/g++.law/casts2.C: Likewise. * g++.old-deja/g++.law/code-gen5.C: Likewise. * g++.old-deja/g++.law/operators33.C: Likewise. * g++.old-deja/g++.law/friend4.C: Likewise. * g++.old-deja/g++.mike/pmf7.C: Likewise. * g++.old-deja/g++.mike/p5611.C: Likewise. * g++.old-deja/g++.mike/net37.C: Likewise. * g++.old-deja/g++.mike/p3570.C: Likewise. * g++.old-deja/g++.mike/p5718.C: Likewise. * g++.old-deja/g++.mike/net21.C: Likewise. * g++.old-deja/g++.mike/p1862.C: Likewise. * g++.old-deja/g++.mike/p4511.C: Likewise. * g++.old-deja/g++.mike/virt3.C: Likewise. * g++.old-deja/g++.mike/p16146.C: Likewise. * g++.old-deja/g++.mike/p1989.C: Likewise. * g++.old-deja/g++.mike/p5571.C: Likewise. * g++.old-deja/g++.gb/scope10.C: Likewise. * g++.old-deja/g++.abi/primary5.C: Likewise. * g++.old-deja/g++.abi/empty2.C: Likewise. * g++.old-deja/g++.abi/arraynew.C: Likewise. * g++.old-deja/g++.eh/vbase4.C: Likewise. * g++.old-deja/g++.eh/ptr1.C: Likewise. * g++.old-deja/g++.eh/cleanup1.C: Likewise. * g++.old-deja/g++.bob/template3.C: Likewise. * g++.old-deja/g++.bob/inherit1.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123132 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-02 Simon Martin <simartin@users.sourceforge.net>simartin2007-03-021-0/+17
| | | | | | | | | PR c++/28253 * class.c (update_vtable_entry_for_fn): Properly handle invalid overriders for thunks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122490 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud