| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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++/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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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++/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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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++/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
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* 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/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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144945 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133111 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
* g++.dg/inherit/thunk8.C: ... here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125197 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
| |
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
|