diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-30 14:23:29 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-30 14:23:29 +0000 |
commit | 92b17925e053f1044328100acee8e6ddca553d05 (patch) | |
tree | 56dda32931a24ed4b4924be0c66a5f961af318ec /gcc/tree-eh.c | |
parent | 833adb8d7a201ed21bff6fa9d2f9ed95c105dbc3 (diff) | |
download | gcc-92b17925e053f1044328100acee8e6ddca553d05.tar.gz |
2009-09-30 Basile Starynkevitch <basile@starynkevitch.net>
[merged with trunk while LTO is merging inside trunk, however the
trunk's gengtype should now work for MELT, unchanged except by
addition of "melt-runtime.h"]
MELT branch merged with trunk rev 152324
--This line, and those below, will be ignored-
-
_M .
M configure
M Makefile.in
M libgomp/configure
M libgomp/ChangeLog
M libgomp/acinclude.m4
M config.guess
M gcc/tree-vrp.c
M gcc/doc/plugins.texi
M gcc/doc/extend.texi
M gcc/doc/tm.texi
M gcc/doc/invoke.texi
M gcc/doc/gty.texi
M gcc/doc/install.texi
M gcc/tree-into-ssa.c
M gcc/targhooks.c
M gcc/tree-complex.c
M gcc/targhooks.h
M gcc/gengtype.c
M gcc/java/builtins.c
M gcc/java/ChangeLog
M gcc/java/lang.c
M gcc/optabs.c
M gcc/optabs.h
M gcc/DATESTAMP
M gcc/value-prof.c
M gcc/tree.c
M gcc/tree.h
M gcc/tree-pass.h
M gcc/target.h
M gcc/configure
M gcc/builtins.c
M gcc/final.c
M gcc/fold-const.c
M gcc/cfgloopanal.c
M gcc/toplev.c
M gcc/ChangeLog
A + gcc/testsuite/gcc.c-torture/execute/pr41463.c
M gcc/testsuite/gcc.c-torture/execute/980526-2.c
A + gcc/testsuite/gcc.c-torture/execute/pr41395-2.c
A + gcc/testsuite/gcc.c-torture/execute/ifcvt-onecmpl-abs-1.c
A + gcc/testsuite/gcc.c-torture/execute/pr41395-1.c
A + gcc/testsuite/gcc.c-torture/compile/pr39779.c
A + gcc/testsuite/gcc.c-torture/compile/pr41469.c
A + gcc/testsuite/gcc.target/alpha/pr22093.c
M gcc/testsuite/gcc.target/i386/i386.exp
M gcc/testsuite/gcc.target/i386/isa-1.c
A + gcc/testsuite/gcc.target/i386/isa-12.c
A + gcc/testsuite/gcc.target/i386/fma4-maccXX.c
A + gcc/testsuite/gcc.target/i386/fma4-256-maccXX.c
A + gcc/testsuite/gcc.target/i386/fma4-check.h
A + gcc/testsuite/gcc.target/i386/fma4-msubXX.c
A + gcc/testsuite/gcc.target/i386/isa-3.c
A + gcc/testsuite/gcc.target/i386/fma4-256-msubXX.c
M gcc/testsuite/gcc.target/i386/isa-14.c
A + gcc/testsuite/gcc.target/i386/fma4-fma.c
M gcc/testsuite/gcc.target/i386/isa-5.c
A + gcc/testsuite/gcc.target/i386/isa-7.c
A + gcc/testsuite/gcc.target/i386/funcspec-2.c
A + gcc/testsuite/gcc.target/i386/isa-9.c
M gcc/testsuite/gcc.target/i386/funcspec-4.c
M gcc/testsuite/gcc.target/i386/pr12329.c
A + gcc/testsuite/gcc.target/i386/ifcvt-onecmpl-abs-1.c
M gcc/testsuite/gcc.target/i386/funcspec-6.c
A + gcc/testsuite/gcc.target/i386/fma4-vector.c
A + gcc/testsuite/gcc.target/i386/fma4-256-vector.c
M gcc/testsuite/gcc.target/i386/funcspec-8.c
A + gcc/testsuite/gcc.target/i386/sse-12.c
M gcc/testsuite/gcc.target/i386/avx-2.c
A + gcc/testsuite/gcc.target/i386/isa-11.c
A + gcc/testsuite/gcc.target/i386/sse-14.c
M gcc/testsuite/gcc.target/i386/sse-23.c
A + gcc/testsuite/gcc.target/i386/isa-2.c
A + gcc/testsuite/gcc.target/i386/isa-13.c
A + gcc/testsuite/gcc.target/i386/isa-4.c
A + gcc/testsuite/gcc.target/i386/fma4-nmaccXX.c
M gcc/testsuite/gcc.target/i386/isa-6.c
A + gcc/testsuite/gcc.target/i386/fma4-nmsubXX.c
A + gcc/testsuite/gcc.target/i386/isa-8.c
A + gcc/testsuite/gcc.target/i386/fma4-256-nmaccXX.c
M gcc/testsuite/gcc.target/i386/funcspec-5.c
A + gcc/testsuite/gcc.target/i386/fma4-256-nmsubXX.c
M gcc/testsuite/gcc.target/i386/avx-1.c
R + gcc/testsuite/gcc.target/i386/funcspec-9.c
A + gcc/testsuite/gcc.target/i386/isa-10.c
A + gcc/testsuite/gcc.target/i386/sse-13.c
A + gcc/testsuite/gcc.target/i386/sse-22.c
_M gcc/testsuite/gcc.target/x86_64/abi/callabi
A + gcc/testsuite/gcc.target/vsx-vectorize-1.c
M gcc/testsuite/gcc.target/mips/code-readable-1.c
M gcc/testsuite/gcc.target/mips/code-readable-2.c
M gcc/testsuite/gcc.target/mips/code-readable-3.c
A + gcc/testsuite/gcc.target/vsx-vectorize-2.c
A + gcc/testsuite/gcc.target/vsx-vectorize-3.c
A + gcc/testsuite/gcc.target/vsx-vectorize-4.c
A + gcc/testsuite/gcc.target/vsx-vectorize-5.c
A + gcc/testsuite/gcc.target/vsx-vectorize-6.c
A + gcc/testsuite/gcc.target/vsx-vectorize-7.c
A + gcc/testsuite/gcc.target/vsx-vectorize-8.c
M gcc/testsuite/gnat.dg/array7.adb
M gcc/testsuite/gnat.dg/array7.ads
A + gcc/testsuite/gnat.dg/nested_proc.adb
A + gcc/testsuite/gnat.dg/array9.adb
A + gcc/testsuite/gnat.dg/sse_nolib.adb
A + gcc/testsuite/gnat.dg/tagged_alloc_free.adb
A + gcc/testsuite/gcc.dg/pr41470.c
A + gcc/testsuite/gcc.dg/guality/pr41353-1.c
M gcc/testsuite/gcc.dg/guality/guality.h
M gcc/testsuite/gcc.dg/guality/guality.exp
A + gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c
M gcc/testsuite/gcc.dg/debug/dwarf2/const-1.c
A + gcc/testsuite/gcc.dg/cond-constqual-1.c
A + gcc/testsuite/gcc.dg/20090922-1.c
A + gcc/testsuite/gcc.dg/pr40209.c
M gcc/testsuite/gcc.dg/builtins-44.c
A + gcc/testsuite/gcc.dg/pr41454.c
M gcc/testsuite/gcc.dg/torture/builtin-math-7.c
_M gcc/testsuite/gcc.dg/torture/pr36227.c
A + gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c
M gcc/testsuite/gcc.dg/tree-ssa/fre-vce-1.c
M gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
A + gcc/testsuite/gcc.dg/pr41248.c
A + gcc/testsuite/gcc.dg/pr41295.c
M gcc/testsuite/gcc.dg/vect/vect.exp
M gcc/testsuite/ChangeLog
M gcc/testsuite/gcc.test-framework/dg-bogus-exp-XF.c
M gcc/testsuite/gcc.test-framework/dg-warning-exp-P.c
M gcc/testsuite/g++.dg/other/i386-2.C
M gcc/testsuite/g++.dg/other/i386-6.C
M gcc/testsuite/g++.dg/other/i386-3.C
M gcc/testsuite/g++.dg/other/i386-5.C
M gcc/testsuite/g++.dg/tree-ssa/pr19637.C
A + gcc/testsuite/g++.dg/tree-ssa/pr41428.C
M gcc/testsuite/g++.dg/dg.exp
A + gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C
M gcc/testsuite/g++.dg/debug/dwarf2/explicit-constructor.C
M gcc/testsuite/g++.dg/debug/dwarf2/imported-module-2.C
M gcc/testsuite/g++.dg/debug/dwarf2/imported-module-3.C
M gcc/testsuite/g++.dg/debug/dwarf2/const1.C
M gcc/testsuite/g++.dg/debug/dwarf2/imported-module-4.C
M gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-4.C
M gcc/testsuite/g++.dg/debug/dwarf2/template-func-params-7.C
M gcc/testsuite/g++.dg/debug/dwarf2/namespace-1.C
M gcc/testsuite/g++.dg/debug/dwarf2/template-params-4.C
M gcc/testsuite/g++.dg/vect/vect.exp
A + gcc/testsuite/g++.dg/cpp0x/lambda
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-lookup-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-type.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-field-names.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref-default.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-pass.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mixed.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-std-function.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default-neg.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-recursive.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C
A + gcc/testsuite/g++.dg/cpp0x/lambda/lambda-array.C
_M gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
A + gcc/testsuite/g++.dg/gomp/pr41429.C
A + gcc/testsuite/g++.dg/torture/pr38747.C
A + gcc/testsuite/g++.dg/dfp
A + gcc/testsuite/g++.dg/dfp/dfp.exp
A + gcc/testsuite/g++.dg/dfp/mangle-mode.C
M gcc/testsuite/objc.dg/dwarf-2.m
M gcc/testsuite/lib/profopt.exp
M gcc/testsuite/lib/scanasm.exp
M gcc/testsuite/lib/prune.exp
M gcc/testsuite/lib/target-supports.exp
M gcc/testsuite/gfortran.dg/warnings_are_errors_1.f
A + gcc/testsuite/gfortran.dg/block_2.f08
A + gcc/testsuite/gfortran.dg/block_4.f08
A + gcc/testsuite/gfortran.dg/round_1.f03
A + gcc/testsuite/gfortran.dg/block_6.f08
M gcc/testsuite/gfortran.dg/debug/pr37738.f
M gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f
A + gcc/testsuite/gfortran.dg/block_8.f08
A + gcc/testsuite/gfortran.dg/empty_label.f
M gcc/testsuite/gfortran.dg/f2003_io_3.f03
A + gcc/testsuite/gfortran.dg/block_1.f08
A + gcc/testsuite/gfortran.dg/block_5.f08
A + gcc/testsuite/gfortran.dg/block_3.f90
A + gcc/testsuite/gfortran.dg/block_7.f08
A + gcc/testsuite/gfortran.dg/empty_label.f90
M gcc/testsuite/gfortran.dg/vect/vect.exp
M gcc/testsuite/c-c++-common/dfp/func-vararg-mixed.c
M gcc/testsuite/c-c++-common/dfp/func-vararg-alternate-d32.c
M gcc/testsuite/c-c++-common/dfp/func-vararg-mixed-2.c
M gcc/testsuite/c-c++-common/dfp/func-vararg-dfp.c
M gcc/unwind-dw2-fde-glibc.c
M gcc/df-scan.c
M gcc/objcp/Make-lang.in
M gcc/objcp/ChangeLog
M gcc/objcp/objcp-lang.c
M gcc/cp/typeck.c
M gcc/cp/class.c
M gcc/cp/decl.c
M gcc/cp/method.c
M gcc/cp/error.c
M gcc/cp/tree.c
M gcc/cp/ChangeLog
M gcc/cp/cp-gimplify.c
M gcc/cp/typeck2.c
M gcc/cp/cp-lang.c
M gcc/cp/pt.c
M gcc/cp/semantics.c
M gcc/cp/parser.c
M gcc/cp/cp-tree.def
M gcc/cp/cp-objcp-common.c
M gcc/cp/cp-objcp-common.h
_M gcc/cp/ChangeLog-2007
_M gcc/cp/ChangeLog-2008
M gcc/cp/mangle.c
M gcc/cp/cp-tree.h
M gcc/cp/search.c
M gcc/cp/name-lookup.c
M gcc/cp/lex.c
M gcc/tree-ssa-ccp.c
M gcc/builtins.def
M gcc/tree-ssa-dom.c
M gcc/tree-ssa-propagate.c
M gcc/tree-ssa-propagate.h
M gcc/crtstuff.c
M gcc/ifcvt.c
M gcc/dwarf2out.c
M gcc/expr.h
M gcc/libgcc2.c
M gcc/ada/ChangeLog
M gcc/ada/gcc-interface/utils.c
M gcc/ada/gcc-interface/Makefile.in
M gcc/ada/gcc-interface/decl.c
M gcc/ada/gcc-interface/targtyps.c
M gcc/ada/gcc-interface/utils2.c
M gcc/ada/gcc-interface/gigi.h
M gcc/ada/gcc-interface/trans.c
M gcc/ada/gcc-interface/ada-tree.h
M gcc/ada/gcc-interface/ada.h
M gcc/ada/gcc-interface/misc.c
M gcc/melt-runtime.c
M gcc/c-decl.c
M gcc/tree-eh.c
M gcc/fortran/decl.c
M gcc/fortran/gfortran.h
M gcc/fortran/error.c
M gcc/fortran/ChangeLog
M gcc/fortran/trans-stmt.c
M gcc/fortran/trans-stmt.h
M gcc/fortran/trans.c
M gcc/fortran/trans.h
M gcc/fortran/io.c
M gcc/fortran/resolve.c
M gcc/fortran/f95-lang.c
M gcc/fortran/st.c
M gcc/fortran/match.c
M gcc/fortran/trans-decl.c
M gcc/fortran/match.h
M gcc/fortran/parse.c
M gcc/fortran/parse.h
M gcc/fortran/simplify.c
M gcc/configure.ac
M gcc/function.c
M gcc/langhooks.h
M gcc/function.h
M gcc/stor-layout.c
M gcc/alias.c
M gcc/ggc.h
M gcc/c-typeck.c
M gcc/gcc-plugin.h
M gcc/calls.c
M gcc/tree-ssa-coalesce.c
M gcc/ggc-common.c
M gcc/tree-dfa.c
M gcc/except.c
M gcc/emit-rtl.c
M gcc/except.h
M gcc/cfgexpand.c
M gcc/c-opts.c
M gcc/loop-iv.c
M gcc/print-tree.c
M gcc/tree-ssa-copy.c
M gcc/tree-ssa-forwprop.c
M gcc/common.opt
M gcc/varasm.c
M gcc/tree-nested.c
M gcc/target-def.h
M gcc/rtl.h
M gcc/tree-vect-stmts.c
M gcc/tree-inline.c
M gcc/var-tracking.c
M gcc/system.h
M gcc/plugin.c
M gcc/c-common.c
M gcc/tree-flow.h
M gcc/c-common.h
M gcc/config.gcc
M gcc/Makefile.in
M gcc/tree-cfg.c
M gcc/passes.c
M gcc/c-parser.c
M gcc/config/alpha/vms.h
M gcc/config/alpha/alpha.c
M gcc/config/alpha/alpha.h
M gcc/config/alpha/openbsd.h
M gcc/config/alpha/alpha.md
M gcc/config/frv/frv.h
M gcc/config/frv/frv-protos.h
M gcc/config/frv/frv.c
M gcc/config/s390/s390.c
M gcc/config/s390/s390.h
M gcc/config/s390/s390-protos.h
M gcc/config/m32c/m32c.c
M gcc/config/m32c/m32c.h
M gcc/config/m32c/m32c-protos.h
M gcc/config/spu/spu-protos.h
M gcc/config/spu/spu.c
M gcc/config/spu/spu.h
M gcc/config/sparc/sparc.md
M gcc/config/sparc/sparc-protos.h
M gcc/config/sparc/sparc.c
M gcc/config/sparc/sparc.h
M gcc/config/mep/mep-protos.h
M gcc/config/mep/mep.c
M gcc/config/mep/mep.h
M gcc/config/m32r/m32r.c
M gcc/config/m32r/m32r.h
A + gcc/config/openbsd-stdint.h
M gcc/config/i386/i386.h
M gcc/config/i386/cygming.h
M gcc/config/i386/cygwin.h
M gcc/config/i386/i386.md
M gcc/config/i386/smmintrin.h
M gcc/config/i386/cpuid.h
M gcc/config/i386/x86intrin.h
M gcc/config/i386/sse.md
M gcc/config/i386/i386-c.c
M gcc/config/i386/i386.opt
A + gcc/config/i386/fma4intrin.h
M gcc/config/i386/openbsdelf.h
D gcc/config/i386/mmintrin-common.h
M gcc/config/i386/mingw32.h
M gcc/config/i386/i386-protos.h
M gcc/config/i386/i386.c
D gcc/config/sh/symbian.c
M gcc/config/sh/sh-protos.h
A + gcc/config/sh/symbian-base.c
A + gcc/config/sh/symbian-cxx.c
M gcc/config/sh/symbian-post.h
M gcc/config/sh/sh.c
A + gcc/config/sh/sh-symbian.h
M gcc/config/sh/sh.h
A + gcc/config/sh/symbian-c.c
M gcc/config/sh/t-symbian
M gcc/config/pdp11/pdp11.c
M gcc/config/pdp11/pdp11.h
M gcc/config/avr/avr.c
M gcc/config/avr/avr.h
M gcc/config/crx/crx.h
M gcc/config/xtensa/xtensa.c
M gcc/config/xtensa/xtensa.h
M gcc/config/xtensa/xtensa-protos.h
M gcc/config/stormy16/stormy16.c
M gcc/config/stormy16/stormy16.h
M gcc/config/fr30/fr30.h
M gcc/config/fr30/fr30.c
M gcc/config/moxie/moxie.c
M gcc/config/moxie/moxie.h
M gcc/config/m68hc11/m68hc11-protos.h
M gcc/config/m68hc11/m68hc11.c
M gcc/config/m68hc11/m68hc11.h
A + gcc/config/openbsd-libpthread.h
M gcc/config/cris/cris.c
M gcc/config/cris/cris.h
M gcc/config/netbsd.h
M gcc/config/iq2000/iq2000.h
M gcc/config/iq2000/iq2000.c
M gcc/config/mn10300/mn10300.c
M gcc/config/mn10300/mn10300.h
M gcc/config/ia64/predicates.md
M gcc/config/ia64/ia64.c
M gcc/config/ia64/ia64.h
M gcc/config/ia64/ia64.md
M gcc/config/ia64/ia64-protos.h
M gcc/config/m68k/openbsd.h
M gcc/config/m68k/m68k.c
M gcc/config/m68k/netbsd-elf.h
M gcc/config/m68k/m68k.h
M gcc/config/rs6000/predicates.md
M gcc/config/rs6000/rs6000-protos.h
M gcc/config/rs6000/rs6000.c
M gcc/config/rs6000/vsx.md
M gcc/config/rs6000/rs6000.h
M gcc/config/rs6000/rs6000.md
M gcc/config/picochip/picochip.c
M gcc/config/picochip/picochip.h
M gcc/config/picochip/picochip-protos.h
M gcc/config/arc/arc.c
M gcc/config/arc/arc.h
M gcc/config/mcore/mcore.c
M gcc/config/mcore/mcore.h
M gcc/config/darwin.c
M gcc/config/darwin.h
M gcc/config/score/score3.c
M gcc/config/score/score7.c
M gcc/config/score/score3.h
M gcc/config/score/score-protos.h
M gcc/config/score/score7.h
M gcc/config/score/score.c
M gcc/config/score/score.h
M gcc/config/arm/arm.c
M gcc/config/arm/arm.h
M gcc/config/pa/pa-protos.h
M gcc/config/pa/pa.c
M gcc/config/pa/pa.h
M gcc/config/mips/openbsd.h
M gcc/config/mips/mips.c
M gcc/config/mips/mips.h
M gcc/config/t-freebsd
M gcc/config/openbsd.h
M gcc/config/freebsd-spec.h
M gcc/config/vax/vax.c
M gcc/config/vax/openbsd.h
M gcc/config/vax/vax.h
M gcc/config/h8300/h8300.c
M gcc/config/h8300/h8300.h
M gcc/config/v850/v850.c
M gcc/config/v850/v850.h
M gcc/config/mmix/mmix.h
M gcc/config/mmix/mmix-protos.h
M gcc/config/mmix/mmix.c
M gcc/config/bfin/bfin-protos.h
M gcc/config/bfin/bfin.c
M gcc/config/bfin/bfin.h
M gcc/stmt.c
M gcc/collect2.c
M gcc/langhooks-def.h
M gcc/reload1.c
M config.sub
M libstdc++-v3/configure
M libstdc++-v3/doc/xml/manual/intro.xml
M libstdc++-v3/doc/html/ext/lwg-closed.html
M libstdc++-v3/doc/html/ext/lwg-active.html
M libstdc++-v3/doc/html/ext/lwg-defects.html
M libstdc++-v3/include/parallel/multiway_merge.h
M libstdc++-v3/include/parallel/find_selectors.h
M libstdc++-v3/include/parallel/losertree.h
M libstdc++-v3/include/parallel/list_partition.h
M libstdc++-v3/include/parallel/for_each.h
M libstdc++-v3/include/parallel/multiseq_selection.h
M libstdc++-v3/include/parallel/workstealing.h
M libstdc++-v3/include/parallel/base.h
M libstdc++-v3/include/parallel/par_loop.h
M libstdc++-v3/include/parallel/numeric
M libstdc++-v3/include/parallel/equally_split.h
M libstdc++-v3/include/parallel/for_each_selectors.h
M libstdc++-v3/include/parallel/omp_loop_static.h
M libstdc++-v3/include/parallel/random_shuffle.h
M libstdc++-v3/include/parallel/merge.h
M libstdc++-v3/include/parallel/multiway_mergesort.h
M libstdc++-v3/include/parallel/numericfwd.h
M libstdc++-v3/include/parallel/search.h
M libstdc++-v3/include/parallel/partition.h
M libstdc++-v3/include/parallel/algobase.h
M libstdc++-v3/include/parallel/find.h
M libstdc++-v3/include/parallel/algo.h
M libstdc++-v3/include/parallel/omp_loop.h
M libstdc++-v3/include/parallel/checkers.h
M libstdc++-v3/include/parallel/sort.h
M libstdc++-v3/include/bits/random.tcc
M libstdc++-v3/include/tr1/random.tcc
M libstdc++-v3/libsupc++/eh_terminate.cc
M libstdc++-v3/libsupc++/vec.cc
M libstdc++-v3/libsupc++/vterminate.cc
M libstdc++-v3/libsupc++/new_opnt.cc
M libstdc++-v3/ChangeLog
_M libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc
_M libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc
_M libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc
_M libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc
_M libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc
_M libstdc++-v3/testsuite/18_support/pthread_guard.cc
_M libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
_M libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc
_M libstdc++-v3/testsuite/30_threads/condition_variable/members
_M libstdc++-v3/testsuite/30_threads/this_thread
_M libstdc++-v3/testsuite/30_threads/thread/members
_M libstdc++-v3/testsuite/30_threads/thread/swap
A + libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constants.cc
A + libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constants.cc
A + libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constants.cc
A + libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constants.cc
_M libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/constants.cc
A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/constants.cc
A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/constants.cc
A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/constants.cc
A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/constants.cc
A + libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/constants.cc
_M libstdc++-v3/testsuite/23_containers/list/pthread1.cc
_M libstdc++-v3/testsuite/23_containers/list/pthread5.cc
_M libstdc++-v3/testsuite/23_containers/map/pthread6.cc
_M libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
_M libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
_M libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
M libstdc++-v3/acinclude.m4
M configure.ac
M libgfortran/configure
M libgfortran/ChangeLog
M libgfortran/config.h.in
M libgfortran/configure.ac
M libgfortran/io/io.h
M libgfortran/io/unit.c
M libgfortran/io/transfer.c
M libgfortran/io/format.c
M libgfortran/io/write_float.def
M Makefile.tpl
M libmudflap/ChangeLog
M libmudflap/mf-runtime.c
M include/ChangeLog
M include/demangle.h
M include/dwarf2.h
M libiberty/ChangeLog
M libiberty/testsuite/demangle-expected
M libiberty/cplus-dem.c
M libiberty/Makefile.in
M libiberty/choose-temp.c
M libiberty/cp-demangle.c
M ChangeLog
M ChangeLog.MELT
M libffi/src/arm/sysv.S
M libffi/src/x86/win64.S
M libffi/ChangeLog
M libjava/Makefile.in
M libjava/libltdl/Makefile.in
M libjava/libltdl/ltdl.h
M libjava/libltdl/ChangeLog
M libjava/libltdl/Makefile.am
M libjava/configure.host
M libjava/configure.ac
_M libjava/classpath
M libjava/ChangeLog
M libjava/sysdep/i386/backtrace.h
M libjava/configure
M libjava/Makefile.am
M libcpp/configure
M libcpp/files.c
M libcpp/ChangeLog
M libcpp/configure.ac
M MAINTAINERS
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@152327 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 64 |
1 files changed, 44 insertions, 20 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index a1aa4b21571..3ed92a59bc7 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -2849,10 +2849,26 @@ lower_resx (basic_block bb, gimple stmt, struct pointer_map_t *mnt_map) dst_r = NULL; src_r = get_eh_region_from_number (gimple_resx_region (stmt)); - src_nr = build_int_cst (NULL, src_r->index); gsi = gsi_last_bb (bb); - if (dst_r) + if (src_r == NULL) + { + /* We can wind up with no source region when pass_cleanup_eh shows + that there are no entries into an eh region and deletes it, but + then the block that contains the resx isn't removed. This can + happen without optimization when the switch statement created by + lower_try_finally_switch isn't simplified to remove the eh case. + + Resolve this by expanding the resx node to an abort. */ + + fn = implicit_built_in_decls[BUILT_IN_TRAP]; + x = gimple_build_call (fn, 0); + gsi_insert_before (&gsi, x, GSI_SAME_STMT); + + while (EDGE_COUNT (bb->succs) > 0) + remove_edge (EDGE_SUCC (bb, 0)); + } + else if (dst_r) { /* When we have a destination region, we resolve this by copying the excptr and filter values into place, and changing the edge @@ -2903,6 +2919,7 @@ lower_resx (basic_block bb, gimple stmt, struct pointer_map_t *mnt_map) tree dst_nr = build_int_cst (NULL, dst_r->index); fn = implicit_built_in_decls[BUILT_IN_EH_COPY_VALUES]; + src_nr = build_int_cst (NULL, src_r->index); x = gimple_build_call (fn, 2, dst_nr, src_nr); gsi_insert_before (&gsi, x, GSI_SAME_STMT); @@ -2932,22 +2949,18 @@ lower_resx (basic_block bb, gimple stmt, struct pointer_map_t *mnt_map) up the call chain. We resolve this by generating a call to the _Unwind_Resume library function. */ - /* ??? The ARM EABI redefines _Unwind_Resume as __cxa_end_cleanup + /* The ARM EABI redefines _Unwind_Resume as __cxa_end_cleanup with no arguments for C++ and Java. Check for that. */ - switch (targetm.arm_eabi_unwinder) + if (src_r->use_cxa_end_cleanup) + { + fn = implicit_built_in_decls[BUILT_IN_CXA_END_CLEANUP]; + x = gimple_build_call (fn, 0); + gsi_insert_before (&gsi, x, GSI_SAME_STMT); + } + else { - default: - fn = implicit_built_in_decls[BUILT_IN_UNWIND_RESUME]; - if (TYPE_ARG_TYPES (TREE_TYPE (fn)) == void_list_node) - { - x = gimple_build_call (fn, 0); - gsi_insert_before (&gsi, x, GSI_SAME_STMT); - break; - } - /* FALLTHRU */ - - case 0: fn = implicit_built_in_decls[BUILT_IN_EH_POINTER]; + src_nr = build_int_cst (NULL, src_r->index); x = gimple_build_call (fn, 1, src_nr); var = create_tmp_var (ptr_type_node, NULL); var = make_ssa_name (var, x); @@ -2957,7 +2970,6 @@ lower_resx (basic_block bb, gimple stmt, struct pointer_map_t *mnt_map) fn = implicit_built_in_decls[BUILT_IN_UNWIND_RESUME]; x = gimple_build_call (fn, 1, var); gsi_insert_before (&gsi, x, GSI_SAME_STMT); - break; } gcc_assert (EDGE_COUNT (bb->succs) == 0); @@ -3000,9 +3012,9 @@ execute_lower_resx (void) } static bool -gate_lower_ehcontrol (void) +gate_lower_resx (void) { - return cfun->eh->region_tree != NULL; + return flag_exceptions != 0; } struct gimple_opt_pass pass_lower_resx = @@ -3010,7 +3022,7 @@ struct gimple_opt_pass pass_lower_resx = { GIMPLE_PASS, "resx", /* name */ - gate_lower_ehcontrol, /* gate */ + gate_lower_resx, /* gate */ execute_lower_resx, /* execute */ NULL, /* sub */ NULL, /* next */ @@ -3175,12 +3187,18 @@ execute_lower_eh_dispatch (void) return any_rewritten ? TODO_update_ssa_only_virtuals : 0; } +static bool +gate_lower_eh_dispatch (void) +{ + return cfun->eh->region_tree != NULL; +} + struct gimple_opt_pass pass_lower_eh_dispatch = { { GIMPLE_PASS, "ehdisp", /* name */ - gate_lower_ehcontrol, /* gate */ + gate_lower_eh_dispatch, /* gate */ execute_lower_eh_dispatch, /* execute */ NULL, /* sub */ NULL, /* next */ @@ -3351,6 +3369,12 @@ unsplit_eh (eh_landing_pad lp) return false; } + /* The new destination block must not already be a destination of + the source block, lest we merge fallthru and eh edges and get + all sorts of confused. */ + if (find_edge (e_in->src, e_out->dest)) + return false; + /* ??? I can't imagine there would be PHI nodes, since by nature of critical edge splitting this block should never have been a dominance frontier. If cfg cleanups somehow confuse this, |