aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>2012-09-27 01:39:09 +0159
committerBernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>2012-09-27 01:39:09 +0159
commit84c1139dabfcb7c4a02a39acef7b835cb0ad4584 (patch)
treef5893c2804bddde27f0341f5cb1eef92241d7a06
parentcf708447e7959f18580e4fefaba57cea27a04bdc (diff)
downloadgcc-aarch64-84c1139dabfcb7c4a02a39acef7b835cb0ad4584.tar.gz
Sync with svn rev. 191762
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
-rw-r--r--ChangeLog29
-rw-r--r--MAINTAINERS2
-rw-r--r--Makefile.def2
-rw-r--r--Makefile.in1452
-rw-r--r--config/ChangeLog4
-rw-r--r--config/mt-sde6
-rwxr-xr-xconfigure19
-rw-r--r--configure.ac9
-rw-r--r--gcc/ChangeLog725
-rw-r--r--gcc/ChangeLog.aarch645
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/Makefile.in9
-rw-r--r--gcc/basic-block.h3
-rw-r--r--gcc/bb-reorder.c205
-rw-r--r--gcc/c-family/ChangeLog10
-rw-r--r--gcc/c-family/c-ada-spec.c202
-rw-r--r--gcc/c-family/c.opt4
-rw-r--r--gcc/cfgcleanup.c14
-rw-r--r--gcc/cfgexpand.c107
-rw-r--r--gcc/cfgrtl.c39
-rw-r--r--gcc/cgraph.c3
-rw-r--r--gcc/cgraph.h25
-rw-r--r--gcc/cgraphunit.c13
-rw-r--r--gcc/combine.c2
-rw-r--r--gcc/common.opt7
-rw-r--r--gcc/common/common-target.h7
-rw-r--r--gcc/config.gcc22
-rw-r--r--gcc/config/aarch64/predicates.md6
-rw-r--r--gcc/config/alpha/alpha.c1
-rw-r--r--gcc/config/arm/arm.c100
-rw-r--r--gcc/config/arm/linux-elf.h5
-rw-r--r--gcc/config/arm/neon.md112
-rw-r--r--gcc/config/arm/predicates.md4
-rw-r--r--gcc/config/arm/vfp.md4
-rw-r--r--gcc/config/avr/avr-arch.h156
-rw-r--r--gcc/config/avr/avr-devices.c2
-rw-r--r--gcc/config/avr/avr-fixed.md36
-rw-r--r--gcc/config/avr/avr.c15
-rw-r--r--gcc/config/avr/avr.h127
-rw-r--r--gcc/config/avr/avr.md294
-rw-r--r--gcc/config/avr/gen-avr-mmcu-texi.c41
-rw-r--r--gcc/config/avr/t-avr5
-rw-r--r--gcc/config/bfin/bfin.c12
-rw-r--r--gcc/config/c6x/c6x.c15
-rw-r--r--gcc/config/host-openbsd.c5
-rw-r--r--gcc/config/i386/i386.c4
-rw-r--r--gcc/config/ia64/ia64.c1
-rw-r--r--gcc/config/mep/mep.c8
-rw-r--r--gcc/config/mips/mips.c3
-rw-r--r--gcc/config/mips/mti-elf.h43
-rw-r--r--gcc/config/mips/t-mti-elf35
-rw-r--r--gcc/config/moxie/moxie.h4
-rw-r--r--gcc/config/moxie/moxie.opt4
-rw-r--r--gcc/config/pa/pa-openbsd.h162
-rw-r--r--gcc/config/pa/pa32-openbsd.h23
-rw-r--r--gcc/config/picochip/picochip.c8
-rw-r--r--gcc/config/rs6000/aix61.h2
-rw-r--r--gcc/config/rs6000/predicates.md166
-rw-r--r--gcc/config/rs6000/rs6000-builtin.def6
-rw-r--r--gcc/config/rs6000/rs6000.c57
-rw-r--r--gcc/config/rs6000/rs6000.md364
-rw-r--r--gcc/config/rs6000/spe.md2
-rw-r--r--gcc/config/s390/s390.c2
-rw-r--r--gcc/config/score/score.c1
-rw-r--r--gcc/config/sh/predicates.md5
-rw-r--r--gcc/config/sh/sh.c3
-rw-r--r--gcc/config/sh/sh.md56
-rw-r--r--gcc/config/sparc/sparc.c1
-rw-r--r--gcc/config/spu/spu.c22
-rw-r--r--gcc/config/tilegx/tilegx.c1
-rw-r--r--gcc/config/tilepro/tilepro.c1
-rw-r--r--gcc/config/vxworks.c18
-rw-r--r--gcc/cp/ChangeLog24
-rw-r--r--gcc/cp/pt.c48
-rw-r--r--gcc/cp/semantics.c5
-rw-r--r--gcc/cp/typeck2.c3
-rw-r--r--gcc/dbgcnt.def1
-rw-r--r--gcc/doc/avr-mmcu.texi17
-rw-r--r--gcc/doc/extend.texi51
-rw-r--r--gcc/doc/invoke.texi31
-rw-r--r--gcc/doc/lto.texi2
-rw-r--r--gcc/dwarf2out.c2
-rw-r--r--gcc/emit-rtl.c266
-rw-r--r--gcc/except.c5
-rw-r--r--gcc/expr.c59
-rw-r--r--gcc/final.c6
-rw-r--r--gcc/fold-const.c6
-rw-r--r--gcc/fortran/ChangeLog64
-rw-r--r--gcc/fortran/cpp.c6
-rw-r--r--gcc/fortran/dependency.c33
-rw-r--r--gcc/fortran/error.c3
-rw-r--r--gcc/fortran/expr.c12
-rw-r--r--gcc/fortran/interface.c8
-rw-r--r--gcc/fortran/parse.c3
-rw-r--r--gcc/fortran/primary.c5
-rw-r--r--gcc/fortran/resolve.c4
-rw-r--r--gcc/fortran/simplify.c11
-rw-r--r--gcc/fortran/target-memory.c5
-rw-r--r--gcc/fortran/trans-array.c4
-rw-r--r--gcc/fortran/trans-decl.c10
-rw-r--r--gcc/fortran/trans-expr.c47
-rw-r--r--gcc/function.c47
-rw-r--r--gcc/gimple-low.c6
-rw-r--r--gcc/gimple-streamer-out.c2
-rw-r--r--gcc/gimple.c27
-rw-r--r--gcc/gimple.h26
-rw-r--r--gcc/gimplify.c6
-rw-r--r--gcc/go/ChangeLog8
-rw-r--r--gcc/go/Make-lang.in9
-rw-r--r--gcc/go/config-lang.in2
-rw-r--r--gcc/go/gofrontend/expressions.cc117
-rw-r--r--gcc/go/gofrontend/gogo-tree.cc39
-rw-r--r--gcc/go/gofrontend/gogo.cc106
-rw-r--r--gcc/go/gofrontend/gogo.h29
-rw-r--r--gcc/go/gofrontend/lex.cc55
-rw-r--r--gcc/go/gofrontend/lex.h4
-rw-r--r--gcc/go/gofrontend/parse.cc3
-rw-r--r--gcc/go/gofrontend/types.cc165
-rw-r--r--gcc/go/gofrontend/types.h56
-rw-r--r--gcc/haifa-sched.c401
-rw-r--r--gcc/ifcvt.c30
-rw-r--r--gcc/input.c8
-rw-r--r--gcc/input.h8
-rw-r--r--gcc/ipa-inline-analysis.c5
-rw-r--r--gcc/ipa-prop.c26
-rw-r--r--gcc/ipa-pure-const.c3
-rw-r--r--gcc/jump.c3
-rw-r--r--gcc/lto-cgraph.c6
-rw-r--r--gcc/lto-streamer-in.c1
-rw-r--r--gcc/lto-streamer-out.c3
-rw-r--r--gcc/lto-streamer.h1
-rw-r--r--gcc/lto-symtab.c510
-rw-r--r--gcc/lto/ChangeLog14
-rw-r--r--gcc/lto/lto.c8
-rw-r--r--gcc/modulo-sched.c18
-rw-r--r--gcc/omp-low.c14
-rw-r--r--gcc/optabs.c9
-rw-r--r--gcc/opts.c46
-rw-r--r--gcc/passes.c64
-rw-r--r--gcc/po/ChangeLog4
-rw-r--r--gcc/po/gcc.pot22295
-rw-r--r--gcc/print-rtl.c12
-rw-r--r--gcc/profile.c5
-rw-r--r--gcc/recog.c2
-rw-r--r--gcc/reload1.c55
-rw-r--r--gcc/reorg.c10
-rw-r--r--gcc/rtl.c4
-rw-r--r--gcc/rtl.h32
-rw-r--r--gcc/rtlanal.c3
-rw-r--r--gcc/sched-deps.c501
-rw-r--r--gcc/sched-int.h50
-rw-r--r--gcc/sched-rgn.c16
-rw-r--r--gcc/statistics.h6
-rw-r--r--gcc/stmt.c4
-rw-r--r--gcc/symtab.c41
-rw-r--r--gcc/testsuite/ChangeLog228
-rw-r--r--gcc/testsuite/c-c++-common/torture/vector-compare-2.c2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alias-decl-21.C23
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alias-decl-22.C12
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype-54581.C28
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype32.C6
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/nested-3.C2
-rw-r--r--gcc/testsuite/g++.dg/init/aggr9.C9
-rw-r--r--gcc/testsuite/g++.dg/pr54655.C35
-rw-r--r--gcc/testsuite/g++.dg/torture/pr54563.C14
-rw-r--r--gcc/testsuite/g++.dg/torture/pr54647.C25
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20120919-1.c37
-rw-r--r--gcc/testsuite/gcc.dg/builtin-object-size-10.c8
-rw-r--r--gcc/testsuite/gcc.dg/builtin-unreachable-5.c12
-rw-r--r--gcc/testsuite/gcc.dg/builtin-unreachable-6.c8
-rw-r--r--gcc/testsuite/gcc.dg/pr54669.c22
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr54132.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/forwprop-19.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/forwprop-20.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/forwprop-21.c9
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/forwprop-22.c10
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ldist-21.c11
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/scev-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/scev-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c6
-rw-r--r--gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr52298.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/vec-scal-opt.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-104.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-1a.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-1b.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-2b.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-3a.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-outer-3b.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c2
-rw-r--r--gcc/testsuite/gcc.target/arm/arm.exp6
-rw-r--r--gcc/testsuite/gcc.target/i386/pr54592.c17
-rw-r--r--gcc/testsuite/gcc.target/mips/pr37362.c2
-rw-r--r--gcc/testsuite/gcc.target/powerpc/ppc-get-timebase.c20
-rw-r--r--gcc/testsuite/gcc.target/powerpc/ppc-mftb.c18
-rw-r--r--gcc/testsuite/gcc.target/sh/pr54089-1.c30
-rw-r--r--gcc/testsuite/gcc.target/sh/pr54236-1.c11
-rw-r--r--gcc/testsuite/gfortran.dg/class_array_14.f9053
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_result_7.f9027
-rw-r--r--gcc/testsuite/gfortran.dg/scan_2.f9035
-rw-r--r--gcc/testsuite/gfortran.dg/structure_constructor_11.f9096
-rw-r--r--gcc/testsuite/gnat.dg/addr1.adb2
-rw-r--r--gcc/testsuite/gnat.dg/addr1.ads2
-rw-r--r--gcc/testsuite/gnat.dg/array16.adb6
-rw-r--r--gcc/testsuite/gnat.dg/array16.ads6
-rw-r--r--gcc/testsuite/gnat.dg/atomic5.adb2
-rw-r--r--gcc/testsuite/gnat.dg/atomic5.ads2
-rw-r--r--gcc/testsuite/gnat.dg/concat2.adb4
-rw-r--r--gcc/testsuite/gnat.dg/concat2.ads3
-rw-r--r--gcc/testsuite/gnat.dg/discr23.ads2
-rw-r--r--gcc/testsuite/gnat.dg/discr29.adb2
-rw-r--r--gcc/testsuite/gnat.dg/discr29.ads2
-rw-r--r--gcc/testsuite/gnat.dg/loop_optimization12.adb22
-rw-r--r--gcc/testsuite/gnat.dg/loop_optimization12.ads27
-rw-r--r--gcc/testsuite/gnat.dg/nested_float_packed.ads4
-rw-r--r--gcc/testsuite/gnat.dg/noreturn5.adb2
-rw-r--r--gcc/testsuite/gnat.dg/noreturn5.ads2
-rw-r--r--gcc/testsuite/gnat.dg/opt20.adb3
-rw-r--r--gcc/testsuite/gnat.dg/opt20.ads3
-rw-r--r--gcc/testsuite/gnat.dg/specs/oconst6.ads (renamed from gcc/testsuite/gnat.dg/oconst6.ads)0
-rw-r--r--gcc/testsuite/gnat.dg/vect8.adb3
-rw-r--r--gcc/testsuite/gnat.dg/vect8.ads2
-rw-r--r--gcc/testsuite/lib/c-torture.exp3
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp7
-rw-r--r--gcc/testsuite/lib/target-supports-dg.exp3
-rw-r--r--gcc/testsuite/lib/target-supports.exp16
-rw-r--r--gcc/toplev.c1
-rw-r--r--gcc/trans-mem.c11
-rw-r--r--gcc/tree-cfg.c30
-rw-r--r--gcc/tree-cfgcleanup.c39
-rw-r--r--gcc/tree-data-ref.c8
-rw-r--r--gcc/tree-data-ref.h2
-rw-r--r--gcc/tree-eh.c13
-rw-r--r--gcc/tree-emutls.c2
-rw-r--r--gcc/tree-inline.c62
-rw-r--r--gcc/tree-loop-distribution.c37
-rw-r--r--gcc/tree-outof-ssa.c14
-rw-r--r--gcc/tree-parloops.c1
-rw-r--r--gcc/tree-profile.c5
-rw-r--r--gcc/tree-sra.c7
-rw-r--r--gcc/tree-ssa-forwprop.c46
-rw-r--r--gcc/tree-ssa-live.c53
-rw-r--r--gcc/tree-ssa-loop-im.c6
-rw-r--r--gcc/tree-ssa-loop-ivcanon.c115
-rw-r--r--gcc/tree-ssa-math-opts.c21
-rw-r--r--gcc/tree-ssa-operands.c4
-rw-r--r--gcc/tree-ssa-pre.c11
-rw-r--r--gcc/tree-ssa-structalias.c4
-rw-r--r--gcc/tree-ssa-threadupdate.c6
-rw-r--r--gcc/tree-streamer-in.c13
-rw-r--r--gcc/tree-streamer-out.c4
-rw-r--r--gcc/tree-vect-data-refs.c20
-rw-r--r--gcc/tree-vect-generic.c4
-rw-r--r--gcc/tree-vect-patterns.c46
-rw-r--r--gcc/tree-vect-slp.c4
-rw-r--r--gcc/tree-vect-stmts.c14
-rw-r--r--gcc/tree.c21
-rw-r--r--gcc/tree.h13
-rw-r--r--gcc/varpool.c4
-rw-r--r--include/ChangeLog5
-rw-r--r--include/objalloc.h4
-rw-r--r--libatomic/ChangeLog7
-rw-r--r--libatomic/Makefile.in257
-rwxr-xr-xlibatomic/configure1
-rw-r--r--libatomic/configure.ac3
-rw-r--r--libbacktrace/ChangeLog76
-rw-r--r--libbacktrace/Makefile.am95
-rw-r--r--libbacktrace/Makefile.in744
-rw-r--r--libbacktrace/README23
-rw-r--r--libbacktrace/aclocal.m4982
-rw-r--r--libbacktrace/alloc.c139
-rw-r--r--libbacktrace/backtrace-supported.h.in61
-rw-r--r--libbacktrace/backtrace.c108
-rw-r--r--libbacktrace/backtrace.h199
-rw-r--r--libbacktrace/btest.c628
-rw-r--r--libbacktrace/config.h.in122
-rwxr-xr-xlibbacktrace/configure15237
-rw-r--r--libbacktrace/configure.ac281
-rw-r--r--libbacktrace/dwarf.c2746
-rw-r--r--libbacktrace/elf.c688
-rw-r--r--libbacktrace/fileline.c155
-rw-r--r--libbacktrace/filetype.awk3
-rw-r--r--libbacktrace/internal.h235
-rw-r--r--libbacktrace/mmap.c236
-rw-r--r--libbacktrace/mmapio.c96
-rw-r--r--libbacktrace/nounwind.c66
-rw-r--r--libbacktrace/posix.c94
-rw-r--r--libbacktrace/print.c94
-rw-r--r--libbacktrace/read.c96
-rw-r--r--libbacktrace/simple.c108
-rw-r--r--libbacktrace/state.c72
-rw-r--r--libbacktrace/unknown.c64
-rw-r--r--libcpp/ChangeLog41
-rw-r--r--libcpp/include/line-map.h42
-rw-r--r--libcpp/line-map.c174
-rw-r--r--libcpp/po/ChangeLog4
-rw-r--r--libcpp/po/cpplib.pot106
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config.host3
-rw-r--r--libgcc/config/pa/t-openbsd9
-rw-r--r--libgo/Makefile.in290
-rw-r--r--libgo/configure.ac2
-rw-r--r--libgo/runtime/go-int-to-string.c9
-rw-r--r--libgo/runtime/go-rune.c8
-rw-r--r--libgo/runtime/go-type-complex.c14
-rw-r--r--libgo/runtime/go-type-float.c14
-rw-r--r--libgo/testsuite/Makefile.in39
-rw-r--r--libiberty/ChangeLog18
-rw-r--r--libiberty/Makefile.in25
-rw-r--r--libiberty/config.in3
-rwxr-xr-xlibiberty/configure13
-rw-r--r--libiberty/configure.ac8
-rw-r--r--libiberty/functions.texi70
-rw-r--r--libiberty/maint-tool2
-rw-r--r--libiberty/objalloc.c11
-rw-r--r--libiberty/strnlen.c30
-rw-r--r--libitm/ChangeLog7
-rw-r--r--libitm/Makefile.in246
-rw-r--r--libitm/configure5
-rw-r--r--libitm/configure.ac3
-rw-r--r--libstdc++-v3/ChangeLog140
-rw-r--r--libstdc++-v3/Makefile.am2
-rw-r--r--libstdc++-v3/Makefile.in7
-rw-r--r--libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h38
-rw-r--r--libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h136
-rwxr-xr-xlibstdc++-v3/configure67
-rw-r--r--libstdc++-v3/configure.ac42
-rw-r--r--libstdc++-v3/configure.host14
-rw-r--r--libstdc++-v3/doc/Makefile.in5
-rw-r--r--libstdc++-v3/doc/xml/manual/build_hacking.xml160
-rw-r--r--libstdc++-v3/include/Makefile.am6
-rw-r--r--libstdc++-v3/include/Makefile.in11
-rw-r--r--libstdc++-v3/include/ext/random510
-rw-r--r--libstdc++-v3/include/ext/random.tcc231
-rw-r--r--libstdc++-v3/libsupc++/Makefile.am76
-rw-r--r--libstdc++-v3/libsupc++/Makefile.in31
-rw-r--r--libstdc++-v3/po/Makefile.in5
-rw-r--r--libstdc++-v3/python/Makefile.in5
-rw-r--r--libstdc++-v3/src/Makefile.am45
-rw-r--r--libstdc++-v3/src/Makefile.in50
-rw-r--r--libstdc++-v3/src/c++11/Makefile.am22
-rw-r--r--libstdc++-v3/src/c++11/Makefile.in27
-rw-r--r--libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc4
-rw-r--r--libstdc++-v3/src/c++11/compatibility-c++0x.cc2
-rw-r--r--libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc8
-rw-r--r--libstdc++-v3/src/c++98/Makefile.am22
-rw-r--r--libstdc++-v3/src/c++98/Makefile.in27
-rw-r--r--libstdc++-v3/src/c++98/compatibility-list-2.cc2
-rw-r--r--libstdc++-v3/src/c++98/compatibility.cc6
-rw-r--r--libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc33
-rw-r--r--libstdc++-v3/testsuite/Makefile.in5
-rw-r--r--libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc47
-rw-r--r--libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc47
-rw-r--r--libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc44
-rw-r--r--libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc44
-rw-r--r--libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc51
-rw-r--r--libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc26
-rw-r--r--libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc36
-rw-r--r--libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc47
-rw-r--r--libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc47
-rw-r--r--libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc44
-rw-r--r--libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc44
-rw-r--r--libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc51
-rw-r--r--libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc26
-rw-r--r--libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc36
386 files changed, 44889 insertions, 14743 deletions
diff --git a/ChangeLog b/ChangeLog
index ac7554784..c1c024d7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2012-09-21 Anthony Green <green@moxielogic.com>
+
+ * config/moxie/moxie.opt: Add -mno-crt0 option.
+ * config/moxie/moxie.h (STARTFILE_SPEC): Handle -mno-crt0 option.
+ * doc/invoke.texi (Option Summary): Document -mno-crt0 option.
+
+2012-09-20 Walter Lee <walt@tilera.com>
+
+ * configure.ac: Add tilegx to list of targets that support gold.
+ * configure: Regenerate.
+
+2012-09-20 Marek Polacek <polacek@redhat.com>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
+2012-09-19 Steve Ellcey <sellcey@mips.com>
+
+ * configure.ac: Add mips*-mti-elf* target.
+ * configure: Regenerate.
+
+2012-09-17 Ian Lance Taylor <iant@google.com>
+
+ * MAINTAINERS (Various Maintainers): Add libbacktrace.
+ * configure.ac (host_libs): Add libbacktrace.
+ (target_libraries): Add libbacktrace.
+ * Makefile.def (host_modules): Add libbacktrace.
+ (target_modules): Likewise.
+ * configure, Makefile.in: Rebuild.
+
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
PR target/38607
diff --git a/MAINTAINERS b/MAINTAINERS
index ea92e2e0f..4a6d8c591 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -155,6 +155,7 @@ objective-c/c++ Stan Shebs stanshebs@earthlink.net
Various Maintainers
+libbacktrace Ian Lance Taylor ian@airs.com
libcpp Per Bothner per@bothner.com
libcpp All C and C++ front end maintainers
fp-bit Ian Lance Taylor ian@airs.com
@@ -472,6 +473,7 @@ Fernando Pereira pronesto@gmail.com
Kaushik Phatak kaushik.phatak@kpitcummins.com
Nicolas Pitre nico@cam.org
Paul Pluzhnikov ppluzhnikov@google.com
+Marek Polacek polacek@redhat.com
Antoniu Pop antoniu.pop@gmail.com
Vladimir Prus vladimir@codesourcery.com
Yao Qi yao@codesourcery.com
diff --git a/Makefile.def b/Makefile.def
index 0639faca3..f32ffb0f5 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -80,6 +80,7 @@ host_modules= { module= tcl;
missing=mostlyclean; };
host_modules= { module= itcl; };
host_modules= { module= ld; bootstrap=true; };
+host_modules= { module= libbacktrace; bootstrap=true; };
host_modules= { module= libcpp; bootstrap=true; };
host_modules= { module= libdecnumber; bootstrap=true; };
host_modules= { module= libgui; };
@@ -121,6 +122,7 @@ target_modules = { module= libmudflap; lib_path=.libs; };
target_modules = { module= libssp; lib_path=.libs; };
target_modules = { module= newlib; };
target_modules = { module= libgcc; bootstrap=true; no_check=true; };
+target_modules = { module= libbacktrace; };
target_modules = { module= libquadmath; };
target_modules = { module= libgfortran; };
target_modules = { module= libobjc; };
diff --git a/Makefile.in b/Makefile.in
index 0108162d1..4200d5d53 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -890,6 +890,7 @@ configure-host: \
maybe-configure-tcl \
maybe-configure-itcl \
maybe-configure-ld \
+ maybe-configure-libbacktrace \
maybe-configure-libcpp \
maybe-configure-libdecnumber \
maybe-configure-libgui \
@@ -916,6 +917,7 @@ configure-target: \
maybe-configure-target-libssp \
maybe-configure-target-newlib \
maybe-configure-target-libgcc \
+ maybe-configure-target-libbacktrace \
maybe-configure-target-libquadmath \
maybe-configure-target-libgfortran \
maybe-configure-target-libobjc \
@@ -1021,6 +1023,9 @@ all-host: maybe-all-itcl
@if ld-no-bootstrap
all-host: maybe-all-ld
@endif ld-no-bootstrap
+@if libbacktrace-no-bootstrap
+all-host: maybe-all-libbacktrace
+@endif libbacktrace-no-bootstrap
@if libcpp-no-bootstrap
all-host: maybe-all-libcpp
@endif libcpp-no-bootstrap
@@ -1062,6 +1067,7 @@ all-target: maybe-all-target-newlib
@if target-libgcc-no-bootstrap
all-target: maybe-all-target-libgcc
@endif target-libgcc-no-bootstrap
+all-target: maybe-all-target-libbacktrace
all-target: maybe-all-target-libquadmath
all-target: maybe-all-target-libgfortran
all-target: maybe-all-target-libobjc
@@ -1121,6 +1127,7 @@ info-host: maybe-info-intl
info-host: maybe-info-tcl
info-host: maybe-info-itcl
info-host: maybe-info-ld
+info-host: maybe-info-libbacktrace
info-host: maybe-info-libcpp
info-host: maybe-info-libdecnumber
info-host: maybe-info-libgui
@@ -1148,6 +1155,7 @@ info-target: maybe-info-target-libmudflap
info-target: maybe-info-target-libssp
info-target: maybe-info-target-newlib
info-target: maybe-info-target-libgcc
+info-target: maybe-info-target-libbacktrace
info-target: maybe-info-target-libquadmath
info-target: maybe-info-target-libgfortran
info-target: maybe-info-target-libobjc
@@ -1200,6 +1208,7 @@ dvi-host: maybe-dvi-intl
dvi-host: maybe-dvi-tcl
dvi-host: maybe-dvi-itcl
dvi-host: maybe-dvi-ld
+dvi-host: maybe-dvi-libbacktrace
dvi-host: maybe-dvi-libcpp
dvi-host: maybe-dvi-libdecnumber
dvi-host: maybe-dvi-libgui
@@ -1227,6 +1236,7 @@ dvi-target: maybe-dvi-target-libmudflap
dvi-target: maybe-dvi-target-libssp
dvi-target: maybe-dvi-target-newlib
dvi-target: maybe-dvi-target-libgcc
+dvi-target: maybe-dvi-target-libbacktrace
dvi-target: maybe-dvi-target-libquadmath
dvi-target: maybe-dvi-target-libgfortran
dvi-target: maybe-dvi-target-libobjc
@@ -1279,6 +1289,7 @@ pdf-host: maybe-pdf-intl
pdf-host: maybe-pdf-tcl
pdf-host: maybe-pdf-itcl
pdf-host: maybe-pdf-ld
+pdf-host: maybe-pdf-libbacktrace
pdf-host: maybe-pdf-libcpp
pdf-host: maybe-pdf-libdecnumber
pdf-host: maybe-pdf-libgui
@@ -1306,6 +1317,7 @@ pdf-target: maybe-pdf-target-libmudflap
pdf-target: maybe-pdf-target-libssp
pdf-target: maybe-pdf-target-newlib
pdf-target: maybe-pdf-target-libgcc
+pdf-target: maybe-pdf-target-libbacktrace
pdf-target: maybe-pdf-target-libquadmath
pdf-target: maybe-pdf-target-libgfortran
pdf-target: maybe-pdf-target-libobjc
@@ -1358,6 +1370,7 @@ html-host: maybe-html-intl
html-host: maybe-html-tcl
html-host: maybe-html-itcl
html-host: maybe-html-ld
+html-host: maybe-html-libbacktrace
html-host: maybe-html-libcpp
html-host: maybe-html-libdecnumber
html-host: maybe-html-libgui
@@ -1385,6 +1398,7 @@ html-target: maybe-html-target-libmudflap
html-target: maybe-html-target-libssp
html-target: maybe-html-target-newlib
html-target: maybe-html-target-libgcc
+html-target: maybe-html-target-libbacktrace
html-target: maybe-html-target-libquadmath
html-target: maybe-html-target-libgfortran
html-target: maybe-html-target-libobjc
@@ -1437,6 +1451,7 @@ TAGS-host: maybe-TAGS-intl
TAGS-host: maybe-TAGS-tcl
TAGS-host: maybe-TAGS-itcl
TAGS-host: maybe-TAGS-ld
+TAGS-host: maybe-TAGS-libbacktrace
TAGS-host: maybe-TAGS-libcpp
TAGS-host: maybe-TAGS-libdecnumber
TAGS-host: maybe-TAGS-libgui
@@ -1464,6 +1479,7 @@ TAGS-target: maybe-TAGS-target-libmudflap
TAGS-target: maybe-TAGS-target-libssp
TAGS-target: maybe-TAGS-target-newlib
TAGS-target: maybe-TAGS-target-libgcc
+TAGS-target: maybe-TAGS-target-libbacktrace
TAGS-target: maybe-TAGS-target-libquadmath
TAGS-target: maybe-TAGS-target-libgfortran
TAGS-target: maybe-TAGS-target-libobjc
@@ -1516,6 +1532,7 @@ install-info-host: maybe-install-info-intl
install-info-host: maybe-install-info-tcl
install-info-host: maybe-install-info-itcl
install-info-host: maybe-install-info-ld
+install-info-host: maybe-install-info-libbacktrace
install-info-host: maybe-install-info-libcpp
install-info-host: maybe-install-info-libdecnumber
install-info-host: maybe-install-info-libgui
@@ -1543,6 +1560,7 @@ install-info-target: maybe-install-info-target-libmudflap
install-info-target: maybe-install-info-target-libssp
install-info-target: maybe-install-info-target-newlib
install-info-target: maybe-install-info-target-libgcc
+install-info-target: maybe-install-info-target-libbacktrace
install-info-target: maybe-install-info-target-libquadmath
install-info-target: maybe-install-info-target-libgfortran
install-info-target: maybe-install-info-target-libobjc
@@ -1595,6 +1613,7 @@ install-pdf-host: maybe-install-pdf-intl
install-pdf-host: maybe-install-pdf-tcl
install-pdf-host: maybe-install-pdf-itcl
install-pdf-host: maybe-install-pdf-ld
+install-pdf-host: maybe-install-pdf-libbacktrace
install-pdf-host: maybe-install-pdf-libcpp
install-pdf-host: maybe-install-pdf-libdecnumber
install-pdf-host: maybe-install-pdf-libgui
@@ -1622,6 +1641,7 @@ install-pdf-target: maybe-install-pdf-target-libmudflap
install-pdf-target: maybe-install-pdf-target-libssp
install-pdf-target: maybe-install-pdf-target-newlib
install-pdf-target: maybe-install-pdf-target-libgcc
+install-pdf-target: maybe-install-pdf-target-libbacktrace
install-pdf-target: maybe-install-pdf-target-libquadmath
install-pdf-target: maybe-install-pdf-target-libgfortran
install-pdf-target: maybe-install-pdf-target-libobjc
@@ -1674,6 +1694,7 @@ install-html-host: maybe-install-html-intl
install-html-host: maybe-install-html-tcl
install-html-host: maybe-install-html-itcl
install-html-host: maybe-install-html-ld
+install-html-host: maybe-install-html-libbacktrace
install-html-host: maybe-install-html-libcpp
install-html-host: maybe-install-html-libdecnumber
install-html-host: maybe-install-html-libgui
@@ -1701,6 +1722,7 @@ install-html-target: maybe-install-html-target-libmudflap
install-html-target: maybe-install-html-target-libssp
install-html-target: maybe-install-html-target-newlib
install-html-target: maybe-install-html-target-libgcc
+install-html-target: maybe-install-html-target-libbacktrace
install-html-target: maybe-install-html-target-libquadmath
install-html-target: maybe-install-html-target-libgfortran
install-html-target: maybe-install-html-target-libobjc
@@ -1753,6 +1775,7 @@ installcheck-host: maybe-installcheck-intl
installcheck-host: maybe-installcheck-tcl
installcheck-host: maybe-installcheck-itcl
installcheck-host: maybe-installcheck-ld
+installcheck-host: maybe-installcheck-libbacktrace
installcheck-host: maybe-installcheck-libcpp
installcheck-host: maybe-installcheck-libdecnumber
installcheck-host: maybe-installcheck-libgui
@@ -1780,6 +1803,7 @@ installcheck-target: maybe-installcheck-target-libmudflap
installcheck-target: maybe-installcheck-target-libssp
installcheck-target: maybe-installcheck-target-newlib
installcheck-target: maybe-installcheck-target-libgcc
+installcheck-target: maybe-installcheck-target-libbacktrace
installcheck-target: maybe-installcheck-target-libquadmath
installcheck-target: maybe-installcheck-target-libgfortran
installcheck-target: maybe-installcheck-target-libobjc
@@ -1832,6 +1856,7 @@ mostlyclean-host: maybe-mostlyclean-intl
mostlyclean-host: maybe-mostlyclean-tcl
mostlyclean-host: maybe-mostlyclean-itcl
mostlyclean-host: maybe-mostlyclean-ld
+mostlyclean-host: maybe-mostlyclean-libbacktrace
mostlyclean-host: maybe-mostlyclean-libcpp
mostlyclean-host: maybe-mostlyclean-libdecnumber
mostlyclean-host: maybe-mostlyclean-libgui
@@ -1859,6 +1884,7 @@ mostlyclean-target: maybe-mostlyclean-target-libmudflap
mostlyclean-target: maybe-mostlyclean-target-libssp
mostlyclean-target: maybe-mostlyclean-target-newlib
mostlyclean-target: maybe-mostlyclean-target-libgcc
+mostlyclean-target: maybe-mostlyclean-target-libbacktrace
mostlyclean-target: maybe-mostlyclean-target-libquadmath
mostlyclean-target: maybe-mostlyclean-target-libgfortran
mostlyclean-target: maybe-mostlyclean-target-libobjc
@@ -1911,6 +1937,7 @@ clean-host: maybe-clean-intl
clean-host: maybe-clean-tcl
clean-host: maybe-clean-itcl
clean-host: maybe-clean-ld
+clean-host: maybe-clean-libbacktrace
clean-host: maybe-clean-libcpp
clean-host: maybe-clean-libdecnumber
clean-host: maybe-clean-libgui
@@ -1938,6 +1965,7 @@ clean-target: maybe-clean-target-libmudflap
clean-target: maybe-clean-target-libssp
clean-target: maybe-clean-target-newlib
clean-target: maybe-clean-target-libgcc
+clean-target: maybe-clean-target-libbacktrace
clean-target: maybe-clean-target-libquadmath
clean-target: maybe-clean-target-libgfortran
clean-target: maybe-clean-target-libobjc
@@ -1990,6 +2018,7 @@ distclean-host: maybe-distclean-intl
distclean-host: maybe-distclean-tcl
distclean-host: maybe-distclean-itcl
distclean-host: maybe-distclean-ld
+distclean-host: maybe-distclean-libbacktrace
distclean-host: maybe-distclean-libcpp
distclean-host: maybe-distclean-libdecnumber
distclean-host: maybe-distclean-libgui
@@ -2017,6 +2046,7 @@ distclean-target: maybe-distclean-target-libmudflap
distclean-target: maybe-distclean-target-libssp
distclean-target: maybe-distclean-target-newlib
distclean-target: maybe-distclean-target-libgcc
+distclean-target: maybe-distclean-target-libbacktrace
distclean-target: maybe-distclean-target-libquadmath
distclean-target: maybe-distclean-target-libgfortran
distclean-target: maybe-distclean-target-libobjc
@@ -2069,6 +2099,7 @@ maintainer-clean-host: maybe-maintainer-clean-intl
maintainer-clean-host: maybe-maintainer-clean-tcl
maintainer-clean-host: maybe-maintainer-clean-itcl
maintainer-clean-host: maybe-maintainer-clean-ld
+maintainer-clean-host: maybe-maintainer-clean-libbacktrace
maintainer-clean-host: maybe-maintainer-clean-libcpp
maintainer-clean-host: maybe-maintainer-clean-libdecnumber
maintainer-clean-host: maybe-maintainer-clean-libgui
@@ -2096,6 +2127,7 @@ maintainer-clean-target: maybe-maintainer-clean-target-libmudflap
maintainer-clean-target: maybe-maintainer-clean-target-libssp
maintainer-clean-target: maybe-maintainer-clean-target-newlib
maintainer-clean-target: maybe-maintainer-clean-target-libgcc
+maintainer-clean-target: maybe-maintainer-clean-target-libbacktrace
maintainer-clean-target: maybe-maintainer-clean-target-libquadmath
maintainer-clean-target: maybe-maintainer-clean-target-libgfortran
maintainer-clean-target: maybe-maintainer-clean-target-libobjc
@@ -2203,6 +2235,7 @@ check-host: \
maybe-check-tcl \
maybe-check-itcl \
maybe-check-ld \
+ maybe-check-libbacktrace \
maybe-check-libcpp \
maybe-check-libdecnumber \
maybe-check-libgui \
@@ -2230,6 +2263,7 @@ check-target: \
maybe-check-target-libssp \
maybe-check-target-newlib \
maybe-check-target-libgcc \
+ maybe-check-target-libbacktrace \
maybe-check-target-libquadmath \
maybe-check-target-libgfortran \
maybe-check-target-libobjc \
@@ -2308,6 +2342,7 @@ install-host-nogcc: \
maybe-install-tcl \
maybe-install-itcl \
maybe-install-ld \
+ maybe-install-libbacktrace \
maybe-install-libcpp \
maybe-install-libdecnumber \
maybe-install-libgui \
@@ -2354,6 +2389,7 @@ install-host: \
maybe-install-tcl \
maybe-install-itcl \
maybe-install-ld \
+ maybe-install-libbacktrace \
maybe-install-libcpp \
maybe-install-libdecnumber \
maybe-install-libgui \
@@ -2381,6 +2417,7 @@ install-target: \
maybe-install-target-libssp \
maybe-install-target-newlib \
maybe-install-target-libgcc \
+ maybe-install-target-libbacktrace \
maybe-install-target-libquadmath \
maybe-install-target-libgfortran \
maybe-install-target-libobjc \
@@ -2453,6 +2490,7 @@ install-strip-host: \
maybe-install-strip-tcl \
maybe-install-strip-itcl \
maybe-install-strip-ld \
+ maybe-install-strip-libbacktrace \
maybe-install-strip-libcpp \
maybe-install-strip-libdecnumber \
maybe-install-strip-libgui \
@@ -2480,6 +2518,7 @@ install-strip-target: \
maybe-install-strip-target-libssp \
maybe-install-strip-target-newlib \
maybe-install-strip-target-libgcc \
+ maybe-install-strip-target-libbacktrace \
maybe-install-strip-target-libquadmath \
maybe-install-strip-target-libgfortran \
maybe-install-strip-target-libobjc \
@@ -19558,6 +19597,887 @@ maintainer-clean-ld:
+.PHONY: configure-libbacktrace maybe-configure-libbacktrace
+maybe-configure-libbacktrace:
+@if gcc-bootstrap
+configure-libbacktrace: stage_current
+@endif gcc-bootstrap
+@if libbacktrace
+maybe-configure-libbacktrace: configure-libbacktrace
+configure-libbacktrace:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace ; \
+ $(HOST_EXPORTS) \
+ echo Configuring in $(HOST_SUBDIR)/libbacktrace; \
+ cd "$(HOST_SUBDIR)/libbacktrace" || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ $(SHELL) $${libsrcdir}/configure \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ || exit 1
+@endif libbacktrace
+
+
+
+.PHONY: configure-stage1-libbacktrace maybe-configure-stage1-libbacktrace
+maybe-configure-stage1-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-configure-stage1-libbacktrace: configure-stage1-libbacktrace
+configure-stage1-libbacktrace:
+ @[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
+ @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE1_TFLAGS)"; \
+ test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+ CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
+ LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/libbacktrace ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace ; \
+ cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ $(SHELL) $${libsrcdir}/configure \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ $(STAGE1_CONFIGURE_FLAGS)
+@endif libbacktrace-bootstrap
+
+.PHONY: configure-stage2-libbacktrace maybe-configure-stage2-libbacktrace
+maybe-configure-stage2-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-configure-stage2-libbacktrace: configure-stage2-libbacktrace
+configure-stage2-libbacktrace:
+ @[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
+ @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE2_TFLAGS)"; \
+ test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+ CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
+ LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/libbacktrace ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace ; \
+ cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ $(SHELL) $${libsrcdir}/configure \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ --with-build-libsubdir=$(HOST_SUBDIR) \
+ $(STAGE2_CONFIGURE_FLAGS)
+@endif libbacktrace-bootstrap
+
+.PHONY: configure-stage3-libbacktrace maybe-configure-stage3-libbacktrace
+maybe-configure-stage3-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-configure-stage3-libbacktrace: configure-stage3-libbacktrace
+configure-stage3-libbacktrace:
+ @[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
+ @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE3_TFLAGS)"; \
+ test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+ CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
+ LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/libbacktrace ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace ; \
+ cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ $(SHELL) $${libsrcdir}/configure \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ --with-build-libsubdir=$(HOST_SUBDIR) \
+ $(STAGE3_CONFIGURE_FLAGS)
+@endif libbacktrace-bootstrap
+
+.PHONY: configure-stage4-libbacktrace maybe-configure-stage4-libbacktrace
+maybe-configure-stage4-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-configure-stage4-libbacktrace: configure-stage4-libbacktrace
+configure-stage4-libbacktrace:
+ @[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
+ @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE4_TFLAGS)"; \
+ test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+ CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
+ LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/libbacktrace ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace ; \
+ cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ $(SHELL) $${libsrcdir}/configure \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ --with-build-libsubdir=$(HOST_SUBDIR) \
+ $(STAGE4_CONFIGURE_FLAGS)
+@endif libbacktrace-bootstrap
+
+.PHONY: configure-stageprofile-libbacktrace maybe-configure-stageprofile-libbacktrace
+maybe-configure-stageprofile-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-configure-stageprofile-libbacktrace: configure-stageprofile-libbacktrace
+configure-stageprofile-libbacktrace:
+ @[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
+ @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGEprofile_TFLAGS)"; \
+ test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
+ CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
+ LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/libbacktrace ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace ; \
+ cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ $(SHELL) $${libsrcdir}/configure \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ --with-build-libsubdir=$(HOST_SUBDIR) \
+ $(STAGEprofile_CONFIGURE_FLAGS)
+@endif libbacktrace-bootstrap
+
+.PHONY: configure-stagefeedback-libbacktrace maybe-configure-stagefeedback-libbacktrace
+maybe-configure-stagefeedback-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-configure-stagefeedback-libbacktrace: configure-stagefeedback-libbacktrace
+configure-stagefeedback-libbacktrace:
+ @[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
+ @$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGEfeedback_TFLAGS)"; \
+ test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
+ CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
+ LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/libbacktrace ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace ; \
+ cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ $(SHELL) $${libsrcdir}/configure \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ --with-build-libsubdir=$(HOST_SUBDIR) \
+ $(STAGEfeedback_CONFIGURE_FLAGS)
+@endif libbacktrace-bootstrap
+
+
+
+
+
+.PHONY: all-libbacktrace maybe-all-libbacktrace
+maybe-all-libbacktrace:
+@if gcc-bootstrap
+all-libbacktrace: stage_current
+@endif gcc-bootstrap
+@if libbacktrace
+TARGET-libbacktrace=all
+maybe-all-libbacktrace: all-libbacktrace
+all-libbacktrace: configure-libbacktrace
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
+ $(TARGET-libbacktrace))
+@endif libbacktrace
+
+
+
+.PHONY: all-stage1-libbacktrace maybe-all-stage1-libbacktrace
+.PHONY: clean-stage1-libbacktrace maybe-clean-stage1-libbacktrace
+maybe-all-stage1-libbacktrace:
+maybe-clean-stage1-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-all-stage1-libbacktrace: all-stage1-libbacktrace
+all-stage1: all-stage1-libbacktrace
+TARGET-stage1-libbacktrace = $(TARGET-libbacktrace)
+all-stage1-libbacktrace: configure-stage1-libbacktrace
+ @[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE1_TFLAGS)"; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) \
+ CFLAGS="$(STAGE1_CFLAGS)" \
+ CXXFLAGS="$(STAGE1_CXXFLAGS)" \
+ LIBCFLAGS="$(LIBCFLAGS)" \
+ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ $(EXTRA_HOST_FLAGS) \
+ TFLAGS="$(STAGE1_TFLAGS)" \
+ $(TARGET-stage1-libbacktrace)
+
+maybe-clean-stage1-libbacktrace: clean-stage1-libbacktrace
+clean-stage1: clean-stage1-libbacktrace
+clean-stage1-libbacktrace:
+ @if [ $(current_stage) = stage1 ]; then \
+ [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
+ else \
+ [ -f $(HOST_SUBDIR)/stage1-libbacktrace/Makefile ] || exit 0; \
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+@endif libbacktrace-bootstrap
+
+
+.PHONY: all-stage2-libbacktrace maybe-all-stage2-libbacktrace
+.PHONY: clean-stage2-libbacktrace maybe-clean-stage2-libbacktrace
+maybe-all-stage2-libbacktrace:
+maybe-clean-stage2-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-all-stage2-libbacktrace: all-stage2-libbacktrace
+all-stage2: all-stage2-libbacktrace
+TARGET-stage2-libbacktrace = $(TARGET-libbacktrace)
+all-stage2-libbacktrace: configure-stage2-libbacktrace
+ @[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE2_TFLAGS)"; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) \
+ CFLAGS="$(STAGE2_CFLAGS)" \
+ CXXFLAGS="$(STAGE2_CXXFLAGS)" \
+ LIBCFLAGS="$(STAGE2_CFLAGS)" \
+ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ TFLAGS="$(STAGE2_TFLAGS)" \
+ $(TARGET-stage2-libbacktrace)
+
+maybe-clean-stage2-libbacktrace: clean-stage2-libbacktrace
+clean-stage2: clean-stage2-libbacktrace
+clean-stage2-libbacktrace:
+ @if [ $(current_stage) = stage2 ]; then \
+ [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
+ else \
+ [ -f $(HOST_SUBDIR)/stage2-libbacktrace/Makefile ] || exit 0; \
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+@endif libbacktrace-bootstrap
+
+
+.PHONY: all-stage3-libbacktrace maybe-all-stage3-libbacktrace
+.PHONY: clean-stage3-libbacktrace maybe-clean-stage3-libbacktrace
+maybe-all-stage3-libbacktrace:
+maybe-clean-stage3-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-all-stage3-libbacktrace: all-stage3-libbacktrace
+all-stage3: all-stage3-libbacktrace
+TARGET-stage3-libbacktrace = $(TARGET-libbacktrace)
+all-stage3-libbacktrace: configure-stage3-libbacktrace
+ @[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE3_TFLAGS)"; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) \
+ CFLAGS="$(STAGE3_CFLAGS)" \
+ CXXFLAGS="$(STAGE3_CXXFLAGS)" \
+ LIBCFLAGS="$(STAGE3_CFLAGS)" \
+ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ TFLAGS="$(STAGE3_TFLAGS)" \
+ $(TARGET-stage3-libbacktrace)
+
+maybe-clean-stage3-libbacktrace: clean-stage3-libbacktrace
+clean-stage3: clean-stage3-libbacktrace
+clean-stage3-libbacktrace:
+ @if [ $(current_stage) = stage3 ]; then \
+ [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
+ else \
+ [ -f $(HOST_SUBDIR)/stage3-libbacktrace/Makefile ] || exit 0; \
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+@endif libbacktrace-bootstrap
+
+
+.PHONY: all-stage4-libbacktrace maybe-all-stage4-libbacktrace
+.PHONY: clean-stage4-libbacktrace maybe-clean-stage4-libbacktrace
+maybe-all-stage4-libbacktrace:
+maybe-clean-stage4-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-all-stage4-libbacktrace: all-stage4-libbacktrace
+all-stage4: all-stage4-libbacktrace
+TARGET-stage4-libbacktrace = $(TARGET-libbacktrace)
+all-stage4-libbacktrace: configure-stage4-libbacktrace
+ @[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGE4_TFLAGS)"; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) \
+ CFLAGS="$(STAGE4_CFLAGS)" \
+ CXXFLAGS="$(STAGE4_CXXFLAGS)" \
+ LIBCFLAGS="$(STAGE4_CFLAGS)" \
+ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ TFLAGS="$(STAGE4_TFLAGS)" \
+ $(TARGET-stage4-libbacktrace)
+
+maybe-clean-stage4-libbacktrace: clean-stage4-libbacktrace
+clean-stage4: clean-stage4-libbacktrace
+clean-stage4-libbacktrace:
+ @if [ $(current_stage) = stage4 ]; then \
+ [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
+ else \
+ [ -f $(HOST_SUBDIR)/stage4-libbacktrace/Makefile ] || exit 0; \
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+@endif libbacktrace-bootstrap
+
+
+.PHONY: all-stageprofile-libbacktrace maybe-all-stageprofile-libbacktrace
+.PHONY: clean-stageprofile-libbacktrace maybe-clean-stageprofile-libbacktrace
+maybe-all-stageprofile-libbacktrace:
+maybe-clean-stageprofile-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-all-stageprofile-libbacktrace: all-stageprofile-libbacktrace
+all-stageprofile: all-stageprofile-libbacktrace
+TARGET-stageprofile-libbacktrace = $(TARGET-libbacktrace)
+all-stageprofile-libbacktrace: configure-stageprofile-libbacktrace
+ @[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGEprofile_TFLAGS)"; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) \
+ CFLAGS="$(STAGEprofile_CFLAGS)" \
+ CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
+ LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
+ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ TFLAGS="$(STAGEprofile_TFLAGS)" \
+ $(TARGET-stageprofile-libbacktrace)
+
+maybe-clean-stageprofile-libbacktrace: clean-stageprofile-libbacktrace
+clean-stageprofile: clean-stageprofile-libbacktrace
+clean-stageprofile-libbacktrace:
+ @if [ $(current_stage) = stageprofile ]; then \
+ [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
+ else \
+ [ -f $(HOST_SUBDIR)/stageprofile-libbacktrace/Makefile ] || exit 0; \
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+@endif libbacktrace-bootstrap
+
+
+.PHONY: all-stagefeedback-libbacktrace maybe-all-stagefeedback-libbacktrace
+.PHONY: clean-stagefeedback-libbacktrace maybe-clean-stagefeedback-libbacktrace
+maybe-all-stagefeedback-libbacktrace:
+maybe-clean-stagefeedback-libbacktrace:
+@if libbacktrace-bootstrap
+maybe-all-stagefeedback-libbacktrace: all-stagefeedback-libbacktrace
+all-stagefeedback: all-stagefeedback-libbacktrace
+TARGET-stagefeedback-libbacktrace = $(TARGET-libbacktrace)
+all-stagefeedback-libbacktrace: configure-stagefeedback-libbacktrace
+ @[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ TFLAGS="$(STAGEfeedback_TFLAGS)"; \
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) \
+ CFLAGS="$(STAGEfeedback_CFLAGS)" \
+ CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
+ LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
+ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
+ CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
+ LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
+ $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ TFLAGS="$(STAGEfeedback_TFLAGS)" \
+ $(TARGET-stagefeedback-libbacktrace)
+
+maybe-clean-stagefeedback-libbacktrace: clean-stagefeedback-libbacktrace
+clean-stagefeedback: clean-stagefeedback-libbacktrace
+clean-stagefeedback-libbacktrace:
+ @if [ $(current_stage) = stagefeedback ]; then \
+ [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
+ else \
+ [ -f $(HOST_SUBDIR)/stagefeedback-libbacktrace/Makefile ] || exit 0; \
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+@endif libbacktrace-bootstrap
+
+
+
+
+
+.PHONY: check-libbacktrace maybe-check-libbacktrace
+maybe-check-libbacktrace:
+@if libbacktrace
+maybe-check-libbacktrace: check-libbacktrace
+
+check-libbacktrace:
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(FLAGS_TO_PASS) check)
+
+@endif libbacktrace
+
+.PHONY: install-libbacktrace maybe-install-libbacktrace
+maybe-install-libbacktrace:
+@if libbacktrace
+maybe-install-libbacktrace: install-libbacktrace
+
+install-libbacktrace: installdirs
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(FLAGS_TO_PASS) install)
+
+@endif libbacktrace
+
+.PHONY: install-strip-libbacktrace maybe-install-strip-libbacktrace
+maybe-install-strip-libbacktrace:
+@if libbacktrace
+maybe-install-strip-libbacktrace: install-strip-libbacktrace
+
+install-strip-libbacktrace: installdirs
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(FLAGS_TO_PASS) install-strip)
+
+@endif libbacktrace
+
+# Other targets (info, dvi, pdf, etc.)
+
+.PHONY: maybe-info-libbacktrace info-libbacktrace
+maybe-info-libbacktrace:
+@if libbacktrace
+maybe-info-libbacktrace: info-libbacktrace
+
+info-libbacktrace: \
+ configure-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing info in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ info) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-dvi-libbacktrace dvi-libbacktrace
+maybe-dvi-libbacktrace:
+@if libbacktrace
+maybe-dvi-libbacktrace: dvi-libbacktrace
+
+dvi-libbacktrace: \
+ configure-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing dvi in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ dvi) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-pdf-libbacktrace pdf-libbacktrace
+maybe-pdf-libbacktrace:
+@if libbacktrace
+maybe-pdf-libbacktrace: pdf-libbacktrace
+
+pdf-libbacktrace: \
+ configure-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing pdf in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ pdf) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-html-libbacktrace html-libbacktrace
+maybe-html-libbacktrace:
+@if libbacktrace
+maybe-html-libbacktrace: html-libbacktrace
+
+html-libbacktrace: \
+ configure-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing html in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ html) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-TAGS-libbacktrace TAGS-libbacktrace
+maybe-TAGS-libbacktrace:
+@if libbacktrace
+maybe-TAGS-libbacktrace: TAGS-libbacktrace
+
+TAGS-libbacktrace: \
+ configure-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing TAGS in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ TAGS) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-install-info-libbacktrace install-info-libbacktrace
+maybe-install-info-libbacktrace:
+@if libbacktrace
+maybe-install-info-libbacktrace: install-info-libbacktrace
+
+install-info-libbacktrace: \
+ configure-libbacktrace \
+ info-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing install-info in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-info) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-install-pdf-libbacktrace install-pdf-libbacktrace
+maybe-install-pdf-libbacktrace:
+@if libbacktrace
+maybe-install-pdf-libbacktrace: install-pdf-libbacktrace
+
+install-pdf-libbacktrace: \
+ configure-libbacktrace \
+ pdf-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing install-pdf in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-pdf) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-install-html-libbacktrace install-html-libbacktrace
+maybe-install-html-libbacktrace:
+@if libbacktrace
+maybe-install-html-libbacktrace: install-html-libbacktrace
+
+install-html-libbacktrace: \
+ configure-libbacktrace \
+ html-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing install-html in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-html) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-installcheck-libbacktrace installcheck-libbacktrace
+maybe-installcheck-libbacktrace:
+@if libbacktrace
+maybe-installcheck-libbacktrace: installcheck-libbacktrace
+
+installcheck-libbacktrace: \
+ configure-libbacktrace
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing installcheck in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ installcheck) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-mostlyclean-libbacktrace mostlyclean-libbacktrace
+maybe-mostlyclean-libbacktrace:
+@if libbacktrace
+maybe-mostlyclean-libbacktrace: mostlyclean-libbacktrace
+
+mostlyclean-libbacktrace:
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing mostlyclean in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ mostlyclean) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-clean-libbacktrace clean-libbacktrace
+maybe-clean-libbacktrace:
+@if libbacktrace
+maybe-clean-libbacktrace: clean-libbacktrace
+
+clean-libbacktrace:
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing clean in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ clean) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-distclean-libbacktrace distclean-libbacktrace
+maybe-distclean-libbacktrace:
+@if libbacktrace
+maybe-distclean-libbacktrace: distclean-libbacktrace
+
+distclean-libbacktrace:
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing distclean in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ distclean) \
+ || exit 1
+
+@endif libbacktrace
+
+.PHONY: maybe-maintainer-clean-libbacktrace maintainer-clean-libbacktrace
+maybe-maintainer-clean-libbacktrace:
+@if libbacktrace
+maybe-maintainer-clean-libbacktrace: maintainer-clean-libbacktrace
+
+maintainer-clean-libbacktrace:
+ @[ -f ./libbacktrace/Makefile ] || exit 0; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ for flag in $(EXTRA_HOST_FLAGS) ; do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ echo "Doing maintainer-clean in libbacktrace" ; \
+ (cd $(HOST_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ maintainer-clean) \
+ || exit 1
+
+@endif libbacktrace
+
+
+
.PHONY: configure-libcpp maybe-configure-libcpp
maybe-configure-libcpp:
@if gcc-bootstrap
@@ -33309,6 +34229,463 @@ maintainer-clean-target-libgcc:
+.PHONY: configure-target-libbacktrace maybe-configure-target-libbacktrace
+maybe-configure-target-libbacktrace:
+@if gcc-bootstrap
+configure-target-libbacktrace: stage_current
+@endif gcc-bootstrap
+@if target-libbacktrace
+maybe-configure-target-libbacktrace: configure-target-libbacktrace
+configure-target-libbacktrace:
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ echo "Checking multilib configuration for libbacktrace..."; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace ; \
+ $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libbacktrace/multilib.tmp 2> /dev/null ; \
+ if test -r $(TARGET_SUBDIR)/libbacktrace/multilib.out; then \
+ if cmp -s $(TARGET_SUBDIR)/libbacktrace/multilib.tmp $(TARGET_SUBDIR)/libbacktrace/multilib.out; then \
+ rm -f $(TARGET_SUBDIR)/libbacktrace/multilib.tmp; \
+ else \
+ rm -f $(TARGET_SUBDIR)/libbacktrace/Makefile; \
+ mv $(TARGET_SUBDIR)/libbacktrace/multilib.tmp $(TARGET_SUBDIR)/libbacktrace/multilib.out; \
+ fi; \
+ else \
+ mv $(TARGET_SUBDIR)/libbacktrace/multilib.tmp $(TARGET_SUBDIR)/libbacktrace/multilib.out; \
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libbacktrace/Makefile || exit 0; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace ; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo Configuring in $(TARGET_SUBDIR)/libbacktrace; \
+ cd "$(TARGET_SUBDIR)/libbacktrace" || exit 1; \
+ case $(srcdir) in \
+ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ *) topdir=`echo $(TARGET_SUBDIR)/libbacktrace/ | \
+ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ esac; \
+ srcdiroption="--srcdir=$${topdir}/libbacktrace"; \
+ libsrcdir="$$s/libbacktrace"; \
+ rm -f no-such-file || : ; \
+ CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
+ --target=${target_alias} $${srcdiroption} \
+ || exit 1
+@endif target-libbacktrace
+
+
+
+
+
+.PHONY: all-target-libbacktrace maybe-all-target-libbacktrace
+maybe-all-target-libbacktrace:
+@if gcc-bootstrap
+all-target-libbacktrace: stage_current
+@endif gcc-bootstrap
+@if target-libbacktrace
+TARGET-target-libbacktrace=all
+maybe-all-target-libbacktrace: all-target-libbacktrace
+all-target-libbacktrace: configure-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-target-libbacktrace))
+@endif target-libbacktrace
+
+
+
+
+
+.PHONY: check-target-libbacktrace maybe-check-target-libbacktrace
+maybe-check-target-libbacktrace:
+@if target-libbacktrace
+maybe-check-target-libbacktrace: check-target-libbacktrace
+
+check-target-libbacktrace:
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(TARGET_FLAGS_TO_PASS) check)
+
+@endif target-libbacktrace
+
+.PHONY: install-target-libbacktrace maybe-install-target-libbacktrace
+maybe-install-target-libbacktrace:
+@if target-libbacktrace
+maybe-install-target-libbacktrace: install-target-libbacktrace
+
+install-target-libbacktrace: installdirs
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+
+@endif target-libbacktrace
+
+.PHONY: install-strip-target-libbacktrace maybe-install-strip-target-libbacktrace
+maybe-install-strip-target-libbacktrace:
+@if target-libbacktrace
+maybe-install-strip-target-libbacktrace: install-strip-target-libbacktrace
+
+install-strip-target-libbacktrace: installdirs
+ @: $(MAKE); $(unstage)
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip)
+
+@endif target-libbacktrace
+
+# Other targets (info, dvi, pdf, etc.)
+
+.PHONY: maybe-info-target-libbacktrace info-target-libbacktrace
+maybe-info-target-libbacktrace:
+@if target-libbacktrace
+maybe-info-target-libbacktrace: info-target-libbacktrace
+
+info-target-libbacktrace: \
+ configure-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing info in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ info) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-dvi-target-libbacktrace dvi-target-libbacktrace
+maybe-dvi-target-libbacktrace:
+@if target-libbacktrace
+maybe-dvi-target-libbacktrace: dvi-target-libbacktrace
+
+dvi-target-libbacktrace: \
+ configure-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing dvi in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ dvi) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-pdf-target-libbacktrace pdf-target-libbacktrace
+maybe-pdf-target-libbacktrace:
+@if target-libbacktrace
+maybe-pdf-target-libbacktrace: pdf-target-libbacktrace
+
+pdf-target-libbacktrace: \
+ configure-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing pdf in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ pdf) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-html-target-libbacktrace html-target-libbacktrace
+maybe-html-target-libbacktrace:
+@if target-libbacktrace
+maybe-html-target-libbacktrace: html-target-libbacktrace
+
+html-target-libbacktrace: \
+ configure-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing html in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ html) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-TAGS-target-libbacktrace TAGS-target-libbacktrace
+maybe-TAGS-target-libbacktrace:
+@if target-libbacktrace
+maybe-TAGS-target-libbacktrace: TAGS-target-libbacktrace
+
+TAGS-target-libbacktrace: \
+ configure-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing TAGS in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ TAGS) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-install-info-target-libbacktrace install-info-target-libbacktrace
+maybe-install-info-target-libbacktrace:
+@if target-libbacktrace
+maybe-install-info-target-libbacktrace: install-info-target-libbacktrace
+
+install-info-target-libbacktrace: \
+ configure-target-libbacktrace \
+ info-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing install-info in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-info) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-install-pdf-target-libbacktrace install-pdf-target-libbacktrace
+maybe-install-pdf-target-libbacktrace:
+@if target-libbacktrace
+maybe-install-pdf-target-libbacktrace: install-pdf-target-libbacktrace
+
+install-pdf-target-libbacktrace: \
+ configure-target-libbacktrace \
+ pdf-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing install-pdf in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-pdf) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-install-html-target-libbacktrace install-html-target-libbacktrace
+maybe-install-html-target-libbacktrace:
+@if target-libbacktrace
+maybe-install-html-target-libbacktrace: install-html-target-libbacktrace
+
+install-html-target-libbacktrace: \
+ configure-target-libbacktrace \
+ html-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing install-html in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ install-html) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-installcheck-target-libbacktrace installcheck-target-libbacktrace
+maybe-installcheck-target-libbacktrace:
+@if target-libbacktrace
+maybe-installcheck-target-libbacktrace: installcheck-target-libbacktrace
+
+installcheck-target-libbacktrace: \
+ configure-target-libbacktrace
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing installcheck in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ installcheck) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-mostlyclean-target-libbacktrace mostlyclean-target-libbacktrace
+maybe-mostlyclean-target-libbacktrace:
+@if target-libbacktrace
+maybe-mostlyclean-target-libbacktrace: mostlyclean-target-libbacktrace
+
+mostlyclean-target-libbacktrace:
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing mostlyclean in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ mostlyclean) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-clean-target-libbacktrace clean-target-libbacktrace
+maybe-clean-target-libbacktrace:
+@if target-libbacktrace
+maybe-clean-target-libbacktrace: clean-target-libbacktrace
+
+clean-target-libbacktrace:
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing clean in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ clean) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-distclean-target-libbacktrace distclean-target-libbacktrace
+maybe-distclean-target-libbacktrace:
+@if target-libbacktrace
+maybe-distclean-target-libbacktrace: distclean-target-libbacktrace
+
+distclean-target-libbacktrace:
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing distclean in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ distclean) \
+ || exit 1
+
+@endif target-libbacktrace
+
+.PHONY: maybe-maintainer-clean-target-libbacktrace maintainer-clean-target-libbacktrace
+maybe-maintainer-clean-target-libbacktrace:
+@if target-libbacktrace
+maybe-maintainer-clean-target-libbacktrace: maintainer-clean-target-libbacktrace
+
+maintainer-clean-target-libbacktrace:
+ @: $(MAKE); $(unstage)
+ @[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0 ; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libbacktrace" ; \
+ for flag in $(EXTRA_TARGET_FLAGS); do \
+ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ done; \
+ (cd $(TARGET_SUBDIR)/libbacktrace && \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+ "RANLIB=$${RANLIB}" \
+ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
+ maintainer-clean) \
+ || exit 1
+
+@endif target-libbacktrace
+
+
+
+
+
.PHONY: configure-target-libquadmath maybe-configure-target-libquadmath
maybe-configure-target-libquadmath:
@if gcc-bootstrap
@@ -41322,6 +42699,11 @@ stage1-start::
mkdir stage1-ld; \
mv stage1-ld ld
@endif ld
+@if libbacktrace
+ @cd $(HOST_SUBDIR); [ -d stage1-libbacktrace ] || \
+ mkdir stage1-libbacktrace; \
+ mv stage1-libbacktrace libbacktrace
+@endif libbacktrace
@if libcpp
@cd $(HOST_SUBDIR); [ -d stage1-libcpp ] || \
mkdir stage1-libcpp; \
@@ -41422,6 +42804,11 @@ stage1-end::
cd $(HOST_SUBDIR); mv ld stage1-ld ; \
fi
@endif ld
+@if libbacktrace
+ @if test -d $(HOST_SUBDIR)/libbacktrace ; then \
+ cd $(HOST_SUBDIR); mv libbacktrace stage1-libbacktrace ; \
+ fi
+@endif libbacktrace
@if libcpp
@if test -d $(HOST_SUBDIR)/libcpp ; then \
cd $(HOST_SUBDIR); mv libcpp stage1-libcpp ; \
@@ -41579,6 +42966,12 @@ stage2-start::
mv stage2-ld ld ; \
mv stage1-ld prev-ld || test -f stage1-lean
@endif ld
+@if libbacktrace
+ @cd $(HOST_SUBDIR); [ -d stage2-libbacktrace ] || \
+ mkdir stage2-libbacktrace; \
+ mv stage2-libbacktrace libbacktrace ; \
+ mv stage1-libbacktrace prev-libbacktrace || test -f stage1-lean
+@endif libbacktrace
@if libcpp
@cd $(HOST_SUBDIR); [ -d stage2-libcpp ] || \
mkdir stage2-libcpp; \
@@ -41699,6 +43092,12 @@ stage2-end::
mv prev-ld stage1-ld ; : ; \
fi
@endif ld
+@if libbacktrace
+ @if test -d $(HOST_SUBDIR)/libbacktrace ; then \
+ cd $(HOST_SUBDIR); mv libbacktrace stage2-libbacktrace ; \
+ mv prev-libbacktrace stage1-libbacktrace ; : ; \
+ fi
+@endif libbacktrace
@if libcpp
@if test -d $(HOST_SUBDIR)/libcpp ; then \
cd $(HOST_SUBDIR); mv libcpp stage2-libcpp ; \
@@ -41885,6 +43284,12 @@ stage3-start::
mv stage3-ld ld ; \
mv stage2-ld prev-ld || test -f stage2-lean
@endif ld
+@if libbacktrace
+ @cd $(HOST_SUBDIR); [ -d stage3-libbacktrace ] || \
+ mkdir stage3-libbacktrace; \
+ mv stage3-libbacktrace libbacktrace ; \
+ mv stage2-libbacktrace prev-libbacktrace || test -f stage2-lean
+@endif libbacktrace
@if libcpp
@cd $(HOST_SUBDIR); [ -d stage3-libcpp ] || \
mkdir stage3-libcpp; \
@@ -42005,6 +43410,12 @@ stage3-end::
mv prev-ld stage2-ld ; : ; \
fi
@endif ld
+@if libbacktrace
+ @if test -d $(HOST_SUBDIR)/libbacktrace ; then \
+ cd $(HOST_SUBDIR); mv libbacktrace stage3-libbacktrace ; \
+ mv prev-libbacktrace stage2-libbacktrace ; : ; \
+ fi
+@endif libbacktrace
@if libcpp
@if test -d $(HOST_SUBDIR)/libcpp ; then \
cd $(HOST_SUBDIR); mv libcpp stage3-libcpp ; \
@@ -42247,6 +43658,12 @@ stage4-start::
mv stage4-ld ld ; \
mv stage3-ld prev-ld || test -f stage3-lean
@endif ld
+@if libbacktrace
+ @cd $(HOST_SUBDIR); [ -d stage4-libbacktrace ] || \
+ mkdir stage4-libbacktrace; \
+ mv stage4-libbacktrace libbacktrace ; \
+ mv stage3-libbacktrace prev-libbacktrace || test -f stage3-lean
+@endif libbacktrace
@if libcpp
@cd $(HOST_SUBDIR); [ -d stage4-libcpp ] || \
mkdir stage4-libcpp; \
@@ -42367,6 +43784,12 @@ stage4-end::
mv prev-ld stage3-ld ; : ; \
fi
@endif ld
+@if libbacktrace
+ @if test -d $(HOST_SUBDIR)/libbacktrace ; then \
+ cd $(HOST_SUBDIR); mv libbacktrace stage4-libbacktrace ; \
+ mv prev-libbacktrace stage3-libbacktrace ; : ; \
+ fi
+@endif libbacktrace
@if libcpp
@if test -d $(HOST_SUBDIR)/libcpp ; then \
cd $(HOST_SUBDIR); mv libcpp stage4-libcpp ; \
@@ -42597,6 +44020,12 @@ stageprofile-start::
mv stageprofile-ld ld ; \
mv stage1-ld prev-ld || test -f stage1-lean
@endif ld
+@if libbacktrace
+ @cd $(HOST_SUBDIR); [ -d stageprofile-libbacktrace ] || \
+ mkdir stageprofile-libbacktrace; \
+ mv stageprofile-libbacktrace libbacktrace ; \
+ mv stage1-libbacktrace prev-libbacktrace || test -f stage1-lean
+@endif libbacktrace
@if libcpp
@cd $(HOST_SUBDIR); [ -d stageprofile-libcpp ] || \
mkdir stageprofile-libcpp; \
@@ -42717,6 +44146,12 @@ stageprofile-end::
mv prev-ld stage1-ld ; : ; \
fi
@endif ld
+@if libbacktrace
+ @if test -d $(HOST_SUBDIR)/libbacktrace ; then \
+ cd $(HOST_SUBDIR); mv libbacktrace stageprofile-libbacktrace ; \
+ mv prev-libbacktrace stage1-libbacktrace ; : ; \
+ fi
+@endif libbacktrace
@if libcpp
@if test -d $(HOST_SUBDIR)/libcpp ; then \
cd $(HOST_SUBDIR); mv libcpp stageprofile-libcpp ; \
@@ -42880,6 +44315,12 @@ stagefeedback-start::
mv stagefeedback-ld ld ; \
mv stageprofile-ld prev-ld || test -f stageprofile-lean
@endif ld
+@if libbacktrace
+ @cd $(HOST_SUBDIR); [ -d stagefeedback-libbacktrace ] || \
+ mkdir stagefeedback-libbacktrace; \
+ mv stagefeedback-libbacktrace libbacktrace ; \
+ mv stageprofile-libbacktrace prev-libbacktrace || test -f stageprofile-lean
+@endif libbacktrace
@if libcpp
@cd $(HOST_SUBDIR); [ -d stagefeedback-libcpp ] || \
mkdir stagefeedback-libcpp; \
@@ -43000,6 +44441,12 @@ stagefeedback-end::
mv prev-ld stageprofile-ld ; : ; \
fi
@endif ld
+@if libbacktrace
+ @if test -d $(HOST_SUBDIR)/libbacktrace ; then \
+ cd $(HOST_SUBDIR); mv libbacktrace stagefeedback-libbacktrace ; \
+ mv prev-libbacktrace stageprofile-libbacktrace ; : ; \
+ fi
+@endif libbacktrace
@if libcpp
@if test -d $(HOST_SUBDIR)/libcpp ; then \
cd $(HOST_SUBDIR); mv libcpp stagefeedback-libcpp ; \
@@ -43152,6 +44599,7 @@ configure-stage3-target-libgcc: maybe-all-stage3-gcc
configure-stage4-target-libgcc: maybe-all-stage4-gcc
configure-stageprofile-target-libgcc: maybe-all-stageprofile-gcc
configure-stagefeedback-target-libgcc: maybe-all-stagefeedback-gcc
+configure-target-libbacktrace: stage_last
configure-target-libquadmath: stage_last
configure-target-libgfortran: stage_last
configure-target-libobjc: stage_last
@@ -43181,6 +44629,7 @@ configure-target-libmudflap: maybe-all-gcc
configure-target-libssp: maybe-all-gcc
configure-target-newlib: maybe-all-gcc
configure-target-libgcc: maybe-all-gcc
+configure-target-libbacktrace: maybe-all-gcc
configure-target-libquadmath: maybe-all-gcc
configure-target-libgfortran: maybe-all-gcc
configure-target-libobjc: maybe-all-gcc
@@ -43949,6 +45398,7 @@ configure-target-libstdc++-v3: maybe-all-target-libgcc
configure-target-libmudflap: maybe-all-target-libgcc
configure-target-libssp: maybe-all-target-libgcc
configure-target-newlib: maybe-all-target-libgcc
+configure-target-libbacktrace: maybe-all-target-libgcc
configure-target-libquadmath: maybe-all-target-libgcc
configure-target-libgfortran: maybe-all-target-libgcc
configure-target-libobjc: maybe-all-target-libgcc
@@ -43976,6 +45426,8 @@ configure-target-libssp: maybe-all-target-newlib maybe-all-target-libgloss
+configure-target-libbacktrace: maybe-all-target-newlib maybe-all-target-libgloss
+
configure-target-libquadmath: maybe-all-target-newlib maybe-all-target-libgloss
configure-target-libgfortran: maybe-all-target-newlib maybe-all-target-libgloss
diff --git a/config/ChangeLog b/config/ChangeLog
index 90008a5bc..7db0c6b04 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,7 @@
+2012-09-19 Steve Ellcey <sellcey@mips.com>
+
+ * mt-sde: Change -mcode-xonly to -mcode-readable=pcrel.
+
2012-09-03 Richard Guenther <rguenther@suse.de>
PR bootstrap/54138
diff --git a/config/mt-sde b/config/mt-sde
index d6992e415..a3fc1e1d7 100644
--- a/config/mt-sde
+++ b/config/mt-sde
@@ -1,10 +1,10 @@
# We default to building libraries optimised for size. We use
# -minterlink-mips16 so that the non-MIPS16 libraries can still be
-# linked against partly-MIPS16 code. The -mcode-xonly option allows
+# linked against partly-MIPS16 code. The -mcode-readable=pcrel option allows
# MIPS16 libraries to run on Harvard-style split I/D memories, so long
# as they have the D-to-I redirect for PC-relative loads. -mno-gpopt
# has two purposes: it allows libraries to be used in situations where
# $gp != our _gp, and it allows them to be built with -G8 while
# retaining link compatibility with -G0 and -G4.
-CFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt
-CXXFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt
+CFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-readable=pcrel -mno-gpopt
+CXXFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-readable=pcrel -mno-gpopt
diff --git a/configure b/configure
index a5df0c867..8011d82df 100755
--- a/configure
+++ b/configure
@@ -2698,7 +2698,7 @@ build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
# these libraries are used by various programs built for the host environment
#
-host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv"
+host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv"
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
@@ -2717,6 +2717,7 @@ libgcj="target-libffi \
# the host libraries and the host tools (which may be a cross compiler)
# Note that libiberty is not a target library.
target_libraries="target-libgcc \
+ target-libbacktrace \
target-libgloss \
target-newlib \
target-libgomp \
@@ -2915,7 +2916,7 @@ case "${ENABLE_GOLD}" in
if test "$is_elf" = "yes"; then
# Check for target supported by gold.
case "${target}" in
- i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
+ i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* | tilegx*-*-*)
configdirs="$configdirs gold"
if test x${ENABLE_GOLD} = xdefault; then
default_ld=gold
@@ -3135,6 +3136,15 @@ $as_echo "yes" >&6; }
fi
fi
+# Disable libquadmath for some systems.
+case "${target}" in
+ # libquadmath is unused on AIX and libquadmath build process use of
+ # LD_LIBRARY_PATH can break AIX bootstrap.
+ powerpc-*-aix* | rs6000-*-aix*)
+ noconfigdirs="$noconfigdirs target-libquadmath"
+ ;;
+esac
+
# Disable libssp for some systems.
case "${target}" in
avr-*-*)
@@ -3640,7 +3650,7 @@ case "${target}" in
microblaze*)
noconfigdirs="$noconfigdirs gprof"
;;
- mips*-sde-elf*)
+ mips*-sde-elf* | mips*-mti-elf*)
if test x$with_newlib = xyes; then
noconfigdirs="$noconfigdirs gprof"
fi
@@ -6656,7 +6666,7 @@ case "${target}" in
spu-*-*)
target_makefile_frag="config/mt-spu"
;;
- mips*-sde-elf*)
+ mips*-sde-elf* | mips*-mti-elf*)
target_makefile_frag="config/mt-sde"
;;
mipsisa*-*-elfoabi*)
@@ -14247,6 +14257,7 @@ compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
case "$target" in
hppa*64*-*-hpux*) ;;
hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
+ powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;;
esac
diff --git a/configure.ac b/configure.ac
index 0eac6a4f1..f0d86d906 100644
--- a/configure.ac
+++ b/configure.ac
@@ -133,7 +133,7 @@ build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
# these libraries are used by various programs built for the host environment
#
-host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv"
+host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv"
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
@@ -152,6 +152,7 @@ libgcj="target-libffi \
# the host libraries and the host tools (which may be a cross compiler)
# Note that libiberty is not a target library.
target_libraries="target-libgcc \
+ target-libbacktrace \
target-libgloss \
target-newlib \
target-libgomp \
@@ -328,7 +329,7 @@ case "${ENABLE_GOLD}" in
if test "$is_elf" = "yes"; then
# Check for target supported by gold.
case "${target}" in
- i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
+ i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* | tilegx*-*-*)
configdirs="$configdirs gold"
if test x${ENABLE_GOLD} = xdefault; then
default_ld=gold
@@ -1041,7 +1042,7 @@ case "${target}" in
microblaze*)
noconfigdirs="$noconfigdirs gprof"
;;
- mips*-sde-elf*)
+ mips*-sde-elf* | mips*-mti-elf*)
if test x$with_newlib = xyes; then
noconfigdirs="$noconfigdirs gprof"
fi
@@ -2260,7 +2261,7 @@ case "${target}" in
spu-*-*)
target_makefile_frag="config/mt-spu"
;;
- mips*-sde-elf*)
+ mips*-sde-elf* | mips*-mti-elf*)
target_makefile_frag="config/mt-sde"
;;
mipsisa*-*-elfoabi*)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 74d1f3c34..9602625ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,700 @@
+2012-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/54669
+ * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Invoke
+ maybe_clean_or_replace_eh_stmt on the modified use statements.
+
+2012-09-23 Marc Glisse <marc.glisse@inria.fr>
+
+ * expr.c (do_store_flag): Remove duplicated code.
+
+2012-09-22 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/predicates.md (altivec_register_operand,
+ vsx_register_operand, vfloat_operand, vint_operand,
+ vlogical_operand, gpc_reg_operand, cc_reg_operand,
+ cc_reg_not_cr0_operand, cc_reg_not_micro_cr0_operand):
+ If op is a SUBREG, consider its SUBREG_REG instead.
+
+2012-09-22 Uros Bizjak <ubizjak@gmail.com>
+
+ * optabs.c (prepare_cmp_insn): Expand comparison of the result
+ of memcmp through generic comparison expansion code.
+
+2012-09-21 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR bootstrap/54642
+ * Makefile.in (lto-symtab.o): Remove gt-lto-symtab.h dependency.
+
+2012-09-21 Dehao Chen <dehao@google.com>
+
+ PR go/54649
+ * tree-eh.c (lower_try_finally_dup_block): Set the correct block for
+ stmts in the duplicated EH block.
+
+2012-09-21 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/54647
+ * tree-ssa-pre.c (compute_avail): Do not put COND_EXPR
+ or VEC_COND_EXPR into EXP_GEN again.
+
+2012-09-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/54629
+ * tree-loop-distribution.c (classify_partition): Free loop nest only
+ after freeing ddr. Free ddr and loop nest also if successful.
+
+2012-09-21 Matthias Klose <doko@ubuntu.com>
+
+ * config/arm/arm.c (arm_mangle_type): Don't warn anymore that
+ 4.4 has changed the `va_list' mangling.
+
+2012-09-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/54290
+ PR rtl-optimization/54644
+ * reload1.c (choose_reload_regs): Fix thinko in previous change.
+
+2012-09-20 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.md (define_split for plus_eqsi):
+ Fix output pattern.
+
+2012-09-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * reload1.c (choose_reload_regs): Add missing #ifdef/#endif pair.
+
+2012-09-20 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR bootstrap/54643
+ * haifa-sched.c (schedule_block): Skip find_modifiable_mems if using
+ SCHED_PRESSURE_MODEL.
+
+2012-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling.
+
+2012-09-20 Marek Polacek <polacek@redhat.com>
+
+ * tree-ssa-operands.c (get_expr_operands): Merge identical cases.
+
+2012-09-20 Marek Polacek <polacek@redhat.com>
+
+ * tree-ssa-threadupdate.c (mark_threaded_blocks): Don't cast XNEWVEC's
+ result.
+ (create_edge_and_update_destination_phis): Likewise.
+
+2012-09-20 Martin Jambor <mjambor@suse.cz>
+
+ * function.c (push_cfun): Check old current_function_decl matches
+ old cfun, set new current_function_decl to the decl of the new cfun.
+ (push_struct_function): Likewise.
+ (pop_cfun): Likewise.
+ (allocate_struct_function): Move call to
+ invoke_set_current_function_hook to the end of the function.
+ * cfgexpand.c (estimated_stack_frame_size): Do not set and restore
+ current_function_decl.
+ * cgraph.c (cgraph_release_function_body): Likewise.
+ * cgraphunit.c (cgraph_process_new_functions): Likewise.
+ (cgraph_add_new_function): Likewise.
+ (cgraph_analyze_function): Likewise.
+ (assemble_thunk): Set cfun to NULL at the end.
+ (expand_function): Move call to set_cfun downwards.
+ * gimple-low.c (record_vars_into): Only check current_function_decl
+ before possibly doing push_cfun.
+ * gimplify.c (gimplify_function_tree): Do not set and restore
+ current_function_decl.
+ * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
+ (inline_analyze_function): Likewise.
+ * ipa-prop.c (ipa_analyze_node): Likewise.
+ * ipa-pure-const.c (analyze_function): Likewise.
+ * lto-streamer-in.c (lto_input_function_body): Do not set
+ current_function_decl.
+ * lto-streamer-out.c (output_function): Do not set and restore
+ current_function_decl.
+ * omp-low.c (finalize_task_copyfn): Likewise.
+ (expand_omp_taskreg): Likewise.
+ (create_task_copyfn): Likewise, move push_cfun up quite a bit.
+ * passes.c (dump_passes): Do not set and restore current_function_decl.
+ (do_per_function): Likewise.
+ (do_per_function_toporder): Likewise.
+ * trans-mem.c (ipa_tm_scan_irr_function): Likewise.
+ (ipa_tm_transform_transaction): Likewise.
+ (ipa_tm_transform_clone): Likewise.
+ (ipa_tm_execute): Likewise.
+ * tree-emutls.c (lower_emutls_function_body): Likewise.
+ * tree-inline.c (initialize_cfun): Do not call pop_cfun.
+ (tree_function_versioning): Do not call push_cfun, do not set and
+ restore current_function_decl. Remove assert checking consistency of
+ cfun and current_function_decl.
+ * tree-profile.c (tree_profiling): Do not set and restore
+ current_function_decl.
+ * tree-sra.c (convert_callers_for_node): Do not set
+ current_function_decl.
+ (convert_callers): Do not restore current_function_decl.
+ (modify_function): Do not set current_function_decl.
+ * tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore
+ current_function_decl.
+
+2012-09-20 Diego Novillo <dnovillo@google.com>
+
+ PR target/54631
+ * config/vxworks.c (vxworks_emutls_var_init): Update for new
+ VEC_quick_push interface.
+
+2012-09-20 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/54634
+ * tree-data-ref.c (get_references_in_stmt): For now give
+ up for pure functions.
+
+2012-09-20 Chen Wei-Ren <chenwj@iis.sinica.edu.tw>
+
+ * doc/lto.texi: Correct typo.
+
+2012-09-19 Dehao Chen <dehao@google.com>
+
+ * config/s390/s390.c (s390_chunkify_start): Replacing INSN_LOCATOR.
+ * config/spu/spu.c (emit_nop_for_insn): Likewise.
+ (pad_bb): Likewise.
+ (spu_emit_branch_hint): Likewise.
+ (insert_hbrp_for_ilb_runout): Likewise.
+ * config/mep/mep.c (mep_make_bundle): Likewise.
+ (mep_bundle_insns): Likewise.
+ * config/sh/sh.c (gen_block_redirect): Likewise.
+ * config/c6x/c6x.c (gen_one_bundle): Likewise.
+ * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Likewise.
+ * config/picochip/picochip.c (picochip_reorg): Likewise.
+ * config/arm/arm.c (require_pic_register): Likewise.
+ * config/mips/mips.c (mips16_gp_pseudo_reg): Likewise.
+ * config/bfin/bfin.c (gen_one_bundle): Likewise.
+
+2012-09-19 Mark Kettenis <kettenis@openbsd.org>
+
+ * config.gcc (hppa*-*-openbsd*): New target.
+ * config/pa/pa-openbsd.h: New file.
+ * config/pa/pa32-openbsd.h: New file.
+ * config/host-openbsd.c: Update copyright year.
+ (TRY_EXCEPT_VM_SPACE): Define for OpenBSD/hppa.
+
+2012-09-19 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.c (prune_expression_for_jf): New function.
+ (ipa_set_jf_constant): Use it.
+ (ipa_set_jf_arith_pass_through): Likewise.
+ (determine_known_aggregate_parts): Likewise.
+
+2012-09-19 Steve Ellcey <sellcey@mips.com>
+
+ * config.gcc (mips*-mti-elf*): New target.
+ * config/mips/mti-elf.h: New file.
+ * config/mips/t-mti-elf: New file.
+
+2012-09-19 Dehao Chen <dehao@google.com>
+
+ * toplev.c (general_init): Init block_locations.
+ * tree.c (tree_set_block): New.
+ (tree_block): Change to use LOCATION_BLOCK.
+ * tree.h (TREE_SET_BLOCK): New.
+ * final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
+ (final_start_function): Likewise.
+ * input.c (expand_location_1): Likewise.
+ * input.h (LOCATION_LOCUS): New.
+ (LOCATION_BLOCK): New.
+ (IS_UNKNOWN_LOCATION): New.
+ * fold-const.c (expr_location_or): Change to use new location.
+ * reorg.c (emit_delay_sequence): Likewise.
+ (try_merge_delay_insns): Likewise.
+ * modulo-sched.c (dump_insn_location): Likewise.
+ * lto-streamer-out.c (lto_output_location_bitpack): Likewise.
+ * lto-cgraph.c (output_node_opt_summary): Likewise.
+ * jump.c (rtx_renumbered_equal_p): Likewise.
+ * ifcvt.c (noce_try_move): Likewise.
+ (noce_try_store_flag): Likewise.
+ (noce_try_store_flag_constants): Likewise.
+ (noce_try_addcc): Likewise.
+ (noce_try_store_flag_mask): Likewise.
+ (noce_try_cmove): Likewise.
+ (noce_try_cmove_arith): Likewise.
+ (noce_try_minmax): Likewise.
+ (noce_try_abs): Likewise.
+ (noce_try_sign_mask): Likewise.
+ (noce_try_bitop): Likewise.
+ (noce_process_if_block): Likewise.
+ (cond_move_process_if_block): Likewise.
+ (find_cond_trap): Likewise.
+ * ipa-prop.c (ipa_set_jf_constant): Likewise.
+ (ipa_write_jump_function): Likewise.
+ * dwarf2out.c (add_src_coords_attributes): Likewise.
+ * expr.c (expand_expr_real): Likewise.
+ * tree-parloops.c (create_loop_fn): Likewise.
+ * recog.c (peep2_attempt): Likewise.
+ * function.c (free_after_compilation): Likewise.
+ (expand_function_end): Likewise.
+ (set_insn_locations): Likewise.
+ (thread_prologue_and_epilogue_insns): Likewise.
+ * print-rtl.c (print_rtx): Likewise.
+ * profile.c (branch_prob): Likewise.
+ * trans-mem.c (ipa_tm_scan_irr_block): Likewise.
+ * gimplify.c (gimplify_call_expr): Likewise.
+ * except.c (duplicate_eh_regions_1): Likewise.
+ * emit-rtl.c (try_split): Likewise.
+ (make_insn_raw): Likewise.
+ (make_debug_insn_raw): Likewise.
+ (make_jump_insn_raw): Likewise.
+ (make_call_insn_raw): Likewise.
+ (emit_pattern_after_setloc): Likewise.
+ (emit_pattern_after): Likewise.
+ (emit_debug_insn_after): Likewise.
+ (emit_pattern_before): Likewise.
+ (emit_insn_before_setloc): Likewise.
+ (emit_jump_insn_before): Likewise.
+ (emit_call_insn_before_setloc): Likewise.
+ (emit_call_insn_before): Likeise.
+ (emit_debug_insn_before_setloc): Likewise.
+ (emit_copy_of_insn_after): Likewise.
+ (insn_locators_alloc): Remove.
+ (insn_locators_finalize): Remove.
+ (insn_locators_free): Remove.
+ (set_curr_insn_source_location): Remove.
+ (get_curr_insn_source_location): Remove.
+ (set_curr_insn_block): Remove.
+ (get_curr_insn_block): Remove.
+ (locator_scope): Remove.
+ (insn_scope): Change to use new location.
+ (locator_location): Remove.
+ (insn_line): Change to use new location.
+ (locator_file): Remove.
+ (insn_file): Change to use new location.
+ (locator_eq): Remove.
+ (insn_locations_init): New.
+ (insn_locations_finalize): New.
+ (set_curr_insn_location): New.
+ (curr_insn_location): New.
+ * cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
+ (expand_gimple_cond): Likewise.
+ (expand_call_stmt): Likewise.
+ (expand_gimple_stmt_1): Likewise.
+ (expand_gimple_basic_block): Likewise.
+ (construct_exit_block): Likewise.
+ (gimple_expand_cfg): Likewise.
+ * cfgcleanup.c (try_forward_edges): Likewise.
+ * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
+ (dump_scope_block): Likewise.
+ (remove_unused_locals): Likewise.
+ * rtl.c (rtx_equal_p_cb): Likewise.
+ (rtx_equal_p): Likewise.
+ * rtl.h (XUINT): New.
+ (INSN_LOCATOR): Remove.
+ (CURR_INSN_LOCATION): Remove.
+ (INSN_LOCATION): New.
+ (INSN_HAS_LOCATION): New.
+ * tree-inline.c (remap_gimple_op_r): Change to use new location.
+ (copy_tree_body_r): Likewise.
+ (copy_phis_for_bb): Likewise.
+ (expand_call_inline): Likewise.
+ * tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
+ * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
+ * gimple-streamer-out.c (output_gimple_stmt): Likewise.
+ * combine.c (try_combine): Likewise.
+ * tree-outof-ssa.c (set_location_for_edge): Likewise.
+ (insert_partition_copy_on_edge): Likewise.
+ (insert_value_copy_on_edge): Likewise.
+ (insert_rtx_to_part_on_edge): Likewise.
+ (insert_part_to_rtx_on_edge): Likewise.
+ * basic-block.h (edge_def): Remove field.
+ * gimple.h (gimple_statement_base): Remove field.
+ (gimple_bb): Change to use new location.
+ (gimple_set_block): Likewise.
+ (gimple_has_location): Likewise.
+ * tree-cfg.c (make_cond_expr_edges): Likewise.
+ (make_goto_expr_edges): Likewise.
+ (gimple_can_merge_blocks_p): Likewise.
+ (move_stmt_op): Likewise.
+ (move_block_to_fn): Likewise.
+ * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
+ * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
+ * config/i386/i386.c (x86_output_mi_thunk): Likewise.
+ * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
+ * config/sh/sh.c (sh_output_mi_thunk): Likewise.
+ * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
+ * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
+ * config/score/score.c (score_output_mi_thunk): Likewise.
+ * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
+ * config/mips/mips.c (mips_output_mi_thunk): Likewise.
+ * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
+ (unique_locus_on_edge_between_p): Likewise.
+ (emit_nop_for_unique_locus_between): Likewise.
+ (force_nonfallthru_and_redirect): Likewise.
+ (fixup_reorder_chain): Likewise.
+ (cfg_layout_merge_blocks): Likewise.
+ * stmt.c (emit_case_nodes): Likewise.
+
+2012-09-19 Bernd Schmidt <bernds@codesourcery.com>
+
+ * dbgcnt.def (sched_breakdep): New counter.
+ * haifa-sched.c (update_insn_after_change): New static function,
+ broken out of haifa_change_pattern.
+ (haifa_change_pattern): Call it.
+ (dep_t heap vecs): Declare.
+ (INSN_COST): Define earlier.
+ (next_cycle_replace_deps, next_cycle_apply): New static variables.
+ (apply_replacement): New static function.
+ (recompute_todo_spec): New argument FOR_BACKTRACK. All callers
+ changed. Handle DEP_REPLACE deps.
+ (contributes_to_priority_p): False for replaceable deps.
+ (must_restore_pattern_p, restore_pattern): New static functions.
+ (schedule_insn): Use them. Apply replacements for broken deps.
+ (struct haifa_saved_data): Add new fields to keep track of
+ replacements.
+ (save_backtrack_point): Initialize them.
+ (undo_replacements_for_backtrack): New static function.
+ (restore_last_backtrack_point, free_topmost_backtrack_point):
+ Use it and keep track of replacements.
+ (perform_replacements_new_cycle, undo_all_replacements): New static
+ functions.
+ (schedule_block): Call these two as necessary. Call
+ find_modifiable_mems.
+ (try_ready): Tweak the assert. Check for DEP_POSTPONED.
+ * sched-deps.c: Include "emit-rtl.h".
+ (init_dep_1): Initialize DEP_NONREG, DEP_MULTIPLE and DEP_REPLACE.
+ (dep_spec_p): True for DEP_REPLACE deps.
+ (mark_as_hard): New static variable.
+ (update_dep): Update DEP_NONREG and DEP_MULTIPLE.
+ (add_dependence_list): New argument hard. All callers changed. Set
+ and clear mark_as_hard around function body.
+ (add_dependence_list_and_free): Likewise.
+ (haifa_note_mem_dep): Set DEP_NONREG.
+ (haifa_note_dep): Likewise if mark_as_hard is true.
+ (sched_analyze_insn): Switch loop with if statement testing for
+ sel_sched_p.
+ (struct mem_inc_info): New.
+ (attempt_change, parse_add_or_inc, find_inc, find_mem): New static
+ functions.
+ (find_modifiable_mems): New function.
+ * sched-int.h (struct dep_replacement): New.
+ (struct _dep): Add replace, nonreg and multiple fields. Make type and
+ cost bitfields.
+ (UNKNOWN_DEP_COST): Change to match the bitfield.
+ (DEP_NONREG, DEP_MULTIPLE, DEP_REPLACE): New macros.
+ (DEP_POSTPONED): New macro.
+ (DEP_CANCELLED): Renumber.
+ (find_modifiable_mems): Declare.
+ (enum SCHED_FLAGS): Add DONT_BREAK_DEPENDENCIES.
+ * sched-rgn.c (init_ready_list): Set TODO_SPEC here.
+ (new_ready): Don't set HARD_DEP, use DEP_POSTPONED.
+ (debug_dependencies): Dump DEP_NONREG and DEP_MULTIPLE.
+ * Makefile.in (sched-deps.o): Update dependencies.
+ * config/c6x/c6x.c (in_hwloop): New static variable.
+ (c6x_set_sched_flags): If it is true, add DONT_BREAK_DEPENDENCIES.
+ (hwloop_optimize): Set and clear it around preliminary scheduling pass.
+
+2012-09-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * config/rs6000/rs6000-builtin.def: Add __builtin_ppc_get_timebase
+ and __builtin_ppc_mftb.
+ * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): New function
+ to expand an expression that calls a built-in without arguments.
+ (rs6000_expand_builtin): Add __builtin_ppc_get_timebase and
+ __builtin_ppc_mftb.
+ (rs6000_init_builtins): Likewise.
+ * config/rs6000/rs6000.md (rs6000_get_timebase): New pattern.
+ (rs6000_get_timebase_ppc32): New pattern.
+ (rs6000_mftb_<mode>): New pattern.
+
+ * doc/extend.texi (PowerPC Built-in Functions): New section.
+ (PowerPC AltiVec/VSX Built-in Functions): Move some built-ins
+ unrelated to Altivec/VSX to the new section.
+
+2012-09-19 David Edelsohn <dje.gcc@gmail.com>
+
+ * rs6000.md (mac*): Remove extra spaces.
+ (mulhw*): Same.
+
+2012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54089
+ * config/sh/predicates.md (arith_reg_or_t_reg_operand): New predicate.
+ * config/sh/sh.md (*rotcr): Use arith_reg_or_t_reg_operand predicate.
+ Handle the case where one of the operands is T_REG.
+ Add new pattern to handle MSB extraction.
+
+2012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54236
+ * config/sh/sh.md (*addc): Add pattern to handle one bit left shifts.
+
+2012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
+
+ * config/sh/sh.md (prologue, epilogue): Use braced strings.
+
+2012-09-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/54290
+ * reload1.c (choose_reload_regs): Also take into account secondary MEMs
+ to remove address replacements for inherited reloads.
+ (replaced_subreg): Move around.
+
+2012-09-19 David Edelsohn <dje.gcc@gmail.com>
+
+ * config/rs6000/aix61.h (TARGET_DEFAULT): Add MASK_PPC_GPOPT,
+ MASK_PPC_GFXOPT, and MASK_MFCRF.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ * passes.c (init_optimization_passes): For -Og move
+ pass_object_sizes inbetween CCP and copyprop.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (get_prop_source_stmt): Simplify.
+
+2012-09-19 Jan Hubicka <jh@suse.cz>
+
+ * symtab.c (insert_to_assembler_name_hash): Do not insert
+ register vars.
+ (unlink_from_assembler_name_hash): NULL out pointers of unlinked var.
+ (symtab_prevail_in_asm_name_hash): New.
+ (symtab_initialize_asm_name_hash): Break out from ...
+ (symtab_node_for_asm): ... here.
+ (dump_symtab_base): Dump LTO file data.
+ (verify_symtab_base): Register vars are not in symtab.
+ * cgraph.h (symtab_initialize_asm_name_hash,
+ symtab_prevail_in_asm_name_hash): New functions.
+ (symtab_real_symbol_p): New inline.
+ * lto-symtab.c: Do not include gt-lto-symtab.h.
+ (lto_symtab_entry_def): Remove.
+ (lto_symtab_entry_t): Remove.
+ (lto_symtab_identifiers): Remove.
+ (lto_symtab_free): Remove.
+ (lto_symtab_entry_hash): Remove.
+ (lto_symtab_entry_eq): Remove.
+ (lto_symtab_entry_marked_p): Remove.
+ (lto_symtab_maybe_init_hash_table): Remove.
+ (resolution_guessed_p, set_resolution_guessed): New functions.
+ (lto_symtab_register_decl): Only set resolution info.
+ (lto_symtab_get, lto_symtab_get_resolution): Remove.
+ (lto_symtab_merge): Reorg to work across symtab; do nothing if decls
+ are same.
+ (lto_symtab_resolve_replaceable_p): Reorg to work on symtab.
+ (lto_symtab_resolve_can_prevail_p): Likewise; only real symbols can
+ prevail.
+ (lto_symtab_resolve_symbols): Reorg to work on symtab.
+ (lto_symtab_merge_decls_2): Likewise.
+ (lto_symtab_merge_decls_1): Likewise; add debug dumps.
+ (lto_symtab_merge_decls): Likewise; do not merge at ltrans stage.
+ (lto_symtab_merge_cgraph_nodes_1): Reorg to work on symtab.
+ (lto_symtab_merge_cgraph_nodes): Likewise; do not merge at ltrans
+ stage.
+ (lto_symtab_prevailing_decl): Rewrite to lookup into symtab.
+ * lto-streaer.h (lto_symtab_free): Remove.
+ * lto-cgraph.c (add_references): Cleanup.
+ * varpool.c (varpool_assemble_decl): Skip hard regs.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ PR other/53316
+ * common/common-target.h (OPT_LEVELS_1_PLUS_NOT_DEBUG): Add.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ PR other/53316
+ * common.opt (optimize_debug): New variable.
+ (Og): New optimization level.
+ * doc/invoke.texi (Og): Document.
+ * opts.c (maybe_default_option): Add debug parameter.
+ (maybe_default_options): Likewise.
+ (default_options_optimization): Handle -Og.
+ (common_handle_option): Likewise.
+ * passes.c (gate_all_optimizations): Do not run with -Og.
+ (gate_all_optimizations_g): New gate, run with -Og.
+ (pass_all_optimizations_g): New container pass, run with -Og.
+ (init_optimization_passes): Schedule pass_all_optimizations_g
+ alongside pass_all_optimizations.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/54132
+ * tree-loop-distribution.c (classify_partition): Properly
+ check dependences for memmove.
+ * tree-data-ref.h (compute_affine_dependence): Declare.
+ * tree-data-ref.c (compute_affine_dependence): Export.
+
+2012-09-19 Zhenqiang Chen <zhenqiang.chen@arm.com>
+
+ PR middle-end/54364
+ * bb-reorder.c (connect_better_edge_p): New added.
+ (find_traces_1_round): When optimizing for size, ignore edge frequency
+ and probability, and handle all in one round.
+ (bb_to_key): Use bb->index as key when optimizing for size.
+ (better_edge_p): The bb with smaller index is better when optimizing
+ for size.
+ (connect_traces): When optimizing for size, connect block n with
+ block n + 1; connect trace m with trace m + 1 if falling through.
+ (gate_handle_reorder_blocks): Enable bbro when optimizing for -Os.
+
+2012-09-19 Bin Cheng <bin.cheng@arm.com>
+
+ * fold-const.c (fold_truth_andor): Remove duplicated check on
+ BRANCH_COST.
+
+2012-09-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/54617
+ * expr.c (store_field): Handle a PARALLEL in more cases.
+
+2012-09-18 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): Delete.
+ (abssi2, abs<mode>2_isel, nabs<mode>2_isel, abssi2_nopower,
+ nabs_nopower): Delete.
+ (absdi2, absdi2_internal, nabsdi2): Delete.
+ (smindi3, smaxdi3, umindi3, umaxdi3): Delete.
+
+2012-09-18 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.md: Tidy up empty "". Fix C code indentation.
+ * config/avr/avr-fixed.md: Ditto.
+
+2012-09-18 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * config/rs6000/rs6000.c (print_operand) <'c'>: Remove.
+ * config/rs6000/spe.md: Remove a leftover comment.
+
+2012-09-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/54592
+ * config/i386/i386.c (ix86_rtx_costs): Limit > UNITS_PER_WORD
+ AND/IOR/XOR cost calculation to MODE_INT class modes.
+
+2012-09-18 Thomas Quinot <quinot@adacore.com>
+
+ * doc/invoke.texi: Document -fada-spec-parent.
+
+2012-09-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/54610
+ * tree-ssa-forwprop.c: Include optabs.h. Don't include
+ tree-vectorizer.h.
+ (simplify_vector_constructor): Don't use vect_gen_perm_mask,
+ instead create the mask constant here.
+ * Makefile.in (tree-ssa-forwprop.o): Depend on $(OPTABS_H).
+ Don't depend on $(TREE_VECTORIZER_H).
+
+2012-09-18 Florian Weimer <fweimer@redhat.com>
+
+ * Makefile.in (BASIC_BLOCK_H): Add cfg-flags.def.
+
+2012-09-18 Richard Guenther <rguenther@suse.de>
+
+ * statistics.h (CXX_MEM_STAT_INFO): New define.
+ * gimple.h (gimple_build_assign_with_ops_stat,
+ gimple_build_assign_with_ops, gimple_build_assign_with_ops3):
+ Turn into an overload of the function gimple_build_assign_with_ops.
+ * gimple.c (gimple_build_assign_with_ops_stat): Rename to ...
+ (gimple_build_assign_with_ops): ... this.
+ * tree-ssa-loop-im.c (move_computations_stmt): Adjust.
+ * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
+ * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
+ (vect_permute_load_chain): Likewise.
+ * tree-vect-generic.c (expand_vector_divmod): Likewise.
+ * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
+ (vect_recog_divmod_pattern): Likewise.
+ (vect_recog_mixed_size_cond_pattern): Likewise.
+ (adjust_bool_pattern): Likewise.
+ * tree-vect-slp.c (vect_create_mask_and_perm): Likewise.
+ * tree-vect-stmts.c (vectorizable_operation): Likewise.
+ (permute_vec_elements): Likewise.
+ (vectorizable_load): Likewise.
+
+2012-09-17 Paul Koning <ni1d@arrl.net>
+
+ * doc/invoke.text (-feliminate-unused-debug-types): Update to
+ reflect that this is enabled by default.
+
+2012-09-17 Ben Cheng <bccheng@google.com
+
+ * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Suppress the
+ dynamic linker commands for statically linked programs.
+
+2012-09-17 Ulrich Weigand <ulrich.weigand@linaro.org>
+
+ * config/arm/arm.c (arm_rtx_costs_1): Handle vec_extract and vec_set
+ patterns.
+ * config/arm/arm.md ("vec_set<mode>_internal"): Support memory source
+ operands, implemented via vld1 instruction.
+ ("vec_extract<mode>"): Support memory destination operands, implemented
+ via vst1 instruction.
+ ("neon_vst1_lane<mode>"): Use UNSPEC_VST1_LANE instead of vec_select.
+ * config/arm/predicates.md ("neon_lane_number"): Remove.
+
+2012-09-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+ Ulrich Weigand <ulrich.weigand@linaro.org>
+
+ * config/arm/arm.c (output_move_neon): Update comment.
+ Use vld1.64/vst1.64 instead of vldm/vstm where possible.
+ (neon_vector_mem_operand): Support double-word modes.
+ * config/arm/neon.md (*neon_mov VD): Call output_move_neon
+ instead of output_move_vfp. Change constraint from Uv to Un.
+
+2012-09-17 Richard Guenther <rguenther@suse.de>
+
+ PR lto/54598
+ * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed
+ FIXED_VALUE_TYPE instead of struct fixed_value.
+
+2012-09-17 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.c (CONST_FIXED_P): Remove define.
+ * config/avr/avr.md (add<mode>3): Use CONST_FIXED_P.
+
+2012-09-17 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/54607
+ * config.gcc (tm_file,avr): Add avr/avr-arch.h.
+ * config/avr/t-avr (gen-avr-mmcu-texi): Use CC_FOR_BUILD to
+ compile. Don't depend on TM_H. Use CFLAGS_FOR_BUILD.
+ * config/avr/avr.h (avr_arch, base_arch_s, mcu_type_s): Source out
+ to...
+ * config/avr/avr-arch.h: ...this new file.
+ * config/avr/gen-avr-mmcu-texi.c: Include avr-arch.h, stdio.h,
+ stdlib.h.
+ * comparator: Make letters smaller than digits.
+ * config/avr/avr-devices.c: Don't include headers if used in
+ gen-avr-mmcu-texi.c.
+ * doc/avr-mmcu.texi: Regenerate.
+
+2012-09-17 Georg-Johann Lay <avr@gjlay.de>
+
+ * rtl.h (CONST_FIXED_P): New predicate macro.
+
+2012-09-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-cfgcleanup. (cleanup_control_expr_graph) <GIMPLE_COND>: Remove
+ code doing propagation from degenerate PHI nodes.
+ * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): New function.
+ (propagate_constants_for_unrolling): Likewise.
+ (tree_unroll_loops_completely): If the current loop has been unrolled
+ and its father isn't the entire function, propagate constants within
+ the new basic blocks by means of propagate_constants_for_unrolling.
+
+2012-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/54563
+ * tree-ssa-math-opts.c (execute_cse_sincos): Call
+ gimple_purge_dead_eh_edges if last call has been changed.
+
+2012-09-17 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/54222
+ * config/avr/avr.c (avr_out_plus_symbol): Fix typo if PLUS and PSImode.
+ (avr_out_plus_1): Remove log comments from assembler output.
+
+2012-09-17 Ruben Buchatskiy <ruben@ispras.ru>
+
+ * config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands
+ to be a register.
+
2012-09-16 Richard Sandiford <rdsandiford@googlemail.com>
* calls.c (expand_call): Use emit_group_move for PARALLEL->PARALLEL
@@ -42,7 +739,7 @@
(avr_out_plus_symbol): New static function.
(avr_out_plus): Rewrite.
(adjust_insn_length): Handle: ADJUST_LEN_PLUS. Remove handling
- of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS,
+ of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS,
ADJUST_LEN_MINUS64, ADJUST_LEN_OUT_PLUS_NOCLOBBER.
(notice_update_cc): Handle: CC_PLUS. Remove handling of: CC_MINUS,
CC_OUT_PLUS, CC_OUT_PLUS_NOCLOBBER
@@ -158,8 +855,10 @@
(*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
Remove third alternative.
(*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise. Negate
- operand 2 instead of operand 1, but put it as first argument
- of fma.
+ operand 2 instead of operand 1, but put it as first argument of fma.
+ * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
+ _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
+ of the first.
2012-09-14 Richard Guenther <rguenther@suse.de>
@@ -171,11 +870,9 @@
2012-09-14 Richard Guenther <rguenther@suse.de>
- * tree-vrp.c (register_new_assert_for): Simplify for backward
- walk.
- (find_assert_locations_1): Walk the basic-block backwards,
- properly add/prune from live. Use live for asserts derived
- from stmts.
+ * tree-vrp.c (register_new_assert_for): Simplify for backward walk.
+ (find_assert_locations_1): Walk the basic-block backwards, properly
+ add/prune from live. Use live for asserts derived from stmts.
2012-09-14 Marc Glisse <marc.glisse@inria.fr>
@@ -201,8 +898,7 @@
(BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Add bi-endian support.
(TARGET_CPU_CPP_BUILTINS): Add __MOXIE_LITTLE_ENDIAN__ and
__MOXIE_BIG_ENDIAN__.
- * config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS):
- Define.
+ * config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS): Define.
* config/moxie/moxie.opt: New file.
* doc/invoke.texi (Moxie Options): Add section documenting -mel
and -meb.
@@ -211,8 +907,7 @@
Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/53210
- * doc/invoke.texi ([Winit-self]): Document as enabled by -Wall
- in C++.
+ * doc/invoke.texi ([Winit-self]): Document as enabled by -Wall in C++.
2012-09-13 Eric Botcazou <ebotcazou@adacore.com>
@@ -1001,7 +1696,7 @@
* config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
-2012-09-05 Diego Novillo <dnovillo@google.com>
+2012-09-05 Diego Novillo <dnovillo@google.com>
PR bootstrap/54484
* vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN argument.
@@ -1142,7 +1837,7 @@
(init_pre): Likewise.
(fini_pre): Likewise.
-2012-09-04 Diego Novillo <dnovillo@google.com>
+2012-09-04 Diego Novillo <dnovillo@google.com>
PR bootstrap/54479
* vec.h (vec_t::copy): Add cast in call to reserve_exact.
@@ -1155,7 +1850,7 @@
AVAIL_OUT for FRE.
(init_pre): Do not allocate not needed bitmap sets for FRE.
-2012-09-04 Diego Novillo <dnovillo@google.com>
+2012-09-04 Diego Novillo <dnovillo@google.com>
Rewrite VEC_* functions as member functions of vec_t.
diff --git a/gcc/ChangeLog.aarch64 b/gcc/ChangeLog.aarch64
index 90fba49a2..983fa7bda 100644
--- a/gcc/ChangeLog.aarch64
+++ b/gcc/ChangeLog.aarch64
@@ -1,3 +1,8 @@
+2012-09-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Remove
+ duplicate.
+
2012-09-25 Tejas Belagod <tejas.belagod@arm.com>
* config/aarch64/aarch64.c (aarch64_shift_truncation_mask): Define.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f23e5dcd2..c73928c42 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20120917
+20120924
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index fc9a37d5e..4901b9567 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -851,7 +851,8 @@ TREE_H = coretypes.h tree.h all-tree.def tree.def c-family/c-common.def \
double-int.h alias.h $(SYMTAB_H) $(FLAGS_H) vecir.h \
$(REAL_H) $(FIXED_VALUE_H)
REGSET_H = regset.h $(BITMAP_H) hard-reg-set.h
-BASIC_BLOCK_H = basic-block.h $(PREDICT_H) $(VEC_H) $(FUNCTION_H) cfghooks.h
+BASIC_BLOCK_H = basic-block.h $(PREDICT_H) $(VEC_H) $(FUNCTION_H) \
+ cfg-flags.def cfghooks.h
GIMPLE_H = gimple.h gimple.def gsstruct.def pointer-set.h $(VEC_H) \
vecir.h $(GGC_H) $(BASIC_BLOCK_H) $(TREE_H) tree-ssa-operands.h \
tree-ssa-alias.h $(INTERNAL_FN_H)
@@ -2155,7 +2156,7 @@ lto-section-out.o : lto-section-out.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(DATA_STREAMER_H)
lto-symtab.o: lto-symtab.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TREE_H) $(GIMPLE_H) $(GGC_H) $(HASHTAB_H) \
- $(LTO_STREAMER_H) $(LINKER_PLUGIN_API_H) gt-lto-symtab.h
+ $(LTO_STREAMER_H) $(LINKER_PLUGIN_API_H)
lto-opts.o: lto-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
$(HASHTAB_H) $(GGC_H) $(BITMAP_H) $(FLAGS_H) $(OPTS_H) $(OPTIONS_H) \
$(COMMON_TARGET_H) $(DIAGNOSTIC_H) $(LTO_STREAMER_H)
@@ -2245,7 +2246,7 @@ tree-ssa-forwprop.o : tree-ssa-forwprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(TREE_H) $(TM_P_H) $(BASIC_BLOCK_H) $(CFGLOOP_H) \
$(TREE_FLOW_H) $(TREE_PASS_H) $(DIAGNOSTIC_H) \
langhooks.h $(FLAGS_H) $(GIMPLE_H) $(GIMPLE_PRETTY_PRINT_H) $(EXPR_H) \
- $(TREE_VECTORIZER_H)
+ $(OPTABS_H)
tree-ssa-phiprop.o : tree-ssa-phiprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(TREE_H) $(TM_P_H) $(BASIC_BLOCK_H) \
$(TREE_FLOW_H) $(TREE_PASS_H) $(DIAGNOSTIC_H) \
@@ -3238,7 +3239,7 @@ haifa-sched.o : haifa-sched.c $(CONFIG_H) $(SYSTEM_H) coretypes.h dumpfile.h \
sched-deps.o : sched-deps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
$(FUNCTION_H) $(INSN_ATTR_H) $(DIAGNOSTIC_CORE_H) $(RECOG_H) $(EXCEPT_H) cselib.h \
- ira.h $(PARAMS_H) $(TM_P_H) ira.h $(TARGET_H) $(TREE_H)
+ ira.h $(PARAMS_H) $(TM_P_H) ira.h $(TARGET_H) $(TREE_H) $(EMIT_RTL_H)
sched-rgn.o : sched-rgn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) $(SCHED_INT_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
$(FUNCTION_H) $(INSN_ATTR_H) $(DIAGNOSTIC_CORE_H) $(RECOG_H) $(EXCEPT_H) $(PARAMS_H) \
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 288127f56..32dd17736 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -48,8 +48,7 @@ struct GTY((user)) edge_def {
/* Auxiliary info specific to a pass. */
PTR aux;
- /* Location of any goto implicit in the edge and associated BLOCK. */
- tree goto_block;
+ /* Location of any goto implicit in the edge. */
location_t goto_locus;
/* The index number corresponding to this edge in the edge vector
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 055c67b70..6c6b456ab 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -56,6 +56,20 @@
The rest of traces are simply connected so there will be a jump to the
beginning of the rest of traces.
+ The above description is for the full algorithm, which is used when the
+ function is optimized for speed. When the function is optimized for size,
+ in order to reduce long jumps and connect more fallthru edges, the
+ algorithm is modified as follows:
+ (1) Break long traces to short ones. A trace is broken at a block that has
+ multiple predecessors/ successors during trace discovery. When connecting
+ traces, only connect Trace n with Trace n + 1. This change reduces most
+ long jumps compared with the above algorithm.
+ (2) Ignore the edge probability and frequency for fallthru edges.
+ (3) Keep the original order of blocks when there is no chance to fall
+ through. We rely on the results of cfg_cleanup.
+
+ To implement the change for code size optimization, block's index is
+ selected as the key and all traces are found in one round.
References:
@@ -181,6 +195,8 @@ static basic_block copy_bb (basic_block, edge, basic_block, int);
static fibheapkey_t bb_to_key (basic_block);
static bool better_edge_p (const_basic_block, const_edge, int, int, int, int,
const_edge);
+static bool connect_better_edge_p (const_edge, bool, int, const_edge,
+ struct trace *);
static void connect_traces (int, struct trace *);
static bool copy_bb_p (const_basic_block, int);
static bool push_to_next_round_p (const_basic_block, int, int, int, gcov_type);
@@ -440,6 +456,7 @@ find_traces_1_round (int branch_th, int exec_th, gcov_type count_th,
/* Heap for discarded basic blocks which are possible starting points for
the next round. */
fibheap_t new_heap = fibheap_new ();
+ bool for_size = optimize_function_for_size_p (cfun);
while (!fibheap_empty (*heap))
{
@@ -459,10 +476,11 @@ find_traces_1_round (int branch_th, int exec_th, gcov_type count_th,
/* If the BB's frequency is too low, send BB to the next round. When
partitioning hot/cold blocks into separate sections, make sure all
the cold blocks (and ONLY the cold blocks) go into the (extra) final
- round. */
+ round. When optimizing for size, do not push to next round. */
- if (push_to_next_round_p (bb, round, number_of_rounds, exec_th,
- count_th))
+ if (!for_size
+ && push_to_next_round_p (bb, round, number_of_rounds, exec_th,
+ count_th))
{
int key = bb_to_key (bb);
bbd[bb->index].heap = new_heap;
@@ -533,10 +551,11 @@ find_traces_1_round (int branch_th, int exec_th, gcov_type count_th,
}
/* Edge that cannot be fallthru or improbable or infrequent
- successor (i.e. it is unsuitable successor). */
+ successor (i.e. it is unsuitable successor). When optimizing
+ for size, ignore the probability and frequency. */
if (!(e->flags & EDGE_CAN_FALLTHRU) || (e->flags & EDGE_COMPLEX)
- || prob < branch_th || EDGE_FREQUENCY (e) < exec_th
- || e->count < count_th)
+ || ((prob < branch_th || EDGE_FREQUENCY (e) < exec_th
+ || e->count < count_th) && (!for_size)))
continue;
/* If partitioning hot/cold basic blocks, don't consider edges
@@ -558,6 +577,30 @@ find_traces_1_round (int branch_th, int exec_th, gcov_type count_th,
&& copy_bb_p (best_edge->dest, 0))
best_edge = NULL;
+ /* If the best destination has multiple successors or predecessors,
+ don't allow it to be added when optimizing for size. This makes
+ sure predecessors with smaller index are handled before the best
+ destinarion. It breaks long trace and reduces long jumps.
+
+ Take if-then-else as an example.
+ A
+ / \
+ B C
+ \ /
+ D
+ If we do not remove the best edge B->D/C->D, the final order might
+ be A B D ... C. C is at the end of the program. If D's successors
+ and D are complicated, might need long jumps for A->C and C->D.
+ Similar issue for order: A C D ... B.
+
+ After removing the best edge, the final result will be ABCD/ ACBD.
+ It does not add jump compared with the previous order. But it
+ reduces the possiblity of long jumps. */
+ if (best_edge && for_size
+ && (EDGE_COUNT (best_edge->dest->succs) > 1
+ || EDGE_COUNT (best_edge->dest->preds) > 1))
+ best_edge = NULL;
+
/* Add all non-selected successors to the heaps. */
FOR_EACH_EDGE (e, ei, bb->succs)
{
@@ -599,11 +642,12 @@ find_traces_1_round (int branch_th, int exec_th, gcov_type count_th,
{
/* When partitioning hot/cold basic blocks, make sure
the cold blocks (and only the cold blocks) all get
- pushed to the last round of trace collection. */
+ pushed to the last round of trace collection. When
+ optimizing for size, do not push to next round. */
- if (push_to_next_round_p (e->dest, round,
- number_of_rounds,
- exec_th, count_th))
+ if (!for_size && push_to_next_round_p (e->dest, round,
+ number_of_rounds,
+ exec_th, count_th))
which_heap = new_heap;
}
@@ -685,6 +729,8 @@ find_traces_1_round (int branch_th, int exec_th, gcov_type count_th,
(i.e. 2 * B->frequency >= EDGE_FREQUENCY (AC) )
Best ordering is then A B C.
+ When optimizing for size, A B C is always the best order.
+
This situation is created for example by:
if (A) B;
@@ -704,7 +750,8 @@ find_traces_1_round (int branch_th, int exec_th, gcov_type count_th,
& EDGE_CAN_FALLTHRU)
&& !(single_succ_edge (e->dest)->flags & EDGE_COMPLEX)
&& single_succ (e->dest) == best_edge->dest
- && 2 * e->dest->frequency >= EDGE_FREQUENCY (best_edge))
+ && (2 * e->dest->frequency >= EDGE_FREQUENCY (best_edge)
+ || for_size))
{
best_edge = e;
if (dump_file)
@@ -824,6 +871,10 @@ bb_to_key (basic_block bb)
edge_iterator ei;
int priority = 0;
+ /* Use index as key to align with its original order. */
+ if (optimize_function_for_size_p (cfun))
+ return bb->index;
+
/* Do not start in probably never executed blocks. */
if (BB_PARTITION (bb) == BB_COLD_PARTITION
@@ -869,6 +920,11 @@ better_edge_p (const_basic_block bb, const_edge e, int prob, int freq,
int diff_prob = best_prob / 10;
int diff_freq = best_freq / 10;
+ /* The smaller one is better to keep the original order. */
+ if (optimize_function_for_size_p (cfun))
+ return !cur_best_edge
+ || cur_best_edge->dest->index > e->dest->index;
+
if (prob > best_prob + diff_prob)
/* The edge has higher probability than the temporary best edge. */
is_better_edge = true;
@@ -904,6 +960,73 @@ better_edge_p (const_basic_block bb, const_edge e, int prob, int freq,
return is_better_edge;
}
+/* Return true when the edge E is better than the temporary best edge
+ CUR_BEST_EDGE. If SRC_INDEX_P is true, the function compares the src bb of
+ E and CUR_BEST_EDGE; otherwise it will compare the dest bb.
+ BEST_LEN is the trace length of src (or dest) bb in CUR_BEST_EDGE.
+ TRACES record the information about traces.
+ When optimizing for size, the edge with smaller index is better.
+ When optimizing for speed, the edge with bigger probability or longer trace
+ is better. */
+
+static bool
+connect_better_edge_p (const_edge e, bool src_index_p, int best_len,
+ const_edge cur_best_edge, struct trace *traces)
+{
+ int e_index;
+ int b_index;
+ bool is_better_edge;
+
+ if (!cur_best_edge)
+ return true;
+
+ if (optimize_function_for_size_p (cfun))
+ {
+ e_index = src_index_p ? e->src->index : e->dest->index;
+ b_index = src_index_p ? cur_best_edge->src->index
+ : cur_best_edge->dest->index;
+ /* The smaller one is better to keep the original order. */
+ return b_index > e_index;
+ }
+
+ if (src_index_p)
+ {
+ e_index = e->src->index;
+
+ if (e->probability > cur_best_edge->probability)
+ /* The edge has higher probability than the temporary best edge. */
+ is_better_edge = true;
+ else if (e->probability < cur_best_edge->probability)
+ /* The edge has lower probability than the temporary best edge. */
+ is_better_edge = false;
+ else if (traces[bbd[e_index].end_of_trace].length > best_len)
+ /* The edge and the temporary best edge have equivalent probabilities.
+ The edge with longer trace is better. */
+ is_better_edge = true;
+ else
+ is_better_edge = false;
+ }
+ else
+ {
+ e_index = e->dest->index;
+
+ if (e->probability > cur_best_edge->probability)
+ /* The edge has higher probability than the temporary best edge. */
+ is_better_edge = true;
+ else if (e->probability < cur_best_edge->probability)
+ /* The edge has lower probability than the temporary best edge. */
+ is_better_edge = false;
+ else if (traces[bbd[e_index].start_of_trace].length > best_len)
+ /* The edge and the temporary best edge have equivalent probabilities.
+ The edge with longer trace is better. */
+ is_better_edge = true;
+ else
+ is_better_edge = false;
+ }
+
+ return is_better_edge;
+}
+
/* Connect traces in array TRACES, N_TRACES is the count of traces. */
static void
@@ -917,6 +1040,7 @@ connect_traces (int n_traces, struct trace *traces)
int current_partition;
int freq_threshold;
gcov_type count_threshold;
+ bool for_size = optimize_function_for_size_p (cfun);
freq_threshold = max_entry_frequency * DUPLICATION_THRESHOLD / 1000;
if (max_entry_count < INT_MAX / 1000)
@@ -980,10 +1104,7 @@ connect_traces (int n_traces, struct trace *traces)
&& bbd[si].end_of_trace >= 0
&& !connected[bbd[si].end_of_trace]
&& (BB_PARTITION (e->src) == current_partition)
- && (!best
- || e->probability > best->probability
- || (e->probability == best->probability
- && traces[bbd[si].end_of_trace].length > best_len)))
+ && connect_better_edge_p (e, true, best_len, best, traces))
{
best = e;
best_len = traces[bbd[si].end_of_trace].length;
@@ -1026,17 +1147,52 @@ connect_traces (int n_traces, struct trace *traces)
&& bbd[di].start_of_trace >= 0
&& !connected[bbd[di].start_of_trace]
&& (BB_PARTITION (e->dest) == current_partition)
- && (!best
- || e->probability > best->probability
- || (e->probability == best->probability
- && traces[bbd[di].start_of_trace].length > best_len)))
+ && connect_better_edge_p (e, false, best_len, best, traces))
{
best = e;
best_len = traces[bbd[di].start_of_trace].length;
}
}
- if (best)
+ if (for_size)
+ {
+ if (!best)
+ /* Stop finding the successor traces. */
+ break;
+
+ /* It is OK to connect block n with block n + 1 or a block
+ before n. For others, only connect to the loop header. */
+ if (best->dest->index > (traces[t].last->index + 1))
+ {
+ int count = EDGE_COUNT (best->dest->preds);
+
+ FOR_EACH_EDGE (e, ei, best->dest->preds)
+ if (e->flags & EDGE_DFS_BACK)
+ count--;
+
+ /* If dest has multiple predecessors, skip it. We expect
+ that one predecessor with smaller index connects with it
+ later. */
+ if (count != 1)
+ break;
+ }
+
+ /* Only connect Trace n with Trace n + 1. It is conservative
+ to keep the order as close as possible to the original order.
+ It also helps to reduce long jumps. */
+ if (last_trace != bbd[best->dest->index].start_of_trace - 1)
+ break;
+
+ if (dump_file)
+ fprintf (dump_file, "Connection: %d %d\n",
+ best->src->index, best->dest->index);
+
+ t = bbd[best->dest->index].start_of_trace;
+ traces[last_trace].last->aux = traces[t].first;
+ connected[t] = true;
+ last_trace = t;
+ }
+ else if (best)
{
if (dump_file)
{
@@ -2047,15 +2203,6 @@ gate_handle_reorder_blocks (void)
{
if (targetm.cannot_modify_jumps_p ())
return false;
- /* Don't reorder blocks when optimizing for size because extra jump insns may
- be created; also barrier may create extra padding.
-
- More correctly we should have a block reordering mode that tried to
- minimize the combined size of all the jumps. This would more or less
- automatically remove extra jumps, but would also try to use more short
- jumps instead of long jumps. */
- if (!optimize_function_for_speed_p (cfun))
- return false;
return (optimize > 0
&& (flag_reorder_blocks || flag_reorder_blocks_and_partition));
}
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 8b3cd2ae5..7221f1602 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,13 @@
+2012-09-18 Arnaud Charlet <charlet@adacore.com>
+
+ * c-ada-spec.c: Style fixes.
+
+2012-09-18 Thomas Quinot <quinot@adacore.com>
+
+ * c.opt (-fada-spec-parent): Define new command line switch.
+ * c-ada-spec.c (get_ada_package): When -fada-spec-parent
+ is specified, generate binding spec as a child of the specified unit.
+
2012-09-13 Paolo Carlini <paolo.carlini@oracle.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c
index cc6f2608d..e7225162e 100644
--- a/gcc/c-family/c-ada-spec.c
+++ b/gcc/c-family/c-ada-spec.c
@@ -130,7 +130,7 @@ print_ada_macros (pretty_printer *pp, cpp_hashnode **macros, int max_ada_macros)
for (j = 0; j < max_ada_macros; j++)
{
- cpp_hashnode *node = macros [j];
+ cpp_hashnode *node = macros[j];
const cpp_macro *macro = node->value.macro;
unsigned i;
int supported = 1, prev_is_one = 0, buffer_len, param_len;
@@ -345,10 +345,10 @@ print_ada_macros (pretty_printer *pp, cpp_hashnode **macros, int max_ada_macros)
pp_string (pp, " -- arg-macro: ");
- if (*start == '(' && buffer [-1] == ')')
+ if (*start == '(' && buffer[-1] == ')')
{
start++;
- buffer [-1] = '\0';
+ buffer[-1] = '\0';
is_function = 1;
pp_string (pp, "function ");
}
@@ -595,7 +595,7 @@ collect_ada_nodes (tree t, const char *source_file)
for (n = t; n; n = TREE_CHAIN (n))
if (!DECL_IS_BUILTIN (n)
&& LOCATION_FILE (decl_sloc (n, false)) == source_file)
- to_dump [i++] = n;
+ to_dump[i++] = n;
}
/* Call back for walk_tree to clear the TREE_VISITED flag of TP. */
@@ -763,16 +763,16 @@ append_withs (const char *s, int limited_access)
}
for (i = 0; i < with_len; i++)
- if (!strcmp (s, withs [i].s)
- && source_file_base == withs [i].in_file)
+ if (!strcmp (s, withs[i].s)
+ && source_file_base == withs[i].in_file)
{
- withs [i].limited &= limited_access;
+ withs[i].limited &= limited_access;
return;
}
- withs [with_len].s = xstrdup (s);
- withs [with_len].in_file = source_file_base;
- withs [with_len].limited = limited_access;
+ withs[with_len].s = xstrdup (s);
+ withs[with_len].in_file = source_file_base;
+ withs[with_len].limited = limited_access;
with_len++;
}
@@ -787,7 +787,7 @@ reset_ada_withs (void)
return;
for (i = 0; i < with_len; i++)
- free (withs [i].s);
+ free (withs[i].s);
free (withs);
withs = NULL;
withs_max = 4096;
@@ -805,7 +805,7 @@ dump_ada_withs (FILE *f)
for (i = 0; i < with_len; i++)
fprintf
- (f, "%swith %s;\n", withs [i].limited ? "limited " : "", withs [i].s);
+ (f, "%swith %s;\n", withs[i].limited ? "limited " : "", withs[i].s);
}
/* Return suitable Ada package name from FILE. */
@@ -817,19 +817,30 @@ get_ada_package (const char *file)
char *res;
const char *s;
int i;
+ size_t plen;
s = strstr (file, "/include/");
if (s)
base = s + 9;
else
base = lbasename (file);
- res = XNEWVEC (char, strlen (base) + 1);
- for (i = 0; *base; base++, i++)
+ if (ada_specs_parent == NULL)
+ plen = 0;
+ else
+ plen = strlen (ada_specs_parent) + 1;
+
+ res = XNEWVEC (char, plen + strlen (base) + 1);
+ if (ada_specs_parent != NULL) {
+ strcpy (res, ada_specs_parent);
+ res[plen - 1] = '.';
+ }
+
+ for (i = plen; *base; base++, i++)
switch (*base)
{
case '+':
- res [i] = 'p';
+ res[i] = 'p';
break;
case '.':
@@ -837,14 +848,14 @@ get_ada_package (const char *file)
case '_':
case '/':
case '\\':
- res [i] = (i == 0 || res [i - 1] == '_') ? 'u' : '_';
+ res[i] = (i == 0 || res[i - 1] == '.' || res[i - 1] == '_') ? 'u' : '_';
break;
default:
- res [i] = *base;
+ res[i] = *base;
break;
}
- res [i] = '\0';
+ res[i] = '\0';
return res;
}
@@ -959,8 +970,8 @@ to_ada_name (const char *name, int *space_found)
for (names = ada_reserved; *names; names++)
if (!strcasecmp (name, *names))
{
- s [len2++] = 'c';
- s [len2++] = '_';
+ s[len2++] = 'c';
+ s[len2++] = '_';
found = true;
break;
}
@@ -970,23 +981,23 @@ to_ada_name (const char *name, int *space_found)
for (names = c_duplicates; *names; names++)
if (!strcmp (name, *names))
{
- s [len2++] = 'c';
- s [len2++] = '_';
+ s[len2++] = 'c';
+ s[len2++] = '_';
found = true;
break;
}
- for (j = 0; name [j] == '_'; j++)
- s [len2++] = 'u';
+ for (j = 0; name[j] == '_'; j++)
+ s[len2++] = 'u';
if (j > 0)
- s [len2++] = '_';
+ s[len2++] = '_';
else if (*name == '.' || *name == '$')
{
- s [0] = 'a';
- s [1] = 'n';
- s [2] = 'o';
- s [3] = 'n';
+ s[0] = 'a';
+ s[1] = 'n';
+ s[2] = 'o';
+ s[3] = 'n';
len2 = 4;
j++;
}
@@ -994,57 +1005,57 @@ to_ada_name (const char *name, int *space_found)
/* Replace unsuitable characters for Ada identifiers. */
for (; j < len; j++)
- switch (name [j])
+ switch (name[j])
{
case ' ':
if (space_found)
*space_found = true;
- s [len2++] = '_';
+ s[len2++] = '_';
break;
/* ??? missing some C++ operators. */
case '=':
- s [len2++] = '_';
+ s[len2++] = '_';
- if (name [j + 1] == '=')
+ if (name[j + 1] == '=')
{
j++;
- s [len2++] = 'e';
- s [len2++] = 'q';
+ s[len2++] = 'e';
+ s[len2++] = 'q';
}
else
{
- s [len2++] = 'a';
- s [len2++] = 's';
+ s[len2++] = 'a';
+ s[len2++] = 's';
}
break;
case '!':
- s [len2++] = '_';
- if (name [j + 1] == '=')
+ s[len2++] = '_';
+ if (name[j + 1] == '=')
{
j++;
- s [len2++] = 'n';
- s [len2++] = 'e';
+ s[len2++] = 'n';
+ s[len2++] = 'e';
}
break;
case '~':
- s [len2++] = '_';
- s [len2++] = 't';
- s [len2++] = 'i';
+ s[len2++] = '_';
+ s[len2++] = 't';
+ s[len2++] = 'i';
break;
case '&':
case '|':
case '^':
- s [len2++] = '_';
- s [len2++] = name [j] == '&' ? 'a' : name [j] == '|' ? 'o' : 'x';
+ s[len2++] = '_';
+ s[len2++] = name[j] == '&' ? 'a' : name[j] == '|' ? 'o' : 'x';
- if (name [j + 1] == '=')
+ if (name[j + 1] == '=')
{
j++;
- s [len2++] = 'e';
+ s[len2++] = 'e';
}
break;
@@ -1054,53 +1065,53 @@ to_ada_name (const char *name, int *space_found)
case '/':
case '(':
case '[':
- if (s [len2 - 1] != '_')
- s [len2++] = '_';
+ if (s[len2 - 1] != '_')
+ s[len2++] = '_';
- switch (name [j + 1]) {
+ switch (name[j + 1]) {
case '\0':
j++;
- switch (name [j - 1]) {
- case '+': s [len2++] = 'p'; break; /* + */
- case '-': s [len2++] = 'm'; break; /* - */
- case '*': s [len2++] = 't'; break; /* * */
- case '/': s [len2++] = 'd'; break; /* / */
+ switch (name[j - 1]) {
+ case '+': s[len2++] = 'p'; break; /* + */
+ case '-': s[len2++] = 'm'; break; /* - */
+ case '*': s[len2++] = 't'; break; /* * */
+ case '/': s[len2++] = 'd'; break; /* / */
}
break;
case '=':
j++;
- switch (name [j - 1]) {
- case '+': s [len2++] = 'p'; break; /* += */
- case '-': s [len2++] = 'm'; break; /* -= */
- case '*': s [len2++] = 't'; break; /* *= */
- case '/': s [len2++] = 'd'; break; /* /= */
+ switch (name[j - 1]) {
+ case '+': s[len2++] = 'p'; break; /* += */
+ case '-': s[len2++] = 'm'; break; /* -= */
+ case '*': s[len2++] = 't'; break; /* *= */
+ case '/': s[len2++] = 'd'; break; /* /= */
}
- s [len2++] = 'a';
+ s[len2++] = 'a';
break;
case '-': /* -- */
j++;
- s [len2++] = 'm';
- s [len2++] = 'm';
+ s[len2++] = 'm';
+ s[len2++] = 'm';
break;
case '+': /* ++ */
j++;
- s [len2++] = 'p';
- s [len2++] = 'p';
+ s[len2++] = 'p';
+ s[len2++] = 'p';
break;
case ')': /* () */
j++;
- s [len2++] = 'o';
- s [len2++] = 'p';
+ s[len2++] = 'o';
+ s[len2++] = 'p';
break;
case ']': /* [] */
j++;
- s [len2++] = 'o';
- s [len2++] = 'b';
+ s[len2++] = 'o';
+ s[len2++] = 'b';
break;
}
@@ -1108,28 +1119,28 @@ to_ada_name (const char *name, int *space_found)
case '<':
case '>':
- c = name [j] == '<' ? 'l' : 'g';
- s [len2++] = '_';
+ c = name[j] == '<' ? 'l' : 'g';
+ s[len2++] = '_';
- switch (name [j + 1]) {
+ switch (name[j + 1]) {
case '\0':
- s [len2++] = c;
- s [len2++] = 't';
+ s[len2++] = c;
+ s[len2++] = 't';
break;
case '=':
j++;
- s [len2++] = c;
- s [len2++] = 'e';
+ s[len2++] = c;
+ s[len2++] = 'e';
break;
case '>':
j++;
- s [len2++] = 's';
- s [len2++] = 'r';
+ s[len2++] = 's';
+ s[len2++] = 'r';
break;
case '<':
j++;
- s [len2++] = 's';
- s [len2++] = 'l';
+ s[len2++] = 's';
+ s[len2++] = 'l';
break;
default:
break;
@@ -1137,18 +1148,18 @@ to_ada_name (const char *name, int *space_found)
break;
case '_':
- if (len2 && s [len2 - 1] == '_')
- s [len2++] = 'u';
+ if (len2 && s[len2 - 1] == '_')
+ s[len2++] = 'u';
/* fall through */
default:
- s [len2++] = name [j];
+ s[len2++] = name[j];
}
- if (s [len2 - 1] == '_')
- s [len2++] = 'u';
+ if (s[len2 - 1] == '_')
+ s[len2++] = 'u';
- s [len2] = '\0';
+ s[len2] = '\0';
return s;
}
@@ -1365,7 +1376,7 @@ dump_ada_import (pretty_printer *buffer, tree t)
if (is_stdcall)
pp_string (buffer, "pragma Import (Stdcall, ");
- else if (name [0] == '_' && name [1] == 'Z')
+ else if (name[0] == '_' && name[1] == 'Z')
pp_string (buffer, "pragma Import (CPP, ");
else
pp_string (buffer, "pragma Import (C, ");
@@ -1422,7 +1433,7 @@ dump_ada_function_declaration (pretty_printer *buffer, tree func,
{
tree arg;
const tree node = TREE_TYPE (func);
- char buf [16];
+ char buf[16];
int num = 0, num_args = 0, have_args = true, have_ellipsis = false;
/* Compute number of arguments. */
@@ -3060,7 +3071,7 @@ print_ada_struct_decl (pretty_printer *buffer, tree node, tree type,
tree tmp;
int is_union =
TREE_CODE (node) == UNION_TYPE || TREE_CODE (node) == QUAL_UNION_TYPE;
- char buf [16];
+ char buf[16];
int field_num = 0;
int field_spc = spc + INDENT_INCR;
int need_semicolon;
@@ -3250,7 +3261,10 @@ dump_ads (const char *source_file,
ads_name = xstrdup (pkg_name);
for (s = ads_name; *s; s++)
- *s = TOLOWER (*s);
+ if (*s == '.')
+ *s = '-';
+ else
+ *s = TOLOWER (*s);
ads_name = reconcat (ads_name, ads_name, ".ads", NULL);
@@ -3314,7 +3328,7 @@ collect_source_ref (const char *filename)
}
for (i = 0; i < source_refs_used; i++)
- if (filename == source_refs [i])
+ if (filename == source_refs[i])
return;
if (source_refs_used == source_refs_allocd)
@@ -3323,7 +3337,7 @@ collect_source_ref (const char *filename)
source_refs = XRESIZEVEC (const char *, source_refs, source_refs_allocd);
}
- source_refs [source_refs_used++] = filename;
+ source_refs[source_refs_used++] = filename;
}
/* Main entry point: dump all Ada specs corresponding to SOURCE_REFS
@@ -3341,7 +3355,7 @@ dump_ada_specs (void (*collect_all_refs)(const char *),
/* Iterate over the list of files to dump specs for */
for (i = 0; i < source_refs_used; i++)
- dump_ads (source_refs [i], collect_all_refs, cpp_check);
+ dump_ads (source_refs[i], collect_all_refs, cpp_check);
/* Free files table. */
free (source_refs);
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 39d70ada0..6aa53a577 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -729,6 +729,10 @@ faccess-control
C++ ObjC++ Var(flag_access_control) Init(1)
Enforce class member access control semantics
+fada-spec-parent=
+C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
+-fada-spec-parent=unit Dump Ada specs as child units of given parent
+
fall-virtual
C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 331d87efa..cb53c96b5 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -481,13 +481,15 @@ try_forward_edges (int mode, basic_block b)
int new_locus = single_succ_edge (target)->goto_locus;
int locus = goto_locus;
- if (new_locus && locus && !locator_eq (new_locus, locus))
+ if (!IS_UNKNOWN_LOCATION (new_locus)
+ && !IS_UNKNOWN_LOCATION (locus)
+ && new_locus != locus)
new_target = NULL;
else
{
rtx last;
- if (new_locus)
+ if (!IS_UNKNOWN_LOCATION (new_locus))
locus = new_locus;
last = BB_END (target);
@@ -495,13 +497,15 @@ try_forward_edges (int mode, basic_block b)
last = prev_nondebug_insn (last);
new_locus = last && INSN_P (last)
- ? INSN_LOCATOR (last) : 0;
+ ? INSN_LOCATION (last) : 0;
- if (new_locus && locus && !locator_eq (new_locus, locus))
+ if (!IS_UNKNOWN_LOCATION (new_locus)
+ && !IS_UNKNOWN_LOCATION (locus)
+ && new_locus != locus)
new_target = NULL;
else
{
- if (new_locus)
+ if (!IS_UNKNOWN_LOCATION (new_locus))
locus = new_locus;
goto_locus = locus;
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 91457eb24..3f1638b7f 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -92,8 +92,7 @@ gimple_assign_rhs_to_tree (gimple stmt)
&& gimple_location (stmt) != EXPR_LOCATION (t))
|| (gimple_block (stmt)
&& currently_expanding_to_rtl
- && EXPR_P (t)
- && gimple_block (stmt) != TREE_BLOCK (t)))
+ && EXPR_P (t)))
t = copy_node (t);
}
else
@@ -101,8 +100,6 @@ gimple_assign_rhs_to_tree (gimple stmt)
if (gimple_has_location (stmt) && CAN_HAVE_LOCATION_P (t))
SET_EXPR_LOCATION (t, gimple_location (stmt));
- if (gimple_block (stmt) && currently_expanding_to_rtl && EXPR_P (t))
- TREE_BLOCK (t) = gimple_block (stmt);
return t;
}
@@ -1423,10 +1420,8 @@ estimated_stack_frame_size (struct cgraph_node *node)
HOST_WIDE_INT size = 0;
size_t i;
tree var;
- tree old_cur_fun_decl = current_function_decl;
struct function *fn = DECL_STRUCT_FUNCTION (node->symbol.decl);
- current_function_decl = node->symbol.decl;
push_cfun (fn);
init_vars_expansion ();
@@ -1446,7 +1441,6 @@ estimated_stack_frame_size (struct cgraph_node *node)
fini_vars_expansion ();
pop_cfun ();
- current_function_decl = old_cur_fun_decl;
return size;
}
@@ -1831,8 +1825,7 @@ expand_gimple_cond (basic_block bb, gimple stmt)
last2 = last = get_last_insn ();
extract_true_false_edges_from_block (bb, &true_edge, &false_edge);
- set_curr_insn_source_location (gimple_location (stmt));
- set_curr_insn_block (gimple_block (stmt));
+ set_curr_insn_location (gimple_location (stmt));
/* These flags have no purpose in RTL land. */
true_edge->flags &= ~EDGE_TRUE_VALUE;
@@ -1845,13 +1838,8 @@ expand_gimple_cond (basic_block bb, gimple stmt)
jumpif_1 (code, op0, op1, label_rtx_for_bb (true_edge->dest),
true_edge->probability);
maybe_dump_rtl_for_gimple_stmt (stmt, last);
- if (true_edge->goto_locus)
- {
- set_curr_insn_source_location (true_edge->goto_locus);
- set_curr_insn_block (true_edge->goto_block);
- true_edge->goto_locus = curr_insn_locator ();
- }
- true_edge->goto_block = NULL;
+ if (!IS_UNKNOWN_LOCATION (true_edge->goto_locus))
+ set_curr_insn_location (true_edge->goto_locus);
false_edge->flags |= EDGE_FALLTHRU;
maybe_cleanup_end_of_block (false_edge, last);
return NULL;
@@ -1861,13 +1849,8 @@ expand_gimple_cond (basic_block bb, gimple stmt)
jumpifnot_1 (code, op0, op1, label_rtx_for_bb (false_edge->dest),
false_edge->probability);
maybe_dump_rtl_for_gimple_stmt (stmt, last);
- if (false_edge->goto_locus)
- {
- set_curr_insn_source_location (false_edge->goto_locus);
- set_curr_insn_block (false_edge->goto_block);
- false_edge->goto_locus = curr_insn_locator ();
- }
- false_edge->goto_block = NULL;
+ if (!IS_UNKNOWN_LOCATION (false_edge->goto_locus))
+ set_curr_insn_location (false_edge->goto_locus);
true_edge->flags |= EDGE_FALLTHRU;
maybe_cleanup_end_of_block (true_edge, last);
return NULL;
@@ -1876,13 +1859,8 @@ expand_gimple_cond (basic_block bb, gimple stmt)
jumpif_1 (code, op0, op1, label_rtx_for_bb (true_edge->dest),
true_edge->probability);
last = get_last_insn ();
- if (false_edge->goto_locus)
- {
- set_curr_insn_source_location (false_edge->goto_locus);
- set_curr_insn_block (false_edge->goto_block);
- false_edge->goto_locus = curr_insn_locator ();
- }
- false_edge->goto_block = NULL;
+ if (!IS_UNKNOWN_LOCATION (false_edge->goto_locus))
+ set_curr_insn_location (false_edge->goto_locus);
emit_jump (label_rtx_for_bb (false_edge->dest));
BB_END (bb) = last;
@@ -1907,13 +1885,11 @@ expand_gimple_cond (basic_block bb, gimple stmt)
maybe_dump_rtl_for_gimple_stmt (stmt, last2);
- if (true_edge->goto_locus)
+ if (!IS_UNKNOWN_LOCATION (true_edge->goto_locus))
{
- set_curr_insn_source_location (true_edge->goto_locus);
- set_curr_insn_block (true_edge->goto_block);
- true_edge->goto_locus = curr_insn_locator ();
+ set_curr_insn_location (true_edge->goto_locus);
+ true_edge->goto_locus = curr_insn_location ();
}
- true_edge->goto_block = NULL;
return new_bb;
}
@@ -2013,7 +1989,6 @@ expand_call_stmt (gimple stmt)
CALL_FROM_THUNK_P (exp) = gimple_call_from_thunk_p (stmt);
CALL_EXPR_VA_ARG_PACK (exp) = gimple_call_va_arg_pack_p (stmt);
SET_EXPR_LOCATION (exp, gimple_location (stmt));
- TREE_BLOCK (exp) = gimple_block (stmt);
/* Ensure RTL is created for debug args. */
if (decl && DECL_HAS_DEBUG_ARGS_P (decl))
@@ -2048,8 +2023,7 @@ expand_gimple_stmt_1 (gimple stmt)
{
tree op0;
- set_curr_insn_source_location (gimple_location (stmt));
- set_curr_insn_block (gimple_block (stmt));
+ set_curr_insn_location (gimple_location (stmt));
switch (gimple_code (stmt))
{
@@ -3793,8 +3767,7 @@ expand_gimple_basic_block (basic_block bb)
tree op;
gimple def;
- location_t sloc = get_curr_insn_source_location ();
- tree sblock = get_curr_insn_block ();
+ location_t sloc = curr_insn_location ();
/* Look for SSA names that have their last use here (TERed
names always have only one real use). */
@@ -3827,8 +3800,7 @@ expand_gimple_basic_block (basic_block bb)
rtx val;
enum machine_mode mode;
- set_curr_insn_source_location (gimple_location (def));
- set_curr_insn_block (gimple_block (def));
+ set_curr_insn_location (gimple_location (def));
DECL_ARTIFICIAL (vexpr) = 1;
TREE_TYPE (vexpr) = TREE_TYPE (value);
@@ -3855,8 +3827,7 @@ expand_gimple_basic_block (basic_block bb)
}
}
}
- set_curr_insn_source_location (sloc);
- set_curr_insn_block (sblock);
+ set_curr_insn_location (sloc);
}
currently_expanding_gimple_stmt = stmt;
@@ -3871,8 +3842,7 @@ expand_gimple_basic_block (basic_block bb)
}
else if (gimple_debug_bind_p (stmt))
{
- location_t sloc = get_curr_insn_source_location ();
- tree sblock = get_curr_insn_block ();
+ location_t sloc = curr_insn_location ();
gimple_stmt_iterator nsi = gsi;
for (;;)
@@ -3894,8 +3864,7 @@ expand_gimple_basic_block (basic_block bb)
last = get_last_insn ();
- set_curr_insn_source_location (gimple_location (stmt));
- set_curr_insn_block (gimple_block (stmt));
+ set_curr_insn_location (gimple_location (stmt));
if (DECL_P (var))
mode = DECL_MODE (var);
@@ -3933,13 +3902,11 @@ expand_gimple_basic_block (basic_block bb)
break;
}
- set_curr_insn_source_location (sloc);
- set_curr_insn_block (sblock);
+ set_curr_insn_location (sloc);
}
else if (gimple_debug_source_bind_p (stmt))
{
- location_t sloc = get_curr_insn_source_location ();
- tree sblock = get_curr_insn_block ();
+ location_t sloc = curr_insn_location ();
tree var = gimple_debug_source_bind_get_var (stmt);
tree value = gimple_debug_source_bind_get_value (stmt);
rtx val;
@@ -3947,8 +3914,7 @@ expand_gimple_basic_block (basic_block bb)
last = get_last_insn ();
- set_curr_insn_source_location (gimple_location (stmt));
- set_curr_insn_block (gimple_block (stmt));
+ set_curr_insn_location (gimple_location (stmt));
mode = DECL_MODE (var);
@@ -3966,8 +3932,7 @@ expand_gimple_basic_block (basic_block bb)
PAT_VAR_LOCATION_LOC (val) = (rtx)value;
}
- set_curr_insn_source_location (sloc);
- set_curr_insn_block (sblock);
+ set_curr_insn_location (sloc);
}
else
{
@@ -4008,13 +3973,8 @@ expand_gimple_basic_block (basic_block bb)
/* Expand implicit goto and convert goto_locus. */
FOR_EACH_EDGE (e, ei, bb->succs)
{
- if (e->goto_locus && e->goto_block)
- {
- set_curr_insn_source_location (e->goto_locus);
- set_curr_insn_block (e->goto_block);
- e->goto_locus = curr_insn_locator ();
- }
- e->goto_block = NULL;
+ if (!IS_UNKNOWN_LOCATION (e->goto_locus))
+ set_curr_insn_location (e->goto_locus);
if ((e->flags & EDGE_FALLTHRU) && e->dest != bb->next_bb)
{
emit_jump (label_rtx_for_bb (e->dest));
@@ -4134,12 +4094,9 @@ construct_exit_block (void)
/* Make sure the locus is set to the end of the function, so that
epilogue line numbers and warnings are set properly. */
- if (cfun->function_end_locus != UNKNOWN_LOCATION)
+ if (!IS_UNKNOWN_LOCATION (cfun->function_end_locus))
input_location = cfun->function_end_locus;
- /* The following insns belong to the top scope. */
- set_curr_insn_block (DECL_INITIAL (current_function_decl));
-
/* Generate rtl for function exit. */
expand_function_end ();
@@ -4357,20 +4314,19 @@ gimple_expand_cfg (void)
rtl_profile_for_bb (ENTRY_BLOCK_PTR);
- insn_locators_alloc ();
+ insn_locations_init ();
if (!DECL_IS_BUILTIN (current_function_decl))
{
/* Eventually, all FEs should explicitly set function_start_locus. */
- if (cfun->function_start_locus == UNKNOWN_LOCATION)
- set_curr_insn_source_location
+ if (IS_UNKNOWN_LOCATION (cfun->function_start_locus))
+ set_curr_insn_location
(DECL_SOURCE_LOCATION (current_function_decl));
else
- set_curr_insn_source_location (cfun->function_start_locus);
+ set_curr_insn_location (cfun->function_start_locus);
}
else
- set_curr_insn_source_location (UNKNOWN_LOCATION);
- set_curr_insn_block (DECL_INITIAL (current_function_decl));
- prologue_locator = curr_insn_locator ();
+ set_curr_insn_location (UNKNOWN_LOCATION);
+ prologue_location = curr_insn_location ();
#ifdef INSN_SCHEDULING
init_sched_attrs ();
@@ -4551,8 +4507,7 @@ gimple_expand_cfg (void)
free_histograms ();
construct_exit_block ();
- set_curr_insn_block (DECL_INITIAL (current_function_decl));
- insn_locators_finalize ();
+ insn_locations_finalize ();
/* Zap the tree EH table. */
set_eh_throw_stmt_table (cfun, NULL);
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 4df289d88..c04482ecc 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -720,19 +720,19 @@ rtl_split_block (basic_block bb, void *insnp)
static bool
unique_locus_on_edge_between_p (basic_block a, basic_block b)
{
- const int goto_locus = EDGE_SUCC (a, 0)->goto_locus;
+ const location_t goto_locus = EDGE_SUCC (a, 0)->goto_locus;
rtx insn, end;
- if (!goto_locus)
+ if (IS_UNKNOWN_LOCATION (goto_locus))
return false;
/* First scan block A backward. */
insn = BB_END (a);
end = PREV_INSN (BB_HEAD (a));
- while (insn != end && (!NONDEBUG_INSN_P (insn) || INSN_LOCATOR (insn) == 0))
+ while (insn != end && (!NONDEBUG_INSN_P (insn) || !INSN_HAS_LOCATION (insn)))
insn = PREV_INSN (insn);
- if (insn != end && locator_eq (INSN_LOCATOR (insn), goto_locus))
+ if (insn != end && INSN_LOCATION (insn) == goto_locus)
return false;
/* Then scan block B forward. */
@@ -743,8 +743,8 @@ unique_locus_on_edge_between_p (basic_block a, basic_block b)
while (insn != end && !NONDEBUG_INSN_P (insn))
insn = NEXT_INSN (insn);
- if (insn != end && INSN_LOCATOR (insn) != 0
- && locator_eq (INSN_LOCATOR (insn), goto_locus))
+ if (insn != end && INSN_HAS_LOCATION (insn)
+ && INSN_LOCATION (insn) == goto_locus)
return false;
}
@@ -761,7 +761,7 @@ emit_nop_for_unique_locus_between (basic_block a, basic_block b)
return;
BB_END (a) = emit_insn_after_noloc (gen_nop (), BB_END (a), a);
- INSN_LOCATOR (BB_END (a)) = EDGE_SUCC (a, 0)->goto_locus;
+ INSN_LOCATION (BB_END (a)) = EDGE_SUCC (a, 0)->goto_locus;
}
/* Blocks A and B are to be merged into a single block A. The insns
@@ -1477,7 +1477,7 @@ force_nonfallthru_and_redirect (edge e, basic_block target, rtx jump_label)
else
jump_block = e->src;
- if (e->goto_locus && e->goto_block == NULL)
+ if (!IS_UNKNOWN_LOCATION (e->goto_locus))
loc = e->goto_locus;
else
loc = 0;
@@ -3335,7 +3335,8 @@ fixup_reorder_chain (void)
edge_iterator ei;
FOR_EACH_EDGE (e, ei, bb->succs)
- if (e->goto_locus && !(e->flags & EDGE_ABNORMAL))
+ if (!IS_UNKNOWN_LOCATION (e->goto_locus)
+ && !(e->flags & EDGE_ABNORMAL))
{
edge e2;
edge_iterator ei2;
@@ -3345,15 +3346,15 @@ fixup_reorder_chain (void)
insn = BB_END (e->src);
end = PREV_INSN (BB_HEAD (e->src));
while (insn != end
- && (!NONDEBUG_INSN_P (insn) || INSN_LOCATOR (insn) == 0))
+ && (!NONDEBUG_INSN_P (insn) || !INSN_HAS_LOCATION (insn)))
insn = PREV_INSN (insn);
if (insn != end
- && locator_eq (INSN_LOCATOR (insn), (int) e->goto_locus))
+ && INSN_LOCATION (insn) == e->goto_locus)
continue;
if (simplejump_p (BB_END (e->src))
- && INSN_LOCATOR (BB_END (e->src)) == 0)
+ && !INSN_HAS_LOCATION (BB_END (e->src)))
{
- INSN_LOCATOR (BB_END (e->src)) = e->goto_locus;
+ INSN_LOCATION (BB_END (e->src)) = e->goto_locus;
continue;
}
dest = e->dest;
@@ -3369,24 +3370,24 @@ fixup_reorder_chain (void)
end = NEXT_INSN (BB_END (dest));
while (insn != end && !NONDEBUG_INSN_P (insn))
insn = NEXT_INSN (insn);
- if (insn != end && INSN_LOCATOR (insn)
- && locator_eq (INSN_LOCATOR (insn), (int) e->goto_locus))
+ if (insn != end && INSN_HAS_LOCATION (insn)
+ && INSN_LOCATION (insn) == e->goto_locus)
continue;
}
nb = split_edge (e);
if (!INSN_P (BB_END (nb)))
BB_END (nb) = emit_insn_after_noloc (gen_nop (), BB_END (nb),
nb);
- INSN_LOCATOR (BB_END (nb)) = e->goto_locus;
+ INSN_LOCATION (BB_END (nb)) = e->goto_locus;
/* If there are other incoming edges to the destination block
with the same goto locus, redirect them to the new block as
well, this can prevent other such blocks from being created
in subsequent iterations of the loop. */
for (ei2 = ei_start (dest->preds); (e2 = ei_safe_edge (ei2)); )
- if (e2->goto_locus
+ if (!IS_UNKNOWN_LOCATION (e2->goto_locus)
&& !(e2->flags & (EDGE_ABNORMAL | EDGE_FALLTHRU))
- && locator_eq (e->goto_locus, e2->goto_locus))
+ && e->goto_locus == e2->goto_locus)
redirect_edge_and_branch (e2, nb);
else
ei_next (&ei2);
@@ -4086,7 +4087,7 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
}
/* If B was a forwarder block, propagate the locus on the edge. */
- if (forwarder_p && !EDGE_SUCC (b, 0)->goto_locus)
+ if (forwarder_p && IS_UNKNOWN_LOCATION (EDGE_SUCC (b, 0)->goto_locus))
EDGE_SUCC (b, 0)->goto_locus = EDGE_SUCC (a, 0)->goto_locus;
if (dump_file)
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 3d4703b4b..0e9accecf 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -1127,7 +1127,6 @@ cgraph_release_function_body (struct cgraph_node *node)
{
if (DECL_STRUCT_FUNCTION (node->symbol.decl))
{
- tree old_decl = current_function_decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
if (cfun->cfg
&& current_loops)
@@ -1137,11 +1136,9 @@ cgraph_release_function_body (struct cgraph_node *node)
}
if (cfun->gimple_df)
{
- current_function_decl = node->symbol.decl;
delete_tree_ssa ();
delete_tree_cfg_annotations ();
cfun->eh = NULL;
- current_function_decl = old_decl;
}
if (cfun->cfg)
{
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index 0d2ad41c4..b8001a62b 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -704,6 +704,8 @@ bool varpool_for_node_and_aliases (struct varpool_node *,
bool (*) (struct varpool_node *, void *),
void *, bool);
void varpool_add_new_variable (tree);
+void symtab_initialize_asm_name_hash (void);
+void symtab_prevail_in_asm_name_hash (symtab_node node);
/* Return true when NODE is function. */
static inline bool
@@ -1309,4 +1311,27 @@ cgraph_mark_force_output_node (struct cgraph_node *node)
gcc_checking_assert (!node->global.inlined_to);
}
+/* Return true when the symbol is real symbol, i.e. it is not inline clone
+ or extern function kept around just for inlining. */
+
+static inline bool
+symtab_real_symbol_p (symtab_node node)
+{
+ struct cgraph_node *cnode;
+ struct ipa_ref *ref;
+
+ if (!symtab_function_p (node))
+ return true;
+ cnode = cgraph (node);
+ if (cnode->global.inlined_to)
+ return false;
+ if (cnode->abstract_and_needed)
+ return false;
+ /* We keep virtual clones in symtab. */
+ if (!cnode->analyzed
+ || DECL_EXTERNAL (cnode->symbol.decl))
+ return (cnode->callers
+ || ipa_ref_list_referring_iterate (&cnode->symbol.ref_list, 0, ref));
+ return true;
+}
#endif /* GCC_CGRAPH_H */
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 2dd0871e7..64460ac63 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -313,7 +313,6 @@ cgraph_process_new_functions (void)
if (!node->analyzed)
cgraph_analyze_function (node);
push_cfun (DECL_STRUCT_FUNCTION (fndecl));
- current_function_decl = fndecl;
if ((cgraph_state == CGRAPH_STATE_IPA_SSA
&& !gimple_in_ssa_p (DECL_STRUCT_FUNCTION (fndecl)))
/* When not optimizing, be sure we run early local passes anyway
@@ -325,7 +324,6 @@ cgraph_process_new_functions (void)
free_dominance_info (CDI_POST_DOMINATORS);
free_dominance_info (CDI_DOMINATORS);
pop_cfun ();
- current_function_decl = NULL;
cgraph_call_function_insertion_hooks (node);
break;
@@ -495,14 +493,12 @@ cgraph_add_new_function (tree fndecl, bool lowered)
if (!lowered && cgraph_state == CGRAPH_STATE_EXPANSION)
{
push_cfun (DECL_STRUCT_FUNCTION (fndecl));
- current_function_decl = fndecl;
gimple_register_cfg_hooks ();
bitmap_obstack_initialize (NULL);
execute_pass_list (all_lowering_passes);
execute_pass_list (pass_early_local_passes.pass.sub);
bitmap_obstack_release (NULL);
pop_cfun ();
- current_function_decl = NULL;
lowered = true;
}
@@ -521,7 +517,6 @@ cgraph_add_new_function (tree fndecl, bool lowered)
node->lowered = true;
cgraph_analyze_function (node);
push_cfun (DECL_STRUCT_FUNCTION (fndecl));
- current_function_decl = fndecl;
gimple_register_cfg_hooks ();
bitmap_obstack_initialize (NULL);
if (!gimple_in_ssa_p (DECL_STRUCT_FUNCTION (fndecl)))
@@ -529,7 +524,6 @@ cgraph_add_new_function (tree fndecl, bool lowered)
bitmap_obstack_release (NULL);
pop_cfun ();
expand_function (node);
- current_function_decl = NULL;
break;
default:
@@ -597,7 +591,6 @@ fixup_same_cpp_alias_visibility (symtab_node node, symtab_node target, tree alia
static void
cgraph_analyze_function (struct cgraph_node *node)
{
- tree save = current_function_decl;
tree decl = node->symbol.decl;
location_t saved_loc = input_location;
input_location = DECL_SOURCE_LOCATION (decl);
@@ -638,7 +631,6 @@ cgraph_analyze_function (struct cgraph_node *node)
}
else
{
- current_function_decl = decl;
push_cfun (DECL_STRUCT_FUNCTION (decl));
assign_assembler_name_if_neeeded (node->symbol.decl);
@@ -672,7 +664,6 @@ cgraph_analyze_function (struct cgraph_node *node)
}
node->analyzed = true;
- current_function_decl = save;
input_location = saved_loc;
}
@@ -1524,6 +1515,7 @@ assemble_thunk (struct cgraph_node *node)
bitmap_obstack_release (NULL);
}
current_function_decl = NULL;
+ set_cfun (NULL);
}
@@ -1616,8 +1608,6 @@ expand_function (struct cgraph_node *node)
/* Release the default bitmap obstack. */
bitmap_obstack_release (NULL);
- set_cfun (NULL);
-
/* If requested, warn about function definitions where the function will
return a value (usually of some struct or union type) which itself will
take up a lot of stack space. */
@@ -1662,6 +1652,7 @@ expand_function (struct cgraph_node *node)
/* Make sure that BE didn't give up on compiling. */
gcc_assert (TREE_ASM_WRITTEN (decl));
+ set_cfun (NULL);
current_function_decl = NULL;
/* It would make a lot more sense to output thunks before function body to get more
diff --git a/gcc/combine.c b/gcc/combine.c
index 3284cee1a..ad86f68d2 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2739,7 +2739,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
i1 = gen_rtx_INSN (VOIDmode, INSN_UID (i2), NULL_RTX, i2,
BLOCK_FOR_INSN (i2), XVECEXP (PATTERN (i2), 0, 1),
- INSN_LOCATOR (i2), -1, NULL_RTX);
+ INSN_LOCATION (i2), -1, NULL_RTX);
SUBST (PATTERN (i2), XVECEXP (PATTERN (i2), 0, 0));
SUBST (XEXP (SET_SRC (PATTERN (i2)), 0),
diff --git a/gcc/common.opt b/gcc/common.opt
index aa893acb2..31b6210f9 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -32,6 +32,9 @@ int optimize
Variable
int optimize_size
+Variable
+int optimize_debug
+
; Not used directly to control optimizations, only to save -Ofast
; setting for "optimize" attributes.
Variable
@@ -449,6 +452,10 @@ Ofast
Common Optimization
Optimize for speed disregarding exact standards compliance
+Og
+Common Optimization
+Optimize for debugging experience rather than speed or size
+
Q
Driver
diff --git a/gcc/common/common-target.h b/gcc/common/common-target.h
index cd2d47c38..1ff3e45a3 100644
--- a/gcc/common/common-target.h
+++ b/gcc/common/common-target.h
@@ -33,10 +33,11 @@ enum opt_levels
OPT_LEVELS_ALL, /* All levels (used by targets to disable options
enabled in target-independent code). */
OPT_LEVELS_0_ONLY, /* -O0 only. */
- OPT_LEVELS_1_PLUS, /* -O1 and above, including -Os. */
- OPT_LEVELS_1_PLUS_SPEED_ONLY, /* -O1 and above, but not -Os. */
+ OPT_LEVELS_1_PLUS, /* -O1 and above, including -Os and -Og. */
+ OPT_LEVELS_1_PLUS_SPEED_ONLY, /* -O1 and above, but not -Os or -Og. */
+ OPT_LEVELS_1_PLUS_NOT_DEBUG, /* -O1 and above, but not -Og. */
OPT_LEVELS_2_PLUS, /* -O2 and above, including -Os. */
- OPT_LEVELS_2_PLUS_SPEED_ONLY, /* -O2 and above, but not -Os. */
+ OPT_LEVELS_2_PLUS_SPEED_ONLY, /* -O2 and above, but not -Os or -Og. */
OPT_LEVELS_3_PLUS, /* -O3 and above. */
OPT_LEVELS_3_PLUS_AND_SIZE, /* -O3 and above and -Os. */
OPT_LEVELS_SIZE, /* -Os only. */
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 128448cf0..ff67e3e6c 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -914,13 +914,13 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*)
tm_file="${tm_file} arm/aout.h arm/arm.h"
;;
avr-*-rtems*)
- tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
+ tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
tmake_file="avr/t-avr avr/t-multilib t-rtems avr/t-rtems"
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o avr-log.o"
;;
avr-*-*)
- tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/avr-stdint.h"
+ tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/avr-stdint.h"
if test x${with_avrlibc} != xno; then
tm_file="${tm_file} ${cpu_type}/avrlibc.h"
tm_defines="${tm_defines} WITH_AVRLIBC"
@@ -1045,10 +1045,15 @@ hppa*-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
pa/pa32-regs.h pa/pa32-linux.h"
;;
-# port not yet contributed.
-#hppa*-*-openbsd*)
-# target_cpu_default="MASK_PA_11"
-# ;;
+hppa*-*-openbsd*)
+ target_cpu_default="MASK_PA_11"
+ tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
+ pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
+ tmake_file="${tmake_file} pa/t-openbsd"
+ extra_options="${extra_options} openbsd.opt"
+ gas=yes
+ gnu_ld=yes
+ ;;
hppa[12]*-*-hpux10*)
case ${target} in
hppa1.1-*-* | hppa2*-*-*)
@@ -1770,6 +1775,11 @@ mips*-*-linux*) # Linux MIPS, either endian.
esac
test x$with_llsc != x || with_llsc=yes
;;
+mips*-mti-elf*)
+ tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h mips/mti-elf.h"
+ tmake_file="mips/t-mti-elf"
+ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
+ ;;
mips*-sde-elf*)
tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h"
tmake_file="mips/t-sde"
diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
index 39339cc6e..1f01222bd 100644
--- a/gcc/config/aarch64/predicates.md
+++ b/gcc/config/aarch64/predicates.md
@@ -295,9 +295,3 @@
{
return aarch64_simd_imm_zero_p (op, mode);
})
-
-(define_predicate "aarch64_simd_reg_or_zero"
- (and (match_code "reg,subreg,const_int,const_vector")
- (ior (match_operand 0 "register_operand")
- (ior (match_test "op == const0_rtx")
- (match_test "aarch64_simd_imm_zero_p (op, mode)")))))
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 6b9fd156a..9aaa4f2bd 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -8362,7 +8362,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
instruction scheduling worth while. Note that use_thunk calls
assemble_start_function and assemble_end_function. */
insn = get_insns ();
- insn_locators_alloc ();
shorten_branches (insn);
final_start_function (insn, file, 1);
final (insn, file, 1);
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index dd073daf2..1470602a2 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -5359,7 +5359,7 @@ require_pic_register (void)
for (insn = seq; insn; insn = NEXT_INSN (insn))
if (INSN_P (insn))
- INSN_LOCATOR (insn) = prologue_locator;
+ INSN_LOCATION (insn) = prologue_location;
/* We can be called during expansion of PHI nodes, where
we can't yet emit instructions directly in the final
@@ -7666,6 +7666,28 @@ arm_rtx_costs_1 (rtx x, enum rtx_code outer, int* total, bool speed)
return true;
case SET:
+ /* The vec_extract patterns accept memory operands that require an
+ address reload. Account for the cost of that reload to give the
+ auto-inc-dec pass an incentive to try to replace them. */
+ if (TARGET_NEON && MEM_P (SET_DEST (x))
+ && GET_CODE (SET_SRC (x)) == VEC_SELECT)
+ {
+ *total = rtx_cost (SET_DEST (x), code, 0, speed);
+ if (!neon_vector_mem_operand (SET_DEST (x), 2))
+ *total += COSTS_N_INSNS (1);
+ return true;
+ }
+ /* Likewise for the vec_set patterns. */
+ if (TARGET_NEON && GET_CODE (SET_SRC (x)) == VEC_MERGE
+ && GET_CODE (XEXP (SET_SRC (x), 0)) == VEC_DUPLICATE
+ && MEM_P (XEXP (XEXP (SET_SRC (x), 0), 0)))
+ {
+ rtx mem = XEXP (XEXP (SET_SRC (x), 0), 0);
+ *total = rtx_cost (mem, code, 0, speed);
+ if (!neon_vector_mem_operand (mem, 2))
+ *total += COSTS_N_INSNS (1);
+ return true;
+ }
return false;
case UNSPEC:
@@ -9629,7 +9651,11 @@ neon_vector_mem_operand (rtx op, int type)
&& REG_MODE_OK_FOR_BASE_P (XEXP (ind, 0), VOIDmode)
&& CONST_INT_P (XEXP (ind, 1))
&& INTVAL (XEXP (ind, 1)) > -1024
- && INTVAL (XEXP (ind, 1)) < 1016
+ /* For quad modes, we restrict the constant offset to be slightly less
+ than what the instruction format permits. We have no such constraint
+ on double mode offsets. (This must match arm_legitimate_index_p.) */
+ && (INTVAL (XEXP (ind, 1))
+ < (VALID_NEON_QREG_MODE (GET_MODE (op))? 1016 : 1024))
&& (INTVAL (XEXP (ind, 1)) & 3) == 0)
return TRUE;
@@ -14573,15 +14599,16 @@ output_move_vfp (rtx *operands)
return "";
}
-/* Output a Neon quad-word load or store, or a load or store for
- larger structure modes.
+/* Output a Neon double-word or quad-word load or store, or a load
+ or store for larger structure modes.
WARNING: The ordering of elements is weird in big-endian mode,
- because we use VSTM, as required by the EABI. GCC RTL defines
- element ordering based on in-memory order. This can be differ
- from the architectural ordering of elements within a NEON register.
- The intrinsics defined in arm_neon.h use the NEON register element
- ordering, not the GCC RTL element ordering.
+ because the EABI requires that vectors stored in memory appear
+ as though they were stored by a VSTM, as required by the EABI.
+ GCC RTL defines element ordering based on in-memory order.
+ This can be different from the architectural ordering of elements
+ within a NEON register. The intrinsics defined in arm_neon.h use the
+ NEON register element ordering, not the GCC RTL element ordering.
For example, the in-memory ordering of a big-endian a quadword
vector with 16-bit elements when stored from register pair {d0,d1}
@@ -14595,13 +14622,28 @@ output_move_vfp (rtx *operands)
dN -> (rN+1, rN), dN+1 -> (rN+3, rN+2)
So that STM/LDM can be used on vectors in ARM registers, and the
- same memory layout will result as if VSTM/VLDM were used. */
+ same memory layout will result as if VSTM/VLDM were used.
+
+ Instead of VSTM/VLDM we prefer to use VST1.64/VLD1.64 where
+ possible, which allows use of appropriate alignment tags.
+ Note that the choice of "64" is independent of the actual vector
+ element size; this size simply ensures that the behavior is
+ equivalent to VSTM/VLDM in both little-endian and big-endian mode.
+
+ Due to limitations of those instructions, use of VST1.64/VLD1.64
+ is not possible if:
+ - the address contains PRE_DEC, or
+ - the mode refers to more than 4 double-word registers
+
+ In those cases, it would be possible to replace VSTM/VLDM by a
+ sequence of instructions; this is not currently implemented since
+ this is not certain to actually improve performance. */
const char *
output_move_neon (rtx *operands)
{
rtx reg, mem, addr, ops[2];
- int regno, load = REG_P (operands[0]);
+ int regno, nregs, load = REG_P (operands[0]);
const char *templ;
char buff[50];
enum machine_mode mode;
@@ -14613,6 +14655,7 @@ output_move_neon (rtx *operands)
gcc_assert (REG_P (reg));
regno = REGNO (reg);
+ nregs = HARD_REGNO_NREGS (regno, mode) / 2;
gcc_assert (VFP_REGNO_OK_FOR_DOUBLE (regno)
|| NEON_REGNO_OK_FOR_QUAD (regno));
gcc_assert (VALID_NEON_DREG_MODE (mode)
@@ -14629,13 +14672,23 @@ output_move_neon (rtx *operands)
switch (GET_CODE (addr))
{
case POST_INC:
- templ = "v%smia%%?\t%%0!, %%h1";
- ops[0] = XEXP (addr, 0);
+ /* We have to use vldm / vstm for too-large modes. */
+ if (nregs > 4)
+ {
+ templ = "v%smia%%?\t%%0!, %%h1";
+ ops[0] = XEXP (addr, 0);
+ }
+ else
+ {
+ templ = "v%s1.64\t%%h1, %%A0";
+ ops[0] = mem;
+ }
ops[1] = reg;
break;
case PRE_DEC:
- /* FIXME: We should be using vld1/vst1 here in BE mode? */
+ /* We have to use vldm / vstm in this case, since there is no
+ pre-decrement form of the vld1 / vst1 instructions. */
templ = "v%smdb%%?\t%%0!, %%h1";
ops[0] = XEXP (addr, 0);
ops[1] = reg;
@@ -14648,7 +14701,6 @@ output_move_neon (rtx *operands)
case LABEL_REF:
case PLUS:
{
- int nregs = HARD_REGNO_NREGS (REGNO (reg), mode) / 2;
int i;
int overlap = -1;
for (i = 0; i < nregs; i++)
@@ -14679,7 +14731,12 @@ output_move_neon (rtx *operands)
}
default:
- templ = "v%smia%%?\t%%m0, %%h1";
+ /* We have to use vldm / vstm for too-large modes. */
+ if (nregs > 4)
+ templ = "v%smia%%?\t%%m0, %%h1";
+ else
+ templ = "v%s1.64\t%%h1, %%A0";
+
ops[0] = mem;
ops[1] = reg;
}
@@ -25015,16 +25072,7 @@ arm_mangle_type (const_tree type)
has to be managled as if it is in the "std" namespace. */
if (TARGET_AAPCS_BASED
&& lang_hooks.types_compatible_p (CONST_CAST_TREE (type), va_list_type))
- {
- static bool warned;
- if (!warned && warn_psabi && !in_system_header)
- {
- warned = true;
- inform (input_location,
- "the mangling of %<va_list%> has changed in GCC 4.4");
- }
- return "St9__va_list";
- }
+ return "St9__va_list";
/* Half-precision float. */
if (TREE_CODE (type) == REAL_TYPE && TYPE_PRECISION (type) == 16)
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index 82b4bfc7b..63b060632 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -65,8 +65,9 @@
%{static:-Bstatic} \
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
- %{rdynamic:-export-dynamic} \
- -dynamic-linker " GNU_USER_DYNAMIC_LINKER " \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \
-X \
%{mbig-endian:-EB} %{mlittle-endian:-EL}" \
SUBTARGET_EXTRA_LINK_SPEC
diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
index fe0618c22..b89d5383a 100644
--- a/gcc/config/arm/neon.md
+++ b/gcc/config/arm/neon.md
@@ -156,9 +156,9 @@
(define_insn "*neon_mov<mode>"
[(set (match_operand:VDX 0 "nonimmediate_operand"
- "=w,Uv,w, w, ?r,?w,?r,?r, ?Us")
+ "=w,Un,w, w, ?r,?w,?r,?r, ?Us")
(match_operand:VDX 1 "general_operand"
- " w,w, Dn,Uvi, w, r, r, Usi,r"))]
+ " w,w, Dn,Uni, w, r, r, Usi,r"))]
"TARGET_NEON
&& (register_operand (operands[0], <MODE>mode)
|| register_operand (operands[1], <MODE>mode))"
@@ -181,15 +181,10 @@
return templ;
}
- /* FIXME: If the memory layout is changed in big-endian mode, output_move_vfp
- below must be changed to output_move_neon (which will use the
- element/structure loads/stores), and the constraint changed to 'Um' instead
- of 'Uv'. */
-
switch (which_alternative)
{
case 0: return "vmov\t%P0, %P1 @ <mode>";
- case 1: case 3: return output_move_vfp (operands);
+ case 1: case 3: return output_move_neon (operands);
case 2: gcc_unreachable ();
case 4: return "vmov\t%Q0, %R0, %P1 @ <mode>";
case 5: return "vmov\t%P0, %Q1, %R1 @ <mode>";
@@ -421,30 +416,33 @@
[(set_attr "neon_type" "neon_vld1_1_2_regs")])
(define_insn "vec_set<mode>_internal"
- [(set (match_operand:VD 0 "s_register_operand" "=w")
+ [(set (match_operand:VD 0 "s_register_operand" "=w,w")
(vec_merge:VD
(vec_duplicate:VD
- (match_operand:<V_elem> 1 "s_register_operand" "r"))
- (match_operand:VD 3 "s_register_operand" "0")
- (match_operand:SI 2 "immediate_operand" "i")))]
+ (match_operand:<V_elem> 1 "nonimmediate_operand" "Um,r"))
+ (match_operand:VD 3 "s_register_operand" "0,0")
+ (match_operand:SI 2 "immediate_operand" "i,i")))]
"TARGET_NEON"
{
int elt = ffs ((int) INTVAL (operands[2])) - 1;
if (BYTES_BIG_ENDIAN)
elt = GET_MODE_NUNITS (<MODE>mode) - 1 - elt;
operands[2] = GEN_INT (elt);
-
- return "vmov.<V_sz_elem>\t%P0[%c2], %1";
+
+ if (which_alternative == 0)
+ return "vld1.<V_sz_elem>\t{%P0[%c2]}, %A1";
+ else
+ return "vmov.<V_sz_elem>\t%P0[%c2], %1";
}
- [(set_attr "neon_type" "neon_mcr")])
+ [(set_attr "neon_type" "neon_vld1_vld2_lane,neon_mcr")])
(define_insn "vec_set<mode>_internal"
- [(set (match_operand:VQ 0 "s_register_operand" "=w")
+ [(set (match_operand:VQ 0 "s_register_operand" "=w,w")
(vec_merge:VQ
(vec_duplicate:VQ
- (match_operand:<V_elem> 1 "s_register_operand" "r"))
- (match_operand:VQ 3 "s_register_operand" "0")
- (match_operand:SI 2 "immediate_operand" "i")))]
+ (match_operand:<V_elem> 1 "nonimmediate_operand" "Um,r"))
+ (match_operand:VQ 3 "s_register_operand" "0,0")
+ (match_operand:SI 2 "immediate_operand" "i,i")))]
"TARGET_NEON"
{
HOST_WIDE_INT elem = ffs ((int) INTVAL (operands[2])) - 1;
@@ -459,18 +457,21 @@
operands[0] = gen_rtx_REG (<V_HALF>mode, regno + hi);
operands[2] = GEN_INT (elt);
- return "vmov.<V_sz_elem>\t%P0[%c2], %1";
+ if (which_alternative == 0)
+ return "vld1.<V_sz_elem>\t{%P0[%c2]}, %A1";
+ else
+ return "vmov.<V_sz_elem>\t%P0[%c2], %1";
}
- [(set_attr "neon_type" "neon_mcr")]
+ [(set_attr "neon_type" "neon_vld1_vld2_lane,neon_mcr")]
)
(define_insn "vec_setv2di_internal"
- [(set (match_operand:V2DI 0 "s_register_operand" "=w")
+ [(set (match_operand:V2DI 0 "s_register_operand" "=w,w")
(vec_merge:V2DI
(vec_duplicate:V2DI
- (match_operand:DI 1 "s_register_operand" "r"))
- (match_operand:V2DI 3 "s_register_operand" "0")
- (match_operand:SI 2 "immediate_operand" "i")))]
+ (match_operand:DI 1 "nonimmediate_operand" "Um,r"))
+ (match_operand:V2DI 3 "s_register_operand" "0,0")
+ (match_operand:SI 2 "immediate_operand" "i,i")))]
"TARGET_NEON"
{
HOST_WIDE_INT elem = ffs ((int) INTVAL (operands[2])) - 1;
@@ -478,9 +479,12 @@
operands[0] = gen_rtx_REG (DImode, regno);
- return "vmov\t%P0, %Q1, %R1";
+ if (which_alternative == 0)
+ return "vld1.64\t%P0, %A1";
+ else
+ return "vmov\t%P0, %Q1, %R1";
}
- [(set_attr "neon_type" "neon_mcr_2_mcrr")]
+ [(set_attr "neon_type" "neon_vld1_1_2_regs,neon_mcr_2_mcrr")]
)
(define_expand "vec_set<mode>"
@@ -496,10 +500,10 @@
})
(define_insn "vec_extract<mode>"
- [(set (match_operand:<V_elem> 0 "s_register_operand" "=r")
+ [(set (match_operand:<V_elem> 0 "nonimmediate_operand" "=Um,r")
(vec_select:<V_elem>
- (match_operand:VD 1 "s_register_operand" "w")
- (parallel [(match_operand:SI 2 "immediate_operand" "i")])))]
+ (match_operand:VD 1 "s_register_operand" "w,w")
+ (parallel [(match_operand:SI 2 "immediate_operand" "i,i")])))]
"TARGET_NEON"
{
if (BYTES_BIG_ENDIAN)
@@ -508,16 +512,20 @@
elt = GET_MODE_NUNITS (<MODE>mode) - 1 - elt;
operands[2] = GEN_INT (elt);
}
- return "vmov.<V_uf_sclr>\t%0, %P1[%c2]";
+
+ if (which_alternative == 0)
+ return "vst1.<V_sz_elem>\t{%P1[%c2]}, %A0";
+ else
+ return "vmov.<V_uf_sclr>\t%0, %P1[%c2]";
}
- [(set_attr "neon_type" "neon_bp_simple")]
+ [(set_attr "neon_type" "neon_vst1_vst2_lane,neon_bp_simple")]
)
(define_insn "vec_extract<mode>"
- [(set (match_operand:<V_elem> 0 "s_register_operand" "=r")
+ [(set (match_operand:<V_elem> 0 "nonimmediate_operand" "=Um,r")
(vec_select:<V_elem>
- (match_operand:VQ 1 "s_register_operand" "w")
- (parallel [(match_operand:SI 2 "immediate_operand" "i")])))]
+ (match_operand:VQ 1 "s_register_operand" "w,w")
+ (parallel [(match_operand:SI 2 "immediate_operand" "i,i")])))]
"TARGET_NEON"
{
int half_elts = GET_MODE_NUNITS (<MODE>mode) / 2;
@@ -531,25 +539,31 @@
operands[1] = gen_rtx_REG (<V_HALF>mode, regno + hi);
operands[2] = GEN_INT (elt);
- return "vmov.<V_uf_sclr>\t%0, %P1[%c2]";
+ if (which_alternative == 0)
+ return "vst1.<V_sz_elem>\t{%P1[%c2]}, %A0";
+ else
+ return "vmov.<V_uf_sclr>\t%0, %P1[%c2]";
}
- [(set_attr "neon_type" "neon_bp_simple")]
+ [(set_attr "neon_type" "neon_vst1_vst2_lane,neon_bp_simple")]
)
(define_insn "vec_extractv2di"
- [(set (match_operand:DI 0 "s_register_operand" "=r")
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=Um,r")
(vec_select:DI
- (match_operand:V2DI 1 "s_register_operand" "w")
- (parallel [(match_operand:SI 2 "immediate_operand" "i")])))]
+ (match_operand:V2DI 1 "s_register_operand" "w,w")
+ (parallel [(match_operand:SI 2 "immediate_operand" "i,i")])))]
"TARGET_NEON"
{
int regno = REGNO (operands[1]) + 2 * INTVAL (operands[2]);
operands[1] = gen_rtx_REG (DImode, regno);
- return "vmov\t%Q0, %R0, %P1 @ v2di";
+ if (which_alternative == 0)
+ return "vst1.64\t{%P1}, %A0 @ v2di";
+ else
+ return "vmov\t%Q0, %R0, %P1 @ v2di";
}
- [(set_attr "neon_type" "neon_int_1")]
+ [(set_attr "neon_type" "neon_vst1_vst2_lane,neon_int_1")]
)
(define_expand "vec_init<mode>"
@@ -4454,9 +4468,10 @@
(define_insn "neon_vst1_lane<mode>"
[(set (match_operand:<V_elem> 0 "neon_struct_operand" "=Um")
- (vec_select:<V_elem>
- (match_operand:VDX 1 "s_register_operand" "w")
- (parallel [(match_operand:SI 2 "neon_lane_number" "i")])))]
+ (unspec:<V_elem>
+ [(match_operand:VDX 1 "s_register_operand" "w")
+ (match_operand:SI 2 "immediate_operand" "i")]
+ UNSPEC_VST1_LANE))]
"TARGET_NEON"
{
HOST_WIDE_INT lane = INTVAL (operands[2]);
@@ -4475,9 +4490,10 @@
(define_insn "neon_vst1_lane<mode>"
[(set (match_operand:<V_elem> 0 "neon_struct_operand" "=Um")
- (vec_select:<V_elem>
- (match_operand:VQX 1 "s_register_operand" "w")
- (parallel [(match_operand:SI 2 "neon_lane_number" "i")])))]
+ (unspec:<V_elem>
+ [(match_operand:VQX 1 "s_register_operand" "w")
+ (match_operand:SI 2 "immediate_operand" "i")]
+ UNSPEC_VST1_LANE))]
"TARGET_NEON"
{
HOST_WIDE_INT lane = INTVAL (operands[2]);
diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md
index e7eb7b3cd..f55acbf22 100644
--- a/gcc/config/arm/predicates.md
+++ b/gcc/config/arm/predicates.md
@@ -524,10 +524,6 @@
(ior (match_operand 0 "imm_for_neon_inv_logic_operand")
(match_operand 0 "s_register_operand")))
-;; TODO: We could check lane numbers more precisely based on the mode.
-(define_predicate "neon_lane_number"
- (and (match_code "const_int")
- (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 15")))
;; Predicates for named expanders that overlap multiple ISAs.
(define_predicate "cmpdi_operand"
diff --git a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md
index 4a56d57d7..d48d4e66a 100644
--- a/gcc/config/arm/vfp.md
+++ b/gcc/config/arm/vfp.md
@@ -471,7 +471,9 @@
(define_insn "*thumb2_movdf_vfp"
[(set (match_operand:DF 0 "nonimmediate_soft_df_operand" "=w,?r,w ,w ,Uv,r ,m,w,r")
(match_operand:DF 1 "soft_df_operand" " ?r,w,Dy,UvF,w, mF,r, w,r"))]
- "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP"
+ "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP
+ && ( register_operand (operands[0], DFmode)
+ || register_operand (operands[1], DFmode))"
"*
{
switch (which_alternative)
diff --git a/gcc/config/avr/avr-arch.h b/gcc/config/avr/avr-arch.h
new file mode 100644
index 000000000..b28bec9b8
--- /dev/null
+++ b/gcc/config/avr/avr-arch.h
@@ -0,0 +1,156 @@
+/* Definitions of types that are used to store AVR architecture and
+ device information.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Contributed by Georg-Johann Lay (avr@gjlay.de)
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+
+/* This enum supplies indices into the avr_arch_types[] table below. */
+
+enum avr_arch
+{
+ ARCH_UNKNOWN,
+ ARCH_AVR1,
+ ARCH_AVR2,
+ ARCH_AVR25,
+ ARCH_AVR3,
+ ARCH_AVR31,
+ ARCH_AVR35,
+ ARCH_AVR4,
+ ARCH_AVR5,
+ ARCH_AVR51,
+ ARCH_AVR6,
+ ARCH_AVRXMEGA2,
+ ARCH_AVRXMEGA4,
+ ARCH_AVRXMEGA5,
+ ARCH_AVRXMEGA6,
+ ARCH_AVRXMEGA7
+};
+
+
+/* Architecture-specific properties. */
+
+struct base_arch_s
+{
+ /* Assembler only. */
+ int asm_only;
+
+ /* Core have 'MUL*' instructions. */
+ int have_mul;
+
+ /* Core have 'CALL' and 'JMP' instructions. */
+ int have_jmp_call;
+
+ /* Core have 'MOVW' and 'LPM Rx,Z' instructions. */
+ int have_movw_lpmx;
+
+ /* Core have 'ELPM' instructions. */
+ int have_elpm;
+
+ /* Core have 'ELPM Rx,Z' instructions. */
+ int have_elpmx;
+
+ /* Core have 'EICALL' and 'EIJMP' instructions. */
+ int have_eijmp_eicall;
+
+ /* This is an XMEGA core. */
+ int xmega_p;
+
+ /* This core has the RAMPD special function register
+ and thus also the RAMPX, RAMPY and RAMPZ registers. */
+ int have_rampd;
+
+ /* Default start of data section address for architecture. */
+ int default_data_section_start;
+
+ /* Offset between SFR address and RAM address:
+ SFR-address = RAM-address - sfr_offset */
+ int sfr_offset;
+
+ /* Architecture id to built-in define __AVR_ARCH__ (NULL -> no macro) */
+ const char *const macro;
+
+ /* Architecture name. */
+ const char *const arch_name;
+};
+
+
+/* Device-specific properties. */
+
+struct mcu_type_s
+{
+ /* Device name. */
+ const char *const name;
+
+ /* Index in avr_arch_types[]. */
+ enum avr_arch arch;
+
+ /* Must lie outside user's namespace. NULL == no macro. */
+ const char *const macro;
+
+ /* Stack pointer have 8 bits width. */
+ int short_sp;
+
+ /* Some AVR devices have a core erratum when skipping a 2-word instruction.
+ Skip instructions are: SBRC, SBRS, SBIC, SBIS, CPSE.
+ Problems will occur with return address is IRQ executes during the
+ skip sequence.
+
+ A support ticket from Atmel returned the following information:
+
+ Subject: (ATTicket:644469) On AVR skip-bug core Erratum
+ From: avr@atmel.com Date: 2011-07-27
+ (Please keep the subject when replying to this mail)
+
+ This errata exists only in AT90S8515 and ATmega103 devices.
+
+ For information please refer the following respective errata links
+ http://www.atmel.com/dyn/resources/prod_documents/doc2494.pdf
+ http://www.atmel.com/dyn/resources/prod_documents/doc1436.pdf */
+
+ /* Core Erratum: Must not skip 2-word instruction. */
+ int errata_skip;
+
+ /* Start of data section. */
+ int data_section_start;
+
+ /* Number of 64k segments in the flash. */
+ int n_flash;
+
+ /* Name of device library. */
+ const char *const library_name;
+};
+
+/* Map architecture to its texinfo string. */
+
+struct arch_info_s
+{
+ /* Architecture ID. */
+ enum avr_arch arch;
+
+ /* textinfo source to describe the archtiecture. */
+ const char *texinfo;
+};
+
+/* Preprocessor macros to define depending on MCU type. */
+
+extern const char *avr_extra_arch_macro;
+extern const struct base_arch_s *avr_current_arch;
+extern const struct mcu_type_s *avr_current_device;
+extern const struct mcu_type_s avr_mcu_types[];
+extern const struct base_arch_s avr_arch_types[];
diff --git a/gcc/config/avr/avr-devices.c b/gcc/config/avr/avr-devices.c
index 47cfefd86..3ee1eff49 100644
--- a/gcc/config/avr/avr-devices.c
+++ b/gcc/config/avr/avr-devices.c
@@ -18,10 +18,12 @@
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+#ifndef IN_GEN_AVR_MMCU_TEXI
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#endif /* IN_GEN_AVR_MMCU_TEXI */
/* List of all known AVR MCU architectures.
Order as of enum avr_arch from avr.h. */
diff --git a/gcc/config/avr/avr-fixed.md b/gcc/config/avr/avr-fixed.md
index 5a9949921..c2ce01cb7 100644
--- a/gcc/config/avr/avr-fixed.md
+++ b/gcc/config/avr/avr-fixed.md
@@ -22,12 +22,12 @@
;; along with GCC; see the file COPYING3. If not see
;; <http://www.gnu.org/licenses/>.
-(define_mode_iterator ALL1Q [(QQ "") (UQQ "")])
-(define_mode_iterator ALL2Q [(HQ "") (UHQ "")])
-(define_mode_iterator ALL2A [(HA "") (UHA "")])
-(define_mode_iterator ALL2QA [(HQ "") (UHQ "")
- (HA "") (UHA "")])
-(define_mode_iterator ALL4A [(SA "") (USA "")])
+(define_mode_iterator ALL1Q [QQ UQQ])
+(define_mode_iterator ALL2Q [HQ UHQ])
+(define_mode_iterator ALL2A [HA UHA])
+(define_mode_iterator ALL2QA [HQ UHQ
+ HA UHA])
+(define_mode_iterator ALL4A [SA USA])
(define_mode_iterator ALL2S [HQ HA])
(define_mode_iterator ALL4S [SA SQ])
@@ -38,22 +38,22 @@
;;; Conversions
(define_mode_iterator FIXED_A
- [(QQ "") (UQQ "")
- (HQ "") (UHQ "") (HA "") (UHA "")
- (SQ "") (USQ "") (SA "") (USA "")
- (DQ "") (UDQ "") (DA "") (UDA "")
- (TA "") (UTA "")
- (QI "") (HI "") (SI "") (DI "")])
+ [QQ UQQ
+ HQ UHQ HA UHA
+ SQ USQ SA USA
+ DQ UDQ DA UDA
+ TA UTA
+ QI HI SI DI])
;; Same so that be can build cross products
(define_mode_iterator FIXED_B
- [(QQ "") (UQQ "")
- (HQ "") (UHQ "") (HA "") (UHA "")
- (SQ "") (USQ "") (SA "") (USA "")
- (DQ "") (UDQ "") (DA "") (UDA "")
- (TA "") (UTA "")
- (QI "") (HI "") (SI "") (DI "")])
+ [QQ UQQ
+ HQ UHQ HA UHA
+ SQ USQ SA USA
+ DQ UDQ DA UDA
+ TA UTA
+ QI HI SI DI])
(define_insn "fract<FIXED_B:mode><FIXED_A:mode>2"
[(set (match_operand:FIXED_A 0 "register_operand" "=r")
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index c46f48860..42c722ec9 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -49,10 +49,6 @@
#include "params.h"
#include "df.h"
-#ifndef CONST_FIXED_P
-#define CONST_FIXED_P(X) (CONST_FIXED == GET_CODE (X))
-#endif
-
/* Maximal allowed offset for an address in the LD command */
#define MAX_LD_OFFSET(MODE) (64 - (signed)GET_MODE_SIZE (MODE))
@@ -6268,9 +6264,6 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
? simplify_gen_subreg (QImode, xop[0], mode, n_bytes-2)
: NULL_RTX;
- if (!plen && flag_print_asm_name)
- avr_fdump (asm_out_file, ";; %C (%C)\n", code_sat, code);
-
bool need_copy = true;
int len_call = 1 + AVR_HAVE_JMP_CALL;
@@ -6281,9 +6274,6 @@ avr_out_plus_1 (rtx *xop, int *plen, enum rtx_code code, int *pcc,
case SS_PLUS:
case SS_MINUS:
- if (!plen && flag_print_asm_name)
- avr_fdump (asm_out_file, ";; %s = %r\n", sign < 0 ? "neg" : "pos",
- xop[2]);
if (out_brvc)
avr_asm_len ("brvc 0f", op, plen, 1);
@@ -6463,7 +6453,6 @@ static const char*
avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc)
{
enum machine_mode mode = GET_MODE (xop[0]);
- int n_bytes = GET_MODE_SIZE (mode);
/* Only pointer modes want to add symbols. */
@@ -6476,9 +6465,9 @@ avr_out_plus_symbol (rtx *xop, enum rtx_code code, int *plen, int *pcc)
: "subi %A0,lo8(%2)" CR_TAB "sbci %B0,hi8(%2)",
xop, plen, -2);
- if (3 == n_bytes)
+ if (PSImode == mode)
avr_asm_len (PLUS == code
- ? "sbci %C0,hlo8((-%2))"
+ ? "sbci %C0,hlo8(-(%2))"
: "sbci %C0,hlo8(%2)", xop, plen, 1);
return "";
}
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index f8686685b..8488ecd3e 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -21,133 +21,6 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-/* Names to predefine in the preprocessor for this target machine. */
-
-struct base_arch_s
-{
- /* Assembler only. */
- int asm_only;
-
- /* Core have 'MUL*' instructions. */
- int have_mul;
-
- /* Core have 'CALL' and 'JMP' instructions. */
- int have_jmp_call;
-
- /* Core have 'MOVW' and 'LPM Rx,Z' instructions. */
- int have_movw_lpmx;
-
- /* Core have 'ELPM' instructions. */
- int have_elpm;
-
- /* Core have 'ELPM Rx,Z' instructions. */
- int have_elpmx;
-
- /* Core have 'EICALL' and 'EIJMP' instructions. */
- int have_eijmp_eicall;
-
- /* This is an XMEGA core. */
- int xmega_p;
-
- /* This core has the RAMPD special function register
- and thus also the RAMPX, RAMPY and RAMPZ registers. */
- int have_rampd;
-
- /* Default start of data section address for architecture. */
- int default_data_section_start;
-
- /* Offset between SFR address and RAM address:
- SFR-address = RAM-address - sfr_offset */
- int sfr_offset;
-
- /* Architecture id to built-in define __AVR_ARCH__ (NULL -> no macro) */
- const char *const macro;
-
- /* Architecture name. */
- const char *const arch_name;
-};
-
-/* These names are used as the index into the avr_arch_types[] table
- above. */
-
-enum avr_arch
-{
- ARCH_UNKNOWN,
- ARCH_AVR1,
- ARCH_AVR2,
- ARCH_AVR25,
- ARCH_AVR3,
- ARCH_AVR31,
- ARCH_AVR35,
- ARCH_AVR4,
- ARCH_AVR5,
- ARCH_AVR51,
- ARCH_AVR6,
- ARCH_AVRXMEGA2,
- ARCH_AVRXMEGA4,
- ARCH_AVRXMEGA5,
- ARCH_AVRXMEGA6,
- ARCH_AVRXMEGA7
-};
-
-struct mcu_type_s {
- /* Device name. */
- const char *const name;
-
- /* Index in avr_arch_types[]. */
- enum avr_arch arch;
-
- /* Must lie outside user's namespace. NULL == no macro. */
- const char *const macro;
-
- /* Stack pointer have 8 bits width. */
- int short_sp;
-
- /* Some AVR devices have a core erratum when skipping a 2-word instruction.
- Skip instructions are: SBRC, SBRS, SBIC, SBIS, CPSE.
- Problems will occur with return address is IRQ executes during the
- skip sequence.
-
- A support ticket from Atmel returned the following information:
-
- Subject: (ATTicket:644469) On AVR skip-bug core Erratum
- From: avr@atmel.com Date: 2011-07-27
- (Please keep the subject when replying to this mail)
-
- This errata exists only in AT90S8515 and ATmega103 devices.
-
- For information please refer the following respective errata links
- http://www.atmel.com/dyn/resources/prod_documents/doc2494.pdf
- http://www.atmel.com/dyn/resources/prod_documents/doc1436.pdf */
-
- /* Core Erratum: Must not skip 2-word instruction. */
- int errata_skip;
-
- /* Start of data section. */
- int data_section_start;
-
- /* Number of 64k segments in the flash. */
- int n_flash;
-
- /* Name of device library. */
- const char *const library_name;
-};
-
-struct arch_info_s {
- /* Architecture ID. */
- enum avr_arch arch;
-
- /* textinfo source to describe the archtiecture. */
- const char *texinfo;
-};
-
-/* Preprocessor macros to define depending on MCU type. */
-extern const char *avr_extra_arch_macro;
-extern const struct base_arch_s *avr_current_arch;
-extern const struct mcu_type_s *avr_current_device;
-extern const struct mcu_type_s avr_mcu_types[];
-extern const struct base_arch_s avr_arch_types[];
-
typedef struct
{
/* Id of the address space as used in c_register_addr_space */
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index 8b13010e7..d1287703e 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -220,26 +220,26 @@
;; Define mode iterators
-(define_mode_iterator QIHI [(QI "") (HI "")])
-(define_mode_iterator QIHI2 [(QI "") (HI "")])
-(define_mode_iterator QISI [(QI "") (HI "") (PSI "") (SI "")])
-(define_mode_iterator QIDI [(QI "") (HI "") (PSI "") (SI "") (DI "")])
-(define_mode_iterator HISI [(HI "") (PSI "") (SI "")])
+(define_mode_iterator QIHI [QI HI])
+(define_mode_iterator QIHI2 [QI HI])
+(define_mode_iterator QISI [QI HI PSI SI])
+(define_mode_iterator QIDI [QI HI PSI SI DI])
+(define_mode_iterator HISI [HI PSI SI])
-(define_mode_iterator ALL1 [(QI "") (QQ "") (UQQ "")])
-(define_mode_iterator ALL2 [(HI "") (HQ "") (UHQ "") (HA "") (UHA "")])
-(define_mode_iterator ALL4 [(SI "") (SQ "") (USQ "") (SA "") (USA "")])
+(define_mode_iterator ALL1 [QI QQ UQQ])
+(define_mode_iterator ALL2 [HI HQ UHQ HA UHA])
+(define_mode_iterator ALL4 [SI SQ USQ SA USA])
;; All supported move-modes
-(define_mode_iterator MOVMODE [(QI "") (HI "") (SI "") (SF "") (PSI "")
- (QQ "") (UQQ "")
- (HQ "") (UHQ "") (HA "") (UHA "")
- (SQ "") (USQ "") (SA "") (USA "")])
+(define_mode_iterator MOVMODE [QI QQ UQQ
+ HI HQ UHQ HA UHA
+ SI SQ USQ SA USA
+ SF PSI])
;; Supported ordered modes that are 2, 3, 4 bytes wide
-(define_mode_iterator ORDERED234 [(HI "") (SI "") (PSI "")
- (HQ "") (UHQ "") (HA "") (UHA "")
- (SQ "") (USQ "") (SA "") (USA "")])
+(define_mode_iterator ORDERED234 [HI SI PSI
+ HQ UHQ HA UHA
+ SQ USQ SA USA])
;; Define code iterators
;; Define two incarnations so that we can build the cross product.
@@ -305,8 +305,8 @@
gen_rtx_PLUS (Pmode, hard_frame_pointer_rtx,
gen_int_mode (STARTING_FRAME_OFFSET,
Pmode)));
- /* This might change the hard frame pointer in ways that aren't
- apparent to early optimization passes, so force a clobber. */
+ /* ; This might change the hard frame pointer in ways that aren't
+ ; apparent to early optimization passes, so force a clobber. */
emit_clobber (hard_frame_pointer_rtx);
DONE;
})
@@ -321,25 +321,25 @@
(use (match_operand 2 "general_operand"))
(use (match_operand 3 "general_operand"))]
""
-{
- rtx r_label = copy_to_reg (operands[1]);
- rtx r_fp = operands[3];
- rtx r_sp = operands[2];
+ {
+ rtx r_label = copy_to_reg (operands[1]);
+ rtx r_fp = operands[3];
+ rtx r_sp = operands[2];
- emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode)));
+ emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode)));
- emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx));
+ emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx));
- emit_move_insn (hard_frame_pointer_rtx, r_fp);
- emit_stack_restore (SAVE_NONLOCAL, r_sp);
+ emit_move_insn (hard_frame_pointer_rtx, r_fp);
+ emit_stack_restore (SAVE_NONLOCAL, r_sp);
- emit_use (hard_frame_pointer_rtx);
- emit_use (stack_pointer_rtx);
+ emit_use (hard_frame_pointer_rtx);
+ emit_use (stack_pointer_rtx);
- emit_indirect_jump (r_label);
+ emit_indirect_jump (r_label);
- DONE;
-})
+ DONE;
+ })
;; "pushqi1"
;; "pushqq1" "pushuqq1"
@@ -353,44 +353,42 @@
[(set_attr "length" "1,1")])
;; All modes for a multi-byte push. We must include complex modes here too,
-;; lest emit_single_push_insn "helpfully " create the auto-inc itself.
+;; lest emit_single_push_insn "helpfully" create the auto-inc itself.
(define_mode_iterator MPUSH
- [(CQI "")
- (HI "") (CHI "")
- (PSI "")
- (SI "") (CSI "")
- (DI "") (CDI "")
- (SF "") (SC "")
- (HA "") (UHA "") (HQ "") (UHQ "")
- (SA "") (USA "") (SQ "") (USQ "")
- (DA "") (UDA "") (DQ "") (UDQ "")
- (TA "") (UTA "")])
+ [CQI
+ HI CHI HA UHA HQ UHQ
+ SI CSI SA USA SQ USQ
+ DI CDI DA UDA DQ UDQ
+ TA UTA
+ SF SC
+ PSI])
(define_expand "push<mode>1"
[(match_operand:MPUSH 0 "" "")]
""
-{
- int i;
- for (i = GET_MODE_SIZE (<MODE>mode) - 1; i >= 0; --i)
- {
- rtx part = simplify_gen_subreg (QImode, operands[0], <MODE>mode, i);
- if (part != const0_rtx)
- part = force_reg (QImode, part);
- emit_insn (gen_pushqi1 (part));
- }
- DONE;
-})
+ {
+ int i;
+ for (i = GET_MODE_SIZE (<MODE>mode) - 1; i >= 0; --i)
+ {
+ rtx part = simplify_gen_subreg (QImode, operands[0], <MODE>mode, i);
+ if (part != const0_rtx)
+ part = force_reg (QImode, part);
+ emit_insn (gen_pushqi1 (part));
+ }
+ DONE;
+ })
;; Notice a special-case when adding N to SP where N results in a
;; zero REG_ARGS_SIZE. This is equivalent to a move from FP.
(define_split
- [(set (reg:HI REG_SP) (match_operand:HI 0 "register_operand" ""))]
+ [(set (reg:HI REG_SP)
+ (match_operand:HI 0 "register_operand" ""))]
"reload_completed
&& frame_pointer_needed
&& !cfun->calls_alloca
&& find_reg_note (insn, REG_ARGS_SIZE, const0_rtx)"
- [(set (reg:HI REG_SP) (reg:HI REG_Y))]
- "")
+ [(set (reg:HI REG_SP)
+ (reg:HI REG_Y))])
;;========================================================================
;; Move stuff around
@@ -775,9 +773,9 @@
(match_operand:ALL1 1 "even_register_operand" ""))
(set (match_operand:ALL1 2 "odd_register_operand" "")
(match_operand:ALL1 3 "odd_register_operand" ""))]
- "(AVR_HAVE_MOVW
- && REGNO (operands[0]) == REGNO (operands[2]) - 1
- && REGNO (operands[1]) == REGNO (operands[3]) - 1)"
+ "AVR_HAVE_MOVW
+ && REGNO (operands[0]) == REGNO (operands[2]) - 1
+ && REGNO (operands[1]) == REGNO (operands[3]) - 1"
[(set (match_dup 4)
(match_dup 5))]
{
@@ -790,9 +788,9 @@
(match_operand:ALL1 1 "odd_register_operand" ""))
(set (match_operand:ALL1 2 "even_register_operand" "")
(match_operand:ALL1 3 "even_register_operand" ""))]
- "(AVR_HAVE_MOVW
- && REGNO (operands[2]) == REGNO (operands[0]) - 1
- && REGNO (operands[3]) == REGNO (operands[1]) - 1)"
+ "AVR_HAVE_MOVW
+ && REGNO (operands[2]) == REGNO (operands[0]) - 1
+ && REGNO (operands[3]) == REGNO (operands[1]) - 1"
[(set (match_dup 4)
(match_dup 5))]
{
@@ -812,8 +810,7 @@
&& operands[1] != constm1_rtx"
[(parallel [(set (match_dup 0)
(match_dup 1))
- (clobber (match_dup 2))])]
- "")
+ (clobber (match_dup 2))])])
;; '*' because it is not used in rtl generation.
(define_insn "*reload_inpsi"
@@ -1132,7 +1129,7 @@
}
}
- if (CONST_FIXED == GET_CODE (operands[2]))
+ if (CONST_FIXED_P (operands[2]))
{
emit_insn (gen_add<mode>3_clobber (operands[0], operands[1], operands[2]));
DONE;
@@ -1481,9 +1478,7 @@
(set (reg:QI 22) (match_operand:QI 2 "register_operand" ""))
(parallel [(set (reg:QI 24) (mult:QI (reg:QI 24) (reg:QI 22)))
(clobber (reg:QI 22))])
- (set (match_operand:QI 0 "register_operand" "") (reg:QI 24))]
- ""
- "")
+ (set (match_operand:QI 0 "register_operand" "") (reg:QI 24))])
(define_insn "*mulqi3_call"
[(set (reg:QI 24) (mult:QI (reg:QI 24) (reg:QI 22)))
@@ -1684,8 +1679,7 @@
(set (match_dup 0)
(plus:QI (mult:QI (match_dup 1)
(match_dup 4))
- (match_dup 3)))]
- "")
+ (match_dup 3)))])
(define_insn_and_split "*msubqi4.const"
[(set (match_operand:QI 0 "register_operand" "=r")
@@ -1702,8 +1696,7 @@
(set (match_dup 0)
(minus:QI (match_dup 3)
(mult:QI (match_dup 1)
- (match_dup 4))))]
- "")
+ (match_dup 4))))])
;******************************************************************************
@@ -2213,9 +2206,7 @@
(parallel [(set (reg:HI 24) (mult:HI (reg:HI 24) (reg:HI 22)))
(clobber (reg:HI 22))
(clobber (reg:QI 21))])
- (set (match_operand:HI 0 "register_operand" "") (reg:HI 24))]
- ""
- "")
+ (set (match_operand:HI 0 "register_operand" "") (reg:HI 24))])
(define_insn "*mulhi3_call"
[(set (reg:HI 24) (mult:HI (reg:HI 24) (reg:HI 22)))
@@ -2389,8 +2380,7 @@
(mult:SI (not:SI (zero_extend:SI (not:HI (reg:HI 26))))
(reg:SI 18)))
(set (match_dup 0)
- (reg:SI 22))]
- "")
+ (reg:SI 22))])
;; "mulhisi3"
;; "umulhisi3"
@@ -2400,8 +2390,7 @@
(any_extend:SI (match_operand:HI 2 "register_operand" ""))))
(clobber (reg:HI 26))
(clobber (reg:DI 18))])]
- "AVR_HAVE_MUL"
- "")
+ "AVR_HAVE_MUL")
(define_expand "usmulhisi3"
[(parallel [(set (match_operand:SI 0 "register_operand" "")
@@ -2409,8 +2398,7 @@
(sign_extend:SI (match_operand:HI 2 "register_operand" ""))))
(clobber (reg:HI 26))
(clobber (reg:DI 18))])]
- "AVR_HAVE_MUL"
- "")
+ "AVR_HAVE_MUL")
;; "*uumulqihisi3" "*uumulhiqisi3" "*uumulhihisi3" "*uumulqiqisi3"
;; "*usmulqihisi3" "*usmulhiqisi3" "*usmulhihisi3" "*usmulqiqisi3"
@@ -2482,8 +2470,7 @@
(clobber (reg:HI 22))])
(set (match_operand:HI 0 "register_operand" "")
(reg:HI 24))]
- "AVR_HAVE_MUL"
- "")
+ "AVR_HAVE_MUL")
(define_insn "*mulsi3_call"
@@ -2577,8 +2564,7 @@
(clobber (reg:QI 22))
(clobber (reg:QI 23))])
(set (match_dup 0) (reg:QI 24))
- (set (match_dup 3) (reg:QI 25))]
- "")
+ (set (match_dup 3) (reg:QI 25))])
(define_insn "*divmodqi4_call"
[(set (reg:QI 24) (div:QI (reg:QI 24) (reg:QI 22)))
@@ -2609,8 +2595,7 @@
(set (reg:QI 25) (umod:QI (reg:QI 24) (reg:QI 22)))
(clobber (reg:QI 23))])
(set (match_dup 0) (reg:QI 24))
- (set (match_dup 3) (reg:QI 25))]
- "")
+ (set (match_dup 3) (reg:QI 25))])
(define_insn "*udivmodqi4_call"
[(set (reg:QI 24) (udiv:QI (reg:QI 24) (reg:QI 22)))
@@ -2641,8 +2626,7 @@
(clobber (reg:HI 26))
(clobber (reg:QI 21))])
(set (match_dup 0) (reg:HI 22))
- (set (match_dup 3) (reg:HI 24))]
- "")
+ (set (match_dup 3) (reg:HI 24))])
(define_insn "*divmodhi4_call"
[(set (reg:HI 22) (div:HI (reg:HI 24) (reg:HI 22)))
@@ -2674,8 +2658,7 @@
(clobber (reg:HI 26))
(clobber (reg:QI 21))])
(set (match_dup 0) (reg:HI 22))
- (set (match_dup 3) (reg:HI 24))]
- "")
+ (set (match_dup 3) (reg:HI 24))])
(define_insn "*udivmodhi4_call"
[(set (reg:HI 22) (udiv:HI (reg:HI 24) (reg:HI 22)))
@@ -2907,8 +2890,7 @@
(clobber (reg:HI 26))
(clobber (reg:HI 30))])
(set (match_dup 0) (reg:SI 18))
- (set (match_dup 3) (reg:SI 22))]
- "")
+ (set (match_dup 3) (reg:SI 22))])
(define_insn "*divmodsi4_call"
[(set (reg:SI 18) (div:SI (reg:SI 22) (reg:SI 18)))
@@ -2940,8 +2922,7 @@
(clobber (reg:HI 26))
(clobber (reg:HI 30))])
(set (match_dup 0) (reg:SI 18))
- (set (match_dup 3) (reg:SI 22))]
- "")
+ (set (match_dup 3) (reg:SI 22))])
(define_insn "*udivmodsi4_call"
[(set (reg:SI 18) (udiv:SI (reg:SI 22) (reg:SI 18)))
@@ -3609,8 +3590,7 @@
[(parallel [(set (match_dup 0)
(ashift:ALL4 (match_dup 1)
(match_dup 2)))
- (clobber (match_dup 3))])]
- "")
+ (clobber (match_dup 3))])])
;; "*ashlsi3_const"
;; "*ashlsq3_const" "*ashlusq3_const"
@@ -4351,7 +4331,7 @@
[(set (cc0)
(compare (neg:QI (match_operand:QI 0 "register_operand" "r"))
(const_int 0)))]
- "(!flag_wrapv && !flag_trapv && flag_strict_overflow)"
+ "!flag_wrapv && !flag_trapv && flag_strict_overflow"
"cp __zero_reg__,%0"
[(set_attr "cc" "compare")
(set_attr "length" "1")])
@@ -4369,7 +4349,7 @@
[(set (cc0)
(compare (neg:HI (match_operand:HI 0 "register_operand" "r"))
(const_int 0)))]
- "(!flag_wrapv && !flag_trapv && flag_strict_overflow)"
+ "!flag_wrapv && !flag_trapv && flag_strict_overflow"
"cp __zero_reg__,%A0
cpc __zero_reg__,%B0"
[(set_attr "cc" "compare")
@@ -4411,7 +4391,7 @@
[(set (cc0)
(compare (neg:SI (match_operand:SI 0 "register_operand" "r"))
(const_int 0)))]
- "(!flag_wrapv && !flag_trapv && flag_strict_overflow)"
+ "!flag_wrapv && !flag_trapv && flag_strict_overflow"
"cp __zero_reg__,%A0
cpc __zero_reg__,%B0
cpc __zero_reg__,%C0
@@ -4654,8 +4634,7 @@
(const_int 7))
(const_int 0))
(label_ref (match_dup 1))
- (pc)))]
- "")
+ (pc)))])
(define_peephole2
[(set (cc0) (compare (match_operand:QI 0 "register_operand" "")
@@ -4669,8 +4648,7 @@
(const_int 7))
(const_int 0))
(label_ref (match_dup 1))
- (pc)))]
- "")
+ (pc)))])
(define_peephole2
[(parallel [(set (cc0) (compare (match_operand:HI 0 "register_operand" "")
@@ -4683,8 +4661,7 @@
[(set (pc) (if_then_else (eq (and:HI (match_dup 0) (const_int -32768))
(const_int 0))
(label_ref (match_dup 1))
- (pc)))]
- "")
+ (pc)))])
(define_peephole2
[(parallel [(set (cc0) (compare (match_operand:HI 0 "register_operand" "")
@@ -4697,8 +4674,7 @@
[(set (pc) (if_then_else (ne (and:HI (match_dup 0) (const_int -32768))
(const_int 0))
(label_ref (match_dup 1))
- (pc)))]
- "")
+ (pc)))])
(define_peephole2
[(parallel [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
@@ -4712,7 +4688,7 @@
(const_int 0))
(label_ref (match_dup 1))
(pc)))]
- "operands[2] = GEN_INT (-2147483647 - 1);")
+ "operands[2] = gen_int_mode (-2147483647 - 1, SImode);")
(define_peephole2
[(parallel [(set (cc0) (compare (match_operand:SI 0 "register_operand" "")
@@ -4726,7 +4702,7 @@
(const_int 0))
(label_ref (match_dup 1))
(pc)))]
- "operands[2] = GEN_INT (-2147483647 - 1);")
+ "operands[2] = gen_int_mode (-2147483647 - 1, SImode);")
;; ************************************************************************
;; Implementation of conditional jumps here.
@@ -4840,45 +4816,37 @@
;; call
+;; Operand 1 not used on the AVR.
+;; Operand 2 is 1 for tail-call, 0 otherwise.
(define_expand "call"
[(parallel[(call (match_operand:HI 0 "call_insn_operand" "")
(match_operand:HI 1 "general_operand" ""))
- (use (const_int 0))])]
- ;; Operand 1 not used on the AVR.
- ;; Operand 2 is 1 for tail-call, 0 otherwise.
- ""
- "")
+ (use (const_int 0))])])
+;; Operand 1 not used on the AVR.
+;; Operand 2 is 1 for tail-call, 0 otherwise.
(define_expand "sibcall"
[(parallel[(call (match_operand:HI 0 "call_insn_operand" "")
(match_operand:HI 1 "general_operand" ""))
- (use (const_int 1))])]
- ;; Operand 1 not used on the AVR.
- ;; Operand 2 is 1 for tail-call, 0 otherwise.
- ""
- "")
+ (use (const_int 1))])])
;; call value
+;; Operand 2 not used on the AVR.
+;; Operand 3 is 1 for tail-call, 0 otherwise.
(define_expand "call_value"
[(parallel[(set (match_operand 0 "register_operand" "")
(call (match_operand:HI 1 "call_insn_operand" "")
(match_operand:HI 2 "general_operand" "")))
- (use (const_int 0))])]
- ;; Operand 2 not used on the AVR.
- ;; Operand 3 is 1 for tail-call, 0 otherwise.
- ""
- "")
+ (use (const_int 0))])])
+;; Operand 2 not used on the AVR.
+;; Operand 3 is 1 for tail-call, 0 otherwise.
(define_expand "sibcall_value"
[(parallel[(set (match_operand 0 "register_operand" "")
(call (match_operand:HI 1 "call_insn_operand" "")
(match_operand:HI 2 "general_operand" "")))
- (use (const_int 1))])]
- ;; Operand 2 not used on the AVR.
- ;; Operand 3 is 1 for tail-call, 0 otherwise.
- ""
- "")
+ (use (const_int 1))])])
(define_insn "call_insn"
[(parallel[(call (mem:HI (match_operand:HI 0 "nonmemory_operand" "z,s,z,s"))
@@ -5069,11 +5037,11 @@
(label_ref (match_operand 2 "" ""))
(pc)))]
""
-{
- operands[3] = operands[2];
- operands[2] = GEN_INT (7);
- return avr_out_sbxx_branch (insn, operands);
-}
+ {
+ operands[3] = operands[2];
+ operands[2] = GEN_INT (7);
+ return avr_out_sbxx_branch (insn, operands);
+ }
[(set (attr "length")
(if_then_else (and (ge (minus (pc) (match_dup 2)) (const_int -2046))
(le (minus (pc) (match_dup 2)) (const_int 2046)))
@@ -5117,11 +5085,11 @@
(label_ref (match_operand 2 "" ""))
(pc)))]
""
-{
- operands[3] = operands[2];
- operands[2] = GEN_INT (7);
- return avr_out_sbxx_branch (insn, operands);
-}
+ {
+ operands[3] = operands[2];
+ operands[2] = GEN_INT (7);
+ return avr_out_sbxx_branch (insn, operands);
+ }
[(set (attr "length")
(if_then_else (and (ge (minus (pc) (match_dup 2)) (const_int -2046))
(le (minus (pc) (match_dup 2)) (const_int 2045)))
@@ -5479,29 +5447,29 @@
(define_insn "return_from_epilogue"
[(return)]
- "(reload_completed
- && cfun->machine
- && !(cfun->machine->is_interrupt || cfun->machine->is_signal)
- && !cfun->machine->is_naked)"
+ "reload_completed
+ && cfun->machine
+ && !(cfun->machine->is_interrupt || cfun->machine->is_signal)
+ && !cfun->machine->is_naked"
"ret"
[(set_attr "cc" "none")
(set_attr "length" "1")])
(define_insn "return_from_interrupt_epilogue"
[(return)]
- "(reload_completed
- && cfun->machine
- && (cfun->machine->is_interrupt || cfun->machine->is_signal)
- && !cfun->machine->is_naked)"
+ "reload_completed
+ && cfun->machine
+ && (cfun->machine->is_interrupt || cfun->machine->is_signal)
+ && !cfun->machine->is_naked"
"reti"
[(set_attr "cc" "none")
(set_attr "length" "1")])
(define_insn "return_from_naked_epilogue"
[(return)]
- "(reload_completed
- && cfun->machine
- && cfun->machine->is_naked)"
+ "reload_completed
+ && cfun->machine
+ && cfun->machine->is_naked"
""
[(set_attr "cc" "none")
(set_attr "length" "0")])
@@ -5805,8 +5773,7 @@
[(set (reg:QI 24)
(popcount:QI (reg:QI 24)))
(set (reg:QI 25)
- (const_int 0))]
- "")
+ (const_int 0))])
;; Count Leading Zeros
@@ -5817,9 +5784,7 @@
(clz:HI (reg:HI 24)))
(clobber (reg:QI 26))])
(set (match_operand:HI 0 "register_operand" "")
- (reg:HI 24))]
- ""
- "")
+ (reg:HI 24))])
(define_expand "clzsi2"
[(set (reg:SI 22)
@@ -5863,9 +5828,7 @@
(ctz:HI (reg:HI 24)))
(clobber (reg:QI 26))])
(set (match_operand:HI 0 "register_operand" "")
- (reg:HI 24))]
- ""
- "")
+ (reg:HI 24))])
(define_expand "ctzsi2"
[(set (reg:SI 22)
@@ -5911,9 +5874,7 @@
(ffs:HI (reg:HI 24)))
(clobber (reg:QI 26))])
(set (match_operand:HI 0 "register_operand" "")
- (reg:HI 24))]
- ""
- "")
+ (reg:HI 24))])
(define_expand "ffssi2"
[(set (reg:SI 22)
@@ -5970,9 +5931,7 @@
(set (reg:SI 22)
(bswap:SI (reg:SI 22)))
(set (match_operand:SI 0 "register_operand" "")
- (reg:SI 22))]
- ""
- "")
+ (reg:SI 22))])
(define_insn "*bswapsi2.libgcc"
[(set (reg:SI 22)
@@ -6275,8 +6234,7 @@
(match_operand:QI 1 "const1_operand" "") ; width
(match_operand:QI 2 "const_0_to_7_operand" "")) ; pos
(match_operand:QI 3 "nonmemory_operand" ""))]
- "optimize"
- "")
+ "optimize")
;; Insert bit $2.0 into $0.$1
(define_insn "*insv.reg"
@@ -6341,9 +6299,7 @@
[(set (match_operand:QI 0 "register_operand" "")
(zero_extract:QI (match_operand:QI 1 "register_operand" "")
(match_operand:QI 2 "const1_operand" "")
- (match_operand:QI 3 "const_0_to_7_operand" "")))]
- ""
- "")
+ (match_operand:QI 3 "const_0_to_7_operand" "")))])
(define_insn "*extzv"
[(set (match_operand:QI 0 "register_operand" "=*d,*d,*d,*d,r")
diff --git a/gcc/config/avr/gen-avr-mmcu-texi.c b/gcc/config/avr/gen-avr-mmcu-texi.c
index f4cb24e28..d5567e709 100644
--- a/gcc/config/avr/gen-avr-mmcu-texi.c
+++ b/gcc/config/avr/gen-avr-mmcu-texi.c
@@ -18,18 +18,52 @@
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+#include <stdlib.h>
+#include <stdio.h>
+
+#define IN_GEN_AVR_MMCU_TEXI
+
+#include "avr-arch.h"
#include "avr-devices.c"
static const char*
mcu_name[sizeof avr_mcu_types / sizeof avr_mcu_types[0]];
+static int letter (char c)
+{
+ return c >= 'a' && c <= 'z';
+}
+
+static int digit (char c)
+{
+ return c >= '0' && c <= '9';
+}
+
static int
comparator (const void *va, const void *vb)
{
- const char* const *a = (const char* const*) va;
- const char* const *b = (const char* const*) vb;
+ const char *a = *(const char* const*) va;
+ const char *b = *(const char* const*) vb;
+
+ while (*a && *b)
+ {
+ /* Make letters smaller than digits so that `atmega16a' follows
+ `atmega16' without `atmega161' etc. between them. */
+
+ if (letter (*a) && digit (*b))
+ return -1;
+
+ if (digit (*a) && letter (*b))
+ return 1;
+
+ if (*a != *b)
+ return *a - *b;
+
+ a++;
+ b++;
+ }
- return strcmp (*a, *b);
+ return *a - *b;
}
static void
@@ -61,6 +95,7 @@ int main (void)
printf ("@c This file is generated automatically using\n");
printf ("@c gcc/config/avr/gen-avr-mmcu-texi.c from:\n");
+ printf ("@c gcc/config/avr/avr-arch.h\n");
printf ("@c gcc/config/avr/avr-devices.c\n");
printf ("@c gcc/config/avr/avr-mcus.def\n\n");
diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr
index 98f4c3db8..f4cd26f59 100644
--- a/gcc/config/avr/t-avr
+++ b/gcc/config/avr/t-avr
@@ -44,8 +44,9 @@ $(srcdir)/config/avr/avr-tables.opt: $(srcdir)/config/avr/genopt.sh $(AVR_MCUS)
$(SHELL) $< $(AVR_MCUS) > $@
gen-avr-mmcu-texi$(build_exeext): $(srcdir)/config/avr/gen-avr-mmcu-texi.c \
- $(TM_H) $(AVR_MCUS) $(srcdir)/config/avr/avr-devices.c
- $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< -o $@
+ $(AVR_MCUS) $(srcdir)/config/avr/avr-devices.c \
+ $(srcdir)/config/avr/avr-arch.h
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $< -o $@
# Make sure that the -mmcu= documentation is in sync with the compiler.
$(srcdir)/doc/avr-mmcu.texi: s-avr-mmcu-texi; @true
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 709cea39f..2c01cf7a0 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -3918,12 +3918,12 @@ gen_one_bundle (rtx slot[3])
}
/* Avoid line number information being printed inside one bundle. */
- if (INSN_LOCATOR (slot[1])
- && INSN_LOCATOR (slot[1]) != INSN_LOCATOR (slot[0]))
- INSN_LOCATOR (slot[1]) = INSN_LOCATOR (slot[0]);
- if (INSN_LOCATOR (slot[2])
- && INSN_LOCATOR (slot[2]) != INSN_LOCATOR (slot[0]))
- INSN_LOCATOR (slot[2]) = INSN_LOCATOR (slot[0]);
+ if (INSN_LOCATION (slot[1])
+ && INSN_LOCATION (slot[1]) != INSN_LOCATION (slot[0]))
+ INSN_LOCATION (slot[1]) = INSN_LOCATION (slot[0]);
+ if (INSN_LOCATION (slot[2])
+ && INSN_LOCATION (slot[2]) != INSN_LOCATION (slot[0]))
+ INSN_LOCATION (slot[2]) = INSN_LOCATION (slot[0]);
/* Terminate them with "|| " instead of ";" in the output. */
PUT_MODE (slot[0], SImode);
diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index 1905504f9..32807d8ea 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -3912,6 +3912,13 @@ c6x_free_sched_context (void *_sc)
free (_sc);
}
+/* True if we are currently performing a preliminary scheduling
+ pass before modulo scheduling; we can't allow the scheduler to
+ modify instruction patterns using packetization assumptions,
+ since there will be another scheduling pass later if modulo
+ scheduling fails. */
+static bool in_hwloop;
+
/* Provide information about speculation capabilities, and set the
DO_BACKTRACKING flag. */
static void
@@ -3923,6 +3930,8 @@ c6x_set_sched_flags (spec_info_t spec_info)
{
*flags |= DO_BACKTRACKING | DO_PREDICATION;
}
+ if (in_hwloop)
+ *flags |= DONT_BREAK_DEPENDENCIES;
spec_info->mask = 0;
}
@@ -4586,7 +4595,7 @@ gen_one_bundle (rtx *slot, int n_filled, int real_first)
bundle = gen_rtx_SEQUENCE (VOIDmode, gen_rtvec_v (n_filled, slot));
bundle = make_insn_raw (bundle);
BLOCK_FOR_INSN (bundle) = BLOCK_FOR_INSN (slot[0]);
- INSN_LOCATOR (bundle) = INSN_LOCATOR (slot[0]);
+ INSN_LOCATION (bundle) = INSN_LOCATION (slot[0]);
PREV_INSN (bundle) = PREV_INSN (slot[real_first]);
t = NULL_RTX;
@@ -4600,7 +4609,7 @@ gen_one_bundle (rtx *slot, int n_filled, int real_first)
NEXT_INSN (t) = insn;
t = insn;
if (i > 0)
- INSN_LOCATOR (slot[i]) = INSN_LOCATOR (bundle);
+ INSN_LOCATION (slot[i]) = INSN_LOCATION (bundle);
}
NEXT_INSN (bundle) = NEXT_INSN (PREV_INSN (bundle));
@@ -5536,9 +5545,11 @@ hwloop_optimize (hwloop_info loop)
reshuffle_units (loop->head);
+ in_hwloop = true;
schedule_ebbs_init ();
schedule_ebb (BB_HEAD (loop->tail), loop->loop_end, true);
schedule_ebbs_finish ();
+ in_hwloop = false;
bb = loop->head;
loop_earliest = bb_earliest_end_cycle (bb, loop->loop_end) + 1;
diff --git a/gcc/config/host-openbsd.c b/gcc/config/host-openbsd.c
index 955deddc8..16c140e50 100644
--- a/gcc/config/host-openbsd.c
+++ b/gcc/config/host-openbsd.c
@@ -1,5 +1,6 @@
/* OpenBSD host-specific hook definitions.
- Copyright (C) 2004, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007, 2008, 2010, 2011, 2012
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,6 +34,8 @@
that's probably free. */
#if defined(__amd64__)
# define TRY_EMPTY_VM_SPACE 0x400000000000
+#elif defined(__hppa__)
+# define TRY_EMPTY_VM_SPACE 0xb0000000
#elif defined(__i386__)
# define TRY_EMPTY_VM_SPACE 0xb0000000
#else
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index df8c101cd..68285717d 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -32792,7 +32792,8 @@ ix86_rtx_costs (rtx x, int code_i, int outer_code_i, int opno, int *total,
case AND:
case IOR:
case XOR:
- if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
+ if (GET_MODE_CLASS (mode) == MODE_INT
+ && GET_MODE_SIZE (mode) > UNITS_PER_WORD)
{
*total = (cost->add * 2
+ (rtx_cost (XEXP (x, 0), outer_code, opno, speed)
@@ -33432,7 +33433,6 @@ x86_output_mi_thunk (FILE *file,
/* Emit just enough of rest_of_compilation to get the insns emitted.
Note that use_thunk calls assemble_start_function et al. */
tmp = get_insns ();
- insn_locators_alloc ();
shorten_branches (tmp);
final_start_function (tmp, file, 1);
final (tmp, file, 1);
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 984082cb7..66f85dede 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -10852,7 +10852,6 @@ ia64_output_mi_thunk (FILE *file, tree thunk ATTRIBUTE_UNUSED,
instruction scheduling worth while. Note that use_thunk calls
assemble_start_function and assemble_end_function. */
- insn_locators_alloc ();
emit_all_insn_group_barriers (NULL);
insn = get_insns ();
shorten_branches (insn);
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
index 1f7123443..79611a8fd 100644
--- a/gcc/config/mep/mep.c
+++ b/gcc/config/mep/mep.c
@@ -6814,9 +6814,9 @@ mep_make_bundle (rtx core, rtx cop)
/* Derive a location for the bundle. Individual instructions cannot
have their own location because there can be no assembler labels
between CORE and COP. */
- INSN_LOCATOR (insn) = INSN_LOCATOR (INSN_LOCATOR (core) ? core : cop);
- INSN_LOCATOR (core) = 0;
- INSN_LOCATOR (cop) = 0;
+ INSN_LOCATION (insn) = INSN_LOCATION (INSN_LOCATION (core) ? core : cop);
+ INSN_LOCATION (core) = 0;
+ INSN_LOCATION (cop) = 0;
return insn;
}
@@ -6913,7 +6913,7 @@ mep_bundle_insns (rtx insns)
whenever the current line changes, set the location info
for INSN to match FIRST. */
- INSN_LOCATOR (insn) = INSN_LOCATOR (first);
+ INSN_LOCATION (insn) = INSN_LOCATION (first);
note = PREV_INSN (insn);
while (note && note != first)
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 7f9df4c16..d37a2f432 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -2628,7 +2628,7 @@ mips16_gp_pseudo_reg (void)
insn = gen_load_const_gp (cfun->machine->mips16_gp_pseudo_rtx);
insn = emit_insn_after (insn, scan);
- INSN_LOCATOR (insn) = 0;
+ INSN_LOCATION (insn) = 0;
pop_topmost_sequence ();
}
@@ -15864,7 +15864,6 @@ mips_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
/* Run just enough of rest_of_compilation. This sequence was
"borrowed" from alpha.c. */
insn = get_insns ();
- insn_locators_alloc ();
split_all_insns_noflow ();
mips16_lay_out_constants (true);
shorten_branches (insn);
diff --git a/gcc/config/mips/mti-elf.h b/gcc/config/mips/mti-elf.h
new file mode 100644
index 000000000..f6b38a529
--- /dev/null
+++ b/gcc/config/mips/mti-elf.h
@@ -0,0 +1,43 @@
+/* Target macros for mips*-mti-elf targets.
+ Copyright (C) 2012
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#undef DRIVER_SELF_SPECS
+#define DRIVER_SELF_SPECS \
+ /* Make sure a -mips option is present. This helps us to pick \
+ the right multilib, and also makes the later specs easier \
+ to write. */ \
+ MIPS_ISA_LEVEL_SPEC, \
+ \
+ /* Infer the default float setting from -march. */ \
+ MIPS_ARCH_FLOAT_SPEC, \
+ \
+ /* Infer the -msynci setting from -march if not explicitly set. */ \
+ MIPS_ISA_SYNCI_SPEC, \
+ \
+ /* If no ABI option is specified, infer one from the ISA level \
+ or -mgp setting. */ \
+ "%{!mabi=*: %{" MIPS_32BIT_OPTION_SPEC ": -mabi=32;: -mabi=n32}}", \
+ \
+ /* Make sure that an endian option is always present. This makes \
+ things like LINK_SPEC easier to write. */ \
+ "%{!EB:%{!EL:%(endian_spec)}}", \
+ \
+ /* Configuration-independent MIPS rules. */ \
+ BASE_DRIVER_SELF_SPECS
diff --git a/gcc/config/mips/t-mti-elf b/gcc/config/mips/t-mti-elf
new file mode 100644
index 000000000..d1d975a18
--- /dev/null
+++ b/gcc/config/mips/t-mti-elf
@@ -0,0 +1,35 @@
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+MULTILIB_OPTIONS = mips32/mips64/mips64r2 mips16 mabi=64 EL msoft-float
+MULTILIB_DIRNAMES = mips32 mips64 mips64r2 mips16 64 el sof
+MULTILIB_MATCHES = EL=mel EB=meb
+
+# We do not want to build mips16 versions of mips64* architectures.
+MULTILIB_EXCEPTIONS += *mips64*/*mips16*
+
+# 64 bit ABI is not supported on mips32 architecture.
+MULTILIB_EXCEPTIONS += *mips32*/*mabi=64*
+
+# The 64 bit ABI is not supported on the mips32r2 bit architecture.
+# Because mips32r2 is the default the exception list is a little messy.
+# Basically we are saying any list that doesn't specify mips32, mips64,
+# or mips64r2 but does specify mabi=64 is not allowed because that
+# would be defaulting to the mips32r2 architecture.
+MULTILIB_EXCEPTIONS += mabi=64*
+MULTILIB_EXCEPTIONS += mips16/mabi=64*
diff --git a/gcc/config/moxie/moxie.h b/gcc/config/moxie/moxie.h
index 7604ac427..b01f56820 100644
--- a/gcc/config/moxie/moxie.h
+++ b/gcc/config/moxie/moxie.h
@@ -1,5 +1,5 @@
/* Target Definitions for moxie.
- Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2009, 2010, 2012 Free Software Foundation, Inc.
Contributed by Anthony Green.
This file is part of GCC.
@@ -22,7 +22,7 @@
#define GCC_MOXIE_H
#undef STARTFILE_SPEC
-#define STARTFILE_SPEC "crt0%O%s crti.o%s crtbegin.o%s"
+#define STARTFILE_SPEC "%{!mno-crt0:crt0%O%s} crti.o%s crtbegin.o%s"
/* Provide an ENDFILE_SPEC appropriate for svr4. Here we tack on our own
magical crtend.o file (see crtstuff.c) which provides part of the
diff --git a/gcc/config/moxie/moxie.opt b/gcc/config/moxie/moxie.opt
index 00f3ff82c..3e6268a4e 100644
--- a/gcc/config/moxie/moxie.opt
+++ b/gcc/config/moxie/moxie.opt
@@ -25,3 +25,7 @@ Generate big-endian code
mel
Target RejectNegative Report Mask(LITTLE_ENDIAN)
Generate little-endian code
+
+; Ignored by the compiler
+mno-crt0
+Target RejectNegative
diff --git a/gcc/config/pa/pa-openbsd.h b/gcc/config/pa/pa-openbsd.h
new file mode 100644
index 000000000..785409cf7
--- /dev/null
+++ b/gcc/config/pa/pa-openbsd.h
@@ -0,0 +1,162 @@
+/* Definitions for PA_RISC with ELF format
+ Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
+ 2011, 2012
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ OPENBSD_OS_CPP_BUILTINS(); \
+ builtin_assert ("machine=bigendian"); \
+ } \
+ while (0)
+
+/* Our profiling scheme doesn't LP labels and counter words. */
+#define NO_DEFERRED_PROFILE_COUNTERS 1
+
+#undef STRING_ASM_OP
+#define STRING_ASM_OP "\t.stringz\t"
+
+#define TEXT_SECTION_ASM_OP "\t.text"
+#define DATA_SECTION_ASM_OP "\t.data"
+#define BSS_SECTION_ASM_OP "\t.section\t.bss"
+
+/* We want local labels to start with period if made with asm_fprintf. */
+#undef LOCAL_LABEL_PREFIX
+#define LOCAL_LABEL_PREFIX "."
+
+/* Define these to generate the Linux/ELF/SysV style of internal
+ labels all the time - i.e. to be compatible with
+ ASM_GENERATE_INTERNAL_LABEL in <elfos.h>. Compare these with the
+ ones in pa.h and note the lack of dollar signs in these. FIXME:
+ shouldn't we fix pa.h to use ASM_GENERATE_INTERNAL_LABEL instead? */
+
+#undef ASM_OUTPUT_ADDR_VEC_ELT
+#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
+ if (TARGET_BIG_SWITCH) \
+ fprintf (FILE, "\t.word .L%d\n", VALUE); \
+ else \
+ fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE)
+
+#undef ASM_OUTPUT_ADDR_DIFF_ELT
+#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
+ if (TARGET_BIG_SWITCH) \
+ fprintf (FILE, "\t.word .L%d-.L%d\n", VALUE, REL); \
+ else \
+ fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE)
+
+/* Use the default. */
+#undef ASM_OUTPUT_LABEL
+
+/* NOTE: (*targetm.asm_out.internal_label)() is defined for us by elfos.h, and
+ does what we want (i.e. uses colons). It must be compatible with
+ ASM_GENERATE_INTERNAL_LABEL(), so do not define it here. */
+
+/* Use the default. */
+#undef ASM_OUTPUT_INTERNAL_LABEL
+
+/* Use the default. */
+#undef TARGET_ASM_GLOBALIZE_LABEL
+
+/* FIXME: Hacked from the <elfos.h> one so that we avoid multiple
+ labels in a function declaration (since pa.c seems determined to do
+ it differently) */
+
+#undef ASM_DECLARE_FUNCTION_NAME
+#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
+ do \
+ { \
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
+ ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
+ } \
+ while (0)
+
+/* As well as globalizing the label, we need to encode the label
+ to ensure a plabel is generated in an indirect call. */
+
+#undef ASM_OUTPUT_EXTERNAL_LIBCALL
+#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
+ do \
+ { \
+ if (!FUNCTION_NAME_P (XSTR (FUN, 0))) \
+ pa_encode_label (FUN); \
+ (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0)); \
+ } \
+ while (0)
+
+/* This says how to output an assembler line to define a global common symbol
+ with size SIZE (in bytes) and alignment ALIGN (in bits). */
+
+#undef ASM_OUTPUT_ALIGNED_COMMON
+#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
+ pa_asm_output_aligned_common (FILE, NAME, SIZE, ALIGN)
+
+/* This says how to output an assembler line to define a local common symbol
+ with size SIZE (in bytes) and alignment ALIGN (in bits). This macro
+ controls how the assembler definitions of uninitialized static variables
+ are output. */
+
+#undef ASM_OUTPUT_ALIGNED_LOCAL
+#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
+ pa_asm_output_aligned_local (FILE, NAME, SIZE, ALIGN)
+
+/* OpenBSD always uses gas. */
+#undef TARGET_GAS
+#define TARGET_GAS 1
+
+/* Layout of source language data types. */
+
+/* This must agree with <machine/_types.h> */
+#undef SIZE_TYPE
+#define SIZE_TYPE "long unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "long int"
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+#undef WINT_TYPE
+#define WINT_TYPE "int"
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "%{!shared:%{!nostdlib:%{!r:%{!e*:-e __start}}}} \
+ %{shared:-shared} %{R*} \
+ %{static:-Bstatic} \
+ %{!static:-Bdynamic} \
+ %{assert*} \
+ -dynamic-linker /usr/libexec/ld.so"
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "\
+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
+
+#define OBSD_HAS_CORRECT_SPECS
+
+#define HAVE_ENABLE_EXECUTE_STACK
diff --git a/gcc/config/pa/pa32-openbsd.h b/gcc/config/pa/pa32-openbsd.h
new file mode 100644
index 000000000..af8db1cc9
--- /dev/null
+++ b/gcc/config/pa/pa32-openbsd.h
@@ -0,0 +1,23 @@
+/* Definitions for PA_RISC with ELF-32 format
+ Copyright (C) 2000, 2002, 2004, 2006, 2007, 2010, 2011, 2012
+ Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Turn off various SOM crap we don't want. */
+#undef TARGET_ELF32
+#define TARGET_ELF32 1
diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c
index 9df557902..1a6c1ef6c 100644
--- a/gcc/config/picochip/picochip.c
+++ b/gcc/config/picochip/picochip.c
@@ -3298,16 +3298,16 @@ picochip_reorg (void)
if (GET_MODE (insn) == TImode)
{
vliw_start = insn;
- vliw_insn_location = INSN_LOCATOR (insn);
+ vliw_insn_location = INSN_LOCATION (insn);
}
if (JUMP_P (insn) || CALL_P(insn))
{
- vliw_insn_location = INSN_LOCATOR (insn);
+ vliw_insn_location = INSN_LOCATION (insn);
for (insn1 = vliw_start; insn1 != insn ; insn1 = next_real_insn (insn1))
- INSN_LOCATOR (insn1) = vliw_insn_location;
+ INSN_LOCATION (insn1) = vliw_insn_location;
}
/* Tag subsequent instructions with the same location. */
- INSN_LOCATOR (insn) = vliw_insn_location;
+ INSN_LOCATION (insn) = vliw_insn_location;
}
}
diff --git a/gcc/config/rs6000/aix61.h b/gcc/config/rs6000/aix61.h
index 92168990a..f0a09e6c5 100644
--- a/gcc/config/rs6000/aix61.h
+++ b/gcc/config/rs6000/aix61.h
@@ -106,7 +106,7 @@ do { \
%{pthread: -D_THREAD_SAFE}"
#undef TARGET_DEFAULT
-#define TARGET_DEFAULT 0
+#define TARGET_DEFAULT (MASK_PPC_GPOPT | MASK_PPC_GFXOPT | MASK_MFCRF)
#undef PROCESSOR_DEFAULT
#define PROCESSOR_DEFAULT PROCESSOR_POWER7
diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
index e2c3e70d2..12b75275a 100644
--- a/gcc/config/rs6000/predicates.md
+++ b/gcc/config/rs6000/predicates.md
@@ -30,44 +30,89 @@
(and (match_code "reg")
(match_test "REGNO (op) == CTR_REGNO
|| REGNO (op) > LAST_VIRTUAL_REGISTER")))
-
+
;; Return 1 if op is an Altivec register.
(define_predicate "altivec_register_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || ALTIVEC_REGNO_P (REGNO (op))
- || REGNO (op) > LAST_VIRTUAL_REGISTER")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ return ALTIVEC_REGNO_P (REGNO (op));
+})
;; Return 1 if op is a VSX register.
(define_predicate "vsx_register_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || VSX_REGNO_P (REGNO (op))
- || REGNO (op) > LAST_VIRTUAL_REGISTER")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ return VSX_REGNO_P (REGNO (op));
+})
;; Return 1 if op is a vector register that operates on floating point vectors
;; (either altivec or VSX).
(define_predicate "vfloat_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || VFLOAT_REGNO_P (REGNO (op))
- || REGNO (op) > LAST_VIRTUAL_REGISTER")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ return VFLOAT_REGNO_P (REGNO (op));
+})
;; Return 1 if op is a vector register that operates on integer vectors
;; (only altivec, VSX doesn't support integer vectors)
(define_predicate "vint_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || VINT_REGNO_P (REGNO (op))
- || REGNO (op) > LAST_VIRTUAL_REGISTER")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ return VINT_REGNO_P (REGNO (op));
+})
;; Return 1 if op is a vector register to do logical operations on (and, or,
;; xor, etc.)
(define_predicate "vlogical_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || VLOGICAL_REGNO_P (REGNO (op))
- || REGNO (op) > LAST_VIRTUAL_REGISTER")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ return VLOGICAL_REGNO_P (REGNO (op));
+})
;; Return 1 if op is the carry register.
(define_predicate "ca_operand"
@@ -123,36 +168,73 @@
;; Return 1 if op is a register that is not special.
(define_predicate "gpc_reg_operand"
- (and (match_operand 0 "register_operand")
- (match_test "(GET_CODE (op) != REG
- || (REGNO (op) >= ARG_POINTER_REGNUM
- && !CA_REGNO_P (REGNO (op)))
- || INT_REGNO_P (REGNO (op))
- || FP_REGNO_P (REGNO (op)))
- && !((TARGET_E500_DOUBLE || TARGET_SPE)
- && invalid_e500_subreg (op, mode))")))
+ (match_operand 0 "register_operand")
+{
+ if ((TARGET_E500_DOUBLE || TARGET_SPE) && invalid_e500_subreg (op, mode))
+ return 0;
+
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) >= ARG_POINTER_REGNUM && !CA_REGNO_P (REGNO (op)))
+ return 1;
+
+ return INT_REGNO_P (REGNO (op)) || FP_REGNO_P (REGNO (op));
+})
;; Return 1 if op is a register that is a condition register field.
(define_predicate "cc_reg_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || REGNO (op) > LAST_VIRTUAL_REGISTER
- || CR_REGNO_P (REGNO (op))")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ return CR_REGNO_P (REGNO (op));
+})
;; Return 1 if op is a register that is a condition register field not cr0.
(define_predicate "cc_reg_not_cr0_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || REGNO (op) > LAST_VIRTUAL_REGISTER
- || CR_REGNO_NOT_CR0_P (REGNO (op))")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ return CR_REGNO_NOT_CR0_P (REGNO (op));
+})
;; Return 1 if op is a register that is a condition register field and if generating microcode, not cr0.
(define_predicate "cc_reg_not_micro_cr0_operand"
- (and (match_operand 0 "register_operand")
- (match_test "GET_CODE (op) != REG
- || REGNO (op) > LAST_VIRTUAL_REGISTER
- || (rs6000_gen_cell_microcode && CR_REGNO_NOT_CR0_P (REGNO (op)))
- || (!rs6000_gen_cell_microcode && CR_REGNO_P (REGNO (op)))")))
+ (match_operand 0 "register_operand")
+{
+ if (GET_CODE (op) == SUBREG)
+ op = SUBREG_REG (op);
+
+ if (!REG_P (op))
+ return 0;
+
+ if (REGNO (op) > LAST_VIRTUAL_REGISTER)
+ return 1;
+
+ if (rs6000_gen_cell_microcode)
+ return CR_REGNO_NOT_CR0_P (REGNO (op));
+ else
+ return CR_REGNO_P (REGNO (op));
+})
;; Return 1 if op is a constant integer valid for D field
;; or non-special register register.
diff --git a/gcc/config/rs6000/rs6000-builtin.def b/gcc/config/rs6000/rs6000-builtin.def
index c8f8f86f4..9fa3a0f60 100644
--- a/gcc/config/rs6000/rs6000-builtin.def
+++ b/gcc/config/rs6000/rs6000-builtin.def
@@ -1429,6 +1429,12 @@ BU_SPECIAL_X (RS6000_BUILTIN_RSQRT, "__builtin_rsqrt", RS6000_BTM_FRSQRTE,
BU_SPECIAL_X (RS6000_BUILTIN_RSQRTF, "__builtin_rsqrtf", RS6000_BTM_FRSQRTES,
RS6000_BTC_FP)
+BU_SPECIAL_X (RS6000_BUILTIN_GET_TB, "__builtin_ppc_get_timebase",
+ RS6000_BTM_ALWAYS, RS6000_BTC_MISC)
+
+BU_SPECIAL_X (RS6000_BUILTIN_MFTB, "__builtin_ppc_mftb",
+ RS6000_BTM_ALWAYS, RS6000_BTC_MISC)
+
/* Darwin CfString builtin. */
BU_SPECIAL_X (RS6000_BUILTIN_CFSTRING, "__builtin_cfstring", RS6000_BTM_ALWAYS,
RS6000_BTC_MISC)
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index a5a3848e5..211087ba3 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -9748,6 +9748,30 @@ rs6000_overloaded_builtin_p (enum rs6000_builtins fncode)
return (rs6000_builtin_info[(int)fncode].attr & RS6000_BTC_OVERLOADED) != 0;
}
+/* Expand an expression EXP that calls a builtin without arguments. */
+static rtx
+rs6000_expand_zeroop_builtin (enum insn_code icode, rtx target)
+{
+ rtx pat;
+ enum machine_mode tmode = insn_data[icode].operand[0].mode;
+
+ if (icode == CODE_FOR_nothing)
+ /* Builtin not supported on this processor. */
+ return 0;
+
+ if (target == 0
+ || GET_MODE (target) != tmode
+ || ! (*insn_data[icode].operand[0].predicate) (target, tmode))
+ target = gen_reg_rtx (tmode);
+
+ pat = GEN_FCN (icode) (target);
+ if (! pat)
+ return 0;
+ emit_insn (pat);
+
+ return target;
+}
+
static rtx
rs6000_expand_unop_builtin (enum insn_code icode, tree exp, rtx target)
@@ -11337,6 +11361,16 @@ rs6000_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
? CODE_FOR_bpermd_di
: CODE_FOR_bpermd_si), exp, target);
+ case RS6000_BUILTIN_GET_TB:
+ return rs6000_expand_zeroop_builtin (CODE_FOR_rs6000_get_timebase,
+ target);
+
+ case RS6000_BUILTIN_MFTB:
+ return rs6000_expand_zeroop_builtin (((TARGET_64BIT)
+ ? CODE_FOR_rs6000_mftb_di
+ : CODE_FOR_rs6000_mftb_si),
+ target);
+
case ALTIVEC_BUILTIN_MASK_FOR_LOAD:
case ALTIVEC_BUILTIN_MASK_FOR_STORE:
{
@@ -11621,6 +11655,18 @@ rs6000_init_builtins (void)
POWER7_BUILTIN_BPERMD, "__builtin_bpermd");
def_builtin ("__builtin_bpermd", ftype, POWER7_BUILTIN_BPERMD);
+ ftype = build_function_type_list (unsigned_intDI_type_node,
+ NULL_TREE);
+ def_builtin ("__builtin_ppc_get_timebase", ftype, RS6000_BUILTIN_GET_TB);
+
+ if (TARGET_64BIT)
+ ftype = build_function_type_list (unsigned_intDI_type_node,
+ NULL_TREE);
+ else
+ ftype = build_function_type_list (unsigned_intSI_type_node,
+ NULL_TREE);
+ def_builtin ("__builtin_ppc_mftb", ftype, RS6000_BUILTIN_MFTB);
+
#if TARGET_XCOFF
/* AIX libm provides clog as __clog. */
if ((tdecl = builtin_decl_explicit (BUILT_IN_CLOG)) != NULL_TREE)
@@ -14659,14 +14705,6 @@ print_operand (FILE *file, rtx x, int code)
/* %c is output_addr_const if a CONSTANT_ADDRESS_P, otherwise
output_operand. */
- case 'c':
- /* X is a CR register. Print the number of the GT bit of the CR. */
- if (GET_CODE (x) != REG || ! CR_REGNO_P (REGNO (x)))
- output_operand_lossage ("invalid %%c value");
- else
- fprintf (file, "%d", 4 * (REGNO (x) - CR0_REGNO) + 1);
- return;
-
case 'D':
/* Like 'J' but get to the GT bit only. */
gcc_assert (REG_P (x));
@@ -21658,7 +21696,6 @@ rs6000_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
instruction scheduling worth while. Note that use_thunk calls
assemble_start_function and assemble_end_function. */
insn = get_insns ();
- insn_locators_alloc ();
shorten_branches (insn);
final_start_function (insn, file, 1);
final (insn, file, 1);
@@ -27314,7 +27351,7 @@ rs6000_final_prescan_insn (rtx insn, rtx *operand ATTRIBUTE_UNUSED,
{
const char *temp;
int insn_code_number = recog_memoized (insn);
- location_t location = locator_location (INSN_LOCATOR (insn));
+ location_t location = INSN_LOCATION (insn);
/* Punt on insns we cannot recognize. */
if (insn_code_number < 0)
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index f2bc15f14..9f9627072 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -136,6 +136,7 @@
UNSPECV_PROBE_STACK_RANGE ; probe range of stack addresses
UNSPECV_EH_RR ; eh_reg_restore
UNSPECV_ISYNC ; isync instruction
+ UNSPECV_MFTB ; move from time base
])
@@ -991,7 +992,7 @@
(match_dup 1)))
(match_dup 4)))]
"TARGET_MULHW"
- "macchw. %0, %1, %2"
+ "macchw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*macchw"
@@ -1003,7 +1004,7 @@
(match_operand:HI 1 "gpc_reg_operand" "r")))
(match_operand:SI 3 "gpc_reg_operand" "0")))]
"TARGET_MULHW"
- "macchw %0, %1, %2"
+ "macchw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*macchwuc"
@@ -1023,7 +1024,7 @@
(match_dup 1)))
(match_dup 4)))]
"TARGET_MULHW"
- "macchwu. %0, %1, %2"
+ "macchwu. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*macchwu"
@@ -1035,7 +1036,7 @@
(match_operand:HI 1 "gpc_reg_operand" "r")))
(match_operand:SI 3 "gpc_reg_operand" "0")))]
"TARGET_MULHW"
- "macchwu %0, %1, %2"
+ "macchwu %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*machhwc"
@@ -1057,7 +1058,7 @@
(const_int 16)))
(match_dup 4)))]
"TARGET_MULHW"
- "machhw. %0, %1, %2"
+ "machhw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*machhw"
@@ -1070,7 +1071,7 @@
(const_int 16)))
(match_operand:SI 3 "gpc_reg_operand" "0")))]
"TARGET_MULHW"
- "machhw %0, %1, %2"
+ "machhw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*machhwuc"
@@ -1092,7 +1093,7 @@
(const_int 16)))
(match_dup 4)))]
"TARGET_MULHW"
- "machhwu. %0, %1, %2"
+ "machhwu. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*machhwu"
@@ -1105,7 +1106,7 @@
(const_int 16)))
(match_operand:SI 3 "gpc_reg_operand" "0")))]
"TARGET_MULHW"
- "machhwu %0, %1, %2"
+ "machhwu %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*maclhwc"
@@ -1123,7 +1124,7 @@
(match_dup 2)))
(match_dup 4)))]
"TARGET_MULHW"
- "maclhw. %0, %1, %2"
+ "maclhw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*maclhw"
@@ -1134,7 +1135,7 @@
(match_operand:HI 2 "gpc_reg_operand" "r")))
(match_operand:SI 3 "gpc_reg_operand" "0")))]
"TARGET_MULHW"
- "maclhw %0, %1, %2"
+ "maclhw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*maclhwuc"
@@ -1152,7 +1153,7 @@
(match_dup 2)))
(match_dup 4)))]
"TARGET_MULHW"
- "maclhwu. %0, %1, %2"
+ "maclhwu. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*maclhwu"
@@ -1163,7 +1164,7 @@
(match_operand:HI 2 "gpc_reg_operand" "r")))
(match_operand:SI 3 "gpc_reg_operand" "0")))]
"TARGET_MULHW"
- "maclhwu %0, %1, %2"
+ "maclhwu %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*nmacchwc"
@@ -1183,7 +1184,7 @@
(sign_extend:SI
(match_dup 1)))))]
"TARGET_MULHW"
- "nmacchw. %0, %1, %2"
+ "nmacchw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*nmacchw"
@@ -1195,7 +1196,7 @@
(sign_extend:SI
(match_operand:HI 1 "gpc_reg_operand" "r")))))]
"TARGET_MULHW"
- "nmacchw %0, %1, %2"
+ "nmacchw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*nmachhwc"
@@ -1217,7 +1218,7 @@
(match_dup 2)
(const_int 16)))))]
"TARGET_MULHW"
- "nmachhw. %0, %1, %2"
+ "nmachhw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*nmachhw"
@@ -1230,7 +1231,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r")
(const_int 16)))))]
"TARGET_MULHW"
- "nmachhw %0, %1, %2"
+ "nmachhw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*nmaclhwc"
@@ -1248,7 +1249,7 @@
(sign_extend:SI
(match_dup 2)))))]
"TARGET_MULHW"
- "nmaclhw. %0, %1, %2"
+ "nmaclhw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*nmaclhw"
@@ -1259,7 +1260,7 @@
(sign_extend:SI
(match_operand:HI 2 "gpc_reg_operand" "r")))))]
"TARGET_MULHW"
- "nmaclhw %0, %1, %2"
+ "nmaclhw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulchwc"
@@ -1277,7 +1278,7 @@
(sign_extend:SI
(match_dup 1))))]
"TARGET_MULHW"
- "mulchw. %0, %1, %2"
+ "mulchw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulchw"
@@ -1288,7 +1289,7 @@
(sign_extend:SI
(match_operand:HI 1 "gpc_reg_operand" "r"))))]
"TARGET_MULHW"
- "mulchw %0, %1, %2"
+ "mulchw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulchwuc"
@@ -1306,7 +1307,7 @@
(zero_extend:SI
(match_dup 1))))]
"TARGET_MULHW"
- "mulchwu. %0, %1, %2"
+ "mulchwu. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulchwu"
@@ -1317,7 +1318,7 @@
(zero_extend:SI
(match_operand:HI 1 "gpc_reg_operand" "r"))))]
"TARGET_MULHW"
- "mulchwu %0, %1, %2"
+ "mulchwu %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulhhwc"
@@ -1337,7 +1338,7 @@
(match_dup 2)
(const_int 16))))]
"TARGET_MULHW"
- "mulhhw. %0, %1, %2"
+ "mulhhw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulhhw"
@@ -1349,7 +1350,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r")
(const_int 16))))]
"TARGET_MULHW"
- "mulhhw %0, %1, %2"
+ "mulhhw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulhhwuc"
@@ -1369,7 +1370,7 @@
(match_dup 2)
(const_int 16))))]
"TARGET_MULHW"
- "mulhhwu. %0, %1, %2"
+ "mulhhwu. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mulhhwu"
@@ -1381,7 +1382,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r")
(const_int 16))))]
"TARGET_MULHW"
- "mulhhwu %0, %1, %2"
+ "mulhhwu %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mullhwc"
@@ -1397,7 +1398,7 @@
(sign_extend:SI
(match_dup 2))))]
"TARGET_MULHW"
- "mullhw. %0, %1, %2"
+ "mullhw. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mullhw"
@@ -1407,7 +1408,7 @@
(sign_extend:SI
(match_operand:HI 2 "gpc_reg_operand" "r"))))]
"TARGET_MULHW"
- "mullhw %0, %1, %2"
+ "mullhw %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mullhwuc"
@@ -1423,7 +1424,7 @@
(zero_extend:SI
(match_dup 2))))]
"TARGET_MULHW"
- "mullhwu. %0, %1, %2"
+ "mullhwu. %0,%1,%2"
[(set_attr "type" "imul3")])
(define_insn "*mullhwu"
@@ -1433,7 +1434,7 @@
(zero_extend:SI
(match_operand:HI 2 "gpc_reg_operand" "r"))))]
"TARGET_MULHW"
- "mullhwu %0, %1, %2"
+ "mullhwu %0,%1,%2"
[(set_attr "type" "imul3")])
;; IBM 405, 440, 464 and 476 string-search dlmzb instruction support.
@@ -1447,7 +1448,7 @@
(match_dup 2)]
UNSPEC_DLMZB))]
"TARGET_DLMZB"
- "dlmzb. %0, %1, %2")
+ "dlmzb. %0,%1,%2")
(define_expand "strlensi"
[(set (match_operand:SI 0 "gpc_reg_operand" "")
@@ -1796,154 +1797,6 @@
}
}")
-(define_expand "sminsi3"
- [(set (match_dup 3)
- (if_then_else:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "")
- (match_operand:SI 2 "reg_or_short_operand" ""))
- (const_int 0)
- (minus:SI (match_dup 2) (match_dup 1))))
- (set (match_operand:SI 0 "gpc_reg_operand" "")
- (minus:SI (match_dup 2) (match_dup 3)))]
- "TARGET_ISEL"
- "
-{
- operands[2] = force_reg (SImode, operands[2]);
- rs6000_emit_minmax (operands[0], SMIN, operands[1], operands[2]);
- DONE;
-}")
-
-(define_expand "smaxsi3"
- [(set (match_dup 3)
- (if_then_else:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "")
- (match_operand:SI 2 "reg_or_short_operand" ""))
- (const_int 0)
- (minus:SI (match_dup 2) (match_dup 1))))
- (set (match_operand:SI 0 "gpc_reg_operand" "")
- (plus:SI (match_dup 3) (match_dup 1)))]
- "TARGET_ISEL"
- "
-{
- operands[2] = force_reg (SImode, operands[2]);
- rs6000_emit_minmax (operands[0], SMAX, operands[1], operands[2]);
- DONE;
-}")
-
-(define_expand "uminsi3"
- [(set (match_dup 3) (xor:SI (match_operand:SI 1 "gpc_reg_operand" "")
- (match_dup 5)))
- (set (match_dup 4) (xor:SI (match_operand:SI 2 "gpc_reg_operand" "")
- (match_dup 5)))
- (set (match_dup 3) (if_then_else:SI (gt (match_dup 3) (match_dup 4))
- (const_int 0)
- (minus:SI (match_dup 4) (match_dup 3))))
- (set (match_operand:SI 0 "gpc_reg_operand" "")
- (minus:SI (match_dup 2) (match_dup 3)))]
- "TARGET_ISEL"
- "
-{
- rs6000_emit_minmax (operands[0], UMIN, operands[1], operands[2]);
- DONE;
-}")
-
-(define_expand "umaxsi3"
- [(set (match_dup 3) (xor:SI (match_operand:SI 1 "gpc_reg_operand" "")
- (match_dup 5)))
- (set (match_dup 4) (xor:SI (match_operand:SI 2 "gpc_reg_operand" "")
- (match_dup 5)))
- (set (match_dup 3) (if_then_else:SI (gt (match_dup 3) (match_dup 4))
- (const_int 0)
- (minus:SI (match_dup 4) (match_dup 3))))
- (set (match_operand:SI 0 "gpc_reg_operand" "")
- (plus:SI (match_dup 3) (match_dup 1)))]
- "TARGET_ISEL"
- "
-{
- rs6000_emit_minmax (operands[0], UMAX, operands[1], operands[2]);
- DONE;
-}")
-
-;; We don't need abs with condition code because such comparisons should
-;; never be done.
-(define_expand "abssi2"
- [(set (match_operand:SI 0 "gpc_reg_operand" "")
- (abs:SI (match_operand:SI 1 "gpc_reg_operand" "")))]
- ""
- "
-{
- if (TARGET_ISEL)
- {
- emit_insn (gen_abssi2_isel (operands[0], operands[1]));
- DONE;
- }
- else
- {
- emit_insn (gen_abssi2_nopower (operands[0], operands[1]));
- DONE;
- }
-}")
-
-(define_insn_and_split "abs<mode>2_isel"
- [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
- (abs:GPR (match_operand:GPR 1 "gpc_reg_operand" "b")))
- (clobber (match_scratch:GPR 2 "=&b"))
- (clobber (match_scratch:CC 3 "=y"))]
- "TARGET_ISEL"
- "#"
- "&& reload_completed"
- [(set (match_dup 2) (neg:GPR (match_dup 1)))
- (set (match_dup 3)
- (compare:CC (match_dup 1)
- (const_int 0)))
- (set (match_dup 0)
- (if_then_else:GPR (lt (match_dup 3)
- (const_int 0))
- (match_dup 2)
- (match_dup 1)))]
- "")
-
-(define_insn_and_split "nabs<mode>2_isel"
- [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
- (neg:GPR (abs:GPR (match_operand:GPR 1 "gpc_reg_operand" "b"))))
- (clobber (match_scratch:GPR 2 "=&b"))
- (clobber (match_scratch:CC 3 "=y"))]
- "TARGET_ISEL"
- "#"
- "&& reload_completed"
- [(set (match_dup 2) (neg:GPR (match_dup 1)))
- (set (match_dup 3)
- (compare:CC (match_dup 1)
- (const_int 0)))
- (set (match_dup 0)
- (if_then_else:GPR (lt (match_dup 3)
- (const_int 0))
- (match_dup 1)
- (match_dup 2)))]
- "")
-
-(define_insn_and_split "abssi2_nopower"
- [(set (match_operand:SI 0 "gpc_reg_operand" "=&r,r")
- (abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0")))
- (clobber (match_scratch:SI 2 "=&r,&r"))]
- "! TARGET_ISEL"
- "#"
- "&& reload_completed"
- [(set (match_dup 2) (ashiftrt:SI (match_dup 1) (const_int 31)))
- (set (match_dup 0) (xor:SI (match_dup 2) (match_dup 1)))
- (set (match_dup 0) (minus:SI (match_dup 0) (match_dup 2)))]
- "")
-
-(define_insn_and_split "*nabs_nopower"
- [(set (match_operand:SI 0 "gpc_reg_operand" "=&r,r")
- (neg:SI (abs:SI (match_operand:SI 1 "gpc_reg_operand" "r,0"))))
- (clobber (match_scratch:SI 2 "=&r,&r"))]
- ""
- "#"
- "&& reload_completed"
- [(set (match_dup 2) (ashiftrt:SI (match_dup 1) (const_int 31)))
- (set (match_dup 0) (xor:SI (match_dup 2) (match_dup 1)))
- (set (match_dup 0) (minus:SI (match_dup 2) (match_dup 0)))]
- "")
-
(define_expand "neg<mode>2"
[(set (match_operand:SDI 0 "gpc_reg_operand" "")
(neg:SDI (match_operand:SDI 1 "gpc_reg_operand" "")))]
@@ -6374,43 +6227,6 @@
;; PowerPC64 DImode operations.
-(define_expand "absdi2"
- [(set (match_operand:DI 0 "gpc_reg_operand" "")
- (abs:DI (match_operand:DI 1 "gpc_reg_operand" "")))]
- "TARGET_POWERPC64"
- "
-{
- if (TARGET_ISEL)
- emit_insn (gen_absdi2_isel (operands[0], operands[1]));
- else
- emit_insn (gen_absdi2_internal (operands[0], operands[1]));
- DONE;
-}")
-
-(define_insn_and_split "absdi2_internal"
- [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,r")
- (abs:DI (match_operand:DI 1 "gpc_reg_operand" "r,0")))
- (clobber (match_scratch:DI 2 "=&r,&r"))]
- "TARGET_POWERPC64 && !TARGET_ISEL"
- "#"
- "&& reload_completed"
- [(set (match_dup 2) (ashiftrt:DI (match_dup 1) (const_int 63)))
- (set (match_dup 0) (xor:DI (match_dup 2) (match_dup 1)))
- (set (match_dup 0) (minus:DI (match_dup 0) (match_dup 2)))]
- "")
-
-(define_insn_and_split "*nabsdi2"
- [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,r")
- (neg:DI (abs:DI (match_operand:DI 1 "gpc_reg_operand" "r,0"))))
- (clobber (match_scratch:DI 2 "=&r,&r"))]
- "TARGET_POWERPC64 && !TARGET_ISEL"
- "#"
- "&& reload_completed"
- [(set (match_dup 2) (ashiftrt:DI (match_dup 1) (const_int 63)))
- (set (match_dup 0) (xor:DI (match_dup 2) (match_dup 1)))
- (set (match_dup 0) (minus:DI (match_dup 2) (match_dup 0)))]
- "")
-
(define_insn "muldi3"
[(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
(mult:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r")
@@ -7785,51 +7601,6 @@
(compare:CC (match_dup 0)
(const_int 0)))]
"")
-
-(define_expand "smindi3"
- [(match_operand:DI 0 "gpc_reg_operand" "")
- (match_operand:DI 1 "gpc_reg_operand" "")
- (match_operand:DI 2 "gpc_reg_operand" "")]
- "TARGET_ISEL64"
- "
-{
- rs6000_emit_minmax (operands[0], SMIN, operands[1], operands[2]);
- DONE;
-}")
-
-(define_expand "smaxdi3"
- [(match_operand:DI 0 "gpc_reg_operand" "")
- (match_operand:DI 1 "gpc_reg_operand" "")
- (match_operand:DI 2 "gpc_reg_operand" "")]
- "TARGET_ISEL64"
- "
-{
- rs6000_emit_minmax (operands[0], SMAX, operands[1], operands[2]);
- DONE;
-}")
-
-(define_expand "umindi3"
- [(match_operand:DI 0 "gpc_reg_operand" "")
- (match_operand:DI 1 "gpc_reg_operand" "")
- (match_operand:DI 2 "gpc_reg_operand" "")]
- "TARGET_ISEL64"
- "
-{
- rs6000_emit_minmax (operands[0], UMIN, operands[1], operands[2]);
- DONE;
-}")
-
-(define_expand "umaxdi3"
- [(match_operand:DI 0 "gpc_reg_operand" "")
- (match_operand:DI 1 "gpc_reg_operand" "")
- (match_operand:DI 2 "gpc_reg_operand" "")]
- "TARGET_ISEL64"
- "
-{
- rs6000_emit_minmax (operands[0], UMAX, operands[1], operands[2]);
- DONE;
-}")
-
;; Now define ways of moving data around.
@@ -7937,8 +7708,8 @@
mt%0 %1
mt%0 %1
nop
- stfs%U0%X0 %1, %0
- lfs%U1%X1 %0, %1"
+ stfs%U0%X0 %1,%0
+ lfs%U1%X1 %0,%1"
[(set_attr "type" "*,*,load,store,*,*,*,mfjmpr,mtjmpr,*,*,*,*")
(set_attr "length" "4,4,4,4,4,4,8,4,4,4,4,4,4")])
@@ -12058,7 +11829,7 @@
(clobber (match_operand:SI 5 "register_operand" ""))]
"! gpc_reg_operand (operands[2], SImode)"
[(set (match_dup 5) (match_dup 2))
- (set (match_dup 2) (plus:SI (match_op_dup 1 [(match_dup 2) (match_dup 3)])
+ (set (match_dup 0) (plus:SI (match_op_dup 1 [(match_dup 5) (match_dup 3)])
(match_dup 4)))])
(define_insn "*plus_eqsi"
@@ -14103,6 +13874,71 @@
""
"")
+(define_expand "rs6000_get_timebase"
+ [(use (match_operand:DI 0 "gpc_reg_operand" ""))]
+ ""
+{
+ if (TARGET_POWERPC64)
+ emit_insn (gen_rs6000_mftb_di (operands[0]));
+ else
+ emit_insn (gen_rs6000_get_timebase_ppc32 (operands[0]));
+ DONE;
+})
+
+(define_insn "rs6000_get_timebase_ppc32"
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (unspec_volatile:DI [(const_int 0)] UNSPECV_MFTB))
+ (clobber (match_scratch:SI 1 "=r"))
+ (clobber (match_scratch:CC 2 "=y"))]
+ "!TARGET_POWERPC64"
+{
+ if (WORDS_BIG_ENDIAN)
+ if (TARGET_MFCRF)
+ {
+ return "mfspr %0,269\;"
+ "mfspr %L0,268\;"
+ "mfspr %1,269\;"
+ "cmpw %2,%0,%1\;"
+ "bne- %2,$-16";
+ }
+ else
+ {
+ return "mftbu %0\;"
+ "mftb %L0\;"
+ "mftbu %1\;"
+ "cmpw %2,%0,%1\;"
+ "bne- %2,$-16";
+ }
+ else
+ if (TARGET_MFCRF)
+ {
+ return "mfspr %L0,269\;"
+ "mfspr %0,268\;"
+ "mfspr %1,269\;"
+ "cmpw %2,%L0,%1\;"
+ "bne- %2,$-16";
+ }
+ else
+ {
+ return "mftbu %L0\;"
+ "mftb %0\;"
+ "mftbu %1\;"
+ "cmpw %2,%L0,%1\;"
+ "bne- %2,$-16";
+ }
+})
+
+(define_insn "rs6000_mftb_<mode>"
+ [(set (match_operand:P 0 "gpc_reg_operand" "=r")
+ (unspec_volatile:P [(const_int 0)] UNSPECV_MFTB))]
+ ""
+{
+ if (TARGET_MFCRF)
+ return "mfspr %0,268";
+ else
+ return "mftb %0";
+})
+
(include "sync.md")
diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md
index bf59b6cf5..e190be87a 100644
--- a/gcc/config/rs6000/spe.md
+++ b/gcc/config/rs6000/spe.md
@@ -2945,8 +2945,6 @@
"mfspefscr %0"
[(set_attr "type" "vecsimple")])
-;; FP comparison stuff.
-
;; Flip the GT bit.
(define_insn "e500_flip_gt_bit"
[(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index f0141d0c4..3f3ace526 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -6869,7 +6869,7 @@ s390_chunkify_start (void)
prev = prev_nonnote_insn (prev);
if (prev)
jump = emit_jump_insn_after_setloc (gen_jump (label), insn,
- INSN_LOCATOR (prev));
+ INSN_LOCATION (prev));
else
jump = emit_jump_insn_after_noloc (gen_jump (label), insn);
barrier = emit_barrier_after (jump);
diff --git a/gcc/config/score/score.c b/gcc/config/score/score.c
index 3b5508615..33efe6f00 100644
--- a/gcc/config/score/score.c
+++ b/gcc/config/score/score.c
@@ -502,7 +502,6 @@ score_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
/* Run just enough of rest_of_compilation. This sequence was
"borrowed" from alpha.c. */
insn = get_insns ();
- insn_locators_alloc ();
split_all_insns_noflow ();
shorten_branches (insn);
final_start_function (insn, file, 1);
diff --git a/gcc/config/sh/predicates.md b/gcc/config/sh/predicates.md
index 8a4f7db04..27e42f159 100644
--- a/gcc/config/sh/predicates.md
+++ b/gcc/config/sh/predicates.md
@@ -1028,3 +1028,8 @@
return 0;
}
})
+
+;; Returns true of OP is arith_reg_operand or t_reg_operand.
+(define_predicate "arith_reg_or_t_reg_operand"
+ (ior (match_operand 0 "arith_reg_operand")
+ (match_operand 0 "t_reg_operand")))
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index b54bf2fc1..fd7879910 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -5530,7 +5530,7 @@ gen_block_redirect (rtx jump, int addr, int need_block)
NOTE_INSN_BLOCK_END notes between the indirect_jump_scratch and
the jump. */
- INSN_LOCATOR (insn) = INSN_LOCATOR (jump);
+ INSN_LOCATION (insn) = INSN_LOCATION (jump);
INSN_CODE (insn) = CODE_FOR_indirect_jump_scratch;
return insn;
}
@@ -12225,7 +12225,6 @@ sh_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
the insns emitted. Note that use_thunk calls
assemble_start_function and assemble_end_function. */
- insn_locators_alloc ();
insns = get_insns ();
if (optimize > 0)
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index c510629c5..27c5633dd 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -1787,6 +1787,22 @@
(reg:SI T_REG)))
(clobber (reg:SI T_REG))])])
+;; Left shifts by one are usually done with an add insn to avoid T_REG
+;; clobbers. Thus addc can also be used to do something like '(x << 1) + 1'.
+(define_insn_and_split "*addc"
+ [(set (match_operand:SI 0 "arith_reg_dest")
+ (plus:SI (mult:SI (match_operand:SI 1 "arith_reg_operand")
+ (const_int 2))
+ (const_int 1)))
+ (clobber (reg:SI T_REG))]
+ "TARGET_SH1"
+ "#"
+ "&& 1"
+ [(set (reg:SI T_REG) (const_int 1))
+ (parallel [(set (match_dup 0) (plus:SI (plus:SI (match_dup 1) (match_dup 1))
+ (reg:SI T_REG)))
+ (clobber (reg:SI T_REG))])])
+
;; Sometimes combine will try to do 'reg + (0-reg) + 1' if the *addc pattern
;; matched. Split this up into a simple sub add sequence, as this will save
;; us one sett insn.
@@ -3924,7 +3940,7 @@ label:
[(set (match_operand:SI 0 "arith_reg_dest")
(ior:SI (lshiftrt:SI (match_operand:SI 1 "arith_reg_operand")
(match_operand:SI 2 "const_int_operand"))
- (ashift:SI (match_operand:SI 3 "t_reg_operand")
+ (ashift:SI (match_operand:SI 3 "arith_reg_or_t_reg_operand")
(const_int 31))))
(clobber (reg:SI T_REG))]
"TARGET_SH1"
@@ -3976,6 +3992,17 @@ label:
emit_insn (gen_cmpgtsi_t (tmp_t_reg, const0_rtx));
}
+ /* For the rotcr insn to work, operands[3] must be in T_REG.
+ If it is not we can get it there by shifting it right one bit.
+ In this case T_REG is not an input for this insn, thus we don't have to
+ pay attention as of where to insert the shlr insn. */
+ if (! t_reg_operand (operands[3], SImode))
+ {
+ /* We don't care about the shifted result here, only the T_REG. */
+ emit_insn (gen_shlr (gen_reg_rtx (SImode), operands[3]));
+ operands[3] = get_t_reg_rtx ();
+ }
+
emit_insn (gen_rotcr (operands[0], operands[1], operands[3]));
DONE;
})
@@ -3995,6 +4022,24 @@ label:
(set (reg:SI T_REG)
(and:SI (match_dup 0) (const_int 1)))])])
+(define_insn_and_split "*rotcr"
+ [(set (match_operand:SI 0 "arith_reg_dest")
+ (ior:SI (and:SI (match_operand:SI 1 "arith_reg_operand")
+ (const_int -2147483648)) ;; 0xffffffff80000000
+ (lshiftrt:SI (match_operand:SI 2 "arith_reg_operand")
+ (const_int 1))))
+ (clobber (reg:SI T_REG))]
+ "TARGET_SH1"
+ "#"
+ "&& can_create_pseudo_p ()"
+ [(const_int 0)]
+{
+ rtx tmp = gen_reg_rtx (SImode);
+ emit_insn (gen_shll (tmp, operands[1]));
+ emit_insn (gen_rotcr (operands[0], operands[2], get_t_reg_rtx ()));
+ DONE;
+})
+
;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
;; SImode shift left
@@ -10303,12 +10348,17 @@ label:
(define_expand "prologue"
[(const_int 0)]
""
- "sh_expand_prologue (); DONE;")
+{
+ sh_expand_prologue ();
+ DONE;
+})
(define_expand "epilogue"
[(return)]
""
- "sh_expand_epilogue (false);")
+{
+ sh_expand_epilogue (false);
+})
(define_expand "eh_return"
[(use (match_operand 0 "register_operand" ""))]
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index ca234a235..0f744e091 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -10670,7 +10670,6 @@ sparc_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
instruction scheduling worth while. Note that use_thunk calls
assemble_start_function and assemble_end_function. */
insn = get_insns ();
- insn_locators_alloc ();
shorten_branches (insn);
final_start_function (insn, file, 1);
final (insn, file, 1);
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 2fe1f3f51..831d2b08a 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -1998,7 +1998,7 @@ emit_nop_for_insn (rtx insn)
else
new_insn = emit_insn_after (gen_lnop (), insn);
recog_memoized (new_insn);
- INSN_LOCATOR (new_insn) = INSN_LOCATOR (insn);
+ INSN_LOCATION (new_insn) = INSN_LOCATION (insn);
}
/* Insert nops in basic blocks to meet dual issue alignment
@@ -2037,7 +2037,7 @@ pad_bb(void)
prev_insn = emit_insn_before (gen_lnop (), insn);
PUT_MODE (prev_insn, GET_MODE (insn));
PUT_MODE (insn, TImode);
- INSN_LOCATOR (prev_insn) = INSN_LOCATOR (insn);
+ INSN_LOCATION (prev_insn) = INSN_LOCATION (insn);
length += 4;
}
}
@@ -2106,7 +2106,7 @@ spu_emit_branch_hint (rtx before, rtx branch, rtx target,
hint = emit_insn_before (gen_hbr (branch_label, target), before);
recog_memoized (hint);
- INSN_LOCATOR (hint) = INSN_LOCATOR (branch);
+ INSN_LOCATION (hint) = INSN_LOCATION (branch);
HINTED_P (branch) = 1;
if (GET_CODE (target) == LABEL_REF)
@@ -2129,7 +2129,7 @@ spu_emit_branch_hint (rtx before, rtx branch, rtx target,
which could make it too far for the branch offest to fit */
insn = emit_insn_before (gen_blockage (), hint);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (hint);
+ INSN_LOCATION (insn) = INSN_LOCATION (hint);
}
else if (distance <= 8 * 4)
{
@@ -2141,20 +2141,20 @@ spu_emit_branch_hint (rtx before, rtx branch, rtx target,
insn =
emit_insn_after (gen_nopn_nv (gen_rtx_REG (SImode, 127)), hint);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (hint);
+ INSN_LOCATION (insn) = INSN_LOCATION (hint);
}
/* Make sure any nops inserted aren't scheduled before the hint. */
insn = emit_insn_after (gen_blockage (), hint);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (hint);
+ INSN_LOCATION (insn) = INSN_LOCATION (hint);
/* Make sure any nops inserted aren't scheduled after the call. */
if (CALL_P (branch) && distance < 8 * 4)
{
insn = emit_insn_before (gen_blockage (), branch);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (branch);
+ INSN_LOCATION (insn) = INSN_LOCATION (branch);
}
}
}
@@ -2340,7 +2340,7 @@ insert_hbrp_for_ilb_runout (rtx first)
insn =
emit_insn_before (gen_iprefetch (GEN_INT (1)), before_4);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (before_4);
+ INSN_LOCATION (insn) = INSN_LOCATION (before_4);
INSN_ADDRESSES_NEW (insn,
INSN_ADDRESSES (INSN_UID (before_4)));
PUT_MODE (insn, GET_MODE (before_4));
@@ -2349,7 +2349,7 @@ insert_hbrp_for_ilb_runout (rtx first)
{
insn = emit_insn_before (gen_lnop (), before_4);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (before_4);
+ INSN_LOCATION (insn) = INSN_LOCATION (before_4);
INSN_ADDRESSES_NEW (insn,
INSN_ADDRESSES (INSN_UID (before_4)));
PUT_MODE (insn, TImode);
@@ -2361,7 +2361,7 @@ insert_hbrp_for_ilb_runout (rtx first)
insn =
emit_insn_before (gen_iprefetch (GEN_INT (2)), before_16);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (before_16);
+ INSN_LOCATION (insn) = INSN_LOCATION (before_16);
INSN_ADDRESSES_NEW (insn,
INSN_ADDRESSES (INSN_UID (before_16)));
PUT_MODE (insn, GET_MODE (before_16));
@@ -2370,7 +2370,7 @@ insert_hbrp_for_ilb_runout (rtx first)
{
insn = emit_insn_before (gen_lnop (), before_16);
recog_memoized (insn);
- INSN_LOCATOR (insn) = INSN_LOCATOR (before_16);
+ INSN_LOCATION (insn) = INSN_LOCATION (before_16);
INSN_ADDRESSES_NEW (insn,
INSN_ADDRESSES (INSN_UID
(before_16)));
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index 22209269f..ef259361f 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -4883,7 +4883,6 @@ tilegx_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
serial except for the tail call, so we're only wasting one cycle.
*/
insn = get_insns ();
- insn_locators_alloc ();
shorten_branches (insn);
final_start_function (insn, file, 1);
final (insn, file, 1);
diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c
index 3f336e465..e4c430872 100644
--- a/gcc/config/tilepro/tilepro.c
+++ b/gcc/config/tilepro/tilepro.c
@@ -4407,7 +4407,6 @@ tilepro_asm_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
serial except for the tail call, so we're only wasting one cycle.
*/
insn = get_insns ();
- insn_locators_alloc ();
shorten_branches (insn);
final_start_function (insn, file, 1);
final (insn, file, 1);
diff --git a/gcc/config/vxworks.c b/gcc/config/vxworks.c
index d88f03ffe..9eeefc009 100644
--- a/gcc/config/vxworks.c
+++ b/gcc/config/vxworks.c
@@ -97,24 +97,22 @@ static tree
vxworks_emutls_var_init (tree var, tree decl, tree tmpl_addr)
{
VEC(constructor_elt,gc) *v = VEC_alloc (constructor_elt, gc, 3);
- constructor_elt *elt;
tree type = TREE_TYPE (var);
tree field = TYPE_FIELDS (type);
- elt = VEC_quick_push (constructor_elt, v, NULL);
- elt->index = field;
- elt->value = fold_convert (TREE_TYPE (field), tmpl_addr);
+ constructor_elt elt = {field, fold_convert (TREE_TYPE (field), tmpl_addr)};
+ VEC_quick_push (constructor_elt, v, elt);
- elt = VEC_quick_push (constructor_elt, v, NULL);
field = DECL_CHAIN (field);
- elt->index = field;
- elt->value = build_int_cst (TREE_TYPE (field), 0);
+ elt.index = field;
+ elt.value = build_int_cst (TREE_TYPE (field), 0);
+ VEC_quick_push (constructor_elt, v, elt);
- elt = VEC_quick_push (constructor_elt, v, NULL);
field = DECL_CHAIN (field);
- elt->index = field;
- elt->value = fold_convert (TREE_TYPE (field), DECL_SIZE_UNIT (decl));
+ elt.index = field;
+ elt.value = fold_convert (TREE_TYPE (field), DECL_SIZE_UNIT (decl));
+ VEC_quick_push (constructor_elt, v, elt);
return build_constructor (type, v);
}
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index f70b46673..0a5292f27 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,27 @@
+2012-09-20 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/52432
+ * pt.c (tsubst_copy_and_build): If tf_error is not set in the complain
+ argument don't call unqualified_name_lookup_error.
+
+2012-09-19 Marc Glisse <marc.glisse@inria.fr>
+
+ PR c++/54581
+ * semantics.c (finish_decltype_type): Make vectors not opaque.
+
+2012-09-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/54575
+ * pt.c (instantiate_alias_template): New.
+ (tsubst): Use it.
+ (push_access_scope): Allow TYPE_DECL.
+
+2012-09-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/53661
+ * typeck2.c (check_narrowing): Avoid false positives on conversion
+ from enumeral type.
+
2012-09-14 Marc Glisse <marc.glisse@inria.fr>
PR c++/54427
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 7924dff51..d00470eec 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -205,16 +205,18 @@ static tree template_parm_to_arg (tree t);
static bool arg_from_parm_pack_p (tree, tree);
static tree current_template_args (void);
static tree tsubst_template_parm (tree, tree, tsubst_flags_t);
+static tree instantiate_alias_template (tree, tree, tsubst_flags_t);
/* Make the current scope suitable for access checking when we are
processing T. T can be FUNCTION_DECL for instantiated function
- template, or VAR_DECL for static member variable (need by
- instantiate_decl). */
+ template, VAR_DECL for static member variable, or TYPE_DECL for
+ alias template (needed by instantiate_decl). */
static void
push_access_scope (tree t)
{
gcc_assert (TREE_CODE (t) == FUNCTION_DECL
+ || TREE_CODE (t) == TYPE_DECL
|| TREE_CODE (t) == VAR_DECL);
if (DECL_FRIEND_CONTEXT (t))
@@ -10949,10 +10951,10 @@ tsubst (tree t, tree args, tsubst_flags_t complain, tree in_decl)
&& PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (decl)))
{
/* DECL represents an alias template and we want to
- instantiate it. Let's substitute our arguments for the
- template parameters into the declaration and get the
- resulting type. */
- r = tsubst (decl, args, complain, decl);
+ instantiate it. */
+ tree tmpl = most_general_template (DECL_TI_TEMPLATE (decl));
+ tree gen_args = tsubst (DECL_TI_ARGS (decl), args, complain, in_decl);
+ r = instantiate_alias_template (tmpl, gen_args, complain);
}
else if (DECL_CLASS_SCOPE_P (decl)
&& CLASSTYPE_TEMPLATE_INFO (DECL_CONTEXT (decl))
@@ -13769,7 +13771,8 @@ tsubst_copy_and_build (tree t,
}
if (TREE_CODE (function) == IDENTIFIER_NODE)
{
- unqualified_name_lookup_error (function);
+ if (complain & tf_error)
+ unqualified_name_lookup_error (function);
release_tree_vector (call_args);
RETURN (error_mark_node);
}
@@ -14377,7 +14380,7 @@ recheck_decl_substitution (tree d, tree tmpl, tree args)
pop_access_scope (d);
}
-/* Instantiate the indicated variable or function template TMPL with
+/* Instantiate the indicated variable, function, or alias template TMPL with
the template arguments in TARG_PTR. */
static tree
@@ -14526,6 +14529,35 @@ instantiate_template (tree tmpl, tree orig_args, tsubst_flags_t complain)
return ret;
}
+/* Instantiate the alias template TMPL with ARGS. Also push a template
+ instantiation level, which instantiate_template doesn't do because
+ functions and variables have sufficient context established by the
+ callers. */
+
+static tree
+instantiate_alias_template (tree tmpl, tree args, tsubst_flags_t complain)
+{
+ struct pending_template *old_last_pend = last_pending_template;
+ struct tinst_level *old_error_tinst = last_error_tinst_level;
+ if (tmpl == error_mark_node || args == error_mark_node)
+ return error_mark_node;
+ tree tinst = build_tree_list (tmpl, args);
+ if (!push_tinst_level (tinst))
+ {
+ ggc_free (tinst);
+ return error_mark_node;
+ }
+ tree r = instantiate_template (tmpl, args, complain);
+ pop_tinst_level ();
+ /* We can't free this if a pending_template entry or last_error_tinst_level
+ is pointing at it. */
+ if (last_pending_template == old_last_pend
+ && last_error_tinst_level == old_error_tinst)
+ ggc_free (tinst);
+
+ return r;
+}
+
/* PARM is a template parameter pack for FN. Returns true iff
PARM is used in a deducible way in the argument list of FN. */
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index db093e0b9..1aa5a8b8b 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -5312,6 +5312,11 @@ finish_decltype_type (tree expr, bool id_expression_or_member_access_p,
cp_lvalue_kind clk = lvalue_kind (expr);
type = unlowered_expr_type (expr);
gcc_assert (TREE_CODE (type) != REFERENCE_TYPE);
+
+ /* For vector types, pick a non-opaque variant. */
+ if (TREE_CODE (type) == VECTOR_TYPE)
+ type = strip_typedefs (type);
+
if (clk != clk_none && !(clk & clk_class))
type = cp_build_reference_type (type, (clk & clk_rvalueref));
}
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 6faebb5d8..58b2db679 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -787,6 +787,9 @@ check_narrowing (tree type, tree init)
else if (INTEGRAL_OR_ENUMERATION_TYPE_P (ftype)
&& CP_INTEGRAL_TYPE_P (type))
{
+ if (TREE_CODE (ftype) == ENUMERAL_TYPE)
+ /* Check for narrowing based on the values of the enumeration. */
+ ftype = ENUM_UNDERLYING_TYPE (ftype);
if ((tree_int_cst_lt (TYPE_MAX_VALUE (type),
TYPE_MAX_VALUE (ftype))
|| tree_int_cst_lt (TYPE_MIN_VALUE (ftype),
diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index 439f3e18a..8f67cc3f3 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -176,6 +176,7 @@ DEBUG_COUNTER (sched2_func)
DEBUG_COUNTER (sched_block)
DEBUG_COUNTER (sched_func)
DEBUG_COUNTER (sched_insn)
+DEBUG_COUNTER (sched_breakdep)
DEBUG_COUNTER (sched_region)
DEBUG_COUNTER (sel_sched_cnt)
DEBUG_COUNTER (sel_sched_region_cnt)
diff --git a/gcc/doc/avr-mmcu.texi b/gcc/doc/avr-mmcu.texi
index ac9c63116..9306e0800 100644
--- a/gcc/doc/avr-mmcu.texi
+++ b/gcc/doc/avr-mmcu.texi
@@ -4,6 +4,7 @@
@c This file is generated automatically using
@c gcc/config/avr/gen-avr-mmcu-texi.c from:
+@c gcc/config/avr/avr-arch.h
@c gcc/config/avr/avr-devices.c
@c gcc/config/avr/avr-mcus.def
@@ -13,11 +14,11 @@
@item avr2
``Classic'' devices with up to 8@tie{}KiB of program memory.
-@*@var{mcu}@tie{}= @code{at90c8534}, @code{at90s2313}, @code{at90s2323}, @code{at90s2333}, @code{at90s2343}, @code{at90s4414}, @code{at90s4433}, @code{at90s4434}, @code{at90s8515}, @code{at90s8535}, @code{attiny22}, @code{attiny26}.
+@*@var{mcu}@tie{}= @code{attiny22}, @code{attiny26}, @code{at90c8534}, @code{at90s2313}, @code{at90s2323}, @code{at90s2333}, @code{at90s2343}, @code{at90s4414}, @code{at90s4433}, @code{at90s4434}, @code{at90s8515}, @code{at90s8535}.
@item avr25
``Classic'' devices with up to 8@tie{}KiB of program memory and with the @code{MOVW} instruction.
-@*@var{mcu}@tie{}= @code{at86rf401}, @code{ata6289}, @code{attiny13}, @code{attiny13a}, @code{attiny2313}, @code{attiny2313a}, @code{attiny24}, @code{attiny24a}, @code{attiny25}, @code{attiny261}, @code{attiny261a}, @code{attiny4313}, @code{attiny43u}, @code{attiny44}, @code{attiny44a}, @code{attiny45}, @code{attiny461}, @code{attiny461a}, @code{attiny48}, @code{attiny84}, @code{attiny84a}, @code{attiny85}, @code{attiny861}, @code{attiny861a}, @code{attiny87}, @code{attiny88}.
+@*@var{mcu}@tie{}= @code{ata6289}, @code{attiny13}, @code{attiny13a}, @code{attiny2313}, @code{attiny2313a}, @code{attiny24}, @code{attiny24a}, @code{attiny25}, @code{attiny261}, @code{attiny261a}, @code{attiny43u}, @code{attiny4313}, @code{attiny44}, @code{attiny44a}, @code{attiny45}, @code{attiny461}, @code{attiny461a}, @code{attiny48}, @code{attiny84}, @code{attiny84a}, @code{attiny85}, @code{attiny861}, @code{attiny861a}, @code{attiny87}, @code{attiny88}, @code{at86rf401}.
@item avr3
``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory.
@@ -25,23 +26,23 @@
@item avr31
``Classic'' devices with 128@tie{}KiB of program memory.
-@*@var{mcu}@tie{}= @code{at43usb320}, @code{atmega103}.
+@*@var{mcu}@tie{}= @code{atmega103}, @code{at43usb320}.
@item avr35
``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory and with the @code{MOVW} instruction.
-@*@var{mcu}@tie{}= @code{at90usb162}, @code{at90usb82}, @code{atmega16u2}, @code{atmega32u2}, @code{atmega8u2}, @code{attiny167}.
+@*@var{mcu}@tie{}= @code{atmega16u2}, @code{atmega32u2}, @code{atmega8u2}, @code{attiny167}, @code{at90usb162}, @code{at90usb82}.
@item avr4
``Enhanced'' devices with up to 8@tie{}KiB of program memory.
-@*@var{mcu}@tie{}= @code{at90pwm1}, @code{at90pwm2}, @code{at90pwm2b}, @code{at90pwm3}, @code{at90pwm3b}, @code{at90pwm81}, @code{atmega48}, @code{atmega48a}, @code{atmega48p}, @code{atmega8}, @code{atmega8515}, @code{atmega8535}, @code{atmega88}, @code{atmega88a}, @code{atmega88p}, @code{atmega88pa}, @code{atmega8hva}.
+@*@var{mcu}@tie{}= @code{atmega48}, @code{atmega48a}, @code{atmega48p}, @code{atmega8}, @code{atmega8hva}, @code{atmega8515}, @code{atmega8535}, @code{atmega88}, @code{atmega88a}, @code{atmega88p}, @code{atmega88pa}, @code{at90pwm1}, @code{at90pwm2}, @code{at90pwm2b}, @code{at90pwm3}, @code{at90pwm3b}, @code{at90pwm81}.
@item avr5
``Enhanced'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory.
-@*@var{mcu}@tie{}= @code{at90can32}, @code{at90can64}, @code{at90pwm216}, @code{at90pwm316}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{atmega16}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega32}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega325a}, @code{atmega325p}, @code{atmega328}, @code{atmega328p}, @code{atmega329}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega406}, @code{atmega64}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega645}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega645a}, @code{atmega645p}, @code{atmega649}, @code{atmega6490}, @code{atmega649a}, @code{atmega649p}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64m1}, @code{m3000}.
+@*@var{mcu}@tie{}= @code{atmega16}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega32}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega325a}, @code{atmega325p}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega328}, @code{atmega328p}, @code{atmega329}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega406}, @code{atmega64}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64m1}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega645}, @code{atmega645a}, @code{atmega645p}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega649}, @code{atmega649a}, @code{atmega649p}, @code{atmega6490}, @code{at90can32}, @code{at90can64}, @code{at90pwm216}, @code{at90pwm316}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{m3000}.
@item avr51
``Enhanced'' devices with 128@tie{}KiB of program memory.
-@*@var{mcu}@tie{}= @code{at90can128}, @code{at90usb1286}, @code{at90usb1287}, @code{atmega128}, @code{atmega1280}, @code{atmega1281}, @code{atmega1284p}, @code{atmega128rfa1}.
+@*@var{mcu}@tie{}= @code{atmega128}, @code{atmega128rfa1}, @code{atmega1280}, @code{atmega1281}, @code{atmega1284p}, @code{at90can128}, @code{at90usb1286}, @code{at90usb1287}.
@item avr6
``Enhanced'' devices with 3-byte PC, i.e.@: with more than 128@tie{}KiB of program memory.
@@ -69,6 +70,6 @@
@item avr1
This ISA is implemented by the minimal AVR core and supported for assembler only.
-@*@var{mcu}@tie{}= @code{at90s1200}, @code{attiny11}, @code{attiny12}, @code{attiny15}, @code{attiny28}.
+@*@var{mcu}@tie{}= @code{attiny11}, @code{attiny12}, @code{attiny15}, @code{attiny28}, @code{at90s1200}.
@end table
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index e850266de..5a75d4507 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -8647,6 +8647,7 @@ instructions, but allow the compiler to schedule those calls.
* MIPS Loongson Built-in Functions::
* Other MIPS Built-in Functions::
* picoChip Built-in Functions::
+* PowerPC Built-in Functions::
* PowerPC AltiVec/VSX Built-in Functions::
* RX Built-in Functions::
* SPARC VIS Built-in Functions::
@@ -11596,6 +11597,38 @@ GCC defines the preprocessor macro @code{___GCC_HAVE_BUILTIN_MIPS_CACHE}
when this function is available.
@end table
+@node PowerPC Built-in Functions
+@subsection PowerPC Built-in Functions
+
+These built-in functions are available for the PowerPC family of
+processors:
+@smallexample
+float __builtin_recipdivf (float, float);
+float __builtin_rsqrtf (float);
+double __builtin_recipdiv (double, double);
+double __builtin_rsqrt (double);
+long __builtin_bpermd (long, long);
+uint64_t __builtin_ppc_get_timebase ();
+unsigned long __builtin_ppc_mftb ();
+@end smallexample
+
+The @code{vec_rsqrt}, @code{__builtin_rsqrt}, and
+@code{__builtin_rsqrtf} functions generate multiple instructions to
+implement the reciprocal sqrt functionality using reciprocal sqrt
+estimate instructions.
+
+The @code{__builtin_recipdiv}, and @code{__builtin_recipdivf}
+functions generate multiple instructions to implement division using
+the reciprocal estimate instructions.
+
+The @code{__builtin_ppc_get_timebase} and @code{__builtin_ppc_mftb}
+functions generate instructions to read the Time Base Register. The
+@code{__builtin_ppc_get_timebase} function may generate multiple
+instructions and always returns the 64 bits of the Time Base Register.
+The @code{__builtin_ppc_mftb} function always generates one instruction and
+returns the Time Base Register value as an unsigned long, throwing away
+the most significant word on 32-bit environments.
+
@node PowerPC AltiVec/VSX Built-in Functions
@subsection PowerPC AltiVec Built-in Functions
@@ -13653,24 +13686,6 @@ if the VSX instruction set is available. The @samp{vec_vsx_ld} and
@samp{vec_vsx_st} builtins will always generate the VSX @samp{LXVD2X},
@samp{LXVW4X}, @samp{STXVD2X}, and @samp{STXVW4X} instructions.
-GCC provides a few other builtins on Powerpc to access certain instructions:
-@smallexample
-float __builtin_recipdivf (float, float);
-float __builtin_rsqrtf (float);
-double __builtin_recipdiv (double, double);
-double __builtin_rsqrt (double);
-long __builtin_bpermd (long, long);
-@end smallexample
-
-The @code{vec_rsqrt}, @code{__builtin_rsqrt}, and
-@code{__builtin_rsqrtf} functions generate multiple instructions to
-implement the reciprocal sqrt functionality using reciprocal sqrt
-estimate instructions.
-
-The @code{__builtin_recipdiv}, and @code{__builtin_recipdivf}
-functions generate multiple instructions to implement division using
-the reciprocal estimate instructions.
-
@node RX Built-in Functions
@subsection RX Built-in Functions
GCC supports some of the RX instructions which cannot be expressed in
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 789aa36d7..4461a5f27 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -166,7 +166,7 @@ in the following sections.
-pipe -pass-exit-codes @gol
-x @var{language} -v -### --help@r{[}=@var{class}@r{[},@dots{}@r{]]} --target-help @gol
--version -wrapper @@@var{file} -fplugin=@var{file} -fplugin-arg-@var{name}=@var{arg} @gol
--fdump-ada-spec@r{[}-slim@r{]} -fdump-go-spec=@var{file}}
+-fdump-ada-spec@r{[}-slim@r{]} -fada-spec-parent=@var{arg} -fdump-go-spec=@var{file}}
@item C Language Options
@xref{C Dialect Options,,Options Controlling C Dialect}.
@@ -324,7 +324,7 @@ Objective-C and Objective-C++ Dialects}.
-fdump-tree-storeccp@r{[}-@var{n}@r{]} @gol
-fdump-final-insns=@var{file} @gol
-fcompare-debug@r{[}=@var{opts}@r{]} -fcompare-debug-second @gol
--feliminate-dwarf2-dups -feliminate-unused-debug-types @gol
+-feliminate-dwarf2-dups -fno-eliminate-unused-debug-types @gol
-feliminate-unused-debug-symbols -femit-class-debug-always @gol
-fenable-@var{kind}-@var{pass} @gol
-fenable-@var{kind}-@var{pass}=@var{range-list} @gol
@@ -422,7 +422,7 @@ Objective-C and Objective-C++ Dialects}.
-fvariable-expansion-in-unroller -fvect-cost-model -fvpt -fweb @gol
-fwhole-program -fwpa -fuse-linker-plugin @gol
--param @var{name}=@var{value}
--O -O0 -O1 -O2 -O3 -Os -Ofast}
+-O -O0 -O1 -O2 -O3 -Os -Ofast -Og}
@item Preprocessor Options
@xref{Preprocessor Options,,Options Controlling the Preprocessor}.
@@ -786,7 +786,7 @@ Objective-C and Objective-C++ Dialects}.
-mno-crt0 -mrelax -mliw -msetlb}
@emph{Moxie Options}
-@gccoptlist{-meb -mel}
+@gccoptlist{-meb -mel -mno-crt0}
@emph{PDP-11 Options}
@gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol
@@ -6201,17 +6201,18 @@ anything else.
Print the compiler's built-in specs---and don't do anything else. (This
is used when GCC itself is being built.) @xref{Spec Files}.
-@item -feliminate-unused-debug-types
+@item -fno-eliminate-unused-debug-types
@opindex feliminate-unused-debug-types
-Normally, when producing DWARF 2 output, GCC emits debugging
+@opindex fno-eliminate-unused-debug-types
+Normally, when producing DWARF 2 output, GCC avoids producing debug symbol
+output for types that are nowhere used in the source file being compiled.
+Sometimes it is useful to have GCC emit debugging
information for all types declared in a compilation
unit, regardless of whether or not they are actually used
-in that compilation unit. Sometimes this is useful, such as
+in that compilation unit, for example
if, in the debugger, you want to cast a value to a type that is
not actually used in your program (but is declared). More often,
however, this results in a significant amount of wasted space.
-With this option, GCC avoids producing debug symbol output
-for types that are nowhere used in the source file being compiled.
@end table
@node Optimize Options
@@ -6372,6 +6373,14 @@ valid for all standard-compliant programs.
It turns on @option{-ffast-math} and the Fortran-specific
@option{-fno-protect-parens} and @option{-fstack-arrays}.
+@item -Og
+@opindex Og
+Optimize debugging experience. @option{-Og} enables optimizations
+that do not interfere with debugging. It should be the optimization
+level of choice for the standard edit-compile-debug cycle, offering
+a reasonable level of optimization while maintaining fast compilation
+and a good debugging experience.
+
If you use multiple @option{-O} options, with or without level numbers,
the last such option is the one that is effective.
@end table
@@ -16596,6 +16605,10 @@ configurations.
@opindex mel
Generate little-endian code.
+@item -mno-crt0
+@opindex mno-crt0
+Do not link in the C run-time initialization object file.
+
@end table
@node PDP-11 Options
diff --git a/gcc/doc/lto.texi b/gcc/doc/lto.texi
index 73fd83156..68f875935 100644
--- a/gcc/doc/lto.texi
+++ b/gcc/doc/lto.texi
@@ -455,7 +455,7 @@ alone. The problem is that propagation of inter-procedural
information does not work well across functions and variables
that are called or referenced by other compilation units (such as
from a dynamically linked library). We say that such functions
-are variables are @emph{externally visible}.
+and variables are @emph{externally visible}.
To make the situation even more difficult, many applications
organize themselves as a set of shared libraries, and the default
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 06920a9d1..8ee0f6a63 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -15552,7 +15552,7 @@ add_src_coords_attributes (dw_die_ref die, tree decl)
{
expanded_location s;
- if (DECL_SOURCE_LOCATION (decl) == UNKNOWN_LOCATION)
+ if (IS_UNKNOWN_LOCATION (DECL_SOURCE_LOCATION (decl)))
return;
s = expand_location (DECL_SOURCE_LOCATION (decl));
add_AT_file (die, DW_AT_decl_file, lookup_filename (s.file));
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index f76394559..a65558d0c 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -3653,7 +3653,7 @@ try_split (rtx pat, rtx trial, int last)
}
}
- tem = emit_insn_after_setloc (seq, trial, INSN_LOCATOR (trial));
+ tem = emit_insn_after_setloc (seq, trial, INSN_LOCATION (trial));
delete_insn (trial);
if (has_barrier)
@@ -3689,7 +3689,7 @@ make_insn_raw (rtx pattern)
PATTERN (insn) = pattern;
INSN_CODE (insn) = -1;
REG_NOTES (insn) = NULL;
- INSN_LOCATOR (insn) = curr_insn_locator ();
+ INSN_LOCATION (insn) = curr_insn_location ();
BLOCK_FOR_INSN (insn) = NULL;
#ifdef ENABLE_RTL_CHECKING
@@ -3722,7 +3722,7 @@ make_debug_insn_raw (rtx pattern)
PATTERN (insn) = pattern;
INSN_CODE (insn) = -1;
REG_NOTES (insn) = NULL;
- INSN_LOCATOR (insn) = curr_insn_locator ();
+ INSN_LOCATION (insn) = curr_insn_location ();
BLOCK_FOR_INSN (insn) = NULL;
return insn;
@@ -3742,7 +3742,7 @@ make_jump_insn_raw (rtx pattern)
INSN_CODE (insn) = -1;
REG_NOTES (insn) = NULL;
JUMP_LABEL (insn) = NULL;
- INSN_LOCATOR (insn) = curr_insn_locator ();
+ INSN_LOCATION (insn) = curr_insn_location ();
BLOCK_FOR_INSN (insn) = NULL;
return insn;
@@ -3762,7 +3762,7 @@ make_call_insn_raw (rtx pattern)
INSN_CODE (insn) = -1;
REG_NOTES (insn) = NULL;
CALL_INSN_FUNCTION_USAGE (insn) = NULL;
- INSN_LOCATOR (insn) = curr_insn_locator ();
+ INSN_LOCATION (insn) = curr_insn_location ();
BLOCK_FOR_INSN (insn) = NULL;
return insn;
@@ -4435,8 +4435,8 @@ emit_pattern_after_setloc (rtx pattern, rtx after, int loc,
after = NEXT_INSN (after);
while (1)
{
- if (active_insn_p (after) && !INSN_LOCATOR (after))
- INSN_LOCATOR (after) = loc;
+ if (active_insn_p (after) && !INSN_LOCATION (after))
+ INSN_LOCATION (after) = loc;
if (after == last)
break;
after = NEXT_INSN (after);
@@ -4459,62 +4459,62 @@ emit_pattern_after (rtx pattern, rtx after, bool skip_debug_insns,
prev = PREV_INSN (prev);
if (INSN_P (prev))
- return emit_pattern_after_setloc (pattern, after, INSN_LOCATOR (prev),
+ return emit_pattern_after_setloc (pattern, after, INSN_LOCATION (prev),
make_raw);
else
return emit_pattern_after_noloc (pattern, after, NULL, make_raw);
}
-/* Like emit_insn_after_noloc, but set INSN_LOCATOR according to LOC. */
+/* Like emit_insn_after_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_insn_after_setloc (rtx pattern, rtx after, int loc)
{
return emit_pattern_after_setloc (pattern, after, loc, make_insn_raw);
}
-/* Like emit_insn_after_noloc, but set INSN_LOCATOR according to AFTER. */
+/* Like emit_insn_after_noloc, but set INSN_LOCATION according to AFTER. */
rtx
emit_insn_after (rtx pattern, rtx after)
{
return emit_pattern_after (pattern, after, true, make_insn_raw);
}
-/* Like emit_jump_insn_after_noloc, but set INSN_LOCATOR according to LOC. */
+/* Like emit_jump_insn_after_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_jump_insn_after_setloc (rtx pattern, rtx after, int loc)
{
return emit_pattern_after_setloc (pattern, after, loc, make_jump_insn_raw);
}
-/* Like emit_jump_insn_after_noloc, but set INSN_LOCATOR according to AFTER. */
+/* Like emit_jump_insn_after_noloc, but set INSN_LOCATION according to AFTER. */
rtx
emit_jump_insn_after (rtx pattern, rtx after)
{
return emit_pattern_after (pattern, after, true, make_jump_insn_raw);
}
-/* Like emit_call_insn_after_noloc, but set INSN_LOCATOR according to LOC. */
+/* Like emit_call_insn_after_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_call_insn_after_setloc (rtx pattern, rtx after, int loc)
{
return emit_pattern_after_setloc (pattern, after, loc, make_call_insn_raw);
}
-/* Like emit_call_insn_after_noloc, but set INSN_LOCATOR according to AFTER. */
+/* Like emit_call_insn_after_noloc, but set INSN_LOCATION according to AFTER. */
rtx
emit_call_insn_after (rtx pattern, rtx after)
{
return emit_pattern_after (pattern, after, true, make_call_insn_raw);
}
-/* Like emit_debug_insn_after_noloc, but set INSN_LOCATOR according to LOC. */
+/* Like emit_debug_insn_after_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_debug_insn_after_setloc (rtx pattern, rtx after, int loc)
{
return emit_pattern_after_setloc (pattern, after, loc, make_debug_insn_raw);
}
-/* Like emit_debug_insn_after_noloc, but set INSN_LOCATOR according to AFTER. */
+/* Like emit_debug_insn_after_noloc, but set INSN_LOCATION according to AFTER. */
rtx
emit_debug_insn_after (rtx pattern, rtx after)
{
@@ -4544,8 +4544,8 @@ emit_pattern_before_setloc (rtx pattern, rtx before, int loc, bool insnp,
first = NEXT_INSN (first);
while (1)
{
- if (active_insn_p (first) && !INSN_LOCATOR (first))
- INSN_LOCATOR (first) = loc;
+ if (active_insn_p (first) && !INSN_LOCATION (first))
+ INSN_LOCATION (first) = loc;
if (first == last)
break;
first = NEXT_INSN (first);
@@ -4569,7 +4569,7 @@ emit_pattern_before (rtx pattern, rtx before, bool skip_debug_insns,
next = PREV_INSN (next);
if (INSN_P (next))
- return emit_pattern_before_setloc (pattern, before, INSN_LOCATOR (next),
+ return emit_pattern_before_setloc (pattern, before, INSN_LOCATION (next),
insnp, make_raw);
else
return emit_pattern_before_noloc (pattern, before,
@@ -4577,7 +4577,7 @@ emit_pattern_before (rtx pattern, rtx before, bool skip_debug_insns,
NULL, make_raw);
}
-/* Like emit_insn_before_noloc, but set INSN_LOCATOR according to LOC. */
+/* Like emit_insn_before_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_insn_before_setloc (rtx pattern, rtx before, int loc)
{
@@ -4585,14 +4585,14 @@ emit_insn_before_setloc (rtx pattern, rtx before, int loc)
make_insn_raw);
}
-/* Like emit_insn_before_noloc, but set INSN_LOCATOR according to BEFORE. */
+/* Like emit_insn_before_noloc, but set INSN_LOCATION according to BEFORE. */
rtx
emit_insn_before (rtx pattern, rtx before)
{
return emit_pattern_before (pattern, before, true, true, make_insn_raw);
}
-/* like emit_insn_before_noloc, but set INSN_LOCATOR according to LOC. */
+/* like emit_insn_before_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_jump_insn_before_setloc (rtx pattern, rtx before, int loc)
{
@@ -4600,7 +4600,7 @@ emit_jump_insn_before_setloc (rtx pattern, rtx before, int loc)
make_jump_insn_raw);
}
-/* Like emit_jump_insn_before_noloc, but set INSN_LOCATOR according to BEFORE. */
+/* Like emit_jump_insn_before_noloc, but set INSN_LOCATION according to BEFORE. */
rtx
emit_jump_insn_before (rtx pattern, rtx before)
{
@@ -4608,7 +4608,7 @@ emit_jump_insn_before (rtx pattern, rtx before)
make_jump_insn_raw);
}
-/* Like emit_insn_before_noloc, but set INSN_LOCATOR according to LOC. */
+/* Like emit_insn_before_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_call_insn_before_setloc (rtx pattern, rtx before, int loc)
{
@@ -4617,7 +4617,7 @@ emit_call_insn_before_setloc (rtx pattern, rtx before, int loc)
}
/* Like emit_call_insn_before_noloc,
- but set insn_locator according to BEFORE. */
+ but set insn_location according to BEFORE. */
rtx
emit_call_insn_before (rtx pattern, rtx before)
{
@@ -4625,7 +4625,7 @@ emit_call_insn_before (rtx pattern, rtx before)
make_call_insn_raw);
}
-/* Like emit_insn_before_noloc, but set INSN_LOCATOR according to LOC. */
+/* Like emit_insn_before_noloc, but set INSN_LOCATION according to LOC. */
rtx
emit_debug_insn_before_setloc (rtx pattern, rtx before, int loc)
{
@@ -4634,7 +4634,7 @@ emit_debug_insn_before_setloc (rtx pattern, rtx before, int loc)
}
/* Like emit_debug_insn_before_noloc,
- but set insn_locator according to BEFORE. */
+ but set insn_location according to BEFORE. */
rtx
emit_debug_insn_before (rtx pattern, rtx before)
{
@@ -5881,7 +5881,7 @@ emit_copy_of_insn_after (rtx insn, rtx after)
/* Update LABEL_NUSES. */
mark_jump_label (PATTERN (new_rtx), new_rtx, 0);
- INSN_LOCATOR (new_rtx) = INSN_LOCATOR (insn);
+ INSN_LOCATION (new_rtx) = INSN_LOCATION (insn);
/* If the old insn is frame related, then so is the new one. This is
primarily needed for IA-64 unwind info which marks epilogue insns,
@@ -5916,249 +5916,65 @@ gen_hard_reg_clobber (enum machine_mode mode, unsigned int regno)
gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (mode, regno)));
}
-/* Data structures representing mapping of INSN_LOCATOR into scope blocks, line
- numbers and files. In order to be GGC friendly we need to use separate
- varrays. This also slightly improve the memory locality in binary search.
- The _locs array contains locators where the given property change. The
- block_locators_blocks contains the scope block that is used for all insn
- locator greater than corresponding block_locators_locs value and smaller
- than the following one. Similarly for the other properties. */
-static VEC(int,heap) *block_locators_locs;
-static GTY(()) VEC(tree,gc) *block_locators_blocks;
-static VEC(int,heap) *locations_locators_locs;
-DEF_VEC_A(location_t);
-DEF_VEC_ALLOC_A(location_t,heap);
-static VEC(location_t,heap) *locations_locators_vals;
-int prologue_locator;
-int epilogue_locator;
+location_t prologue_location;
+location_t epilogue_location;
/* Hold current location information and last location information, so the
datastructures are built lazily only when some instructions in given
place are needed. */
static location_t curr_location, last_location;
-static tree curr_block, last_block;
-static int curr_rtl_loc = -1;
-/* Allocate insn locator datastructure. */
+/* Allocate insn location datastructure. */
void
-insn_locators_alloc (void)
+insn_locations_init (void)
{
- prologue_locator = epilogue_locator = 0;
-
- block_locators_locs = VEC_alloc (int, heap, 32);
- block_locators_blocks = VEC_alloc (tree, gc, 32);
- locations_locators_locs = VEC_alloc (int, heap, 32);
- locations_locators_vals = VEC_alloc (location_t, heap, 32);
-
+ prologue_location = epilogue_location = 0;
curr_location = UNKNOWN_LOCATION;
last_location = UNKNOWN_LOCATION;
- curr_block = NULL;
- last_block = NULL;
- curr_rtl_loc = 0;
}
/* At the end of emit stage, clear current location. */
void
-insn_locators_finalize (void)
+insn_locations_finalize (void)
{
- if (curr_rtl_loc >= 0)
- epilogue_locator = curr_insn_locator ();
- curr_rtl_loc = -1;
-}
-
-/* Allocate insn locator datastructure. */
-void
-insn_locators_free (void)
-{
- prologue_locator = epilogue_locator = 0;
-
- VEC_free (int, heap, block_locators_locs);
- VEC_free (tree,gc, block_locators_blocks);
- VEC_free (int, heap, locations_locators_locs);
- VEC_free (location_t, heap, locations_locators_vals);
+ epilogue_location = curr_location;
+ curr_location = UNKNOWN_LOCATION;
}
/* Set current location. */
void
-set_curr_insn_source_location (location_t location)
+set_curr_insn_location (location_t location)
{
- /* IV opts calls into RTL expansion to compute costs of operations. At this
- time locators are not initialized. */
- if (curr_rtl_loc == -1)
- return;
curr_location = location;
}
/* Get current location. */
location_t
-get_curr_insn_source_location (void)
+curr_insn_location (void)
{
return curr_location;
}
-/* Set current scope block. */
-void
-set_curr_insn_block (tree b)
-{
- /* IV opts calls into RTL expansion to compute costs of operations. At this
- time locators are not initialized. */
- if (curr_rtl_loc == -1)
- return;
- if (b)
- curr_block = b;
-}
-
-/* Get current scope block. */
-tree
-get_curr_insn_block (void)
-{
- return curr_block;
-}
-
-/* Return current insn locator. */
-int
-curr_insn_locator (void)
-{
- if (curr_rtl_loc == -1 || curr_location == UNKNOWN_LOCATION)
- return 0;
- if (last_block != curr_block)
- {
- curr_rtl_loc++;
- VEC_safe_push (int, heap, block_locators_locs, curr_rtl_loc);
- VEC_safe_push (tree, gc, block_locators_blocks, curr_block);
- last_block = curr_block;
- }
- if (last_location != curr_location)
- {
- curr_rtl_loc++;
- VEC_safe_push (int, heap, locations_locators_locs, curr_rtl_loc);
- VEC_safe_push (location_t, heap, locations_locators_vals, curr_location);
- last_location = curr_location;
- }
- return curr_rtl_loc;
-}
-
-
-/* Return lexical scope block locator belongs to. */
-static tree
-locator_scope (int loc)
-{
- int max = VEC_length (int, block_locators_locs);
- int min = 0;
-
- /* When block_locators_locs was initialized, the pro- and epilogue
- insns didn't exist yet and can therefore not be found this way.
- But we know that they belong to the outer most block of the
- current function.
- Without this test, the prologue would be put inside the block of
- the first valid instruction in the function and when that first
- insn is part of an inlined function then the low_pc of that
- inlined function is messed up. Likewise for the epilogue and
- the last valid instruction. */
- if (loc == prologue_locator || loc == epilogue_locator)
- return DECL_INITIAL (cfun->decl);
-
- if (!max || !loc)
- return NULL;
- while (1)
- {
- int pos = (min + max) / 2;
- int tmp = VEC_index (int, block_locators_locs, pos);
-
- if (tmp <= loc && min != pos)
- min = pos;
- else if (tmp > loc && max != pos)
- max = pos;
- else
- {
- min = pos;
- break;
- }
- }
- return VEC_index (tree, block_locators_blocks, min);
-}
-
/* Return lexical scope block insn belongs to. */
tree
insn_scope (const_rtx insn)
{
- return locator_scope (INSN_LOCATOR (insn));
-}
-
-/* Return line number of the statement specified by the locator. */
-location_t
-locator_location (int loc)
-{
- int max = VEC_length (int, locations_locators_locs);
- int min = 0;
-
- while (1)
- {
- int pos = (min + max) / 2;
- int tmp = VEC_index (int, locations_locators_locs, pos);
-
- if (tmp <= loc && min != pos)
- min = pos;
- else if (tmp > loc && max != pos)
- max = pos;
- else
- {
- min = pos;
- break;
- }
- }
- return VEC_index (location_t, locations_locators_vals, min);
-}
-
-/* Return source line of the statement that produced this insn. */
-int
-locator_line (int loc)
-{
- expanded_location xloc;
- if (!loc)
- return 0;
- else
- xloc = expand_location (locator_location (loc));
- return xloc.line;
+ return LOCATION_BLOCK (INSN_LOCATION (insn));
}
/* Return line number of the statement that produced this insn. */
int
insn_line (const_rtx insn)
{
- return locator_line (INSN_LOCATOR (insn));
-}
-
-/* Return source file of the statement specified by LOC. */
-const char *
-locator_file (int loc)
-{
- expanded_location xloc;
- if (!loc)
- return 0;
- else
- xloc = expand_location (locator_location (loc));
- return xloc.file;
+ return LOCATION_LINE (INSN_LOCATION (insn));
}
/* Return source file of the statement that produced this insn. */
const char *
insn_file (const_rtx insn)
{
- return locator_file (INSN_LOCATOR (insn));
-}
-
-/* Return true if LOC1 and LOC2 locators have the same location and scope. */
-bool
-locator_eq (int loc1, int loc2)
-{
- if (loc1 == loc2)
- return true;
- if (locator_location (loc1) != locator_location (loc2))
- return false;
- return locator_scope (loc1) == locator_scope (loc2);
+ return LOCATION_FILE (INSN_LOCATION (insn));
}
-
/* Return true if memory model MODEL requires a pre-operation (release-style)
barrier or a post-operation (acquire-style) barrier. While not universal,
diff --git a/gcc/except.c b/gcc/except.c
index 801718de1..88cac856d 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -526,7 +526,10 @@ duplicate_eh_regions_1 (struct duplicate_eh_regions_data *data,
break;
case ERT_MUST_NOT_THROW:
- new_r->u.must_not_throw = old_r->u.must_not_throw;
+ new_r->u.must_not_throw.failure_loc =
+ LOCATION_LOCUS (old_r->u.must_not_throw.failure_loc);
+ new_r->u.must_not_throw.failure_decl =
+ old_r->u.must_not_throw.failure_decl;
break;
}
diff --git a/gcc/expr.c b/gcc/expr.c
index c53f1a8dc..9158b9f43 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -6452,16 +6452,33 @@ store_field (rtx target, HOST_WIDE_INT bitsize, HOST_WIDE_INT bitpos,
/* Handle calls that return values in multiple non-contiguous locations.
The Irix 6 ABI has examples of this. */
- if (bitpos == 0
- && bitsize == GET_MODE_BITSIZE (mode)
- && GET_CODE (temp) == PARALLEL)
- emit_group_store (target, temp, TREE_TYPE (exp),
- int_size_in_bytes (TREE_TYPE (exp)));
- else
- /* Store the value in the bitfield. */
- store_bit_field (target, bitsize, bitpos,
- bitregion_start, bitregion_end,
- mode, temp);
+ if (GET_CODE (temp) == PARALLEL)
+ {
+ rtx temp_target;
+
+ /* We are not supposed to have a true bitfield in this case. */
+ gcc_assert (bitsize == GET_MODE_BITSIZE (mode));
+
+ /* If we don't store at bit 0, we need an intermediate pseudo
+ since emit_group_store only stores at bit 0. */
+ if (bitpos != 0)
+ temp_target = gen_reg_rtx (mode);
+ else
+ temp_target = target;
+
+ emit_group_store (temp_target, temp, TREE_TYPE (exp),
+ int_size_in_bytes (TREE_TYPE (exp)));
+
+ if (temp_target == target)
+ return const0_rtx;
+
+ temp = temp_target;
+ }
+
+ /* Store the value in the bitfield. */
+ store_bit_field (target, bitsize, bitpos,
+ bitregion_start, bitregion_end,
+ mode, temp);
return const0_rtx;
}
@@ -7822,19 +7839,14 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode,
if (cfun && EXPR_HAS_LOCATION (exp))
{
location_t saved_location = input_location;
- location_t saved_curr_loc = get_curr_insn_source_location ();
- tree saved_block = get_curr_insn_block ();
+ location_t saved_curr_loc = curr_insn_location ();
input_location = EXPR_LOCATION (exp);
- set_curr_insn_source_location (input_location);
-
- /* Record where the insns produced belong. */
- set_curr_insn_block (TREE_BLOCK (exp));
+ set_curr_insn_location (input_location);
ret = expand_expr_real_1 (exp, target, tmode, modifier, alt_rtl);
input_location = saved_location;
- set_curr_insn_block (saved_block);
- set_curr_insn_source_location (saved_curr_loc);
+ set_curr_insn_location (saved_curr_loc);
}
else
{
@@ -10675,17 +10687,6 @@ do_store_flag (sepops ops, rtx target, enum machine_mode mode)
return expand_vec_cond_expr (ops->type, ifexp, if_true, if_false, target);
}
- /* For vector typed comparisons emit code to generate the desired
- all-ones or all-zeros mask. Conveniently use the VEC_COND_EXPR
- expander for this. */
- if (TREE_CODE (ops->type) == VECTOR_TYPE)
- {
- tree ifexp = build2 (ops->code, ops->type, arg0, arg1);
- tree if_true = constant_boolean_node (true, ops->type);
- tree if_false = constant_boolean_node (false, ops->type);
- return expand_vec_cond_expr (ops->type, ifexp, if_true, if_false, target);
- }
-
/* Get the rtx comparison code to use. We know that EXP is a comparison
operation of some type. Some comparisons against 1 and -1 can be
converted to comparisons with zero. Do so here so that the tests
diff --git a/gcc/final.c b/gcc/final.c
index dddb78a01..08393405e 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1606,7 +1606,7 @@ reemit_insn_block_notes (void)
insn_scope (XVECEXP (body, 0, i)));
}
if (! this_block)
- continue;
+ this_block = DECL_INITIAL (cfun->decl);
if (this_block != cur_block)
{
@@ -1641,8 +1641,8 @@ final_start_function (rtx first ATTRIBUTE_UNUSED, FILE *file,
this_is_asm_operands = 0;
- last_filename = locator_file (prologue_locator);
- last_linenum = locator_line (prologue_locator);
+ last_filename = LOCATION_FILE (prologue_location);
+ last_linenum = LOCATION_LINE (prologue_location);
last_discriminator = discriminator = 0;
high_block_linenum = high_function_linenum = last_linenum;
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index c76e7ff68..223dc6848 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -145,7 +145,7 @@ static location_t
expr_location_or (tree t, location_t loc)
{
location_t tloc = EXPR_LOCATION (t);
- return tloc != UNKNOWN_LOCATION ? tloc : loc;
+ return IS_UNKNOWN_LOCATION (tloc) ? loc : tloc;
}
/* Similar to protected_set_expr_location, but never modify x in place,
@@ -8435,9 +8435,7 @@ fold_truth_andor (location_t loc, enum tree_code code, tree type,
if ((tem = fold_truth_andor_1 (loc, code, type, arg0, arg1)) != 0)
return tem;
- if ((BRANCH_COST (optimize_function_for_speed_p (cfun),
- false) >= 2)
- && LOGICAL_OP_NON_SHORT_CIRCUIT
+ if (LOGICAL_OP_NON_SHORT_CIRCUIT
&& (code == TRUTH_AND_EXPR
|| code == TRUTH_ANDIF_EXPR
|| code == TRUTH_OR_EXPR
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index cc97cac24..1be83d418 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,67 @@
+2012-09-23 Tobias Burnus <burnus@net-b.de>
+
+ * parse.c (parse_derived): Don't set attr.alloc_comp
+ for pointer components with allocatable subcomps.
+
+ PR fortran/54599
+ * resolve.c (resolve_fl_namelist): Remove superfluous
+ NULL check.
+ * simplify.c (simplify_min_max): Remove unreachable code.
+ * trans-array.c (gfc_trans_create_temp_array): Change
+ a condition into an assert.
+
+ PR fortran/54618
+ * trans-expr.c (gfc_trans_class_init_assign): Guard
+ re-setting of the _data by gfc_conv_expr_present.
+ (gfc_conv_procedure_call): Fix INTENT(OUT) handling
+ for allocatable BT_CLASS.
+
+2012-09-22 Thomas König <tkoenig@gcc.gnu.org>
+
+ PR fortran/54599
+ * dependency.c (gfc_dep_compare_expr): Clarify logic,
+ remove dead code.
+
+2012-09-20 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54599
+ * cpp.c (print_line): Properly handle extern C.
+
+2012-09-20 Martin Jambor <mjambor@suse.cz>
+
+ * trans-decl.c (gfc_get_extern_function_decl): Push NULL cfun. Do not
+ set and restore current_function_decl.
+ (gfc_init_coarray_decl): Do not set and restore current_function_decl.
+
+2012-09-17 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54608
+ * simplify.c (gfc_simplify_scan, gfc_simplify_verify):
+ Fix handling of BACK=variable.
+
+2012-09-17 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/54285
+ * expr.c (gfc_check_pointer_assign): Correctly handle procedure pointers
+ as function results.
+ * primary.c (gfc_match_varspec): Allow to call a PPC with proc-ptr
+ result.
+
+2012-09-17 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54603
+ * trans-expr.c (gfc_trans_subcomponent_assign): Handle
+ proc-pointer components.
+
+2012-09-17 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54599
+ * error.c (error_print): Move increment out of the assert.
+ * interface.c (gfc_compare_derived_types): Add assert.
+ (get_expr_storage_size): Remove always-true logical condition.
+ * resolve.c (resolve_allocate_expr): Fix looping logic.
+ * target-memory.c (gfc_target_expr_size): Add assert.
+
2012-09-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/54594
diff --git a/gcc/fortran/cpp.c b/gcc/fortran/cpp.c
index 2f1889331..c45af39ef 100644
--- a/gcc/fortran/cpp.c
+++ b/gcc/fortran/cpp.c
@@ -822,6 +822,7 @@ print_line (source_location src_loc, const char *special_flags)
size_t to_file_len;
unsigned char *to_file_quoted;
unsigned char *p;
+ int sysp;
loc = expand_location (src_loc);
to_file_len = strlen (loc.file);
@@ -838,9 +839,10 @@ print_line (source_location src_loc, const char *special_flags)
print.src_line == 0 ? 1 : print.src_line,
to_file_quoted, special_flags);
- if (loc.sysp == 2)
+ sysp = in_system_header_at (src_loc);
+ if (sysp == 2)
fputs (" 3 4", print.outf);
- else if (loc.sysp == 1)
+ else if (sysp == 1)
fputs (" 3", print.outf);
putc ('\n', print.outf);
diff --git a/gcc/fortran/dependency.c b/gcc/fortran/dependency.c
index 165ab4f0a..7c9525ac8 100644
--- a/gcc/fortran/dependency.c
+++ b/gcc/fortran/dependency.c
@@ -395,30 +395,21 @@ gfc_dep_compare_expr (gfc_expr *e1, gfc_expr *e2)
l = gfc_dep_compare_expr (e1->value.op.op1, e2->value.op.op1);
r = gfc_dep_compare_expr (e1->value.op.op2, e2->value.op.op2);
- if (l <= -2)
+ if (l != 0)
return l;
- if (l == 0)
- {
- /* Watch out for 'A ' // x vs. 'A' // x. */
- gfc_expr *e1_left = e1->value.op.op1;
- gfc_expr *e2_left = e2->value.op.op1;
-
- if (e1_left->expr_type == EXPR_CONSTANT
- && e2_left->expr_type == EXPR_CONSTANT
- && e1_left->value.character.length
- != e2_left->value.character.length)
- return -2;
- else
- return r;
- }
+ /* Left expressions of // compare equal, but
+ watch out for 'A ' // x vs. 'A' // x. */
+ gfc_expr *e1_left = e1->value.op.op1;
+ gfc_expr *e2_left = e2->value.op.op1;
+
+ if (e1_left->expr_type == EXPR_CONSTANT
+ && e2_left->expr_type == EXPR_CONSTANT
+ && e1_left->value.character.length
+ != e2_left->value.character.length)
+ return -2;
else
- {
- if (l != 0)
- return l;
- else
- return r;
- }
+ return r;
}
/* Compare X vs. X-C, for INTEGER only. */
diff --git a/gcc/fortran/error.c b/gcc/fortran/error.c
index 64b9357a2..4b061560c 100644
--- a/gcc/fortran/error.c
+++ b/gcc/fortran/error.c
@@ -544,7 +544,8 @@ error_print (const char *type, const char *format0, va_list argp)
gcc_assert (pos >= 0);
while (ISDIGIT(*format))
format++;
- gcc_assert (*format++ == '$');
+ gcc_assert (*format == '$');
+ format++;
}
else
pos++;
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index dced05dfb..4bba438c2 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -3513,8 +3513,16 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
comp = gfc_get_proc_ptr_comp (rvalue);
if (comp)
{
- s2 = comp->ts.interface;
- name = comp->name;
+ if (rvalue->expr_type == EXPR_FUNCTION)
+ {
+ s2 = comp->ts.interface->result;
+ name = comp->ts.interface->result->name;
+ }
+ else
+ {
+ s2 = comp->ts.interface;
+ name = comp->name;
+ }
}
else if (rvalue->expr_type == EXPR_FUNCTION)
{
diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c
index b34885632..88689aa47 100644
--- a/gcc/fortran/interface.c
+++ b/gcc/fortran/interface.c
@@ -396,11 +396,12 @@ gfc_compare_derived_types (gfc_symbol *derived1, gfc_symbol *derived2)
if (derived1 == derived2)
return 1;
+ gcc_assert (derived1 && derived2);
+
/* Special case for comparing derived types across namespaces. If the
true names and module names are the same and the module name is
nonnull, then they are equal. */
- if (derived1 != NULL && derived2 != NULL
- && strcmp (derived1->name, derived2->name) == 0
+ if (strcmp (derived1->name, derived2->name) == 0
&& derived1->module != NULL && derived2->module != NULL
&& strcmp (derived1->module, derived2->module) == 0)
return 1;
@@ -2267,8 +2268,7 @@ get_expr_storage_size (gfc_expr *e)
elements *= (end - start)/stride + 1L;
}
- else if (ref->type == REF_ARRAY && ref->u.ar.type == AR_FULL
- && ref->u.ar.as->lower && ref->u.ar.as->upper)
+ else if (ref->type == REF_ARRAY && ref->u.ar.type == AR_FULL)
for (i = 0; i < ref->u.ar.as->rank; i++)
{
if (ref->u.ar.as->lower[i] && ref->u.ar.as->upper[i]
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 5c5d38176..f31e30940 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -2195,7 +2195,8 @@ endType:
if (c->attr.allocatable
|| (c->ts.type == BT_CLASS && c->attr.class_ok
&& CLASS_DATA (c)->attr.allocatable)
- || (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.alloc_comp))
+ || (c->ts.type == BT_DERIVED && !c->attr.pointer
+ && c->ts.u.derived->attr.alloc_comp))
{
allocatable = true;
sym->attr.alloc_comp = 1;
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index cadc20c27..f362f7542 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -2004,8 +2004,7 @@ gfc_match_varspec (gfc_expr *primary, int equiv_flag, bool sub_flag,
primary->ts = component->ts;
- if (component->attr.proc_pointer && ppc_arg
- && !gfc_matching_procptr_assignment)
+ if (component->attr.proc_pointer && ppc_arg)
{
/* Procedure pointer component call: Look for argument list. */
m = gfc_match_actual_arglist (sub_flag,
@@ -2014,7 +2013,7 @@ gfc_match_varspec (gfc_expr *primary, int equiv_flag, bool sub_flag,
return MATCH_ERROR;
if (m == MATCH_NO && !gfc_matching_ptr_assignment
- && !matching_actual_arglist)
+ && !gfc_matching_procptr_assignment && !matching_actual_arglist)
{
gfc_error ("Procedure pointer component '%s' requires an "
"argument list at %C", component->name);
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 6a7b6c9d8..0a20540b6 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -7427,7 +7427,7 @@ check_symbols:
"statement at %L", &e->where);
goto failure;
}
- break;
+ continue;
}
if (ar->dimen_type[i] == DIMEN_STAR && i == (ar->dimen + ar->codimen - 1)
@@ -12478,7 +12478,7 @@ resolve_fl_namelist (gfc_symbol *sym)
continue;
nlsym = NULL;
- if (nl->sym && nl->sym->name)
+ if (nl->sym->name)
gfc_find_symbol (nl->sym->name, sym->ns, 1, &nlsym);
if (nlsym && nlsym->attr.flavor == FL_PROCEDURE)
{
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 5aa27044d..2f96e900b 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -4106,10 +4106,7 @@ simplify_min_max (gfc_expr *expr, int sign)
min_max_choose (arg->expr, extremum->expr, sign);
/* Delete the extra constant argument. */
- if (last == NULL)
- expr->value.function.actual = arg->next;
- else
- last->next = arg->next;
+ last->next = arg->next;
arg->next = NULL;
gfc_free_actual_arglist (arg);
@@ -5247,7 +5244,8 @@ gfc_simplify_scan (gfc_expr *e, gfc_expr *c, gfc_expr *b, gfc_expr *kind)
if (k == -1)
return &gfc_bad_expr;
- if (e->expr_type != EXPR_CONSTANT || c->expr_type != EXPR_CONSTANT)
+ if (e->expr_type != EXPR_CONSTANT || c->expr_type != EXPR_CONSTANT
+ || ( b != NULL && b->expr_type != EXPR_CONSTANT))
return NULL;
if (b != NULL && b->value.logical != 0)
@@ -6335,7 +6333,8 @@ gfc_simplify_verify (gfc_expr *s, gfc_expr *set, gfc_expr *b, gfc_expr *kind)
if (k == -1)
return &gfc_bad_expr;
- if (s->expr_type != EXPR_CONSTANT || set->expr_type != EXPR_CONSTANT)
+ if (s->expr_type != EXPR_CONSTANT || set->expr_type != EXPR_CONSTANT
+ || ( b != NULL && b->expr_type != EXPR_CONSTANT))
return NULL;
if (b != NULL && b->value.logical != 0)
diff --git a/gcc/fortran/target-memory.c b/gcc/fortran/target-memory.c
index bedc668d5..7a55dcd05 100644
--- a/gcc/fortran/target-memory.c
+++ b/gcc/fortran/target-memory.c
@@ -125,9 +125,12 @@ gfc_target_expr_size (gfc_expr *e)
/* Determine type size without clobbering the typespec for ISO C
binding types. */
gfc_typespec ts;
+ HOST_WIDE_INT size;
ts = e->ts;
type = gfc_typenode_for_spec (&ts);
- return int_size_in_bytes (type);
+ size = int_size_in_bytes (type);
+ gcc_assert (size >= 0);
+ return size;
}
default:
gfc_internal_error ("Invalid expression in gfc_target_expr_size.");
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index c350c3b5e..3e684ee66 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -1022,8 +1022,8 @@ gfc_trans_create_temp_array (stmtblock_t * pre, stmtblock_t * post, gfc_ss * ss,
dynamic type. Generate an eltype and then the class expression. */
if (eltype == NULL_TREE && initial)
{
- if (POINTER_TYPE_P (TREE_TYPE (initial)))
- class_expr = build_fold_indirect_ref_loc (input_location, initial);
+ gcc_assert (POINTER_TYPE_P (TREE_TYPE (initial)));
+ class_expr = build_fold_indirect_ref_loc (input_location, initial);
eltype = TREE_TYPE (class_expr);
eltype = gfc_get_element_type (eltype);
/* Obtain the structure (class) expression. */
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 53c248d96..910b1500f 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1630,17 +1630,14 @@ gfc_get_extern_function_decl (gfc_symbol * sym)
/* By construction, the external function cannot be
a contained procedure. */
locus old_loc;
- tree save_fn_decl = current_function_decl;
- current_function_decl = NULL_TREE;
gfc_save_backend_locus (&old_loc);
- push_cfun (cfun);
+ push_cfun (NULL);
gfc_create_function_decl (gsym->ns, true);
pop_cfun ();
gfc_restore_backend_locus (&old_loc);
- current_function_decl = save_fn_decl;
}
/* If the namespace has entries, the proc_name is the
@@ -4861,16 +4858,12 @@ add_argument_checking (stmtblock_t *block, gfc_symbol *sym)
void
gfc_init_coarray_decl (bool main_tu)
{
- tree save_fn_decl;
-
if (gfc_option.coarray != GFC_FCOARRAY_LIB)
return;
if (gfort_gvar_caf_this_image || gfort_gvar_caf_num_images)
return;
- save_fn_decl = current_function_decl;
- current_function_decl = NULL_TREE;
push_cfun (cfun);
gfort_gvar_caf_this_image
@@ -4906,7 +4899,6 @@ gfc_init_coarray_decl (bool main_tu)
pushdecl_top_level (gfort_gvar_caf_num_images);
pop_cfun ();
- current_function_decl = save_fn_decl;
}
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index 84a4b34bb..177d2865b 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -621,6 +621,16 @@ gfc_trans_class_init_assign (gfc_code *code)
gfc_add_block_to_block (&block, &src.pre);
tmp = gfc_build_memcpy_call (dst.expr, src.expr, memsz.expr);
}
+
+ if (code->expr1->symtree->n.sym->attr.optional
+ || code->expr1->symtree->n.sym->ns->proc_name->attr.entry_master)
+ {
+ tree present = gfc_conv_expr_present (code->expr1->symtree->n.sym);
+ tmp = build3_loc (input_location, COND_EXPR, TREE_TYPE (tmp),
+ present, tmp,
+ build_empty_stmt (input_location));
+ }
+
gfc_add_expr_to_block (&block, tmp);
return gfc_finish_block (&block);
@@ -3905,22 +3915,42 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
/* If an ALLOCATABLE dummy argument has INTENT(OUT) and is
allocated on entry, it must be deallocated. */
- if (fsym && fsym->attr.allocatable
- && fsym->attr.intent == INTENT_OUT)
+ if (fsym && fsym->attr.intent == INTENT_OUT
+ && (fsym->attr.allocatable
+ || (fsym->ts.type == BT_CLASS
+ && CLASS_DATA (e)->attr.allocatable)))
{
stmtblock_t block;
+ tree ptr;
gfc_init_block (&block);
- tmp = gfc_deallocate_with_status (parmse.expr, NULL_TREE,
+ ptr = parmse.expr;
+ if (e->ts.type == BT_CLASS)
+ ptr = gfc_class_data_get (ptr);
+
+ tmp = gfc_deallocate_with_status (ptr, NULL_TREE,
NULL_TREE, NULL_TREE,
NULL_TREE, true, NULL,
false);
gfc_add_expr_to_block (&block, tmp);
tmp = fold_build2_loc (input_location, MODIFY_EXPR,
- void_type_node, parmse.expr,
+ void_type_node, ptr,
null_pointer_node);
gfc_add_expr_to_block (&block, tmp);
+ if (fsym->ts.type == BT_CLASS)
+ {
+ gfc_symbol *vtab;
+ gcc_assert (fsym->ts.u.derived == e->ts.u.derived);
+ vtab = gfc_find_derived_vtab (fsym->ts.u.derived);
+ tmp = gfc_get_symbol_decl (vtab);
+ tmp = gfc_build_addr_expr (NULL_TREE, tmp);
+ ptr = gfc_class_vptr_get (parmse.expr);
+ gfc_add_modify (&block, ptr,
+ fold_convert (TREE_TYPE (ptr), tmp));
+ gfc_add_expr_to_block (&block, tmp);
+ }
+
if (fsym->attr.optional
&& e->expr_type == EXPR_VARIABLE
&& e->symtree->n.sym->attr.optional)
@@ -5506,11 +5536,11 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr)
gfc_start_block (&block);
- if (cm->attr.pointer)
+ if (cm->attr.pointer || cm->attr.proc_pointer)
{
gfc_init_se (&se, NULL);
/* Pointer component. */
- if (cm->attr.dimension)
+ if (cm->attr.dimension && !cm->attr.proc_pointer)
{
/* Array pointer. */
if (expr->expr_type == EXPR_NULL)
@@ -5530,6 +5560,11 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr)
se.want_pointer = 1;
gfc_conv_expr (&se, expr);
gfc_add_block_to_block (&block, &se.pre);
+
+ if (expr->symtree && expr->symtree->n.sym->attr.proc_pointer
+ && expr->symtree->n.sym->attr.dummy)
+ se.expr = build_fold_indirect_ref_loc (input_location, se.expr);
+
gfc_add_modify (&block, dest,
fold_convert (TREE_TYPE (dest), se.expr));
gfc_add_block_to_block (&block, &se.post);
diff --git a/gcc/function.c b/gcc/function.c
index 72056a6ee..d6e195437 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -133,7 +133,7 @@ static bool contains (const_rtx, htab_t);
static void prepare_function_start (void);
static void do_clobber_return_reg (rtx, void *);
static void do_use_return_reg (rtx, void *);
-static void set_insn_locators (rtx, int) ATTRIBUTE_UNUSED;
+static void set_insn_locations (rtx, int) ATTRIBUTE_UNUSED;
/* Stack of nested functions. */
/* Keep track of the cfun stack. */
@@ -200,7 +200,6 @@ free_after_compilation (struct function *f)
f->cfg = NULL;
regno_reg_rtx = NULL;
- insn_locators_free ();
}
/* Return size needed for stack frame based on slots so far allocated.
@@ -4413,22 +4412,34 @@ set_cfun (struct function *new_cfun)
static VEC(function_p,heap) *cfun_stack;
-/* Push the current cfun onto the stack, and set cfun to new_cfun. */
+/* Push the current cfun onto the stack, and set cfun to new_cfun. Also set
+ current_function_decl accordingly. */
void
push_cfun (struct function *new_cfun)
{
+ gcc_assert ((!cfun && !current_function_decl)
+ || (cfun && current_function_decl == cfun->decl));
VEC_safe_push (function_p, heap, cfun_stack, cfun);
+ current_function_decl = new_cfun ? new_cfun->decl : NULL_TREE;
set_cfun (new_cfun);
}
-/* Pop cfun from the stack. */
+/* Pop cfun from the stack. Also set current_function_decl accordingly. */
void
pop_cfun (void)
{
struct function *new_cfun = VEC_pop (function_p, cfun_stack);
+ /* When in_dummy_function, we do have a cfun but current_function_decl is
+ NULL. We also allow pushing NULL cfun and subsequently changing
+ current_function_decl to something else and have both restored by
+ pop_cfun. */
+ gcc_checking_assert (in_dummy_function
+ || !cfun
+ || current_function_decl == cfun->decl);
set_cfun (new_cfun);
+ current_function_decl = new_cfun ? new_cfun->decl : NULL_TREE;
}
/* Return value of funcdef and increase it. */
@@ -4475,8 +4486,6 @@ allocate_struct_function (tree fndecl, bool abstract_p)
OVERRIDE_ABI_FORMAT (fndecl);
#endif
- invoke_set_current_function_hook (fndecl);
-
if (fndecl != NULL_TREE)
{
DECL_STRUCT_FUNCTION (fndecl) = cfun;
@@ -4502,6 +4511,8 @@ allocate_struct_function (tree fndecl, bool abstract_p)
but is this worth the hassle? */
cfun->can_throw_non_call_exceptions = flag_non_call_exceptions;
}
+
+ invoke_set_current_function_hook (fndecl);
}
/* This is like allocate_struct_function, but pushes a new cfun for FNDECL
@@ -4510,7 +4521,13 @@ allocate_struct_function (tree fndecl, bool abstract_p)
void
push_struct_function (tree fndecl)
{
+ /* When in_dummy_function we might be in the middle of a pop_cfun and
+ current_function_decl and cfun may not match. */
+ gcc_assert (in_dummy_function
+ || (!cfun && !current_function_decl)
+ || (cfun && current_function_decl == cfun->decl));
VEC_safe_push (function_p, heap, cfun_stack, cfun);
+ current_function_decl = fndecl;
allocate_struct_function (fndecl, false);
}
@@ -4979,7 +4996,7 @@ expand_function_end (void)
probe_stack_range (STACK_OLD_CHECK_PROTECT, max_frame_size);
seq = get_insns ();
end_sequence ();
- set_insn_locators (seq, prologue_locator);
+ set_insn_locations (seq, prologue_location);
emit_insn_before (seq, stack_check_probe_note);
break;
}
@@ -4994,7 +5011,7 @@ expand_function_end (void)
/* Output a linenumber for the end of the function.
SDB depends on this. */
- set_curr_insn_source_location (input_location);
+ set_curr_insn_location (input_location);
/* Before the return label (if any), clobber the return
registers so that they are not propagated live to the rest of
@@ -5277,14 +5294,14 @@ maybe_copy_prologue_epilogue_insn (rtx insn, rtx copy)
*slot = copy;
}
-/* Set the locator of the insn chain starting at INSN to LOC. */
+/* Set the location of the insn chain starting at INSN to LOC. */
static void
-set_insn_locators (rtx insn, int loc)
+set_insn_locations (rtx insn, int loc)
{
while (insn != NULL_RTX)
{
if (INSN_P (insn))
- INSN_LOCATOR (insn) = loc;
+ INSN_LOCATION (insn) = loc;
insn = NEXT_INSN (insn);
}
}
@@ -5893,7 +5910,7 @@ thread_prologue_and_epilogue_insns (void)
end_sequence ();
record_insns (split_prologue_seq, NULL, &prologue_insn_hash);
- set_insn_locators (split_prologue_seq, prologue_locator);
+ set_insn_locations (split_prologue_seq, prologue_location);
#endif
}
@@ -5922,7 +5939,7 @@ thread_prologue_and_epilogue_insns (void)
prologue_seq = get_insns ();
end_sequence ();
- set_insn_locators (prologue_seq, prologue_locator);
+ set_insn_locations (prologue_seq, prologue_location);
}
#endif
@@ -6418,7 +6435,7 @@ thread_prologue_and_epilogue_insns (void)
/* Retain a map of the epilogue insns. */
record_insns (seq, NULL, &epilogue_insn_hash);
- set_insn_locators (seq, epilogue_locator);
+ set_insn_locations (seq, epilogue_location);
seq = get_insns ();
returnjump = get_last_insn ();
@@ -6608,7 +6625,7 @@ epilogue_done:
avoid getting rid of sibcall epilogue insns. Do this before we
actually emit the sequence. */
record_insns (seq, NULL, &epilogue_insn_hash);
- set_insn_locators (seq, epilogue_locator);
+ set_insn_locations (seq, epilogue_location);
emit_insn_before (seq, insn);
}
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index c5a16ac52..424ad550d 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -991,7 +991,9 @@ lower_builtin_setjmp (gimple_stmt_iterator *gsi)
void
record_vars_into (tree vars, tree fn)
{
- if (fn != current_function_decl)
+ bool change_cfun = fn != current_function_decl;
+
+ if (change_cfun)
push_cfun (DECL_STRUCT_FUNCTION (fn));
for (; vars; vars = DECL_CHAIN (vars))
@@ -1011,7 +1013,7 @@ record_vars_into (tree vars, tree fn)
add_local_decl (cfun, var);
}
- if (fn != current_function_decl)
+ if (change_cfun)
pop_cfun ();
}
diff --git a/gcc/gimple-streamer-out.c b/gcc/gimple-streamer-out.c
index 5be8567d6..22bcbca8d 100644
--- a/gcc/gimple-streamer-out.c
+++ b/gcc/gimple-streamer-out.c
@@ -74,7 +74,7 @@ output_gimple_stmt (struct output_block *ob, gimple stmt)
streamer_write_bitpack (&bp);
/* Emit location information for the statement. */
- lto_output_location (ob, gimple_location (stmt));
+ lto_output_location (ob, LOCATION_LOCUS (gimple_location (stmt)));
/* Emit the lexical block holding STMT. */
stream_write_tree (ob, gimple_block (stmt), true);
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 7c702cad7..7065040eb 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -424,8 +424,8 @@ gimple_build_assign_stat (tree lhs, tree rhs MEM_STAT_DECL)
tree op1, op2, op3;
extract_ops_from_tree_1 (rhs, &subcode, &op1, &op2, &op3);
- return gimple_build_assign_with_ops_stat (subcode, lhs, op1, op2, op3
- PASS_MEM_STAT);
+ return gimple_build_assign_with_ops (subcode, lhs, op1, op2, op3
+ PASS_MEM_STAT);
}
@@ -434,8 +434,8 @@ gimple_build_assign_stat (tree lhs, tree rhs MEM_STAT_DECL)
GIMPLE_UNARY_RHS or GIMPLE_SINGLE_RHS. */
gimple
-gimple_build_assign_with_ops_stat (enum tree_code subcode, tree lhs, tree op1,
- tree op2, tree op3 MEM_STAT_DECL)
+gimple_build_assign_with_ops (enum tree_code subcode, tree lhs, tree op1,
+ tree op2, tree op3 MEM_STAT_DECL)
{
unsigned num_ops;
gimple p;
@@ -463,6 +463,14 @@ gimple_build_assign_with_ops_stat (enum tree_code subcode, tree lhs, tree op1,
return p;
}
+gimple
+gimple_build_assign_with_ops (enum tree_code subcode, tree lhs, tree op1,
+ tree op2 MEM_STAT_DECL)
+{
+ return gimple_build_assign_with_ops (subcode, lhs, op1, op2, NULL_TREE
+ PASS_MEM_STAT);
+}
+
/* Build a new GIMPLE_ASSIGN tuple and append it to the end of *SEQ_P.
@@ -848,10 +856,7 @@ gimple_build_debug_bind_stat (tree var, tree value, gimple stmt MEM_STAT_DECL)
gimple_debug_bind_set_var (p, var);
gimple_debug_bind_set_value (p, value);
if (stmt)
- {
- gimple_set_block (p, gimple_block (stmt));
- gimple_set_location (p, gimple_location (stmt));
- }
+ gimple_set_location (p, gimple_location (stmt));
return p;
}
@@ -872,10 +877,7 @@ gimple_build_debug_source_bind_stat (tree var, tree value,
gimple_debug_source_bind_set_var (p, var);
gimple_debug_source_bind_set_value (p, value);
if (stmt)
- {
- gimple_set_block (p, gimple_block (stmt));
- gimple_set_location (p, gimple_location (stmt));
- }
+ gimple_set_location (p, gimple_location (stmt));
return p;
}
@@ -2995,7 +2997,6 @@ gimple_call_copy_skip_args (gimple stmt, bitmap args_to_skip)
gimple_set_vuse (new_stmt, gimple_vuse (stmt));
gimple_set_vdef (new_stmt, gimple_vdef (stmt));
- gimple_set_block (new_stmt, gimple_block (stmt));
if (gimple_has_location (stmt))
gimple_set_location (new_stmt, gimple_location (stmt));
gimple_call_copy_flags (new_stmt, stmt);
diff --git a/gcc/gimple.h b/gcc/gimple.h
index 797cd9444..27887e821 100644
--- a/gcc/gimple.h
+++ b/gcc/gimple.h
@@ -210,10 +210,6 @@ struct GTY((chain_next ("%h.next"))) gimple_statement_base {
and the prev pointer being the last. */
gimple next;
gimple GTY((skip)) prev;
-
- /* [ WORD 6 ]
- Lexical block holding this statement. */
- tree block;
};
@@ -744,12 +740,12 @@ gimple gimple_build_assign_stat (tree, tree MEM_STAT_DECL);
void extract_ops_from_tree_1 (tree, enum tree_code *, tree *, tree *, tree *);
-gimple gimple_build_assign_with_ops_stat (enum tree_code, tree, tree,
- tree, tree MEM_STAT_DECL);
-#define gimple_build_assign_with_ops(c,o1,o2,o3) \
- gimple_build_assign_with_ops_stat (c, o1, o2, o3, NULL_TREE MEM_STAT_INFO)
-#define gimple_build_assign_with_ops3(c,o1,o2,o3,o4) \
- gimple_build_assign_with_ops_stat (c, o1, o2, o3, o4 MEM_STAT_INFO)
+gimple
+gimple_build_assign_with_ops (enum tree_code, tree,
+ tree, tree CXX_MEM_STAT_INFO);
+gimple
+gimple_build_assign_with_ops (enum tree_code, tree,
+ tree, tree, tree CXX_MEM_STAT_INFO);
gimple gimple_build_debug_bind_stat (tree, tree, gimple MEM_STAT_DECL);
#define gimple_build_debug_bind(var,val,stmt) \
@@ -1196,7 +1192,7 @@ gimple_bb (const_gimple g)
static inline tree
gimple_block (const_gimple g)
{
- return g->gsbase.block;
+ return LOCATION_BLOCK (g->gsbase.location);
}
@@ -1205,7 +1201,11 @@ gimple_block (const_gimple g)
static inline void
gimple_set_block (gimple g, tree block)
{
- g->gsbase.block = block;
+ if (block)
+ g->gsbase.location =
+ COMBINE_LOCATION_DATA (line_table, g->gsbase.location, block);
+ else
+ g->gsbase.location = LOCATION_LOCUS (g->gsbase.location);
}
@@ -1240,7 +1240,7 @@ gimple_set_location (gimple g, location_t location)
static inline bool
gimple_has_location (const_gimple g)
{
- return gimple_location (g) != UNKNOWN_LOCATION;
+ return !IS_UNKNOWN_LOCATION (gimple_location (g));
}
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 31883162e..a871e7d4c 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -2612,7 +2612,6 @@ gimplify_call_expr (tree *expr_p, gimple_seq *pre_p, bool want_value)
= CALL_EXPR_RETURN_SLOT_OPT (call);
CALL_FROM_THUNK_P (*expr_p) = CALL_FROM_THUNK_P (call);
SET_EXPR_LOCATION (*expr_p, EXPR_LOCATION (call));
- TREE_BLOCK (*expr_p) = TREE_BLOCK (call);
/* Set CALL_EXPR_VA_ARG_PACK. */
CALL_EXPR_VA_ARG_PACK (*expr_p) = 1;
@@ -8288,14 +8287,12 @@ flag_instrument_functions_exclude_p (tree fndecl)
void
gimplify_function_tree (tree fndecl)
{
- tree oldfn, parm, ret;
+ tree parm, ret;
gimple_seq seq;
gimple bind;
gcc_assert (!gimple_body (fndecl));
- oldfn = current_function_decl;
- current_function_decl = fndecl;
if (DECL_STRUCT_FUNCTION (fndecl))
push_cfun (DECL_STRUCT_FUNCTION (fndecl));
else
@@ -8380,7 +8377,6 @@ gimplify_function_tree (tree fndecl)
DECL_SAVED_TREE (fndecl) = NULL_TREE;
cfun->curr_properties = PROP_gimple_any;
- current_function_decl = oldfn;
pop_cfun ();
}
diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog
index d3a6e29a9..86ef0c9a9 100644
--- a/gcc/go/ChangeLog
+++ b/gcc/go/ChangeLog
@@ -1,3 +1,11 @@
+2012-09-17 Ian Lance Taylor <iant@google.com>
+
+ * config-lang.in (target_libs): Add target-libbacktrace.
+
+2012-09-16 Ian Lance Taylor <iant@google.com>
+
+ * Make-lang.in (go/gogo.o): Depend on filenames.h.
+
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Configury.
diff --git a/gcc/go/Make-lang.in b/gcc/go/Make-lang.in
index 34e5584cc..b3cb2bdbc 100644
--- a/gcc/go/Make-lang.in
+++ b/gcc/go/Make-lang.in
@@ -289,10 +289,11 @@ go/gogo-tree.o: go/gofrontend/gogo-tree.cc $(GO_SYSTEM_H) $(TOPLEV_H) \
convert.h output.h $(DIAGNOSTIC_H) $(GO_TYPES_H) \
$(GO_EXPRESSIONS_H) $(GO_STATEMENTS_H) $(GO_RUNTIME_H) \
go/gofrontend/backend.h $(GO_GOGO_H)
-go/gogo.o: go/gofrontend/gogo.cc $(GO_SYSTEM_H) $(GO_C_H) \
- go/gofrontend/go-dump.h $(GO_LEX_H) $(GO_TYPES_H) $(GO_STATEMENTS_H) \
- $(GO_EXPRESSIONS_H) go/gofrontend/dataflow.h $(GO_RUNTIME_H) \
- $(GO_IMPORT_H) $(GO_EXPORT_H) go/gofrontend/backend.h $(GO_GOGO_H)
+go/gogo.o: go/gofrontend/gogo.cc $(GO_SYSTEM_H) \
+ $(srcdir)/../include/filenames.h $(GO_C_H) go/gofrontend/go-dump.h \
+ $(GO_LEX_H) $(GO_TYPES_H) $(GO_STATEMENTS_H) $(GO_EXPRESSIONS_H) \
+ go/gofrontend/dataflow.h $(GO_RUNTIME_H) $(GO_IMPORT_H) \
+ $(GO_EXPORT_H) go/gofrontend/backend.h $(GO_GOGO_H)
go/import.o: go/gofrontend/import.cc $(GO_SYSTEM_H) \
$(srcdir)/../include/filenames.h $(srcdir)/../include/simple-object.h \
$(GO_C_H) $(GO_GOGO_H) $(GO_LEX_H) $(GO_TYPES_H) $(GO_EXPORT_H) \
diff --git a/gcc/go/config-lang.in b/gcc/go/config-lang.in
index 586e070e7..7ad5736f6 100644
--- a/gcc/go/config-lang.in
+++ b/gcc/go/config-lang.in
@@ -28,7 +28,7 @@ language="go"
compilers="go1\$(exeext)"
-target_libs="target-libgo target-libffi"
+target_libs="target-libgo target-libffi target-libbacktrace"
# The Go frontend is written in C++, so we need to build the C++
# compiler during stage 1.
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index 892c561d6..eef7ea7c2 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -293,19 +293,25 @@ Expression::convert_type_to_interface(Translate_context* context,
// object type: a list of function pointers for each interface
// method.
Named_type* rhs_named_type = rhs_type->named_type();
+ Struct_type* rhs_struct_type = rhs_type->struct_type();
bool is_pointer = false;
- if (rhs_named_type == NULL)
+ if (rhs_named_type == NULL && rhs_struct_type == NULL)
{
rhs_named_type = rhs_type->deref()->named_type();
+ rhs_struct_type = rhs_type->deref()->struct_type();
is_pointer = true;
}
tree method_table;
- if (rhs_named_type == NULL)
- method_table = null_pointer_node;
- else
+ if (rhs_named_type != NULL)
method_table =
rhs_named_type->interface_method_table(gogo, lhs_interface_type,
is_pointer);
+ else if (rhs_struct_type != NULL)
+ method_table =
+ rhs_struct_type->interface_method_table(gogo, lhs_interface_type,
+ is_pointer);
+ else
+ method_table = null_pointer_node;
first_field_value = fold_convert_loc(location.gcc_location(),
const_ptr_type_node, method_table);
}
@@ -5178,6 +5184,9 @@ Binary_expression::lower_struct_comparison(Gogo* gogo,
pf != fields->end();
++pf, ++field_index)
{
+ if (Gogo::is_sink_name(pf->field_name()))
+ continue;
+
if (field_index > 0)
{
if (left_temp == NULL)
@@ -5444,7 +5453,8 @@ Binary_expression::do_determine_type(const Type_context* context)
&& (this->left_->type()->integer_type() == NULL
|| (subcontext.type->integer_type() == NULL
&& subcontext.type->float_type() == NULL
- && subcontext.type->complex_type() == NULL)))
+ && subcontext.type->complex_type() == NULL
+ && subcontext.type->interface_type() == NULL)))
this->report_error(("invalid context-determined non-integer type "
"for shift operand"));
@@ -6676,38 +6686,6 @@ Builtin_call_expression::do_set_recover_arg(Expression* arg)
this->set_args(new_args);
}
-// A traversal class which looks for a call expression.
-
-class Find_call_expression : public Traverse
-{
- public:
- Find_call_expression()
- : Traverse(traverse_expressions),
- found_(false)
- { }
-
- int
- expression(Expression**);
-
- bool
- found()
- { return this->found_; }
-
- private:
- bool found_;
-};
-
-int
-Find_call_expression::expression(Expression** pexpr)
-{
- if ((*pexpr)->call_expression() != NULL)
- {
- this->found_ = true;
- return TRAVERSE_EXIT;
- }
- return TRAVERSE_CONTINUE;
-}
-
// Lower a builtin call expression. This turns new and make into
// specific expressions. We also convert to a constant if we can.
@@ -6728,20 +6706,6 @@ Builtin_call_expression::do_lower(Gogo* gogo, Named_object* function,
if (this->is_constant())
{
- // We can only lower len and cap if there are no function calls
- // in the arguments. Otherwise we have to make the call.
- if (this->code_ == BUILTIN_LEN || this->code_ == BUILTIN_CAP)
- {
- Expression* arg = this->one_arg();
- if (arg != NULL && !arg->is_constant())
- {
- Find_call_expression find_call;
- Expression::traverse(&arg, &find_call);
- if (find_call.found())
- return this;
- }
- }
-
Numeric_constant nc;
if (this->numeric_constant_value(&nc))
return nc.expression(loc);
@@ -7058,8 +7022,42 @@ Builtin_call_expression::one_arg() const
return args->front();
}
-// Return whether this is constant: len of a string, or len or cap of
-// a fixed array, or unsafe.Sizeof, unsafe.Offsetof, unsafe.Alignof.
+// A traversal class which looks for a call or receive expression.
+
+class Find_call_expression : public Traverse
+{
+ public:
+ Find_call_expression()
+ : Traverse(traverse_expressions),
+ found_(false)
+ { }
+
+ int
+ expression(Expression**);
+
+ bool
+ found()
+ { return this->found_; }
+
+ private:
+ bool found_;
+};
+
+int
+Find_call_expression::expression(Expression** pexpr)
+{
+ if ((*pexpr)->call_expression() != NULL
+ || (*pexpr)->receive_expression() != NULL)
+ {
+ this->found_ = true;
+ return TRAVERSE_EXIT;
+ }
+ return TRAVERSE_CONTINUE;
+}
+
+// Return whether this is constant: len of a string constant, or len
+// or cap of an array, or unsafe.Sizeof, unsafe.Offsetof,
+// unsafe.Alignof.
bool
Builtin_call_expression::do_is_constant() const
@@ -7082,6 +7080,17 @@ Builtin_call_expression::do_is_constant() const
&& !arg_type->points_to()->is_slice_type())
arg_type = arg_type->points_to();
+ // The len and cap functions are only constant if there are no
+ // function calls or channel operations in the arguments.
+ // Otherwise we have to make the call.
+ if (!arg->is_constant())
+ {
+ Find_call_expression find_call;
+ Expression::traverse(&arg, &find_call);
+ if (find_call.found())
+ return false;
+ }
+
if (arg_type->array_type() != NULL
&& arg_type->array_type()->length() != NULL)
return true;
@@ -7468,7 +7477,7 @@ Builtin_call_expression::do_determine_type(const Type_context* context)
if (args != NULL && args->size() == 2)
{
Type* t1 = args->front()->type();
- Type* t2 = args->front()->type();
+ Type* t2 = args->back()->type();
if (!t1->is_abstract())
arg_type = t1;
else if (!t2->is_abstract())
diff --git a/gcc/go/gofrontend/gogo-tree.cc b/gcc/go/gofrontend/gogo-tree.cc
index 9a181a344..0d1746f1c 100644
--- a/gcc/go/gofrontend/gogo-tree.cc
+++ b/gcc/go/gofrontend/gogo-tree.cc
@@ -476,7 +476,6 @@ Gogo::write_initialization_function(tree fndecl, tree init_stmt_list)
DECL_SAVED_TREE(fndecl) = init_stmt_list;
- current_function_decl = fndecl;
if (DECL_STRUCT_FUNCTION(fndecl) == NULL)
push_struct_function(fndecl);
else
@@ -487,7 +486,6 @@ Gogo::write_initialization_function(tree fndecl, tree init_stmt_list)
cgraph_add_new_function(fndecl, false);
- current_function_decl = NULL_TREE;
pop_cfun();
}
@@ -864,17 +862,13 @@ Gogo::write_globals()
// means that we need an fndecl.
if (init_fndecl == NULL_TREE)
init_fndecl = this->initialization_function_decl();
- current_function_decl = init_fndecl;
if (DECL_STRUCT_FUNCTION(init_fndecl) == NULL)
push_struct_function(init_fndecl);
else
push_cfun(DECL_STRUCT_FUNCTION(init_fndecl));
-
tree var_decl = is_sink ? NULL_TREE : vec[i];
var_init_tree = no->var_value()->get_init_block(this, NULL,
var_decl);
-
- current_function_decl = NULL_TREE;
pop_cfun();
}
@@ -994,9 +988,19 @@ Named_object::get_id(Gogo* gogo)
}
if (this->is_type())
{
- const Named_object* in_function = this->type_value()->in_function();
+ unsigned int index;
+ const Named_object* in_function = this->type_value()->in_function(&index);
if (in_function != NULL)
- decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
+ {
+ decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
+ if (index > 0)
+ {
+ char buf[30];
+ snprintf(buf, sizeof buf, "%u", index);
+ decl_name += '$';
+ decl_name += buf;
+ }
+ }
}
return get_identifier_from_string(decl_name);
}
@@ -1116,15 +1120,12 @@ Named_object::get_tree(Gogo* gogo, Named_object* function)
cfun->function_end_locus =
func->block()->end_location().gcc_location();
- current_function_decl = decl;
-
func->build_tree(gogo, this);
gimplify_function_tree(decl);
cgraph_finalize_function(decl, true);
- current_function_decl = NULL_TREE;
pop_cfun();
}
}
@@ -2127,8 +2128,7 @@ Gogo::slice_constructor(tree slice_type_tree, tree values, tree count,
tree
Gogo::interface_method_table_for_type(const Interface_type* interface,
- Named_type* type,
- bool is_pointer)
+ Type* type, bool is_pointer)
{
const Typed_identifier_list* interface_methods = interface->methods();
go_assert(!interface_methods->empty());
@@ -2157,7 +2157,9 @@ Gogo::interface_method_table_for_type(const Interface_type* interface,
// interface. If the interface has hidden methods, and the named
// type is defined in a different package, then the interface
// conversion table will be defined by that other package.
- if (has_hidden_methods && type->named_object()->package() != NULL)
+ if (has_hidden_methods
+ && type->named_type() != NULL
+ && type->named_type()->named_object()->package() != NULL)
{
tree array_type = build_array_type(const_ptr_type_node, NULL);
tree decl = build_decl(BUILTINS_LOCATION, VAR_DECL, id, array_type);
@@ -2186,13 +2188,20 @@ Gogo::interface_method_table_for_type(const Interface_type* interface,
Linemap::predeclared_location());
elt->value = fold_convert(const_ptr_type_node, tdp);
+ Named_type* nt = type->named_type();
+ Struct_type* st = type->struct_type();
+ go_assert(nt != NULL || st != NULL);
size_t i = 1;
for (Typed_identifier_list::const_iterator p = interface_methods->begin();
p != interface_methods->end();
++p, ++i)
{
bool is_ambiguous;
- Method* m = type->method_function(p->name(), &is_ambiguous);
+ Method* m;
+ if (nt != NULL)
+ m = nt->method_function(p->name(), &is_ambiguous);
+ else
+ m = st->method_function(p->name(), &is_ambiguous);
go_assert(m != NULL);
Named_object* no = m->named_object();
diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc
index 6e9b8c124..fa61808ec 100644
--- a/gcc/go/gofrontend/gogo.cc
+++ b/gcc/go/gofrontend/gogo.cc
@@ -6,6 +6,8 @@
#include "go-system.h"
+#include "filenames.h"
+
#include "go-c.h"
#include "go-dump.h"
#include "lex.h"
@@ -385,6 +387,57 @@ Gogo::import_package(const std::string& filename,
bool is_local_name_exported,
Location location)
{
+ if (filename.empty())
+ {
+ error_at(location, "import path is empty");
+ return;
+ }
+
+ const char *pf = filename.data();
+ const char *pend = pf + filename.length();
+ while (pf < pend)
+ {
+ unsigned int c;
+ int adv = Lex::fetch_char(pf, &c);
+ if (adv == 0)
+ {
+ error_at(location, "import path contains invalid UTF-8 sequence");
+ return;
+ }
+ if (c == '\0')
+ {
+ error_at(location, "import path contains NUL");
+ return;
+ }
+ if (c < 0x20 || c == 0x7f)
+ {
+ error_at(location, "import path contains control character");
+ return;
+ }
+ if (c == '\\')
+ {
+ error_at(location, "import path contains backslash; use slash");
+ return;
+ }
+ if (Lex::is_unicode_space(c))
+ {
+ error_at(location, "import path contains space character");
+ return;
+ }
+ if (c < 0x7f && strchr("!\"#$%&'()*,:;<=>?[]^`{|}", c) != NULL)
+ {
+ error_at(location, "import path contains invalid character '%c'", c);
+ return;
+ }
+ pf += adv;
+ }
+
+ if (IS_ABSOLUTE_PATH(filename.c_str()))
+ {
+ error_at(location, "import path cannot be absolute path");
+ return;
+ }
+
if (filename == "unsafe")
{
this->import_unsafe(local_name, is_local_name_exported, location);
@@ -1003,7 +1056,15 @@ Gogo::add_type(const std::string& name, Type* type, Location location)
Named_object* no = this->current_bindings()->add_type(name, NULL, type,
location);
if (!this->in_global_scope() && no->is_type())
- no->type_value()->set_in_function(this->functions_.back().function);
+ {
+ Named_object* f = this->functions_.back().function;
+ unsigned int index;
+ if (f->is_function())
+ index = f->func_value()->new_local_type_index();
+ else
+ index = 0;
+ no->type_value()->set_in_function(f, index);
+ }
}
// Add a named type.
@@ -1025,7 +1086,12 @@ Gogo::declare_type(const std::string& name, Location location)
if (!this->in_global_scope() && no->is_type_declaration())
{
Named_object* f = this->functions_.back().function;
- no->type_declaration_value()->set_in_function(f);
+ unsigned int index;
+ if (f->is_function())
+ index = f->func_value()->new_local_type_index();
+ else
+ index = 0;
+ no->type_declaration_value()->set_in_function(f, index);
}
return no;
}
@@ -2806,7 +2872,8 @@ int
Build_method_tables::type(Type* type)
{
Named_type* nt = type->named_type();
- if (nt != NULL)
+ Struct_type* st = type->struct_type();
+ if (nt != NULL || st != NULL)
{
for (std::vector<Interface_type*>::const_iterator p =
this->interfaces_.begin();
@@ -2816,10 +2883,23 @@ Build_method_tables::type(Type* type)
// We ask whether a pointer to the named type implements the
// interface, because a pointer can implement more methods
// than a value.
- if ((*p)->implements_interface(Type::make_pointer_type(nt), NULL))
+ if (nt != NULL)
+ {
+ if ((*p)->implements_interface(Type::make_pointer_type(nt),
+ NULL))
+ {
+ nt->interface_method_table(this->gogo_, *p, false);
+ nt->interface_method_table(this->gogo_, *p, true);
+ }
+ }
+ else
{
- nt->interface_method_table(this->gogo_, *p, false);
- nt->interface_method_table(this->gogo_, *p, true);
+ if ((*p)->implements_interface(Type::make_pointer_type(st),
+ NULL))
+ {
+ st->interface_method_table(this->gogo_, *p, false);
+ st->interface_method_table(this->gogo_, *p, true);
+ }
}
}
}
@@ -2989,9 +3069,10 @@ Gogo::convert_named_types_in_bindings(Bindings* bindings)
Function::Function(Function_type* type, Function* enclosing, Block* block,
Location location)
: type_(type), enclosing_(enclosing), results_(NULL),
- closure_var_(NULL), block_(block), location_(location), fndecl_(NULL),
- defer_stack_(NULL), results_are_named_(false), calls_recover_(false),
- is_recover_thunk_(false), has_recover_thunk_(false)
+ closure_var_(NULL), block_(block), location_(location), labels_(),
+ local_type_count_(0), fndecl_(NULL), defer_stack_(NULL),
+ results_are_named_(false), calls_recover_(false), is_recover_thunk_(false),
+ has_recover_thunk_(false)
{
}
@@ -4157,7 +4238,7 @@ Variable::determine_type()
else if (type->is_call_multiple_result_type())
{
error_at(this->location_,
- "single variable set to multiple value function call");
+ "single variable set to multiple-value function call");
type = Type::make_error_type();
}
@@ -4599,9 +4680,10 @@ Named_object::set_type_value(Named_type* named_type)
go_assert(this->classification_ == NAMED_OBJECT_TYPE_DECLARATION);
Type_declaration* td = this->u_.type_declaration;
td->define_methods(named_type);
- Named_object* in_function = td->in_function();
+ unsigned int index;
+ Named_object* in_function = td->in_function(&index);
if (in_function != NULL)
- named_type->set_in_function(in_function);
+ named_type->set_in_function(in_function, index);
delete td;
this->classification_ = NAMED_OBJECT_TYPE;
this->u_.type_value = named_type;
diff --git a/gcc/go/gofrontend/gogo.h b/gcc/go/gofrontend/gogo.h
index deb9968e8..36709f5b4 100644
--- a/gcc/go/gofrontend/gogo.h
+++ b/gcc/go/gofrontend/gogo.h
@@ -574,7 +574,7 @@ class Gogo
// Build an interface method table for a type: a list of function
// pointers, one for each interface method. This returns a decl.
tree
- interface_method_table_for_type(const Interface_type*, Named_type*,
+ interface_method_table_for_type(const Interface_type*, Type*,
bool is_pointer);
// Return a tree which allocate SIZE bytes to hold values of type
@@ -963,6 +963,11 @@ class Function
void
check_labels() const;
+ // Note that a new local type has been added. Return its index.
+ unsigned int
+ new_local_type_index()
+ { return this->local_type_count_++; }
+
// Whether this function calls the predeclared recover function.
bool
calls_recover() const
@@ -1084,6 +1089,8 @@ class Function
Location location_;
// Labels defined or referenced in the function.
Labels labels_;
+ // The number of local types defined in this function.
+ unsigned int local_type_count_;
// The function decl.
tree fndecl_;
// The defer stack variable. A pointer to this variable is used to
@@ -1638,8 +1645,8 @@ class Type_declaration
{
public:
Type_declaration(Location location)
- : location_(location), in_function_(NULL), methods_(),
- issued_warning_(false)
+ : location_(location), in_function_(NULL), in_function_index_(0),
+ methods_(), issued_warning_(false)
{ }
// Return the location.
@@ -1650,13 +1657,19 @@ class Type_declaration
// Return the function in which this type is declared. This will
// return NULL for a type declared in global scope.
Named_object*
- in_function()
- { return this->in_function_; }
+ in_function(unsigned int* pindex)
+ {
+ *pindex = this->in_function_index_;
+ return this->in_function_;
+ }
// Set the function in which this type is declared.
void
- set_in_function(Named_object* f)
- { this->in_function_ = f; }
+ set_in_function(Named_object* f, unsigned int index)
+ {
+ this->in_function_ = f;
+ this->in_function_index_ = index;
+ }
// Add a method to this type. This is used when methods are defined
// before the type.
@@ -1689,6 +1702,8 @@ class Type_declaration
// If this type is declared in a function, a pointer back to the
// function in which it is defined.
Named_object* in_function_;
+ // The index of this type in IN_FUNCTION_.
+ unsigned int in_function_index_;
// Methods defined before the type is defined.
Methods methods_;
// True if we have issued a warning about a use of this type
diff --git a/gcc/go/gofrontend/lex.cc b/gcc/go/gofrontend/lex.cc
index 5b7ce6869..6add84ed1 100644
--- a/gcc/go/gofrontend/lex.cc
+++ b/gcc/go/gofrontend/lex.cc
@@ -722,7 +722,16 @@ Lex::next_token()
unsigned int ci;
bool issued_error;
this->lineoff_ = p - this->linebuf_;
- this->advance_one_utf8_char(p, &ci, &issued_error);
+ const char *pnext = this->advance_one_utf8_char(p, &ci,
+ &issued_error);
+
+ // Ignore byte order mark at start of file.
+ if (ci == 0xfeff)
+ {
+ p = pnext;
+ break;
+ }
+
if (Lex::is_unicode_letter(ci))
return this->gather_identifier();
@@ -831,6 +840,14 @@ Lex::advance_one_utf8_char(const char* p, unsigned int* value,
*issued_error = true;
return p + 1;
}
+
+ // Warn about byte order mark, except at start of file.
+ if (*value == 0xfeff && (this->lineno_ != 1 || this->lineoff_ != 0))
+ {
+ error_at(this->location(), "Unicode (UTF-8) BOM in middle of file");
+ *issued_error = true;
+ }
+
return p + adv;
}
@@ -1295,6 +1312,12 @@ Lex::append_char(unsigned int v, bool is_character, std::string* str,
// Turn it into the "replacement character".
v = 0xfffd;
}
+ if (v >= 0xd800 && v < 0xe000)
+ {
+ warning_at(location, 0,
+ "unicode code point 0x%x is invalid surrogate pair", v);
+ v = 0xfffd;
+ }
if (v <= 0xffff)
{
buf[0] = 0xe0 + (v >> 12);
@@ -1705,6 +1728,27 @@ struct Unicode_range
unsigned int stride;
};
+// A table of whitespace characters--Unicode code points classified as
+// "Space", "C" locale whitespace characters, the "next line" control
+// character (0085), the line separator (2028), the paragraph
+// separator (2029), and the "zero-width non-break space" (feff).
+
+static const Unicode_range unicode_space[] =
+{
+ { 0x0009, 0x000d, 1 },
+ { 0x0020, 0x0020, 1 },
+ { 0x0085, 0x0085, 1 },
+ { 0x00a0, 0x00a0, 1 },
+ { 0x1680, 0x1680, 1 },
+ { 0x180e, 0x180e, 1 },
+ { 0x2000, 0x200a, 1 },
+ { 0x2028, 0x2029, 1 },
+ { 0x202f, 0x202f, 1 },
+ { 0x205f, 0x205f, 1 },
+ { 0x3000, 0x3000, 1 },
+ { 0xfeff, 0xfeff, 1 },
+};
+
// A table of Unicode digits--Unicode code points classified as
// "Digit".
@@ -2294,6 +2338,15 @@ Lex::is_in_unicode_range(unsigned int c, const Unicode_range* ranges,
}
}
+// Return whether C is a space character.
+
+bool
+Lex::is_unicode_space(unsigned int c)
+{
+ return Lex::is_in_unicode_range(c, unicode_space,
+ ARRAY_SIZE(unicode_space));
+}
+
// Return whether C is a Unicode digit--a Unicode code point
// classified as "Digit".
diff --git a/gcc/go/gofrontend/lex.h b/gcc/go/gofrontend/lex.h
index 8858e73d9..074bbaea4 100644
--- a/gcc/go/gofrontend/lex.h
+++ b/gcc/go/gofrontend/lex.h
@@ -375,6 +375,10 @@ class Lex
static int
fetch_char(const char* str, unsigned int *value);
+ // Return whether C is a Unicode or "C" locale space character.
+ static bool
+ is_unicode_space(unsigned int c);
+
private:
ssize_t
get_line();
diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc
index 29323f05c..cfcc00f99 100644
--- a/gcc/go/gofrontend/parse.cc
+++ b/gcc/go/gofrontend/parse.cc
@@ -5337,7 +5337,8 @@ Parse::import_spec(void*)
if (!token->is_string())
{
- error_at(this->location(), "missing import package name");
+ error_at(this->location(), "import statement not a string");
+ this->advance_token();
return;
}
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc
index c52f41b76..3ae54a438 100644
--- a/gcc/go/gofrontend/types.cc
+++ b/gcc/go/gofrontend/types.cc
@@ -421,7 +421,7 @@ Type::are_identical(const Type* t1, const Type* t2, bool errors_are_identical,
case TYPE_CALL_MULTIPLE_RESULT:
if (reason != NULL)
- *reason = "invalid use of multiple value function call";
+ *reason = "invalid use of multiple-value function call";
return false;
default:
@@ -579,6 +579,9 @@ Type::are_compatible_for_comparison(bool is_equality_op, const Type *t1,
p != fields->end();
++p)
{
+ if (Gogo::is_sink_name(p->field_name()))
+ continue;
+
if (!p->type()->is_comparable())
{
if (reason != NULL)
@@ -624,8 +627,8 @@ Type::are_assignable_check_hidden(const Type* lhs, const Type* rhs,
if (rhs->is_call_multiple_result_type())
{
if (reason != NULL)
- reason->assign(_("multiple value function call in "
- "single value context"));
+ reason->assign(_("multiple-value function call in "
+ "single-value context"));
return false;
}
}
@@ -1286,7 +1289,8 @@ Type::type_descriptor_var_name(Gogo* gogo, Named_type* nt)
return "__go_td_" + this->mangled_name(gogo);
Named_object* no = nt->named_object();
- const Named_object* in_function = nt->in_function();
+ unsigned int index;
+ const Named_object* in_function = nt->in_function(&index);
std::string ret = "__go_tdn_";
if (nt->is_builtin())
go_assert(in_function == NULL);
@@ -1301,6 +1305,13 @@ Type::type_descriptor_var_name(Gogo* gogo, Named_type* nt)
{
ret.append(Gogo::unpack_hidden_name(in_function->name()));
ret.append(1, '.');
+ if (index > 0)
+ {
+ char buf[30];
+ snprintf(buf, sizeof buf, "%u", index);
+ ret.append(buf);
+ ret.append(1, '.');
+ }
}
}
@@ -1737,9 +1748,19 @@ Type::specific_type_functions(Gogo* gogo, Named_type* name,
{
// This name is already hidden or not as appropriate.
base_name = name->name();
- const Named_object* in_function = name->in_function();
+ unsigned int index;
+ const Named_object* in_function = name->in_function(&index);
if (in_function != NULL)
- base_name += '$' + Gogo::unpack_hidden_name(in_function->name());
+ {
+ base_name += '$' + Gogo::unpack_hidden_name(in_function->name());
+ if (index > 0)
+ {
+ char buf[30];
+ snprintf(buf, sizeof buf, "%u", index);
+ base_name += '$';
+ base_name += buf;
+ }
+ }
}
std::string hash_name = base_name + "$hash";
std::string equal_name = base_name + "$equal";
@@ -1980,10 +2001,19 @@ Type::uncommon_type_constructor(Gogo* gogo, Type* uncommon_type,
? gogo->pkgpath()
: package->pkgpath());
n.assign(pkgpath);
- if (name->in_function() != NULL)
+ unsigned int index;
+ const Named_object* in_function = name->in_function(&index);
+ if (in_function != NULL)
{
n.append(1, '.');
- n.append(Gogo::unpack_hidden_name(name->in_function()->name()));
+ n.append(Gogo::unpack_hidden_name(in_function->name()));
+ if (index > 0)
+ {
+ char buf[30];
+ snprintf(buf, sizeof buf, "%u", index);
+ n.append(1, '.');
+ n.append(buf);
+ }
}
s = Expression::make_string(n, bloc);
vals->push_back(Expression::make_unary(OPERATOR_AND, s, bloc));
@@ -4267,6 +4297,9 @@ Struct_type::do_compare_is_identity(Gogo* gogo) const
pf != fields->end();
++pf)
{
+ if (Gogo::is_sink_name(pf->field_name()))
+ return false;
+
if (!pf->type()->compare_is_identity(gogo))
return false;
@@ -4521,6 +4554,20 @@ Struct_type::method_function(const std::string& name, bool* is_ambiguous) const
return Type::method_function(this->all_methods_, name, is_ambiguous);
}
+// Return a pointer to the interface method table for this type for
+// the interface INTERFACE. IS_POINTER is true if this is for a
+// pointer to THIS.
+
+tree
+Struct_type::interface_method_table(Gogo* gogo,
+ const Interface_type* interface,
+ bool is_pointer)
+{
+ return Type::interface_method_table(gogo, this, interface, is_pointer,
+ &this->interface_method_tables_,
+ &this->pointer_interface_method_tables_);
+}
+
// Convert struct fields to the backend representation. This is not
// declared in types.h so that types.h doesn't have to #include
// backend.h.
@@ -4740,6 +4787,9 @@ Struct_type::write_hash_function(Gogo* gogo, Named_type*,
pf != fields->end();
++pf)
{
+ if (Gogo::is_sink_name(pf->field_name()))
+ continue;
+
if (first)
first = false;
else
@@ -4831,6 +4881,9 @@ Struct_type::write_equal_function(Gogo* gogo, Named_type* name)
pf != fields->end();
++pf, ++field_index)
{
+ if (Gogo::is_sink_name(pf->field_name()))
+ continue;
+
// Compare one field in both P1 and P2.
Expression* f1 = Expression::make_temporary_reference(p1, bloc);
f1 = Expression::make_unary(OPERATOR_MULT, f1, bloc);
@@ -6806,7 +6859,8 @@ Interface_type::implements_interface(const Type* t, std::string* reason) const
std::string n = Gogo::message_name(p->name());
size_t len = 100 + n.length();
char* buf = new char[len];
- snprintf(buf, len, _("method %s%s%s requires a pointer"),
+ snprintf(buf, len,
+ _("method %s%s%s requires a pointer receiver"),
open_quote, n.c_str(), close_quote);
reason->assign(buf);
delete[] buf;
@@ -7142,7 +7196,17 @@ Interface_type::do_mangled_name(Gogo* gogo, std::string* ret) const
{
if (!p->name().empty())
{
- std::string n = Gogo::unpack_hidden_name(p->name());
+ std::string n;
+ if (!Gogo::is_hidden_name(p->name()))
+ n = p->name();
+ else
+ {
+ n = ".";
+ std::string pkgpath = Gogo::hidden_name_pkgpath(p->name());
+ n.append(Gogo::pkgpath_for_symbol(pkgpath));
+ n.append(1, '.');
+ n.append(Gogo::unpack_hidden_name(p->name()));
+ }
char buf[20];
snprintf(buf, sizeof buf, "%u_",
static_cast<unsigned int>(n.length()));
@@ -7695,32 +7759,9 @@ tree
Named_type::interface_method_table(Gogo* gogo, const Interface_type* interface,
bool is_pointer)
{
- go_assert(!interface->is_empty());
-
- Interface_method_tables** pimt = (is_pointer
- ? &this->interface_method_tables_
- : &this->pointer_interface_method_tables_);
-
- if (*pimt == NULL)
- *pimt = new Interface_method_tables(5);
-
- std::pair<const Interface_type*, tree> val(interface, NULL_TREE);
- std::pair<Interface_method_tables::iterator, bool> ins = (*pimt)->insert(val);
-
- if (ins.second)
- {
- // This is a new entry in the hash table.
- go_assert(ins.first->second == NULL_TREE);
- ins.first->second = gogo->interface_method_table_for_type(interface,
- this,
- is_pointer);
- }
-
- tree decl = ins.first->second;
- if (decl == error_mark_node)
- return error_mark_node;
- go_assert(decl != NULL_TREE && TREE_CODE(decl) == VAR_DECL);
- return build_fold_addr_expr(decl);
+ return Type::interface_method_table(gogo, this, interface, is_pointer,
+ &this->interface_method_tables_,
+ &this->pointer_interface_method_tables_);
}
// Return whether a named type has any hidden fields.
@@ -8351,6 +8392,13 @@ Named_type::do_reflection(Gogo* gogo, std::string* ret) const
{
ret->append(Gogo::unpack_hidden_name(this->in_function_->name()));
ret->push_back('$');
+ if (this->in_function_index_ > 0)
+ {
+ char buf[30];
+ snprintf(buf, sizeof buf, "%u", this->in_function_index_);
+ ret->append(buf);
+ ret->push_back('$');
+ }
}
ret->append(Gogo::unpack_hidden_name(this->named_object_->name()));
}
@@ -8380,6 +8428,13 @@ Named_type::do_mangled_name(Gogo* gogo, std::string* ret) const
{
name.append(Gogo::unpack_hidden_name(this->in_function_->name()));
name.append(1, '$');
+ if (this->in_function_index_ > 0)
+ {
+ char buf[30];
+ snprintf(buf, sizeof buf, "%u", this->in_function_index_);
+ name.append(buf);
+ name.append(1, '$');
+ }
}
}
name.append(Gogo::unpack_hidden_name(no->name()));
@@ -8890,6 +8945,42 @@ Type::method_function(const Methods* methods, const std::string& name,
return m;
}
+// Return a pointer to the interface method table for TYPE for the
+// interface INTERFACE.
+
+tree
+Type::interface_method_table(Gogo* gogo, Type* type,
+ const Interface_type *interface,
+ bool is_pointer,
+ Interface_method_tables** method_tables,
+ Interface_method_tables** pointer_tables)
+{
+ go_assert(!interface->is_empty());
+
+ Interface_method_tables** pimt = is_pointer ? method_tables : pointer_tables;
+
+ if (*pimt == NULL)
+ *pimt = new Interface_method_tables(5);
+
+ std::pair<const Interface_type*, tree> val(interface, NULL_TREE);
+ std::pair<Interface_method_tables::iterator, bool> ins = (*pimt)->insert(val);
+
+ if (ins.second)
+ {
+ // This is a new entry in the hash table.
+ go_assert(ins.first->second == NULL_TREE);
+ ins.first->second = gogo->interface_method_table_for_type(interface,
+ type,
+ is_pointer);
+ }
+
+ tree decl = ins.first->second;
+ if (decl == error_mark_node)
+ return error_mark_node;
+ go_assert(decl != NULL_TREE && TREE_CODE(decl) == VAR_DECL);
+ return build_fold_addr_expr(decl);
+}
+
// Look for field or method NAME for TYPE. Return an Expression for
// the field or method bound to EXPR. If there is no such field or
// method, give an appropriate error and return an error expression.
@@ -8981,7 +9072,7 @@ Type::bind_field_or_method(Gogo* gogo, const Type* type, Expression* expr,
Gogo::message_name(name).c_str(), ambig1.c_str(),
ambig2.c_str());
else if (found_pointer_method)
- error_at(location, "method requires a pointer");
+ error_at(location, "method requires a pointer receiver");
else if (nt == NULL && st == NULL && it == NULL)
error_at(location,
("reference to field %qs in object which "
diff --git a/gcc/go/gofrontend/types.h b/gcc/go/gofrontend/types.h
index a542bf717..cced68ddd 100644
--- a/gcc/go/gofrontend/types.h
+++ b/gcc/go/gofrontend/types.h
@@ -983,6 +983,19 @@ class Type
method_function(const Methods*, const std::string& name,
bool* is_ambiguous);
+ // A mapping from interfaces to the associated interface method
+ // tables for this type. This maps to a decl.
+ typedef Unordered_map_hash(const Interface_type*, tree, Type_hash_identical,
+ Type_identical) Interface_method_tables;
+
+ // Return a pointer to the interface method table for TYPE for the
+ // interface INTERFACE.
+ static tree
+ interface_method_table(Gogo* gogo, Type* type,
+ const Interface_type *interface, bool is_pointer,
+ Interface_method_tables** method_tables,
+ Interface_method_tables** pointer_tables);
+
// Return a composite literal for the type descriptor entry for a
// type.
static Expression*
@@ -1994,7 +2007,8 @@ class Struct_type : public Type
public:
Struct_type(Struct_field_list* fields, Location location)
: Type(TYPE_STRUCT),
- fields_(fields), location_(location), all_methods_(NULL)
+ fields_(fields), location_(location), all_methods_(NULL),
+ interface_method_tables_(NULL), pointer_interface_method_tables_(NULL)
{ }
// Return the field NAME. This only looks at local fields, not at
@@ -2076,6 +2090,14 @@ class Struct_type : public Type
Method*
method_function(const std::string& name, bool* is_ambiguous) const;
+ // Return a pointer to the interface method table for this type for
+ // the interface INTERFACE. If IS_POINTER is true, set the type
+ // descriptor to a pointer to this type, otherwise set it to this
+ // type.
+ tree
+ interface_method_table(Gogo*, const Interface_type* interface,
+ bool is_pointer);
+
// Traverse just the field types of a struct type.
int
traverse_field_types(Traverse* traverse)
@@ -2156,6 +2178,13 @@ class Struct_type : public Type
Location location_;
// If this struct is unnamed, a list of methods.
Methods* all_methods_;
+ // A mapping from interfaces to the associated interface method
+ // tables for this type. Only used if this struct is unnamed.
+ Interface_method_tables* interface_method_tables_;
+ // A mapping from interfaces to the associated interface method
+ // tables for pointers to this type. Only used if this struct is
+ // unnamed.
+ Interface_method_tables* pointer_interface_method_tables_;
};
// The type of an array.
@@ -2623,8 +2652,8 @@ class Named_type : public Type
public:
Named_type(Named_object* named_object, Type* type, Location location)
: Type(TYPE_NAMED),
- named_object_(named_object), in_function_(NULL), type_(type),
- local_methods_(NULL), all_methods_(NULL),
+ named_object_(named_object), in_function_(NULL), in_function_index_(0),
+ type_(type), local_methods_(NULL), all_methods_(NULL),
interface_method_tables_(NULL), pointer_interface_method_tables_(NULL),
location_(location), named_btype_(NULL), dependencies_(),
is_visible_(true), is_error_(false), is_placeholder_(false),
@@ -2651,13 +2680,19 @@ class Named_type : public Type
// Return the function in which this type is defined. This will
// return NULL for a type defined in global scope.
const Named_object*
- in_function() const
- { return this->in_function_; }
+ in_function(unsigned int *pindex) const
+ {
+ *pindex = this->in_function_index_;
+ return this->in_function_;
+ }
// Set the function in which this type is defined.
void
- set_in_function(Named_object* f)
- { this->in_function_ = f; }
+ set_in_function(Named_object* f, unsigned int index)
+ {
+ this->in_function_ = f;
+ this->in_function_index_ = index;
+ }
// Return the name of the type.
const std::string&
@@ -2855,16 +2890,13 @@ class Named_type : public Type
void
create_placeholder(Gogo*);
- // A mapping from interfaces to the associated interface method
- // tables for this type. This maps to a decl.
- typedef Unordered_map_hash(const Interface_type*, tree, Type_hash_identical,
- Type_identical) Interface_method_tables;
-
// A pointer back to the Named_object for this type.
Named_object* named_object_;
// If this type is defined in a function, a pointer back to the
// function in which it is defined.
Named_object* in_function_;
+ // The index of this type in IN_FUNCTION_.
+ unsigned int in_function_index_;
// The actual type.
Type* type_;
// The list of methods defined for this type. Any named type can
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 9cd007099..8072beb85 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -214,6 +214,9 @@ struct common_sched_info_def *common_sched_info;
#define FEEDS_BACKTRACK_INSN(INSN) (HID (INSN)->feeds_backtrack_insn)
#define SHADOW_P(INSN) (HID (INSN)->shadow_p)
#define MUST_RECOMPUTE_SPEC_P(INSN) (HID (INSN)->must_recompute_spec)
+/* Cached cost of the instruction. Use insn_cost to get cost of the
+ insn. -1 here means that the field is not initialized. */
+#define INSN_COST(INSN) (HID (INSN)->cost)
/* If INSN_TICK of an instruction is equal to INVALID_TICK,
then it should be recalculated from scratch. */
@@ -1115,18 +1118,59 @@ cond_clobbered_p (rtx insn, HARD_REG_SET set_regs)
return false;
}
+/* This function should be called after modifying the pattern of INSN,
+ to update scheduler data structures as needed. */
+static void
+update_insn_after_change (rtx insn)
+{
+ sd_iterator_def sd_it;
+ dep_t dep;
+
+ dfa_clear_single_insn_cache (insn);
+
+ sd_it = sd_iterator_start (insn,
+ SD_LIST_FORW | SD_LIST_BACK | SD_LIST_RES_BACK);
+ while (sd_iterator_cond (&sd_it, &dep))
+ {
+ DEP_COST (dep) = UNKNOWN_DEP_COST;
+ sd_iterator_next (&sd_it);
+ }
+
+ /* Invalidate INSN_COST, so it'll be recalculated. */
+ INSN_COST (insn) = -1;
+ /* Invalidate INSN_TICK, so it'll be recalculated. */
+ INSN_TICK (insn) = INVALID_TICK;
+}
+
+DEF_VEC_P(dep_t);
+DEF_VEC_ALLOC_P(dep_t, heap);
+
+/* Two VECs, one to hold dependencies for which pattern replacements
+ need to be applied or restored at the start of the next cycle, and
+ another to hold an integer that is either one, to apply the
+ corresponding replacement, or zero to restore it. */
+static VEC(dep_t, heap) *next_cycle_replace_deps;
+static VEC(int, heap) *next_cycle_apply;
+
+static void apply_replacement (dep_t, bool);
+static void restore_pattern (dep_t, bool);
+
/* Look at the remaining dependencies for insn NEXT, and compute and return
the TODO_SPEC value we should use for it. This is called after one of
- NEXT's dependencies has been resolved. */
+ NEXT's dependencies has been resolved.
+ We also perform pattern replacements for predication, and for broken
+ replacement dependencies. The latter is only done if FOR_BACKTRACK is
+ false. */
static ds_t
-recompute_todo_spec (rtx next)
+recompute_todo_spec (rtx next, bool for_backtrack)
{
ds_t new_ds;
sd_iterator_def sd_it;
- dep_t dep, control_dep = NULL;
+ dep_t dep, modify_dep = NULL;
int n_spec = 0;
int n_control = 0;
+ int n_replace = 0;
bool first_p = true;
if (sd_lists_empty_p (next, SD_LIST_BACK))
@@ -1143,9 +1187,10 @@ recompute_todo_spec (rtx next)
FOR_EACH_DEP (next, SD_LIST_BACK, sd_it, dep)
{
+ rtx pro = DEP_PRO (dep);
ds_t ds = DEP_STATUS (dep) & SPECULATIVE;
- if (DEBUG_INSN_P (DEP_PRO (dep)) && !DEBUG_INSN_P (next))
+ if (DEBUG_INSN_P (pro) && !DEBUG_INSN_P (next))
continue;
if (ds)
@@ -1160,15 +1205,47 @@ recompute_todo_spec (rtx next)
else
new_ds = ds_merge (new_ds, ds);
}
- if (DEP_TYPE (dep) == REG_DEP_CONTROL)
+ else if (DEP_TYPE (dep) == REG_DEP_CONTROL)
{
- n_control++;
- control_dep = dep;
+ if (QUEUE_INDEX (pro) != QUEUE_SCHEDULED)
+ {
+ n_control++;
+ modify_dep = dep;
+ }
+ DEP_STATUS (dep) &= ~DEP_CANCELLED;
+ }
+ else if (DEP_REPLACE (dep) != NULL)
+ {
+ if (QUEUE_INDEX (pro) != QUEUE_SCHEDULED)
+ {
+ n_replace++;
+ modify_dep = dep;
+ }
DEP_STATUS (dep) &= ~DEP_CANCELLED;
}
}
- if (n_control == 1 && n_spec == 0)
+ if (n_replace > 0 && n_control == 0 && n_spec == 0)
+ {
+ if (!dbg_cnt (sched_breakdep))
+ return HARD_DEP;
+ FOR_EACH_DEP (next, SD_LIST_BACK, sd_it, dep)
+ {
+ struct dep_replacement *desc = DEP_REPLACE (dep);
+ if (desc != NULL)
+ {
+ if (desc->insn == next && !for_backtrack)
+ {
+ gcc_assert (n_replace == 1);
+ apply_replacement (dep, true);
+ }
+ DEP_STATUS (dep) |= DEP_CANCELLED;
+ }
+ }
+ return 0;
+ }
+
+ else if (n_control == 1 && n_replace == 0 && n_spec == 0)
{
rtx pro, other, new_pat;
rtx cond = NULL_RTX;
@@ -1182,7 +1259,7 @@ recompute_todo_spec (rtx next)
&& PREDICATED_PAT (next) == NULL_RTX))
return HARD_DEP;
- pro = DEP_PRO (control_dep);
+ pro = DEP_PRO (modify_dep);
other = real_insn_for_shadow (pro);
if (other != NULL_RTX)
pro = other;
@@ -1221,7 +1298,7 @@ recompute_todo_spec (rtx next)
PREDICATED_PAT (next));
gcc_assert (success);
}
- DEP_STATUS (control_dep) |= DEP_CANCELLED;
+ DEP_STATUS (modify_dep) |= DEP_CANCELLED;
return DEP_CONTROL;
}
@@ -1238,11 +1315,12 @@ recompute_todo_spec (rtx next)
dependencies, so we return HARD_DEP in such a case. Also fail if
we have speculative dependencies with not enough points, or more than
one control dependency. */
- if ((n_spec > 0 && n_control > 0)
+ if ((n_spec > 0 && (n_control > 0 || n_replace > 0))
|| (n_spec > 0
/* Too few points? */
&& ds_weak (new_ds) < spec_info->data_weakness_cutoff)
- || (n_control > 1))
+ || n_control > 0
+ || n_replace > 0)
return HARD_DEP;
return new_ds;
@@ -1262,10 +1340,6 @@ static rtx last_nondebug_scheduled_insn;
first unscheduled one. */
static rtx nonscheduled_insns_begin;
-/* Cached cost of the instruction. Use below function to get cost of the
- insn. -1 here means that the field is not initialized. */
-#define INSN_COST(INSN) (HID (INSN)->cost)
-
/* Compute cost of executing INSN.
This is the number of cycles between instruction issue and
instruction results. */
@@ -1444,6 +1518,9 @@ contributes_to_priority_p (dep_t dep)
DEP_PRO (dep)))
return false;
+ if (DEP_REPLACE (dep) != NULL)
+ return false;
+
/* If flag COUNT_SPEC_IN_CRITICAL_PATH is set,
then speculative instructions will less likely be
scheduled. That is because the priority of
@@ -2137,6 +2214,31 @@ model_recompute (rtx insn)
if (print_p)
fprintf (sched_dump, MODEL_BAR);
}
+
+/* After DEP, which was cancelled, has been resolved for insn NEXT,
+ check whether the insn's pattern needs restoring. */
+static bool
+must_restore_pattern_p (rtx next, dep_t dep)
+{
+ if (QUEUE_INDEX (next) == QUEUE_SCHEDULED)
+ return false;
+
+ if (DEP_TYPE (dep) == REG_DEP_CONTROL)
+ {
+ gcc_assert (ORIG_PAT (next) != NULL_RTX);
+ gcc_assert (next == DEP_CON (dep));
+ }
+ else
+ {
+ struct dep_replacement *desc = DEP_REPLACE (dep);
+ if (desc->insn != next)
+ {
+ gcc_assert (*desc->loc == desc->orig);
+ return false;
+ }
+ }
+ return true;
+}
/* model_spill_cost (CL, P, P') returns the cost of increasing the
pressure on CL from P to P'. We use this to calculate a "base ECC",
@@ -3736,7 +3838,20 @@ schedule_insn (rtx insn)
check_clobbered_conditions (insn);
- /* Update dependent instructions. */
+ /* Update dependent instructions. First, see if by scheduling this insn
+ now we broke a dependence in a way that requires us to change another
+ insn. */
+ for (sd_it = sd_iterator_start (insn, SD_LIST_SPEC_BACK);
+ sd_iterator_cond (&sd_it, &dep); sd_iterator_next (&sd_it))
+ {
+ struct dep_replacement *desc = DEP_REPLACE (dep);
+ rtx pro = DEP_PRO (dep);
+ if (QUEUE_INDEX (pro) != QUEUE_SCHEDULED
+ && desc != NULL && desc->insn == pro)
+ apply_replacement (dep, false);
+ }
+
+ /* Go through and resolve forward dependencies. */
for (sd_it = sd_iterator_start (insn, SD_LIST_FORW);
sd_iterator_cond (&sd_it, &dep);)
{
@@ -3750,17 +3865,8 @@ schedule_insn (rtx insn)
if (cancelled)
{
- if (QUEUE_INDEX (next) != QUEUE_SCHEDULED)
- {
- int tick = INSN_TICK (next);
- gcc_assert (ORIG_PAT (next) != NULL_RTX);
- haifa_change_pattern (next, ORIG_PAT (next));
- INSN_TICK (next) = tick;
- if (sd_lists_empty_p (next, SD_LIST_BACK))
- TODO_SPEC (next) = 0;
- else if (!sd_lists_empty_p (next, SD_LIST_HARD_BACK))
- TODO_SPEC (next) = HARD_DEP;
- }
+ if (must_restore_pattern_p (next, dep))
+ restore_pattern (dep, false);
continue;
}
@@ -3918,6 +4024,16 @@ struct haifa_saved_data
to 0 when restoring. */
int q_size;
rtx *insn_queue;
+
+ /* Describe pattern replacements that occurred since this backtrack point
+ was queued. */
+ VEC (dep_t, heap) *replacement_deps;
+ VEC (int, heap) *replace_apply;
+
+ /* A copy of the next-cycle replacement vectors at the time of the backtrack
+ point. */
+ VEC (dep_t, heap) *next_cycle_deps;
+ VEC (int, heap) *next_cycle_apply;
};
/* A record, in reverse order, of all scheduled insns which have delay slots
@@ -3974,6 +4090,11 @@ save_backtrack_point (struct delay_pair *pair,
save->sched_block = sched_block;
+ save->replacement_deps = NULL;
+ save->replace_apply = NULL;
+ save->next_cycle_deps = VEC_copy (dep_t, heap, next_cycle_replace_deps);
+ save->next_cycle_apply = VEC_copy (int, heap, next_cycle_apply);
+
if (current_sched_info->save_state)
save->fe_saved_data = (*current_sched_info->save_state) ();
@@ -4043,6 +4164,25 @@ toggle_cancelled_flags (bool set)
}
}
+/* Undo the replacements that have occurred after backtrack point SAVE
+ was placed. */
+static void
+undo_replacements_for_backtrack (struct haifa_saved_data *save)
+{
+ while (!VEC_empty (dep_t, save->replacement_deps))
+ {
+ dep_t dep = VEC_pop (dep_t, save->replacement_deps);
+ int apply_p = VEC_pop (int, save->replace_apply);
+
+ if (apply_p)
+ restore_pattern (dep, true);
+ else
+ apply_replacement (dep, true);
+ }
+ VEC_free (dep_t, heap, save->replacement_deps);
+ VEC_free (int, heap, save->replace_apply);
+}
+
/* Pop entries from the SCHEDULED_INSNS vector up to and including INSN.
Restore their dependencies to an unresolved state, and mark them as
queued nowhere. */
@@ -4108,7 +4248,7 @@ unschedule_insns_until (rtx insn)
haifa_change_pattern (con, ORIG_PAT (con));
}
else if (QUEUE_INDEX (con) != QUEUE_SCHEDULED)
- TODO_SPEC (con) = recompute_todo_spec (con);
+ TODO_SPEC (con) = recompute_todo_spec (con, true);
}
VEC_free (rtx, heap, recompute_vec);
}
@@ -4136,6 +4276,10 @@ restore_last_backtrack_point (struct sched_block_state *psched_block)
targetm.sched.free_sched_context (save->be_saved_data);
}
+ /* Do this first since it clobbers INSN_TICK of the involved
+ instructions. */
+ undo_replacements_for_backtrack (save);
+
/* Clear the QUEUE_INDEX of everything in the ready list or one
of the queues. */
if (ready.n_ready > 0)
@@ -4171,7 +4315,7 @@ restore_last_backtrack_point (struct sched_block_state *psched_block)
{
rtx insn = first[i];
QUEUE_INDEX (insn) = QUEUE_READY;
- TODO_SPEC (insn) = recompute_todo_spec (insn);
+ TODO_SPEC (insn) = recompute_todo_spec (insn, true);
INSN_TICK (insn) = save->clock_var;
}
}
@@ -4188,7 +4332,7 @@ restore_last_backtrack_point (struct sched_block_state *psched_block)
{
rtx x = XEXP (link, 0);
QUEUE_INDEX (x) = i;
- TODO_SPEC (x) = recompute_todo_spec (x);
+ TODO_SPEC (x) = recompute_todo_spec (x, true);
INSN_TICK (x) = save->clock_var + i;
}
}
@@ -4209,6 +4353,10 @@ restore_last_backtrack_point (struct sched_block_state *psched_block)
mark_backtrack_feeds (save->delay_pair->i2, 0);
+ gcc_assert (VEC_empty (dep_t, next_cycle_replace_deps));
+ next_cycle_replace_deps = VEC_copy (dep_t, heap, save->next_cycle_deps);
+ next_cycle_apply = VEC_copy (int, heap, save->next_cycle_apply);
+
free (save);
for (save = backtrack_queue; save; save = save->next)
@@ -4238,7 +4386,14 @@ free_topmost_backtrack_point (bool reset_tick)
INSN_EXACT_TICK (pair->i2) = INVALID_TICK;
pair = pair->next_same_i1;
}
+ undo_replacements_for_backtrack (save);
+ }
+ else
+ {
+ VEC_free (dep_t, heap, save->replacement_deps);
+ VEC_free (int, heap, save->replace_apply);
}
+
if (targetm.sched.free_sched_context)
targetm.sched.free_sched_context (save->be_saved_data);
if (current_sched_info->restore_state)
@@ -4259,6 +4414,124 @@ free_backtrack_queue (void)
free_topmost_backtrack_point (false);
}
+/* Apply a replacement described by DESC. If IMMEDIATELY is false, we
+ may have to postpone the replacement until the start of the next cycle,
+ at which point we will be called again with IMMEDIATELY true. This is
+ only done for machines which have instruction packets with explicit
+ parallelism however. */
+static void
+apply_replacement (dep_t dep, bool immediately)
+{
+ struct dep_replacement *desc = DEP_REPLACE (dep);
+ if (!immediately && targetm.sched.exposed_pipeline && reload_completed)
+ {
+ VEC_safe_push (dep_t, heap, next_cycle_replace_deps, dep);
+ VEC_safe_push (int, heap, next_cycle_apply, 1);
+ }
+ else
+ {
+ bool success;
+
+ if (QUEUE_INDEX (desc->insn) == QUEUE_SCHEDULED)
+ return;
+
+ if (sched_verbose >= 5)
+ fprintf (sched_dump, "applying replacement for insn %d\n",
+ INSN_UID (desc->insn));
+
+ success = validate_change (desc->insn, desc->loc, desc->newval, 0);
+ gcc_assert (success);
+
+ update_insn_after_change (desc->insn);
+ if ((TODO_SPEC (desc->insn) & (HARD_DEP | DEP_POSTPONED)) == 0)
+ fix_tick_ready (desc->insn);
+
+ if (backtrack_queue != NULL)
+ {
+ VEC_safe_push (dep_t, heap, backtrack_queue->replacement_deps, dep);
+ VEC_safe_push (int, heap, backtrack_queue->replace_apply, 1);
+ }
+ }
+}
+
+/* We have determined that a pattern involved in DEP must be restored.
+ If IMMEDIATELY is false, we may have to postpone the replacement
+ until the start of the next cycle, at which point we will be called
+ again with IMMEDIATELY true. */
+static void
+restore_pattern (dep_t dep, bool immediately)
+{
+ rtx next = DEP_CON (dep);
+ int tick = INSN_TICK (next);
+
+ /* If we already scheduled the insn, the modified version is
+ correct. */
+ if (QUEUE_INDEX (next) == QUEUE_SCHEDULED)
+ return;
+
+ if (!immediately && targetm.sched.exposed_pipeline && reload_completed)
+ {
+ VEC_safe_push (dep_t, heap, next_cycle_replace_deps, dep);
+ VEC_safe_push (int, heap, next_cycle_apply, 0);
+ return;
+ }
+
+
+ if (DEP_TYPE (dep) == REG_DEP_CONTROL)
+ {
+ if (sched_verbose >= 5)
+ fprintf (sched_dump, "restoring pattern for insn %d\n",
+ INSN_UID (next));
+ haifa_change_pattern (next, ORIG_PAT (next));
+ }
+ else
+ {
+ struct dep_replacement *desc = DEP_REPLACE (dep);
+ bool success;
+
+ if (sched_verbose >= 5)
+ fprintf (sched_dump, "restoring pattern for insn %d\n",
+ INSN_UID (desc->insn));
+ tick = INSN_TICK (desc->insn);
+
+ success = validate_change (desc->insn, desc->loc, desc->orig, 0);
+ gcc_assert (success);
+ update_insn_after_change (desc->insn);
+ if (backtrack_queue != NULL)
+ {
+ VEC_safe_push (dep_t, heap, backtrack_queue->replacement_deps, dep);
+ VEC_safe_push (int, heap, backtrack_queue->replace_apply, 0);
+ }
+ }
+ INSN_TICK (next) = tick;
+ if (TODO_SPEC (next) == DEP_POSTPONED)
+ return;
+
+ if (sd_lists_empty_p (next, SD_LIST_BACK))
+ TODO_SPEC (next) = 0;
+ else if (!sd_lists_empty_p (next, SD_LIST_HARD_BACK))
+ TODO_SPEC (next) = HARD_DEP;
+}
+
+/* Perform pattern replacements that were queued up until the next
+ cycle. */
+static void
+perform_replacements_new_cycle (void)
+{
+ int i;
+ dep_t dep;
+ FOR_EACH_VEC_ELT (dep_t, next_cycle_replace_deps, i, dep)
+ {
+ int apply_p = VEC_index (int, next_cycle_apply, i);
+ if (apply_p)
+ apply_replacement (dep, true);
+ else
+ restore_pattern (dep, true);
+ }
+ VEC_truncate (dep_t, next_cycle_replace_deps, 0);
+ VEC_truncate (int, next_cycle_apply, 0);
+}
+
/* Compute INSN_TICK_ESTIMATE for INSN. PROCESSED is a bitmap of
instructions we've previously encountered, a set bit prevents
recursion. BUDGET is a limit on how far ahead we look, it is
@@ -4516,6 +4789,30 @@ restore_other_notes (rtx head, basic_block head_bb)
return head;
}
+/* When we know we are going to discard the schedule due to a failed attempt
+ at modulo scheduling, undo all replacements. */
+static void
+undo_all_replacements (void)
+{
+ rtx insn;
+ int i;
+
+ FOR_EACH_VEC_ELT (rtx, scheduled_insns, i, insn)
+ {
+ sd_iterator_def sd_it;
+ dep_t dep;
+
+ /* See if we must undo a replacement. */
+ for (sd_it = sd_iterator_start (insn, SD_LIST_RES_FORW);
+ sd_iterator_cond (&sd_it, &dep); sd_iterator_next (&sd_it))
+ {
+ struct dep_replacement *desc = DEP_REPLACE (dep);
+ if (desc != NULL)
+ validate_change (desc->insn, desc->loc, desc->orig, 0);
+ }
+ }
+}
+
/* Move insns that became ready to fire from queue to ready list. */
static void
@@ -5557,6 +5854,10 @@ schedule_block (basic_block *target_bb)
rtx head = NEXT_INSN (prev_head);
rtx tail = PREV_INSN (next_tail);
+ if ((current_sched_info->flags & DONT_BREAK_DEPENDENCIES) == 0
+ && sched_pressure != SCHED_PRESSURE_MODEL)
+ find_modifiable_mems (head, tail);
+
/* We used to have code to avoid getting parameters moved from hard
argument registers into pseudos.
@@ -5677,6 +5978,7 @@ schedule_block (basic_block *target_bb)
/* Loop until all the insns in BB are scheduled. */
while ((*current_sched_info->schedule_more_p) ())
{
+ perform_replacements_new_cycle ();
do
{
start_clock_var = clock_var;
@@ -5893,7 +6195,7 @@ schedule_block (basic_block *target_bb)
/* We normally get here only if we don't want to move
insn from the split block. */
{
- TODO_SPEC (insn) = HARD_DEP;
+ TODO_SPEC (insn) = DEP_POSTPONED;
goto restart_choose_ready;
}
@@ -6004,6 +6306,8 @@ schedule_block (basic_block *target_bb)
gcc_assert (failed);
failed_insn = failed->delay_pair->i1;
+ /* Clear these queues. */
+ perform_replacements_new_cycle ();
toggle_cancelled_flags (false);
unschedule_insns_until (failed_insn);
while (failed != backtrack_queue)
@@ -6031,6 +6335,7 @@ schedule_block (basic_block *target_bb)
if (ls.modulo_epilogue)
success = true;
end_schedule:
+ perform_replacements_new_cycle ();
if (modulo_ii > 0)
{
/* Once again, debug insn suckiness: they can be on the ready list
@@ -6070,6 +6375,9 @@ schedule_block (basic_block *target_bb)
}
}
+ if (!success)
+ undo_all_replacements ();
+
/* Debug info. */
if (sched_verbose)
{
@@ -6553,14 +6861,15 @@ try_ready (rtx next)
old_ts = TODO_SPEC (next);
- gcc_assert (!(old_ts & ~(SPECULATIVE | HARD_DEP | DEP_CONTROL))
- && ((old_ts & HARD_DEP)
+ gcc_assert (!(old_ts & ~(SPECULATIVE | HARD_DEP | DEP_CONTROL | DEP_POSTPONED))
+ && (old_ts == HARD_DEP
+ || old_ts == DEP_POSTPONED
|| (old_ts & SPECULATIVE)
- || (old_ts & DEP_CONTROL)));
+ || old_ts == DEP_CONTROL));
- new_ts = recompute_todo_spec (next);
+ new_ts = recompute_todo_spec (next, false);
- if (new_ts & HARD_DEP)
+ if (new_ts & (HARD_DEP | DEP_POSTPONED))
gcc_assert (new_ts == old_ts
&& QUEUE_INDEX (next) == QUEUE_NOWHERE);
else if (current_sched_info->new_ready)
@@ -6628,7 +6937,7 @@ try_ready (rtx next)
TODO_SPEC (next) = new_ts;
- if (new_ts & HARD_DEP)
+ if (new_ts & (HARD_DEP | DEP_POSTPONED))
{
/* We can't assert (QUEUE_INDEX (next) == QUEUE_NOWHERE) here because
control-speculative NEXT could have been discarded by sched-rgn.c
@@ -7647,27 +7956,13 @@ fix_recovery_deps (basic_block rec)
static bool
haifa_change_pattern (rtx insn, rtx new_pat)
{
- sd_iterator_def sd_it;
- dep_t dep;
int t;
t = validate_change (insn, &PATTERN (insn), new_pat, 0);
if (!t)
return false;
- dfa_clear_single_insn_cache (insn);
-
- sd_it = sd_iterator_start (insn,
- SD_LIST_FORW | SD_LIST_BACK | SD_LIST_RES_BACK);
- while (sd_iterator_cond (&sd_it, &dep))
- {
- DEP_COST (dep) = UNKNOWN_DEP_COST;
- sd_iterator_next (&sd_it);
- }
- /* Invalidate INSN_COST, so it'll be recalculated. */
- INSN_COST (insn) = -1;
- /* Invalidate INSN_TICK, so it'll be recalculated. */
- INSN_TICK (insn) = INVALID_TICK;
+ update_insn_after_change (insn);
return true;
}
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index fd3e92942..2f486a231 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -1020,7 +1020,7 @@ noce_try_move (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
}
return TRUE;
}
@@ -1065,7 +1065,7 @@ noce_try_store_flag (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
return TRUE;
}
else
@@ -1196,7 +1196,7 @@ noce_try_store_flag_constants (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
return TRUE;
}
@@ -1244,7 +1244,7 @@ noce_try_addcc (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
return TRUE;
}
end_sequence ();
@@ -1284,7 +1284,7 @@ noce_try_addcc (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
return TRUE;
}
end_sequence ();
@@ -1333,7 +1333,7 @@ noce_try_store_flag_mask (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
return TRUE;
}
@@ -1482,7 +1482,7 @@ noce_try_cmove (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
return TRUE;
}
else
@@ -1683,7 +1683,7 @@ noce_try_cmove_arith (struct noce_if_info *if_info)
if (!tmp)
return FALSE;
- emit_insn_before_setloc (tmp, if_info->jump, INSN_LOCATOR (if_info->insn_a));
+ emit_insn_before_setloc (tmp, if_info->jump, INSN_LOCATION (if_info->insn_a));
return TRUE;
end_seq_and_fail:
@@ -1930,7 +1930,7 @@ noce_try_minmax (struct noce_if_info *if_info)
if (!seq)
return FALSE;
- emit_insn_before_setloc (seq, if_info->jump, INSN_LOCATOR (if_info->insn_a));
+ emit_insn_before_setloc (seq, if_info->jump, INSN_LOCATION (if_info->insn_a));
if_info->cond = cond;
if_info->cond_earliest = earliest;
@@ -2077,7 +2077,7 @@ noce_try_abs (struct noce_if_info *if_info)
if (!seq)
return FALSE;
- emit_insn_before_setloc (seq, if_info->jump, INSN_LOCATOR (if_info->insn_a));
+ emit_insn_before_setloc (seq, if_info->jump, INSN_LOCATION (if_info->insn_a));
if_info->cond = cond;
if_info->cond_earliest = earliest;
@@ -2156,7 +2156,7 @@ noce_try_sign_mask (struct noce_if_info *if_info)
if (!seq)
return FALSE;
- emit_insn_before_setloc (seq, if_info->jump, INSN_LOCATOR (if_info->insn_a));
+ emit_insn_before_setloc (seq, if_info->jump, INSN_LOCATION (if_info->insn_a));
return TRUE;
}
@@ -2256,7 +2256,7 @@ noce_try_bitop (struct noce_if_info *if_info)
return FALSE;
emit_insn_before_setloc (seq, if_info->jump,
- INSN_LOCATOR (if_info->insn_a));
+ INSN_LOCATION (if_info->insn_a));
}
return TRUE;
}
@@ -2657,7 +2657,7 @@ noce_process_if_block (struct noce_if_info *if_info)
unshare_all_rtl_in_chain (seq);
end_sequence ();
- emit_insn_before_setloc (seq, BB_END (test_bb), INSN_LOCATOR (insn_a));
+ emit_insn_before_setloc (seq, BB_END (test_bb), INSN_LOCATION (insn_a));
}
/* The original THEN and ELSE blocks may now be removed. The test block
@@ -2929,7 +2929,7 @@ cond_move_process_if_block (struct noce_if_info *if_info)
loc_insn = first_active_insn (else_bb);
gcc_assert (loc_insn);
}
- emit_insn_before_setloc (seq, jump, INSN_LOCATOR (loc_insn));
+ emit_insn_before_setloc (seq, jump, INSN_LOCATION (loc_insn));
if (else_bb)
{
@@ -3652,7 +3652,7 @@ find_cond_trap (basic_block test_bb, edge then_edge, edge else_edge)
return FALSE;
/* Emit the new insns before cond_earliest. */
- emit_insn_before_setloc (seq, cond_earliest, INSN_LOCATOR (trap));
+ emit_insn_before_setloc (seq, cond_earliest, INSN_LOCATION (trap));
/* Delete the trap block if possible. */
remove_edge (trap_bb == then_bb ? then_edge : else_edge);
diff --git a/gcc/input.c b/gcc/input.c
index 52dde0bc9..c88e4c0c4 100644
--- a/gcc/input.c
+++ b/gcc/input.c
@@ -51,6 +51,13 @@ expand_location_1 (source_location loc,
expanded_location xloc;
const struct line_map *map;
enum location_resolution_kind lrk = LRK_MACRO_EXPANSION_POINT;
+ tree block = NULL;
+
+ if (IS_ADHOC_LOC (loc))
+ {
+ block = LOCATION_BLOCK (loc);
+ loc = LOCATION_LOCUS (loc);
+ }
memset (&xloc, 0, sizeof (xloc));
@@ -74,6 +81,7 @@ expand_location_1 (source_location loc,
xloc = linemap_expand_location (line_table, map, loc);
}
+ xloc.data = block;
if (loc <= BUILTINS_LOCATION)
xloc.file = loc == UNKNOWN_LOCATION ? NULL : _("<built-in>");
diff --git a/gcc/input.h b/gcc/input.h
index d811255c9..689e25be3 100644
--- a/gcc/input.h
+++ b/gcc/input.h
@@ -51,6 +51,14 @@ extern location_t input_location;
#define LOCATION_FILE(LOC) ((expand_location (LOC)).file)
#define LOCATION_LINE(LOC) ((expand_location (LOC)).line)
#define LOCATION_COLUMN(LOC)((expand_location (LOC)).column)
+#define LOCATION_LOCUS(LOC) \
+ ((IS_ADHOC_LOC(LOC)) ? get_location_from_adhoc_loc (line_table, LOC) : (LOC))
+#define LOCATION_BLOCK(LOC) \
+ ((tree) ((IS_ADHOC_LOC (LOC)) ? get_data_from_adhoc_loc (line_table, (LOC)) \
+ : NULL))
+#define IS_UNKNOWN_LOCATION(LOC) \
+ ((IS_ADHOC_LOC (LOC)) ? get_location_from_adhoc_loc (line_table, LOC) == 0 \
+ : (LOC) == 0)
#define input_line LOCATION_LINE (input_location)
#define input_filename LOCATION_FILE (input_location)
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index 268f0777c..31ecec9af 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -2554,7 +2554,6 @@ compute_inline_parameters (struct cgraph_node *node, bool early)
HOST_WIDE_INT self_stack_size;
struct cgraph_edge *e;
struct inline_summary *info;
- tree old_decl = current_function_decl;
gcc_assert (!node->global.inlined_to);
@@ -2581,7 +2580,6 @@ compute_inline_parameters (struct cgraph_node *node, bool early)
}
/* Even is_gimple_min_invariant rely on current_function_decl. */
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
/* Estimate the stack size for the function if we're optimizing. */
@@ -2623,7 +2621,6 @@ compute_inline_parameters (struct cgraph_node *node, bool early)
info->size = info->self_size;
info->stack_frame_offset = 0;
info->estimated_stack_size = info->estimated_self_stack_size;
- current_function_decl = old_decl;
pop_cfun ();
}
@@ -3554,7 +3551,6 @@ static void
inline_analyze_function (struct cgraph_node *node)
{
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
- current_function_decl = node->symbol.decl;
if (dump_file)
fprintf (dump_file, "\nAnalyzing function: %s/%u\n",
@@ -3563,7 +3559,6 @@ inline_analyze_function (struct cgraph_node *node)
inline_indirect_intraprocedural_analysis (node);
compute_inline_parameters (node, false);
- current_function_decl = NULL;
pop_cfun ();
}
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 9729145b7..7e1354d1d 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -287,6 +287,19 @@ ipa_print_all_jump_functions (FILE *f)
}
}
+/* Return the expression tree EXPR unshared and with location stripped off. */
+
+static tree
+prune_expression_for_jf (tree exp)
+{
+ if (EXPR_P (exp))
+ {
+ exp = unshare_expr (exp);
+ SET_EXPR_LOCATION (exp, UNKNOWN_LOCATION);
+ }
+ return exp;
+}
+
/* Set JFUNC to be a known type jump function. */
static void
@@ -304,8 +317,11 @@ ipa_set_jf_known_type (struct ipa_jump_func *jfunc, HOST_WIDE_INT offset,
static void
ipa_set_jf_constant (struct ipa_jump_func *jfunc, tree constant)
{
+ constant = unshare_expr (constant);
+ if (constant && EXPR_P (constant))
+ SET_EXPR_LOCATION (constant, UNKNOWN_LOCATION);
jfunc->type = IPA_JF_CONST;
- jfunc->value.constant = constant;
+ jfunc->value.constant = prune_expression_for_jf (constant);
}
/* Set JFUNC to be a simple pass-through jump function. */
@@ -327,7 +343,7 @@ ipa_set_jf_arith_pass_through (struct ipa_jump_func *jfunc, int formal_id,
tree operand, enum tree_code operation)
{
jfunc->type = IPA_JF_PASS_THROUGH;
- jfunc->value.pass_through.operand = operand;
+ jfunc->value.pass_through.operand = prune_expression_for_jf (operand);
jfunc->value.pass_through.formal_id = formal_id;
jfunc->value.pass_through.operation = operation;
jfunc->value.pass_through.agg_preserved = false;
@@ -1344,7 +1360,7 @@ determine_known_aggregate_parts (gimple call, tree arg,
{
struct ipa_agg_jf_item item;
item.offset = list->offset - arg_offset;
- item.value = list->constant;
+ item.value = prune_expression_for_jf (list->constant);
VEC_quick_push (ipa_agg_jf_item_t, jfunc->agg.items, item);
}
list = list->next;
@@ -1913,7 +1929,6 @@ ipa_analyze_node (struct cgraph_node *node)
ipa_check_create_edge_args ();
info = IPA_NODE_REF (node);
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
- current_function_decl = node->symbol.decl;
ipa_initialize_node_params (node);
param_count = ipa_get_param_count (info);
@@ -1931,7 +1946,6 @@ ipa_analyze_node (struct cgraph_node *node)
BITMAP_FREE (parms_ainfo[i].pt_visited_statements);
}
- current_function_decl = NULL;
pop_cfun ();
}
@@ -3150,6 +3164,8 @@ ipa_write_jump_function (struct output_block *ob,
stream_write_tree (ob, jump_func->value.known_type.component_type, true);
break;
case IPA_JF_CONST:
+ gcc_assert (
+ IS_UNKNOWN_LOCATION (EXPR_LOCATION (jump_func->value.constant)));
stream_write_tree (ob, jump_func->value.constant, true);
break;
case IPA_JF_PASS_THROUGH:
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 6bdd4d14b..c4f23d9e1 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -725,7 +725,6 @@ static funct_state
analyze_function (struct cgraph_node *fn, bool ipa)
{
tree decl = fn->symbol.decl;
- tree old_decl = current_function_decl;
funct_state l;
basic_block this_block;
@@ -753,7 +752,6 @@ analyze_function (struct cgraph_node *fn, bool ipa)
}
push_cfun (DECL_STRUCT_FUNCTION (decl));
- current_function_decl = decl;
FOR_EACH_BB (this_block)
{
@@ -821,7 +819,6 @@ end:
l->can_throw = false;
pop_cfun ();
- current_function_decl = old_decl;
if (dump_file)
{
if (l->looping)
diff --git a/gcc/jump.c b/gcc/jump.c
index c4f674972..735824357 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -1815,8 +1815,7 @@ rtx_renumbered_equal_p (const_rtx x, const_rtx y)
if (XINT (x, i) != XINT (y, i))
{
if (((code == ASM_OPERANDS && i == 6)
- || (code == ASM_INPUT && i == 1))
- && locator_eq (XINT (x, i), XINT (y, i)))
+ || (code == ASM_INPUT && i == 1)))
break;
return 0;
}
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index 24222883d..a6ef6fc69 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -668,10 +668,7 @@ add_references (lto_symtab_encoder_t encoder,
if (symtab_function_p (ref->referred))
add_node_to (encoder, ipa_ref_node (ref), false);
else
- {
- struct varpool_node *vnode = ipa_ref_varpool_node (ref);
- lto_symtab_encoder_encode (encoder, (symtab_node)vnode);
- }
+ lto_symtab_encoder_encode (encoder, ref->referred);
}
/* Find all symbols we want to stream into given partition and insert them
@@ -1415,6 +1412,7 @@ output_node_opt_summary (struct output_block *ob,
mechanism to store function local declarations into summaries. */
gcc_assert (parm);
streamer_write_uhwi (ob, parm_num);
+ gcc_assert (IS_UNKNOWN_LOCATION (EXPR_LOCATION (map->new_tree)));
stream_write_tree (ob, map->new_tree, true);
bp = bitpack_create (ob->main_stream);
bp_pack_value (&bp, map->replace_p, 1);
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index cca216cd8..a4b94b10a 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -1036,7 +1036,6 @@ void
lto_input_function_body (struct lto_file_decl_data *file_data,
tree fn_decl, const char *data)
{
- current_function_decl = fn_decl;
lto_read_body (file_data, fn_decl, data, LTO_section_function_body);
}
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 2adae7445..709eb60ce 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -155,6 +155,7 @@ lto_output_location_bitpack (struct bitpack_d *bp,
{
expanded_location xloc;
+ loc = LOCATION_LOCUS (loc);
bp_pack_value (bp, loc == UNKNOWN_LOCATION, 1);
if (loc == UNKNOWN_LOCATION)
return;
@@ -796,7 +797,6 @@ output_function (struct cgraph_node *node)
gcc_assert (current_function_decl == NULL_TREE && cfun == NULL);
/* Set current_function_decl and cfun. */
- current_function_decl = function;
push_cfun (fn);
/* Make string 0 be a NULL string. */
@@ -850,7 +850,6 @@ output_function (struct cgraph_node *node)
destroy_output_block (ob);
- current_function_decl = NULL;
pop_cfun ();
}
diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h
index abeaa4b24..059959e73 100644
--- a/gcc/lto-streamer.h
+++ b/gcc/lto-streamer.h
@@ -866,7 +866,6 @@ extern void lto_symtab_merge_decls (void);
extern void lto_symtab_merge_cgraph_nodes (void);
extern tree lto_symtab_prevailing_decl (tree decl);
extern enum ld_plugin_symbol_resolution lto_symtab_get_resolution (tree decl);
-extern void lto_symtab_free (void);
extern GTY(()) VEC(tree,gc) *lto_global_var_decls;
diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c
index c5efb7f01..58b77a353 100644
--- a/gcc/lto-symtab.c
+++ b/gcc/lto-symtab.c
@@ -32,98 +32,19 @@ along with GCC; see the file COPYING3. If not see
/* Vector to keep track of external variables we've seen so far. */
VEC(tree,gc) *lto_global_var_decls;
-/* Symbol table entry. */
-
-struct GTY(()) lto_symtab_entry_def
-{
- /* The symbol table entry key, an IDENTIFIER. */
- tree id;
- /* The symbol table entry, a DECL. */
- tree decl;
- /* The cgraph node if decl is a function decl. Filled in during the
- merging process. */
- struct cgraph_node *node;
- /* The varpool node if decl is a variable decl. Filled in during the
- merging process. */
- struct varpool_node *vnode;
- /* LTO file-data and symbol resolution for this decl. */
- struct lto_file_decl_data * GTY((skip (""))) file_data;
- enum ld_plugin_symbol_resolution resolution;
- /* True when resolution was guessed and not read from the file. */
- bool guessed;
- /* Pointer to the next entry with the same key. Before decl merging
- this links all symbols from the different TUs. After decl merging
- this links merged but incompatible decls, thus all prevailing ones
- remaining. */
- struct lto_symtab_entry_def *next;
-};
-typedef struct lto_symtab_entry_def *lto_symtab_entry_t;
-
-/* A poor man's symbol table. This hashes identifier to prevailing DECL
- if there is one. */
-
-static GTY ((if_marked ("lto_symtab_entry_marked_p"),
- param_is (struct lto_symtab_entry_def)))
- htab_t lto_symtab_identifiers;
-
-/* Free symtab hashtable. */
-
-void
-lto_symtab_free (void)
-{
- htab_delete (lto_symtab_identifiers);
- lto_symtab_identifiers = NULL;
-}
-
-/* Return the hash value of an lto_symtab_entry_t object pointed to by P. */
-
-static hashval_t
-lto_symtab_entry_hash (const void *p)
-{
- const struct lto_symtab_entry_def *base =
- (const struct lto_symtab_entry_def *) p;
- return IDENTIFIER_HASH_VALUE (base->id);
-}
-
-/* Return non-zero if P1 and P2 points to lto_symtab_entry_def structs
- corresponding to the same symbol. */
-
-static int
-lto_symtab_entry_eq (const void *p1, const void *p2)
+/* Return true if the resolution was guessed and not obtained from
+ the file. */
+static inline bool
+resolution_guessed_p (symtab_node node)
{
- const struct lto_symtab_entry_def *base1 =
- (const struct lto_symtab_entry_def *) p1;
- const struct lto_symtab_entry_def *base2 =
- (const struct lto_symtab_entry_def *) p2;
- return (base1->id == base2->id);
+ return node->symbol.aux != NULL;
}
-/* Returns non-zero if P points to an lto_symtab_entry_def struct that needs
- to be marked for GC. */
-
-static int
-lto_symtab_entry_marked_p (const void *p)
+/* Set guessed flag for NODE. */
+static inline void
+set_resolution_guessed (symtab_node node, bool value)
{
- const struct lto_symtab_entry_def *base =
- (const struct lto_symtab_entry_def *) p;
-
- /* Keep this only if the common IDENTIFIER_NODE of the symtab chain
- is marked which it will be if at least one of the DECLs in the
- chain is marked. */
- return ggc_marked_p (base->id);
-}
-
-/* Lazily initialize resolution hash tables. */
-
-static void
-lto_symtab_maybe_init_hash_table (void)
-{
- if (lto_symtab_identifiers)
- return;
-
- lto_symtab_identifiers =
- htab_create_ggc (1021, lto_symtab_entry_hash,
- lto_symtab_entry_eq, NULL);
+ node->symbol.aux = (void *)(size_t)value;
}
/* Registers DECL with the LTO symbol table as having resolution RESOLUTION
@@ -134,8 +55,7 @@ lto_symtab_register_decl (tree decl,
ld_plugin_symbol_resolution_t resolution,
struct lto_file_decl_data *file_data)
{
- lto_symtab_entry_t new_entry;
- void **slot;
+ symtab_node node;
/* Check that declarations reaching this function do not have
properties inconsistent with having external linkage. If any of
@@ -153,54 +73,15 @@ lto_symtab_register_decl (tree decl,
if (TREE_CODE (decl) == FUNCTION_DECL)
gcc_assert (!DECL_ABSTRACT (decl));
- new_entry = ggc_alloc_cleared_lto_symtab_entry_def ();
- new_entry->id = (*targetm.asm_out.mangle_assembler_name)
- (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
- new_entry->decl = decl;
- new_entry->resolution = resolution;
- new_entry->file_data = file_data;
-
- lto_symtab_maybe_init_hash_table ();
- slot = htab_find_slot (lto_symtab_identifiers, new_entry, INSERT);
- new_entry->next = (lto_symtab_entry_t) *slot;
- *slot = new_entry;
-}
-
-/* Get the lto_symtab_entry_def struct associated with ID
- if there is one. */
-
-static lto_symtab_entry_t
-lto_symtab_get (tree id)
-{
- struct lto_symtab_entry_def temp;
- void **slot;
-
- lto_symtab_maybe_init_hash_table ();
- temp.id = id;
- slot = htab_find_slot (lto_symtab_identifiers, &temp, NO_INSERT);
- return slot ? (lto_symtab_entry_t) *slot : NULL;
-}
-
-/* Get the linker resolution for DECL. */
-
-enum ld_plugin_symbol_resolution
-lto_symtab_get_resolution (tree decl)
-{
- lto_symtab_entry_t e;
-
- gcc_assert (DECL_ASSEMBLER_NAME_SET_P (decl));
-
- e = lto_symtab_get ((*targetm.asm_out.mangle_assembler_name)
- (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))));
- while (e && e->decl != decl)
- e = e->next;
- if (!e)
- return LDPR_UNKNOWN;
-
- return e->resolution;
+ node = symtab_get_node (decl);
+ if (node)
+ {
+ node->symbol.resolution = resolution;
+ gcc_assert (node->symbol.lto_file_data == file_data);
+ gcc_assert (!resolution_guessed_p (node));
+ }
}
-
/* Replace the cgraph node NODE with PREVAILING_NODE in the cgraph, merging
all edges and removing the old node. */
@@ -277,12 +158,15 @@ lto_varpool_replace_node (struct varpool_node *vnode,
should be emitted. */
static bool
-lto_symtab_merge (lto_symtab_entry_t prevailing, lto_symtab_entry_t entry)
+lto_symtab_merge (symtab_node prevailing, symtab_node entry)
{
- tree prevailing_decl = prevailing->decl;
- tree decl = entry->decl;
+ tree prevailing_decl = prevailing->symbol.decl;
+ tree decl = entry->symbol.decl;
tree prevailing_type, type;
+ if (prevailing_decl == decl)
+ return true;
+
/* Merge decl state in both directions, we may still end up using
the new decl. */
TREE_ADDRESSABLE (prevailing_decl) |= TREE_ADDRESSABLE (decl);
@@ -377,17 +261,17 @@ lto_symtab_merge (lto_symtab_entry_t prevailing, lto_symtab_entry_t entry)
entry. */
static bool
-lto_symtab_resolve_replaceable_p (lto_symtab_entry_t e)
+lto_symtab_resolve_replaceable_p (symtab_node e)
{
- if (DECL_EXTERNAL (e->decl)
- || DECL_COMDAT (e->decl)
- || DECL_ONE_ONLY (e->decl)
- || DECL_WEAK (e->decl))
+ if (DECL_EXTERNAL (e->symbol.decl)
+ || DECL_COMDAT (e->symbol.decl)
+ || DECL_ONE_ONLY (e->symbol.decl)
+ || DECL_WEAK (e->symbol.decl))
return true;
- if (TREE_CODE (e->decl) == VAR_DECL)
- return (DECL_COMMON (e->decl)
- || (!flag_no_common && !DECL_INITIAL (e->decl)));
+ if (TREE_CODE (e->symbol.decl) == VAR_DECL)
+ return (DECL_COMMON (e->symbol.decl)
+ || (!flag_no_common && !DECL_INITIAL (e->symbol.decl)));
return false;
}
@@ -395,24 +279,23 @@ lto_symtab_resolve_replaceable_p (lto_symtab_entry_t e)
/* Return true if the symtab entry E can be the prevailing one. */
static bool
-lto_symtab_resolve_can_prevail_p (lto_symtab_entry_t e)
+lto_symtab_resolve_can_prevail_p (symtab_node e)
{
+ if (!symtab_real_symbol_p (e))
+ return false;
+
/* The C++ frontend ends up neither setting TREE_STATIC nor
DECL_EXTERNAL on virtual methods but only TREE_PUBLIC.
So do not reject !TREE_STATIC here but only DECL_EXTERNAL. */
- if (DECL_EXTERNAL (e->decl))
+ if (DECL_EXTERNAL (e->symbol.decl))
return false;
/* For functions we need a non-discarded body. */
- if (TREE_CODE (e->decl) == FUNCTION_DECL)
- return (e->node && e->node->analyzed);
+ if (TREE_CODE (e->symbol.decl) == FUNCTION_DECL)
+ return (cgraph (e)->analyzed);
- else if (TREE_CODE (e->decl) == VAR_DECL)
- {
- if (!e->vnode)
- return false;
- return e->vnode->finalized;
- }
+ else if (TREE_CODE (e->symbol.decl) == VAR_DECL)
+ return varpool (e)->finalized;
gcc_unreachable ();
}
@@ -421,23 +304,18 @@ lto_symtab_resolve_can_prevail_p (lto_symtab_entry_t e)
their resolutions. */
static void
-lto_symtab_resolve_symbols (void **slot)
+lto_symtab_resolve_symbols (symtab_node first)
{
- lto_symtab_entry_t e;
- lto_symtab_entry_t prevailing = NULL;
+ symtab_node e;
+ symtab_node prevailing = NULL;
/* Always set e->node so that edges are updated to reflect decl merging. */
- for (e = (lto_symtab_entry_t) *slot; e; e = e->next)
- {
- if (TREE_CODE (e->decl) == FUNCTION_DECL)
- e->node = cgraph_get_node (e->decl);
- else if (TREE_CODE (e->decl) == VAR_DECL)
- e->vnode = varpool_get_node (e->decl);
- if (e->resolution == LDPR_PREVAILING_DEF_IRONLY
- || e->resolution == LDPR_PREVAILING_DEF_IRONLY_EXP
- || e->resolution == LDPR_PREVAILING_DEF)
- prevailing = e;
- }
+ for (e = first; e; e = e->symbol.next_sharing_asm_name)
+ if (symtab_real_symbol_p (e)
+ && (e->symbol.resolution == LDPR_PREVAILING_DEF_IRONLY
+ || e->symbol.resolution == LDPR_PREVAILING_DEF_IRONLY_EXP
+ || e->symbol.resolution == LDPR_PREVAILING_DEF))
+ prevailing = e;
/* If the chain is already resolved there is nothing else to do. */
if (prevailing)
@@ -445,26 +323,26 @@ lto_symtab_resolve_symbols (void **slot)
/* Find the single non-replaceable prevailing symbol and
diagnose ODR violations. */
- for (e = (lto_symtab_entry_t) *slot; e; e = e->next)
+ for (e = first; e; e = e->symbol.next_sharing_asm_name)
{
if (!lto_symtab_resolve_can_prevail_p (e))
{
- e->resolution = LDPR_RESOLVED_IR;
- e->guessed = true;
+ e->symbol.resolution = LDPR_RESOLVED_IR;
+ set_resolution_guessed (e, true);
continue;
}
/* Set a default resolution - the final prevailing one will get
adjusted later. */
- e->resolution = LDPR_PREEMPTED_IR;
- e->guessed = true;
+ e->symbol.resolution = LDPR_PREEMPTED_IR;
+ set_resolution_guessed (e, true);
if (!lto_symtab_resolve_replaceable_p (e))
{
if (prevailing)
{
- error_at (DECL_SOURCE_LOCATION (e->decl),
- "%qD has already been defined", e->decl);
- inform (DECL_SOURCE_LOCATION (prevailing->decl),
+ error_at (DECL_SOURCE_LOCATION (e->symbol.decl),
+ "%qD has already been defined", e->symbol.decl);
+ inform (DECL_SOURCE_LOCATION (prevailing->symbol.decl),
"previously defined here");
}
prevailing = e;
@@ -474,13 +352,14 @@ lto_symtab_resolve_symbols (void **slot)
goto found;
/* Do a second round choosing one from the replaceable prevailing decls. */
- for (e = (lto_symtab_entry_t) *slot; e; e = e->next)
+ for (e = first; e; e = e->symbol.next_sharing_asm_name)
{
- if (e->resolution != LDPR_PREEMPTED_IR)
+ if (e->symbol.resolution != LDPR_PREEMPTED_IR
+ || !symtab_real_symbol_p (e))
continue;
/* Choose the first function that can prevail as prevailing. */
- if (TREE_CODE (e->decl) == FUNCTION_DECL)
+ if (TREE_CODE (e->symbol.decl) == FUNCTION_DECL)
{
prevailing = e;
break;
@@ -488,8 +367,8 @@ lto_symtab_resolve_symbols (void **slot)
/* From variables that can prevail choose the largest one. */
if (!prevailing
- || tree_int_cst_lt (DECL_SIZE (prevailing->decl),
- DECL_SIZE (e->decl))
+ || tree_int_cst_lt (DECL_SIZE (prevailing->symbol.decl),
+ DECL_SIZE (e->symbol.decl))
/* When variables are equivalent try to chose one that has useful
DECL_INITIAL. This makes sense for keyed vtables that are
DECL_EXTERNAL but initialized. In units that do not need them
@@ -499,11 +378,11 @@ lto_symtab_resolve_symbols (void **slot)
We know that the vtable is keyed outside the LTO unit - otherwise
the keyed instance would prevail. We still can preserve useful
info in the initializer. */
- || (DECL_SIZE (prevailing->decl) == DECL_SIZE (e->decl)
- && (DECL_INITIAL (e->decl)
- && DECL_INITIAL (e->decl) != error_mark_node)
- && (!DECL_INITIAL (prevailing->decl)
- || DECL_INITIAL (prevailing->decl) == error_mark_node)))
+ || (DECL_SIZE (prevailing->symbol.decl) == DECL_SIZE (e->symbol.decl)
+ && (DECL_INITIAL (e->symbol.decl)
+ && DECL_INITIAL (e->symbol.decl) != error_mark_node)
+ && (!DECL_INITIAL (prevailing->symbol.decl)
+ || DECL_INITIAL (prevailing->symbol.decl) == error_mark_node)))
prevailing = e;
}
@@ -524,8 +403,8 @@ found:
variables IRONLY, which are indeed PREVAILING_DEF in
resolution file. These variables still need manual
externally_visible attribute. */
- prevailing->resolution = LDPR_PREVAILING_DEF_IRONLY;
- prevailing->guessed = true;
+ prevailing->symbol.resolution = LDPR_PREVAILING_DEF_IRONLY;
+ set_resolution_guessed (prevailing, true);
}
/* Merge all decls in the symbol table chain to the prevailing decl and
@@ -533,24 +412,25 @@ found:
do not issue further diagnostics.*/
static void
-lto_symtab_merge_decls_2 (void **slot, bool diagnosed_p)
+lto_symtab_merge_decls_2 (symtab_node first, bool diagnosed_p)
{
- lto_symtab_entry_t prevailing, e;
+ symtab_node prevailing, e;
VEC(tree, heap) *mismatches = NULL;
unsigned i;
tree decl;
/* Nothing to do for a single entry. */
- prevailing = (lto_symtab_entry_t) *slot;
- if (!prevailing->next)
+ prevailing = first;
+ if (!prevailing->symbol.next_sharing_asm_name)
return;
/* Try to merge each entry with the prevailing one. */
- for (e = prevailing->next; e; e = e->next)
+ for (e = prevailing->symbol.next_sharing_asm_name;
+ e; e = e->symbol.next_sharing_asm_name)
{
if (!lto_symtab_merge (prevailing, e)
&& !diagnosed_p)
- VEC_safe_push (tree, heap, mismatches, e->decl);
+ VEC_safe_push (tree, heap, mismatches, e->symbol.decl);
}
if (VEC_empty (tree, mismatches))
return;
@@ -558,13 +438,15 @@ lto_symtab_merge_decls_2 (void **slot, bool diagnosed_p)
/* Diagnose all mismatched re-declarations. */
FOR_EACH_VEC_ELT (tree, mismatches, i, decl)
{
- if (!types_compatible_p (TREE_TYPE (prevailing->decl), TREE_TYPE (decl)))
+ if (!types_compatible_p (TREE_TYPE (prevailing->symbol.decl),
+ TREE_TYPE (decl)))
diagnosed_p |= warning_at (DECL_SOURCE_LOCATION (decl), 0,
"type of %qD does not match original "
"declaration", decl);
- else if ((DECL_USER_ALIGN (prevailing->decl) && DECL_USER_ALIGN (decl))
- && DECL_ALIGN (prevailing->decl) < DECL_ALIGN (decl))
+ else if ((DECL_USER_ALIGN (prevailing->symbol.decl)
+ && DECL_USER_ALIGN (decl))
+ && DECL_ALIGN (prevailing->symbol.decl) < DECL_ALIGN (decl))
{
diagnosed_p |= warning_at (DECL_SOURCE_LOCATION (decl), 0,
"alignment of %qD is bigger than "
@@ -572,7 +454,7 @@ lto_symtab_merge_decls_2 (void **slot, bool diagnosed_p)
}
}
if (diagnosed_p)
- inform (DECL_SOURCE_LOCATION (prevailing->decl),
+ inform (DECL_SOURCE_LOCATION (prevailing->symbol.decl),
"previously declared here");
VEC_free (tree, heap, mismatches);
@@ -580,47 +462,50 @@ lto_symtab_merge_decls_2 (void **slot, bool diagnosed_p)
/* Helper to process the decl chain for the symbol table entry *SLOT. */
-static int
-lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED)
+static void
+lto_symtab_merge_decls_1 (symtab_node first)
{
- lto_symtab_entry_t e, prevailing;
+ symtab_node e, prevailing;
bool diagnosed_p = false;
+ if (cgraph_dump_file)
+ {
+ fprintf (cgraph_dump_file, "Merging nodes for %s. Candidates:\n",
+ symtab_node_asm_name (first));
+ for (e = first; e; e = e->symbol.next_sharing_asm_name)
+ dump_symtab_node (cgraph_dump_file, e);
+ }
+
/* Compute the symbol resolutions. This is a no-op when using the
- linker plugin. */
- lto_symtab_resolve_symbols (slot);
+ linker plugin and resolution was decided by the linker. */
+ lto_symtab_resolve_symbols (first);
/* Find the prevailing decl. */
- for (prevailing = (lto_symtab_entry_t) *slot;
+ for (prevailing = first;
prevailing
- && prevailing->resolution != LDPR_PREVAILING_DEF_IRONLY
- && prevailing->resolution != LDPR_PREVAILING_DEF_IRONLY_EXP
- && prevailing->resolution != LDPR_PREVAILING_DEF;
- prevailing = prevailing->next)
+ && (!symtab_real_symbol_p (prevailing)
+ || (prevailing->symbol.resolution != LDPR_PREVAILING_DEF_IRONLY
+ && prevailing->symbol.resolution != LDPR_PREVAILING_DEF_IRONLY_EXP
+ && prevailing->symbol.resolution != LDPR_PREVAILING_DEF));
+ prevailing = prevailing->symbol.next_sharing_asm_name)
;
/* Assert it's the only one. */
if (prevailing)
- for (e = prevailing->next; e; e = e->next)
- {
- if (e->resolution == LDPR_PREVAILING_DEF_IRONLY
- || e->resolution == LDPR_PREVAILING_DEF_IRONLY_EXP
- || e->resolution == LDPR_PREVAILING_DEF)
- fatal_error ("multiple prevailing defs for %qE",
- DECL_NAME (prevailing->decl));
- }
+ for (e = prevailing->symbol.next_sharing_asm_name; e; e = e->symbol.next_sharing_asm_name)
+ if (symtab_real_symbol_p (e)
+ && (e->symbol.resolution == LDPR_PREVAILING_DEF_IRONLY
+ || e->symbol.resolution == LDPR_PREVAILING_DEF_IRONLY_EXP
+ || e->symbol.resolution == LDPR_PREVAILING_DEF))
+ fatal_error ("multiple prevailing defs for %qE",
+ DECL_NAME (prevailing->symbol.decl));
/* If there's not a prevailing symbol yet it's an external reference.
Happens a lot during ltrans. Choose the first symbol with a
cgraph or a varpool node. */
if (!prevailing)
{
- prevailing = (lto_symtab_entry_t) *slot;
- /* For functions choose one with a cgraph node. */
- if (TREE_CODE (prevailing->decl) == FUNCTION_DECL)
- while (!prevailing->node
- && prevailing->next)
- prevailing = prevailing->next;
+ prevailing = first;
/* For variables chose with a priority variant with vnode
attached (i.e. from unit where external declaration of
variable is actually used).
@@ -628,49 +513,45 @@ lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED)
This is needed for C++ typeinfos, for example in
lto/20081204-1 there are typeifos in both units, just
one of them do have size. */
- if (TREE_CODE (prevailing->decl) == VAR_DECL)
+ if (TREE_CODE (prevailing->symbol.decl) == VAR_DECL)
{
- for (e = prevailing->next; e; e = e->next)
- if ((!prevailing->vnode && e->vnode)
- || ((prevailing->vnode != NULL) == (e->vnode != NULL)
- && !COMPLETE_TYPE_P (TREE_TYPE (prevailing->decl))
- && COMPLETE_TYPE_P (TREE_TYPE (e->decl))))
+ for (e = prevailing->symbol.next_sharing_asm_name;
+ e; e = e->symbol.next_sharing_asm_name)
+ if (!COMPLETE_TYPE_P (TREE_TYPE (prevailing->symbol.decl))
+ && COMPLETE_TYPE_P (TREE_TYPE (e->symbol.decl)))
prevailing = e;
}
}
- /* Move it first in the list. */
- if ((lto_symtab_entry_t) *slot != prevailing)
- {
- for (e = (lto_symtab_entry_t) *slot; e->next != prevailing; e = e->next)
- ;
- e->next = prevailing->next;
- prevailing->next = (lto_symtab_entry_t) *slot;
- *slot = (void *) prevailing;
- }
+ symtab_prevail_in_asm_name_hash (prevailing);
/* Record the prevailing variable. */
- if (TREE_CODE (prevailing->decl) == VAR_DECL)
- VEC_safe_push (tree, gc, lto_global_var_decls, prevailing->decl);
+ if (TREE_CODE (prevailing->symbol.decl) == VAR_DECL)
+ VEC_safe_push (tree, gc, lto_global_var_decls,
+ prevailing->symbol.decl);
/* Diagnose mismatched objects. */
- for (e = prevailing->next; e; e = e->next)
+ for (e = prevailing->symbol.next_sharing_asm_name;
+ e; e = e->symbol.next_sharing_asm_name)
{
- if (TREE_CODE (prevailing->decl) == TREE_CODE (e->decl))
+ if (TREE_CODE (prevailing->symbol.decl)
+ == TREE_CODE (e->symbol.decl))
continue;
- switch (TREE_CODE (prevailing->decl))
+ switch (TREE_CODE (prevailing->symbol.decl))
{
case VAR_DECL:
- gcc_assert (TREE_CODE (e->decl) == FUNCTION_DECL);
- error_at (DECL_SOURCE_LOCATION (e->decl),
- "variable %qD redeclared as function", prevailing->decl);
+ gcc_assert (TREE_CODE (e->symbol.decl) == FUNCTION_DECL);
+ error_at (DECL_SOURCE_LOCATION (e->symbol.decl),
+ "variable %qD redeclared as function",
+ prevailing->symbol.decl);
break;
case FUNCTION_DECL:
- gcc_assert (TREE_CODE (e->decl) == VAR_DECL);
- error_at (DECL_SOURCE_LOCATION (e->decl),
- "function %qD redeclared as variable", prevailing->decl);
+ gcc_assert (TREE_CODE (e->symbol.decl) == VAR_DECL);
+ error_at (DECL_SOURCE_LOCATION (e->symbol.decl),
+ "function %qD redeclared as variable",
+ prevailing->symbol.decl);
break;
default:
@@ -680,12 +561,19 @@ lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED)
diagnosed_p = true;
}
if (diagnosed_p)
- inform (DECL_SOURCE_LOCATION (prevailing->decl),
+ inform (DECL_SOURCE_LOCATION (prevailing->symbol.decl),
"previously declared here");
/* Merge the chain to the single prevailing decl and diagnose
mismatches. */
- lto_symtab_merge_decls_2 (slot, diagnosed_p);
+ lto_symtab_merge_decls_2 (first, diagnosed_p);
+
+ if (cgraph_dump_file)
+ {
+ fprintf (cgraph_dump_file, "After resolution:\n");
+ for (e = first; e; e = e->symbol.next_sharing_asm_name)
+ dump_symtab_node (cgraph_dump_file, e);
+ }
/* Store resolution decision into the callgraph.
In LTRANS don't overwrite information we stored into callgraph at
@@ -698,11 +586,9 @@ lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED)
PREVAILING_DEF, PREVAILING_DEF_IRONLY, PREVAILING_DEF_IRONLY_EXP.
First one would disable some whole program optimizations, while
ther second would imply to many whole program assumptions. */
- if (prevailing->node && !flag_ltrans && !prevailing->guessed)
- prevailing->node->symbol.resolution = prevailing->resolution;
- else if (prevailing->vnode && !flag_ltrans && !prevailing->guessed)
- prevailing->vnode->symbol.resolution = prevailing->resolution;
- return 1;
+ if (resolution_guessed_p (prevailing))
+ prevailing->symbol.resolution = LDPR_UNKNOWN;
+ return;
}
/* Resolve and merge all symbol table chains to a prevailing decl. */
@@ -710,50 +596,46 @@ lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED)
void
lto_symtab_merge_decls (void)
{
- lto_symtab_maybe_init_hash_table ();
- htab_traverse (lto_symtab_identifiers, lto_symtab_merge_decls_1, NULL);
+ symtab_node node;
+
+ /* In ltrans mode we read merged cgraph, we do not really need to care
+ about resolving symbols again, we only need to replace duplicated declarations
+ read from the callgraph and from function sections. */
+ if (flag_ltrans)
+ return;
+
+ /* Populate assembler name hash. */
+ symtab_initialize_asm_name_hash ();
+
+ FOR_EACH_SYMBOL (node)
+ if (TREE_PUBLIC (node->symbol.decl)
+ && node->symbol.next_sharing_asm_name
+ && !node->symbol.previous_sharing_asm_name)
+ lto_symtab_merge_decls_1 (node);
}
/* Helper to process the decl chain for the symbol table entry *SLOT. */
-static int
-lto_symtab_merge_cgraph_nodes_1 (void **slot, void *data ATTRIBUTE_UNUSED)
+static void
+lto_symtab_merge_cgraph_nodes_1 (symtab_node prevailing)
{
- lto_symtab_entry_t e, prevailing = (lto_symtab_entry_t) *slot;
-
- if (!prevailing->next)
- return 1;
+ symtab_node e, next;
/* Replace the cgraph node of each entry with the prevailing one. */
- for (e = prevailing->next; e; e = e->next)
+ for (e = prevailing->symbol.next_sharing_asm_name; e;
+ e = next)
{
- if (e->node != NULL)
- {
- /* In case we prevail funcion by an alias, we can run into case
- that the alias has no cgraph node attached, since it was
- previously unused. Create the node. */
- if (!prevailing->node)
- {
- prevailing->node = cgraph_create_node (prevailing->decl);
- prevailing->node->alias = true;
- }
- lto_cgraph_replace_node (e->node, prevailing->node);
- }
- if (e->vnode != NULL)
- {
- if (!prevailing->vnode)
- {
- prevailing->vnode = varpool_node (prevailing->decl);
- prevailing->vnode->alias = true;
- }
- lto_varpool_replace_node (e->vnode, prevailing->vnode);
- }
- }
+ next = e->symbol.next_sharing_asm_name;
- /* Drop all but the prevailing decl from the symtab. */
- prevailing->next = NULL;
+ if (!symtab_real_symbol_p (e))
+ continue;
+ if (symtab_function_p (e))
+ lto_cgraph_replace_node (cgraph (e), cgraph (prevailing));
+ if (symtab_variable_p (e))
+ lto_varpool_replace_node (varpool (e), varpool (prevailing));
+ }
- return 1;
+ return;
}
/* Merge cgraph nodes according to the symbol merging done by
@@ -762,18 +644,33 @@ lto_symtab_merge_cgraph_nodes_1 (void **slot, void *data ATTRIBUTE_UNUSED)
void
lto_symtab_merge_cgraph_nodes (void)
{
- struct cgraph_node *node;
+ struct cgraph_node *cnode;
struct varpool_node *vnode;
- lto_symtab_maybe_init_hash_table ();
- htab_traverse (lto_symtab_identifiers, lto_symtab_merge_cgraph_nodes_1, NULL);
+ symtab_node node;
+
+ /* Populate assembler name hash. */
+ symtab_initialize_asm_name_hash ();
- FOR_EACH_FUNCTION (node)
- if ((node->thunk.thunk_p || node->alias)
- && node->thunk.alias)
- node->thunk.alias = lto_symtab_prevailing_decl (node->thunk.alias);
+ if (!flag_ltrans)
+ FOR_EACH_SYMBOL (node)
+ if (TREE_PUBLIC (node->symbol.decl)
+ && node->symbol.next_sharing_asm_name
+ && !node->symbol.previous_sharing_asm_name)
+ lto_symtab_merge_cgraph_nodes_1 (node);
+
+ FOR_EACH_FUNCTION (cnode)
+ {
+ if ((cnode->thunk.thunk_p || cnode->alias)
+ && cnode->thunk.alias)
+ cnode->thunk.alias = lto_symtab_prevailing_decl (cnode->thunk.alias);
+ cnode->symbol.aux = NULL;
+ }
FOR_EACH_VARIABLE (vnode)
- if (vnode->alias_of)
- vnode->alias_of = lto_symtab_prevailing_decl (vnode->alias_of);
+ {
+ if (vnode->alias_of)
+ vnode->alias_of = lto_symtab_prevailing_decl (vnode->alias_of);
+ vnode->symbol.aux = NULL;
+ }
}
/* Given the decl DECL, return the prevailing decl with the same name. */
@@ -781,7 +678,7 @@ lto_symtab_merge_cgraph_nodes (void)
tree
lto_symtab_prevailing_decl (tree decl)
{
- lto_symtab_entry_t ret;
+ symtab_node ret;
/* Builtins and local symbols are their own prevailing decl. */
if (!TREE_PUBLIC (decl) || is_builtin_fn (decl))
@@ -795,12 +692,9 @@ lto_symtab_prevailing_decl (tree decl)
gcc_assert (DECL_ASSEMBLER_NAME_SET_P (decl));
/* Walk through the list of candidates and return the one we merged to. */
- ret = lto_symtab_get ((*targetm.asm_out.mangle_assembler_name)
- (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))));
+ ret = symtab_node_for_asm (DECL_ASSEMBLER_NAME (decl));
if (!ret)
- return NULL_TREE;
+ return decl;
- return ret->decl;
+ return ret->symbol.decl;
}
-
-#include "gt-lto-symtab.h"
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 8b2a469d8..7c437d6c9 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,17 @@
+2012-09-20 Martin Jambor <mjambor@suse.cz>
+
+ * lto.c (lto_materialize_function): Call push_struct_function and
+ pop_cfun.
+
+2012-09-19 Dehao Chen <dehao@google.com>
+
+ * lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
+
+2012-09-19 Jan Hubicka <jh@suse.cz>
+
+ * lto.c (lto_materialize_function): Update confused comment.
+ (read_cgraph_and_symbols): Do not free symtab.
+
2012-09-12 Jan Hubicka <jh@suse.cz>
* lto.c (do_whole_program_analysis): Care timevars, statistics and
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index c15f9cff5..44718537b 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -198,7 +198,7 @@ lto_materialize_function (struct cgraph_node *node)
and also functions that are needed to produce virtual clones. */
if (cgraph_function_with_gimple_body_p (node) || has_analyzed_clone_p (node))
{
- /* Clones and thunks don't need to be read. */
+ /* Clones don't need to be read. */
if (node->clone_of)
return;
@@ -221,7 +221,7 @@ lto_materialize_function (struct cgraph_node *node)
gcc_assert (DECL_STRUCT_FUNCTION (decl) == NULL);
- allocate_struct_function (decl, false);
+ push_struct_function (decl);
announce_function (decl);
lto_input_function_body (file_data, decl, data);
if (DECL_FUNCTION_PERSONALITY (decl) && !first_personality_decl)
@@ -229,6 +229,7 @@ lto_materialize_function (struct cgraph_node *node)
lto_stats.num_function_bodies++;
lto_free_section_data (file_data, LTO_section_function_body, name,
data, len);
+ pop_cfun ();
ggc_collect ();
}
}
@@ -2734,7 +2735,6 @@ lto_fixup_prevailing_decls (tree t)
else if (EXPR_P (t))
{
int i;
- LTO_NO_PREVAIL (t->exp.block);
for (i = TREE_OPERAND_LENGTH (t) - 1; i >= 0; --i)
LTO_SET_PREVAIL (TREE_OPERAND (t, i));
}
@@ -3006,7 +3006,6 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames)
VEC_safe_push (ipa_opt_pass, heap,
node->ipa_transforms_to_apply,
(ipa_opt_pass)&pass_ipa_inline);
- lto_symtab_free ();
timevar_pop (TV_IPA_LTO_CGRAPH_MERGE);
@@ -3035,7 +3034,6 @@ materialize_cgraph (void)
fprintf (stderr,
flag_wpa ? "Materializing decls:" : "Reading function bodies:");
-
/* Now that we have input the cgraph, we need to clear all of the aux
nodes and read the functions if we are not running in WPA mode. */
timevar_push (TV_IPA_LTO_GIMPLE_IN);
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index 59f8978be..34d2e8302 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -1246,9 +1246,9 @@ loop_single_full_bb_p (struct loop *loop)
/* Dump file:line from INSN's location info to dump_file. */
static void
-dump_insn_locator (rtx insn)
+dump_insn_location (rtx insn)
{
- if (dump_file && INSN_LOCATOR (insn))
+ if (dump_file && INSN_LOCATION (insn))
{
const char *file = insn_file (insn);
if (file)
@@ -1282,7 +1282,7 @@ loop_canon_p (struct loop *loop)
rtx insn = BB_END (loop->header);
fprintf (dump_file, "SMS loop many exits");
- dump_insn_locator (insn);
+ dump_insn_location (insn);
fprintf (dump_file, "\n");
}
return false;
@@ -1295,7 +1295,7 @@ loop_canon_p (struct loop *loop)
rtx insn = BB_END (loop->header);
fprintf (dump_file, "SMS loop many BBs.");
- dump_insn_locator (insn);
+ dump_insn_location (insn);
fprintf (dump_file, "\n");
}
return false;
@@ -1421,7 +1421,7 @@ sms_schedule (void)
rtx insn = BB_END (loop->header);
fprintf (dump_file, "SMS loop num: %d", loop->num);
- dump_insn_locator (insn);
+ dump_insn_location (insn);
fprintf (dump_file, "\n");
}
@@ -1450,7 +1450,7 @@ sms_schedule (void)
{
if (dump_file)
{
- dump_insn_locator (tail);
+ dump_insn_location (tail);
fprintf (dump_file, "\nSMS single-bb-loop\n");
if (profile_info && flag_branch_probabilities)
{
@@ -1556,7 +1556,7 @@ sms_schedule (void)
rtx insn = BB_END (loop->header);
fprintf (dump_file, "SMS loop num: %d", loop->num);
- dump_insn_locator (insn);
+ dump_insn_location (insn);
fprintf (dump_file, "\n");
print_ddg (dump_file, g);
@@ -1571,7 +1571,7 @@ sms_schedule (void)
if (dump_file)
{
- dump_insn_locator (tail);
+ dump_insn_location (tail);
fprintf (dump_file, "\nSMS single-bb-loop\n");
if (profile_info && flag_branch_probabilities)
{
@@ -1714,7 +1714,7 @@ sms_schedule (void)
if (dump_file)
{
- dump_insn_locator (tail);
+ dump_insn_location (tail);
fprintf (dump_file, " SMS succeeded %d %d (with ii, sc)\n",
ps->ii, stage_count);
print_partial_schedule (ps, dump_file);
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 9474167ce..4d32fb6d3 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -1243,7 +1243,7 @@ static void
finalize_task_copyfn (gimple task_stmt)
{
struct function *child_cfun;
- tree child_fn, old_fn;
+ tree child_fn;
gimple_seq seq = NULL, new_seq;
gimple bind;
@@ -1257,9 +1257,7 @@ finalize_task_copyfn (gimple task_stmt)
DECL_STRUCT_FUNCTION (child_fn)->curr_properties
= cfun->curr_properties & ~PROP_loops;
- old_fn = current_function_decl;
push_cfun (child_cfun);
- current_function_decl = child_fn;
bind = gimplify_body (child_fn, false);
gimple_seq_add_stmt (&seq, bind);
new_seq = maybe_catch_exception (seq);
@@ -1271,7 +1269,6 @@ finalize_task_copyfn (gimple task_stmt)
}
gimple_set_body (child_fn, seq);
pop_cfun ();
- current_function_decl = old_fn;
cgraph_add_new_function (child_fn, false);
}
@@ -3388,7 +3385,6 @@ expand_omp_taskreg (struct omp_region *region)
basic_block entry_bb, exit_bb, new_bb;
struct function *child_cfun;
tree child_fn, block, t;
- tree save_current;
gimple_stmt_iterator gsi;
gimple entry_stmt, stmt;
edge e;
@@ -3588,8 +3584,6 @@ expand_omp_taskreg (struct omp_region *region)
/* Fix the callgraph edges for child_cfun. Those for cfun will be
fixed in a following pass. */
push_cfun (child_cfun);
- save_current = current_function_decl;
- current_function_decl = child_fn;
if (optimize)
optimize_omp_library_calls (entry_stmt);
rebuild_cgraph_edges ();
@@ -3610,7 +3604,6 @@ expand_omp_taskreg (struct omp_region *region)
}
if (gimple_in_ssa_p (cfun))
update_ssa (TODO_update_ssa);
- current_function_decl = save_current;
pop_cfun ();
}
@@ -6456,7 +6449,7 @@ create_task_copyfn (gimple task_stmt, omp_context *ctx)
/* Populate the function. */
push_gimplify_context (&gctx);
- current_function_decl = child_fn;
+ push_cfun (child_cfun);
bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, NULL);
TREE_SIDE_EFFECTS (bind) = 1;
@@ -6503,8 +6496,6 @@ create_task_copyfn (gimple task_stmt, omp_context *ctx)
else
tcctx.cb.decl_map = NULL;
- push_cfun (child_cfun);
-
arg = DECL_ARGUMENTS (child_fn);
TREE_TYPE (arg) = build_pointer_type (record_type);
sarg = DECL_CHAIN (arg);
@@ -6662,7 +6653,6 @@ create_task_copyfn (gimple task_stmt, omp_context *ctx)
pop_gimplify_context (NULL);
BIND_EXPR_BODY (bind) = list;
pop_cfun ();
- current_function_decl = ctx->cb.src_fn;
}
/* Lower the OpenMP parallel or task directive in the current statement
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 7cae98cf7..cdd5d6976 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -4108,10 +4108,11 @@ prepare_cmp_insn (rtx x, rtx y, enum rtx_code comparison, rtx size,
XEXP (x, 0), Pmode,
XEXP (y, 0), Pmode,
size, cmp_mode);
-
- *ptest = gen_rtx_fmt_ee (comparison, VOIDmode, result, const0_rtx);
- *pmode = result_mode;
- return;
+ x = result;
+ y = const0_rtx;
+ mode = result_mode;
+ methods = OPTAB_LIB_WIDEN;
+ unsignedp = false;
}
/* Don't allow operands to the compare to trap, as that can put the
diff --git a/gcc/opts.c b/gcc/opts.c
index 0ddb1a0e5..5ab9ad9c4 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -314,15 +314,15 @@ init_options_struct (struct gcc_options *opts, struct gcc_options *opts_set)
}
/* If indicated by the optimization level LEVEL (-Os if SIZE is set,
- -Ofast if FAST is set), apply the option DEFAULT_OPT to OPTS and
- OPTS_SET, diagnostic context DC, location LOC, with language mask
- LANG_MASK and option handlers HANDLERS. */
+ -Ofast if FAST is set, -Og if DEBUG is set), apply the option DEFAULT_OPT
+ to OPTS and OPTS_SET, diagnostic context DC, location LOC, with language
+ mask LANG_MASK and option handlers HANDLERS. */
static void
maybe_default_option (struct gcc_options *opts,
struct gcc_options *opts_set,
const struct default_options *default_opt,
- int level, bool size, bool fast,
+ int level, bool size, bool fast, bool debug,
unsigned int lang_mask,
const struct cl_option_handlers *handlers,
location_t loc,
@@ -335,6 +335,8 @@ maybe_default_option (struct gcc_options *opts,
gcc_assert (level == 2);
if (fast)
gcc_assert (level == 3);
+ if (debug)
+ gcc_assert (level == 1);
switch (default_opt->levels)
{
@@ -351,7 +353,11 @@ maybe_default_option (struct gcc_options *opts,
break;
case OPT_LEVELS_1_PLUS_SPEED_ONLY:
- enabled = (level >= 1 && !size);
+ enabled = (level >= 1 && !size && !debug);
+ break;
+
+ case OPT_LEVELS_1_PLUS_NOT_DEBUG:
+ enabled = (level >= 1 && !debug);
break;
case OPT_LEVELS_2_PLUS:
@@ -359,7 +365,7 @@ maybe_default_option (struct gcc_options *opts,
break;
case OPT_LEVELS_2_PLUS_SPEED_ONLY:
- enabled = (level >= 2 && !size);
+ enabled = (level >= 2 && !size && !debug);
break;
case OPT_LEVELS_3_PLUS:
@@ -405,7 +411,7 @@ static void
maybe_default_options (struct gcc_options *opts,
struct gcc_options *opts_set,
const struct default_options *default_opts,
- int level, bool size, bool fast,
+ int level, bool size, bool fast, bool debug,
unsigned int lang_mask,
const struct cl_option_handlers *handlers,
location_t loc,
@@ -415,7 +421,8 @@ maybe_default_options (struct gcc_options *opts,
for (i = 0; default_opts[i].levels != OPT_LEVELS_NONE; i++)
maybe_default_option (opts, opts_set, &default_opts[i],
- level, size, fast, lang_mask, handlers, loc, dc);
+ level, size, fast, debug,
+ lang_mask, handlers, loc, dc);
}
/* Table of options enabled by default at different levels. */
@@ -444,7 +451,7 @@ static const struct default_options default_options_table[] =
{ OPT_LEVELS_1_PLUS, OPT_ftree_dominator_opts, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_ftree_dse, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_ftree_ter, NULL, 1 },
- { OPT_LEVELS_1_PLUS, OPT_ftree_sra, NULL, 1 },
+ { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_ftree_sra, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_ftree_copyrename, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_ftree_fre, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_ftree_copy_prop, NULL, 1 },
@@ -498,7 +505,7 @@ static const struct default_options default_options_table[] =
/* Inlining of functions reducing size is a good idea with -Os
regardless of them being declared inline. */
{ OPT_LEVELS_3_PLUS_AND_SIZE, OPT_finline_functions, NULL, 1 },
- { OPT_LEVELS_1_PLUS, OPT_finline_functions_called_once, NULL, 1 },
+ { OPT_LEVELS_1_PLUS_NOT_DEBUG, OPT_finline_functions_called_once, NULL, 1 },
{ OPT_LEVELS_3_PLUS, OPT_funswitch_loops, NULL, 1 },
{ OPT_LEVELS_3_PLUS, OPT_fgcse_after_reload, NULL, 1 },
{ OPT_LEVELS_3_PLUS, OPT_ftree_vectorize, NULL, 1 },
@@ -540,6 +547,7 @@ default_options_optimization (struct gcc_options *opts,
opts->x_optimize = 1;
opts->x_optimize_size = 0;
opts->x_optimize_fast = 0;
+ opts->x_optimize_debug = 0;
}
else
{
@@ -555,6 +563,7 @@ default_options_optimization (struct gcc_options *opts,
opts->x_optimize = 255;
opts->x_optimize_size = 0;
opts->x_optimize_fast = 0;
+ opts->x_optimize_debug = 0;
}
}
break;
@@ -565,6 +574,7 @@ default_options_optimization (struct gcc_options *opts,
/* Optimizing for size forces optimize to be 2. */
opts->x_optimize = 2;
opts->x_optimize_fast = 0;
+ opts->x_optimize_debug = 0;
break;
case OPT_Ofast:
@@ -572,6 +582,15 @@ default_options_optimization (struct gcc_options *opts,
opts->x_optimize_size = 0;
opts->x_optimize = 3;
opts->x_optimize_fast = 1;
+ opts->x_optimize_debug = 0;
+ break;
+
+ case OPT_Og:
+ /* -Og selects optimization level 1. */
+ opts->x_optimize_size = 0;
+ opts->x_optimize = 1;
+ opts->x_optimize_fast = 0;
+ opts->x_optimize_debug = 1;
break;
default:
@@ -582,7 +601,8 @@ default_options_optimization (struct gcc_options *opts,
maybe_default_options (opts, opts_set, default_options_table,
opts->x_optimize, opts->x_optimize_size,
- opts->x_optimize_fast, lang_mask, handlers, loc, dc);
+ opts->x_optimize_fast, opts->x_optimize_debug,
+ lang_mask, handlers, loc, dc);
/* -O2 param settings. */
opt2 = (opts->x_optimize >= 2);
@@ -612,7 +632,8 @@ default_options_optimization (struct gcc_options *opts,
maybe_default_options (opts, opts_set,
targetm_common.option_optimization_table,
opts->x_optimize, opts->x_optimize_size,
- opts->x_optimize_fast, lang_mask, handlers, loc, dc);
+ opts->x_optimize_fast, opts->x_optimize_debug,
+ lang_mask, handlers, loc, dc);
}
/* After all options at LOC have been read into OPTS and OPTS_SET,
@@ -1408,6 +1429,7 @@ common_handle_option (struct gcc_options *opts,
case OPT_O:
case OPT_Os:
case OPT_Ofast:
+ case OPT_Og:
/* Currently handled in a prescan. */
break;
diff --git a/gcc/passes.c b/gcc/passes.c
index a47068d25..ba4e98e06 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -337,10 +337,7 @@ static struct gimple_opt_pass pass_all_early_optimizations =
static bool
gate_all_optimizations (void)
{
- return (optimize >= 1
- /* Don't bother doing anything if the program has errors.
- We have to pass down the queue if we already went into SSA */
- && (!seen_error () || gimple_in_ssa_p (cfun)));
+ return optimize >= 1 && !optimize_debug;
}
static struct gimple_opt_pass pass_all_optimizations =
@@ -362,6 +359,33 @@ static struct gimple_opt_pass pass_all_optimizations =
}
};
+/* Gate: execute, or not, all of the non-trivial optimizations. */
+
+static bool
+gate_all_optimizations_g (void)
+{
+ return optimize >= 1 && optimize_debug;
+}
+
+static struct gimple_opt_pass pass_all_optimizations_g =
+{
+ {
+ GIMPLE_PASS,
+ "*all_optimizations_g", /* name */
+ gate_all_optimizations_g, /* gate */
+ NULL, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ TV_OPTIMIZE, /* tv_id */
+ 0, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ 0 /* todo_flags_finish */
+ }
+};
+
static bool
gate_rest_of_compilation (void)
{
@@ -679,7 +703,6 @@ void
dump_passes (void)
{
struct cgraph_node *n, *node = NULL;
- tree save_fndecl = current_function_decl;
create_pass_tab();
@@ -694,7 +717,6 @@ dump_passes (void)
return;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
- current_function_decl = node->symbol.decl;
dump_pass_list (all_lowering_passes, 1);
dump_pass_list (all_small_ipa_passes, 1);
@@ -704,7 +726,6 @@ dump_passes (void)
dump_pass_list (all_passes, 1);
pop_cfun ();
- current_function_decl = save_fndecl;
}
@@ -1494,6 +1515,31 @@ init_optimization_passes (void)
NEXT_PASS (pass_uncprop);
NEXT_PASS (pass_local_pure_const);
}
+ NEXT_PASS (pass_all_optimizations_g);
+ {
+ struct opt_pass **p = &pass_all_optimizations_g.pass.sub;
+ NEXT_PASS (pass_remove_cgraph_callee_edges);
+ NEXT_PASS (pass_strip_predict_hints);
+ /* Lower remaining pieces of GIMPLE. */
+ NEXT_PASS (pass_lower_complex);
+ NEXT_PASS (pass_lower_vector_ssa);
+ /* Perform simple scalar cleanup which is constant/copy propagation. */
+ NEXT_PASS (pass_ccp);
+ NEXT_PASS (pass_object_sizes);
+ /* Copy propagation also copy-propagates constants, this is necessary
+ to forward object-size results properly. */
+ NEXT_PASS (pass_copy_prop);
+ NEXT_PASS (pass_rename_ssa_copies);
+ NEXT_PASS (pass_dce);
+ /* Fold remaining builtins. */
+ NEXT_PASS (pass_fold_builtins);
+ /* ??? We do want some kind of loop invariant motion, but we possibly
+ need to adjust LIM to be more friendly towards preserving accurate
+ debug information here. */
+ NEXT_PASS (pass_late_warn_uninitialized);
+ NEXT_PASS (pass_uncprop);
+ NEXT_PASS (pass_local_pure_const);
+ }
NEXT_PASS (pass_tm_init);
{
struct opt_pass **p = &pass_tm_init.pass.sub;
@@ -1652,14 +1698,12 @@ do_per_function (void (*callback) (void *data), void *data)
&& (!node->clone_of || node->symbol.decl != node->clone_of->symbol.decl))
{
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
- current_function_decl = node->symbol.decl;
callback (data);
if (!flag_wpa)
{
free_dominance_info (CDI_DOMINATORS);
free_dominance_info (CDI_POST_DOMINATORS);
}
- current_function_decl = NULL;
pop_cfun ();
ggc_collect ();
}
@@ -1700,11 +1744,9 @@ do_per_function_toporder (void (*callback) (void *data), void *data)
if (cgraph_function_with_gimple_body_p (node))
{
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
- current_function_decl = node->symbol.decl;
callback (data);
free_dominance_info (CDI_DOMINATORS);
free_dominance_info (CDI_POST_DOMINATORS);
- current_function_decl = NULL;
pop_cfun ();
ggc_collect ();
}
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index d65b6c4f0..301441cc2 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2012-09-19 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.pot: Regenerate.
+
2012-09-15 Joseph Myers <joseph@codesourcery.com>
* vi.po: Update.
diff --git a/gcc/po/gcc.pot b/gcc/po/gcc.pot
index 2c1ab437b..30fb53b6a 100644
--- a/gcc/po/gcc.pot
+++ b/gcc/po/gcc.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2012-06-13 21:47+0000\n"
+"POT-Creation-Date: 2012-09-19 14:55+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,152 +18,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: c-decl.c:4728 c-typeck.c:5958 tree-diagnostic.c:333
-#: c-family/c-pretty-print.c:424 cp/error.c:656 cp/error.c:938
-msgid "<anonymous>"
-msgstr ""
-
-#: c-objc-common.c:173
-msgid "({anonymous})"
-msgstr ""
-
-#: c-parser.c:945 cp/parser.c:22370
-#, gcc-internal-format
-msgid "expected end of line"
-msgstr ""
-
-#: c-parser.c:1795 c-parser.c:1809 c-parser.c:4122 c-parser.c:4575
-#: c-parser.c:4836 c-parser.c:4994 c-parser.c:5011 c-parser.c:5176
-#: c-parser.c:7314 c-parser.c:7349 c-parser.c:7380 c-parser.c:7427
-#: c-parser.c:7608 c-parser.c:8375 c-parser.c:8445 c-parser.c:8488
-#: c-parser.c:9766 c-parser.c:9781 c-parser.c:9790 c-parser.c:9935
-#: c-parser.c:9974 c-parser.c:2501 c-parser.c:7601 cp/parser.c:21806
-#: cp/parser.c:22316
-#, gcc-internal-format
-msgid "expected %<;%>"
-msgstr ""
-
-#: c-parser.c:1839 c-parser.c:2439 c-parser.c:2730 c-parser.c:2795
-#: c-parser.c:3413 c-parser.c:3525 c-parser.c:3530 c-parser.c:4619
-#: c-parser.c:4752 c-parser.c:4916 c-parser.c:5112 c-parser.c:5238
-#: c-parser.c:6387 c-parser.c:6425 c-parser.c:6550 c-parser.c:6694
-#: c-parser.c:6709 c-parser.c:6733 c-parser.c:7899 c-parser.c:7971
-#: c-parser.c:8797 c-parser.c:8818 c-parser.c:8868 c-parser.c:9021
-#: c-parser.c:9100 c-parser.c:9184 c-parser.c:9898 c-parser.c:10722
-#: c-parser.c:8941 c-parser.c:8966 cp/parser.c:22319
-#, gcc-internal-format
-msgid "expected %<(%>"
-msgstr ""
-
-#: c-parser.c:1844 c-parser.c:6395 c-parser.c:6433 c-parser.c:6561
-#: cp/parser.c:21804 cp/parser.c:22334
-#, gcc-internal-format
-msgid "expected %<,%>"
-msgstr ""
-
-#: c-parser.c:1865 c-parser.c:2454 c-parser.c:2766 c-parser.c:2805
-#: c-parser.c:3013 c-parser.c:3177 c-parser.c:3239 c-parser.c:3291
-#: c-parser.c:3420 c-parser.c:3605 c-parser.c:3616 c-parser.c:3625
-#: c-parser.c:4622 c-parser.c:4756 c-parser.c:5035 c-parser.c:5170
-#: c-parser.c:5250 c-parser.c:5801 c-parser.c:5999 c-parser.c:6073
-#: c-parser.c:6154 c-parser.c:6332 c-parser.c:6350 c-parser.c:6371
-#: c-parser.c:6404 c-parser.c:6505 c-parser.c:6574 c-parser.c:6702
-#: c-parser.c:6725 c-parser.c:6746 c-parser.c:6885 c-parser.c:7157
-#: c-parser.c:7693 c-parser.c:7714 c-parser.c:7922 c-parser.c:7975
-#: c-parser.c:8347 c-parser.c:8800 c-parser.c:8821 c-parser.c:8899
-#: c-parser.c:9028 c-parser.c:9165 c-parser.c:9248 c-parser.c:9826
-#: c-parser.c:9943 c-parser.c:9985 c-parser.c:10731 cp/parser.c:22364
-#, gcc-internal-format
-msgid "expected %<)%>"
-msgstr ""
-
-#: c-parser.c:3096 c-parser.c:3910 c-parser.c:3944 c-parser.c:5230
-#: c-parser.c:6497 c-parser.c:6766 c-parser.c:6872 c-parser.c:10634
-#: c-parser.c:10636 cp/parser.c:22328
-#, gcc-internal-format
-msgid "expected %<]%>"
-msgstr ""
-
-#: c-parser.c:3272
-msgid "expected %<;%>, %<,%> or %<)%>"
-msgstr ""
-
-#: c-parser.c:3773 c-parser.c:9782 cp/parser.c:22322 cp/parser.c:24139
-#, gcc-internal-format
-msgid "expected %<}%>"
-msgstr ""
-
-#: c-parser.c:4063 c-parser.c:7942 c-parser.c:10228 c-parser.c:2319
-#: c-parser.c:2522 c-parser.c:7496 cp/parser.c:14413 cp/parser.c:22325
-#, gcc-internal-format
-msgid "expected %<{%>"
-msgstr ""
-
-#: c-parser.c:4282 c-parser.c:4291 c-parser.c:5134 c-parser.c:5475
-#: c-parser.c:7707 c-parser.c:8082 c-parser.c:8139 c-parser.c:9154
-#: cp/parser.c:22358 cp/parser.c:23360
-#, gcc-internal-format
-msgid "expected %<:%>"
-msgstr ""
-
-#: c-parser.c:4830 cp/parser.c:22252
-#, gcc-internal-format
-msgid "expected %<while%>"
-msgstr ""
-
-#: c-parser.c:6285
-msgid "expected %<.%>"
-msgstr ""
-
-#: c-parser.c:7167 c-parser.c:7199 c-parser.c:7439 cp/parser.c:23923
-#: cp/parser.c:23997
-#, gcc-internal-format
-msgid "expected %<@end%>"
-msgstr ""
-
-#: c-parser.c:7856 cp/parser.c:22343
-#, gcc-internal-format
-msgid "expected %<>%>"
-msgstr ""
-
-#: c-parser.c:9252 cp/parser.c:22367
-#, gcc-internal-format
-msgid "expected %<,%> or %<)%>"
-msgstr ""
-
-#: c-parser.c:9505 c-parser.c:9536 c-parser.c:9772 c-parser.c:9924
-#: c-parser.c:3967 cp/parser.c:22346
-#, gcc-internal-format
-msgid "expected %<=%>"
-msgstr ""
-
-#: c-parser.c:10285 c-parser.c:10275 cp/parser.c:26778
-#, gcc-internal-format
-msgid "expected %<#pragma omp section%> or %<}%>"
-msgstr ""
-
-#: c-parser.c:10622 cp/parser.c:22331
-#, gcc-internal-format
-msgid "expected %<[%>"
-msgstr ""
-
-#: c-typeck.c:6601
-msgid "(anonymous)"
-msgstr ""
-
-#: cfgrtl.c:2121
+#: cfgrtl.c:2264
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2249
+#: cfgrtl.c:2392
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:2303
+#: cfgrtl.c:2446
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2310
+#: cfgrtl.c:2453
msgid "return not followed by barrier"
msgstr ""
@@ -217,7 +84,7 @@ msgid ""
"ldd output with constructors/destructors.\n"
msgstr ""
-#: cprop.c:1772
+#: cprop.c:1771
msgid "const/copy propagation disabled"
msgstr ""
@@ -268,40 +135,40 @@ msgstr ""
msgid "negative insn length"
msgstr ""
-#: final.c:2716
+#: final.c:2828
msgid "could not split insn"
msgstr ""
-#: final.c:3124
+#: final.c:3236
msgid "invalid 'asm': "
msgstr ""
-#: final.c:3307
+#: final.c:3364
#, c-format
msgid "nested assembly dialect alternatives"
msgstr ""
-#: final.c:3324 final.c:3336
+#: final.c:3379 final.c:3391
#, c-format
msgid "unterminated assembly dialect alternative"
msgstr ""
-#: final.c:3383
+#: final.c:3516
#, c-format
msgid "operand number missing after %%-letter"
msgstr ""
-#: final.c:3386 final.c:3427
+#: final.c:3519 final.c:3560
#, c-format
msgid "operand number out of range"
msgstr ""
-#: final.c:3444
+#: final.c:3577
#, c-format
msgid "invalid %%-code"
msgstr ""
-#: final.c:3474
+#: final.c:3607
#, c-format
msgid "'%%l' operand isn't a label"
msgstr ""
@@ -312,12 +179,12 @@ msgstr ""
#. TARGET_PRINT_OPERAND must handle them.
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3615 config/i386/i386.c:13276 config/pdp11/pdp11.c:1689
+#: final.c:3748 config/i386/i386.c:13550 config/pdp11/pdp11.c:1689
#, c-format
msgid "floating constant misused"
msgstr ""
-#: final.c:3673 config/i386/i386.c:13374 config/pdp11/pdp11.c:1730
+#: final.c:3806 config/i386/i386.c:13648 config/pdp11/pdp11.c:1730
#, c-format
msgid "invalid expression as operand"
msgstr ""
@@ -606,43 +473,43 @@ msgid ""
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
-#: gcc.c:5265
+#: gcc.c:5266
#, c-format
msgid "Processing spec (%s), which is '%s'\n"
msgstr ""
-#: gcc.c:6540
+#: gcc.c:6544
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:6543
+#: gcc.c:6547
#, c-format
msgid "programs: %s\n"
msgstr ""
-#: gcc.c:6545
+#: gcc.c:6549
#, c-format
msgid "libraries: %s\n"
msgstr ""
-#: gcc.c:6620
+#: gcc.c:6624
#, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
msgstr ""
-#: gcc.c:6636
+#: gcc.c:6640
#, c-format
msgid "%s %s%s\n"
msgstr ""
-#: gcc.c:6639 gcov.c:488 fortran/gfortranspec.c:305 java/jcf-dump.c:1231
+#: gcc.c:6643 gcov.c:493 fortran/gfortranspec.c:305 java/jcf-dump.c:1231
msgid "(C)"
msgstr ""
-#: gcc.c:6640 java/jcf-dump.c:1232
+#: gcc.c:6644 java/jcf-dump.c:1232
#, c-format
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -650,32 +517,32 @@ msgid ""
"\n"
msgstr ""
-#: gcc.c:6657
+#: gcc.c:6661
#, c-format
msgid "Target: %s\n"
msgstr ""
-#: gcc.c:6658
+#: gcc.c:6662
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6672
+#: gcc.c:6676
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6683
+#: gcc.c:6687
#, c-format
msgid "gcc version %s %s\n"
msgstr ""
-#: gcc.c:6686
+#: gcc.c:6690
#, c-format
msgid "gcc driver version %s %sexecuting gcc version %s\n"
msgstr ""
-#: gcc.c:6940
+#: gcc.c:6944
#, c-format
msgid ""
"\n"
@@ -684,14 +551,14 @@ msgid ""
"\n"
msgstr ""
-#: gcc.c:6941
+#: gcc.c:6945
#, c-format
msgid ""
"Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n"
"\n"
msgstr ""
-#: gcc.c:8134
+#: gcc.c:8138
#, c-format
msgid ""
"Assembler options\n"
@@ -699,107 +566,107 @@ msgid ""
"\n"
msgstr ""
-#: gcc.c:8135
+#: gcc.c:8139
#, c-format
msgid ""
"Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
"\n"
msgstr ""
-#: gcov.c:458
+#: gcov.c:463
#, c-format
msgid ""
"Usage: gcov [OPTION]... SOURCE|OBJ...\n"
"\n"
msgstr ""
-#: gcov.c:459
+#: gcov.c:464
#, c-format
msgid ""
"Print code coverage information.\n"
"\n"
msgstr ""
-#: gcov.c:460
+#: gcov.c:465
#, c-format
msgid " -h, --help Print this help, then exit\n"
msgstr ""
-#: gcov.c:461
+#: gcov.c:466
#, c-format
msgid " -v, --version Print version number, then exit\n"
msgstr ""
-#: gcov.c:462
+#: gcov.c:467
#, c-format
msgid ""
" -a, --all-blocks Show information for every basic block\n"
msgstr ""
-#: gcov.c:463
+#: gcov.c:468
#, c-format
msgid ""
" -b, --branch-probabilities Include branch probabilities in output\n"
msgstr ""
-#: gcov.c:464
+#: gcov.c:469
#, c-format
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr ""
-#: gcov.c:466
+#: gcov.c:471
#, c-format
msgid " -n, --no-output Do not create an output file\n"
msgstr ""
-#: gcov.c:467
+#: gcov.c:472
#, c-format
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
msgstr ""
-#: gcov.c:469
+#: gcov.c:474
#, c-format
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr ""
-#: gcov.c:470
+#: gcov.c:475
#, c-format
msgid ""
" -o, --object-directory DIR|FILE Search for object files in DIR or called "
"FILE\n"
msgstr ""
-#: gcov.c:471
+#: gcov.c:476
#, c-format
msgid " -s, --source-prefix DIR Source prefix to elide\n"
msgstr ""
-#: gcov.c:472
+#: gcov.c:477
#, c-format
msgid " -r, --relative-only Only show data for relative sources\n"
msgstr ""
-#: gcov.c:473
+#: gcov.c:478
#, c-format
msgid " -p, --preserve-paths Preserve all pathname components\n"
msgstr ""
-#: gcov.c:474
+#: gcov.c:479
#, c-format
msgid ""
" -u, --unconditional-branches Show unconditional branch counts too\n"
msgstr ""
-#: gcov.c:475
+#: gcov.c:480
#, c-format
msgid " -d, --display-progress Display progress information\n"
msgstr ""
-#: gcov.c:476
+#: gcov.c:481
#, c-format
msgid ""
"\n"
@@ -807,12 +674,12 @@ msgid ""
"%s.\n"
msgstr ""
-#: gcov.c:486
+#: gcov.c:491
#, c-format
msgid "gcov %s%s\n"
msgstr ""
-#: gcov.c:490
+#: gcov.c:495
#, c-format
msgid ""
"This is free software; see the source for copying conditions.\n"
@@ -821,220 +688,220 @@ msgid ""
"\n"
msgstr ""
-#: gcov.c:675 gcov.c:738
+#: gcov.c:680 gcov.c:743
#, c-format
msgid "\n"
msgstr ""
-#: gcov.c:720
+#: gcov.c:725
#, c-format
msgid "Creating '%s'\n"
msgstr ""
-#: gcov.c:723
+#: gcov.c:728
#, c-format
msgid "Error writing output file '%s'\n"
msgstr ""
-#: gcov.c:728
+#: gcov.c:733
#, c-format
msgid "Could not open output file '%s'\n"
msgstr ""
-#: gcov.c:734
+#: gcov.c:739
#, c-format
msgid "Removing '%s'\n"
msgstr ""
-#: gcov.c:976
+#: gcov.c:981
#, c-format
-msgid "%s:source file is newer than graph file '%s'\n"
+msgid "%s:source file is newer than notes file '%s'\n"
msgstr ""
-#: gcov.c:981
+#: gcov.c:986
#, c-format
msgid "(the message is only displayed one per source file)\n"
msgstr ""
-#: gcov.c:1006
+#: gcov.c:1011
#, c-format
-msgid "%s:cannot open graph file\n"
+msgid "%s:cannot open notes file\n"
msgstr ""
-#: gcov.c:1012
+#: gcov.c:1017
#, c-format
-msgid "%s:not a gcov graph file\n"
+msgid "%s:not a gcov notes file\n"
msgstr ""
-#: gcov.c:1025
+#: gcov.c:1030
#, c-format
msgid "%s:version '%.4s', prefer '%.4s'\n"
msgstr ""
-#: gcov.c:1065
+#: gcov.c:1070
#, c-format
msgid "%s:already seen blocks for '%s'\n"
msgstr ""
-#: gcov.c:1196
+#: gcov.c:1201
#, c-format
msgid "%s:corrupted\n"
msgstr ""
-#: gcov.c:1203
+#: gcov.c:1208
#, c-format
msgid "%s:no functions found\n"
msgstr ""
-#: gcov.c:1222
+#: gcov.c:1227
#, c-format
msgid "%s:cannot open data file, assuming not executed\n"
msgstr ""
-#: gcov.c:1229
+#: gcov.c:1234
#, c-format
msgid "%s:not a gcov data file\n"
msgstr ""
-#: gcov.c:1242
+#: gcov.c:1247
#, c-format
msgid "%s:version '%.4s', prefer version '%.4s'\n"
msgstr ""
-#: gcov.c:1248
+#: gcov.c:1253
#, c-format
-msgid "%s:stamp mismatch with graph file\n"
+msgid "%s:stamp mismatch with notes file\n"
msgstr ""
-#: gcov.c:1283
+#: gcov.c:1288
#, c-format
msgid "%s:unknown function '%u'\n"
msgstr ""
-#: gcov.c:1297
+#: gcov.c:1302
#, c-format
msgid "%s:profile mismatch for '%s'\n"
msgstr ""
-#: gcov.c:1316
+#: gcov.c:1321
#, c-format
msgid "%s:overflowed\n"
msgstr ""
-#: gcov.c:1362
+#: gcov.c:1367
#, c-format
msgid "%s:'%s' lacks entry and/or exit blocks\n"
msgstr ""
-#: gcov.c:1367
+#: gcov.c:1372
#, c-format
msgid "%s:'%s' has arcs to entry block\n"
msgstr ""
-#: gcov.c:1375
+#: gcov.c:1380
#, c-format
msgid "%s:'%s' has arcs from exit block\n"
msgstr ""
-#: gcov.c:1583
+#: gcov.c:1588
#, c-format
msgid "%s:graph is unsolvable for '%s'\n"
msgstr ""
-#: gcov.c:1691
+#: gcov.c:1696
#, c-format
msgid "Lines executed:%s of %d\n"
msgstr ""
-#: gcov.c:1694
+#: gcov.c:1699
#, c-format
msgid "No executable lines\n"
msgstr ""
-#: gcov.c:1702
+#: gcov.c:1707
#, c-format
msgid "%s '%s'\n"
msgstr ""
-#: gcov.c:1709
+#: gcov.c:1714
#, c-format
msgid "Branches executed:%s of %d\n"
msgstr ""
-#: gcov.c:1713
+#: gcov.c:1718
#, c-format
msgid "Taken at least once:%s of %d\n"
msgstr ""
-#: gcov.c:1719
+#: gcov.c:1724
#, c-format
msgid "No branches\n"
msgstr ""
-#: gcov.c:1721
+#: gcov.c:1726
#, c-format
msgid "Calls executed:%s of %d\n"
msgstr ""
-#: gcov.c:1725
+#: gcov.c:1730
#, c-format
msgid "No calls\n"
msgstr ""
-#: gcov.c:1973
+#: gcov.c:1978
#, c-format
msgid "%s:no lines for '%s'\n"
msgstr ""
-#: gcov.c:2167
+#: gcov.c:2172
#, c-format
msgid "call %2d returned %s\n"
msgstr ""
-#: gcov.c:2172
+#: gcov.c:2177
#, c-format
msgid "call %2d never executed\n"
msgstr ""
-#: gcov.c:2177
+#: gcov.c:2182
#, c-format
msgid "branch %2d taken %s%s\n"
msgstr ""
-#: gcov.c:2182
+#: gcov.c:2187
#, c-format
msgid "branch %2d never executed\n"
msgstr ""
-#: gcov.c:2187
+#: gcov.c:2192
#, c-format
msgid "unconditional %2d taken %s\n"
msgstr ""
-#: gcov.c:2190
+#: gcov.c:2195
#, c-format
msgid "unconditional %2d never executed\n"
msgstr ""
-#: gcov.c:2255
+#: gcov.c:2260
#, c-format
msgid "Cannot open source file %s\n"
msgstr ""
-#: gcse.c:2625
+#: gcse.c:2615
msgid "PRE disabled"
msgstr ""
-#: gcse.c:3174
+#: gcse.c:3164
msgid "GCSE disabled"
msgstr ""
-#: gengtype-state.c:154
+#: gengtype-state.c:155
#, c-format
msgid "%s:%d:%d: Invalid state file; %s"
msgstr ""
-#: gengtype-state.c:158
+#: gengtype-state.c:159
#, c-format
msgid "%s:%d: Invalid state file; %s"
msgstr ""
@@ -1042,67 +909,67 @@ msgstr ""
#. Fatal printf-like message while reading state. This can't be a
#. function, because there is no way to pass a va_arg to a variant of
#. fatal.
-#: gengtype-state.c:169
+#: gengtype-state.c:170
#, c-format
msgid "%s:%d:%d: Invalid state file; "
msgstr ""
-#: gengtype-state.c:174
+#: gengtype-state.c:175
#, c-format
msgid "%s:%d: Invalid state file; "
msgstr ""
-#: gengtype-state.c:699
+#: gengtype-state.c:700
#, c-format
msgid "Option tag unknown"
msgstr ""
-#: gengtype-state.c:754
+#: gengtype-state.c:755
#, c-format
msgid "Unexpected type in write_state_scalar_type"
msgstr ""
-#: gengtype-state.c:769
+#: gengtype-state.c:770
#, c-format
msgid "Unexpected type in write_state_string_type"
msgstr ""
-#: gengtype-state.c:973
+#: gengtype-state.c:993
#, c-format
msgid "Unexpected type..."
msgstr ""
-#: gengtype-state.c:1153
+#: gengtype-state.c:1173
#, c-format
msgid "failed to write state trailer [%s]"
msgstr ""
-#: gengtype-state.c:1179
+#: gengtype-state.c:1199
#, c-format
msgid "Failed to open file %s for writing state: %s"
msgstr ""
-#: gengtype-state.c:1209
+#: gengtype-state.c:1229
#, c-format
msgid "output error when writing state file %s [%s]"
msgstr ""
-#: gengtype-state.c:1212
+#: gengtype-state.c:1232
#, c-format
msgid "failed to close state file %s [%s]"
msgstr ""
-#: gengtype-state.c:1215
+#: gengtype-state.c:1235
#, c-format
msgid "failed to rename %s to state file %s [%s]"
msgstr ""
-#: gengtype-state.c:2406
+#: gengtype-state.c:2468
#, c-format
msgid "Failed to open state file %s for reading [%s]"
msgstr ""
-#: gengtype-state.c:2444
+#: gengtype-state.c:2506
#, c-format
msgid "failed to close read state file %s [%s]"
msgstr ""
@@ -1137,7 +1004,7 @@ msgstr ""
msgid "End of search list.\n"
msgstr ""
-#: input.c:78 cp/error.c:1112
+#: input.c:78 cp/error.c:1114
msgid "<built-in>"
msgstr ""
@@ -1151,11 +1018,11 @@ msgstr ""
msgid "'"
msgstr ""
-#: ipa-pure-const.c:155
+#: ipa-pure-const.c:154
msgid "function might be candidate for attribute %<%s%>"
msgstr ""
-#: ipa-pure-const.c:156
+#: ipa-pure-const.c:155
msgid ""
"function might be candidate for attribute %<%s%> if it is known to return "
"normally"
@@ -1165,44 +1032,44 @@ msgstr ""
msgid "At top level:"
msgstr ""
-#: langhooks.c:401 cp/error.c:3027
+#: langhooks.c:401 cp/error.c:3030
#, c-format
msgid "In member function %qs"
msgstr ""
-#: langhooks.c:405 cp/error.c:3030
+#: langhooks.c:405 cp/error.c:3033
#, c-format
msgid "In function %qs"
msgstr ""
-#: langhooks.c:456 cp/error.c:2980
+#: langhooks.c:456 cp/error.c:2983
#, c-format
msgid " inlined from %qs at %s:%d:%d"
msgstr ""
-#: langhooks.c:461 cp/error.c:2985
+#: langhooks.c:461 cp/error.c:2988
#, c-format
msgid " inlined from %qs at %s:%d"
msgstr ""
-#: langhooks.c:467 cp/error.c:2991
+#: langhooks.c:467 cp/error.c:2994
#, c-format
msgid " inlined from %qs"
msgstr ""
-#: loop-iv.c:2966 tree-ssa-loop-niter.c:1907
+#: loop-iv.c:2989 tree-ssa-loop-niter.c:1904
msgid "assuming that the loop is not infinite"
msgstr ""
-#: loop-iv.c:2967 tree-ssa-loop-niter.c:1908
+#: loop-iv.c:2990 tree-ssa-loop-niter.c:1905
msgid "cannot optimize possibly infinite loops"
msgstr ""
-#: loop-iv.c:2975 tree-ssa-loop-niter.c:1912
+#: loop-iv.c:2998 tree-ssa-loop-niter.c:1909
msgid "assuming that the loop counter does not overflow"
msgstr ""
-#: loop-iv.c:2976 tree-ssa-loop-niter.c:1913
+#: loop-iv.c:2999 tree-ssa-loop-niter.c:1910
msgid "cannot optimize loop, the loop counter may overflow"
msgstr ""
@@ -1276,118 +1143,118 @@ msgstr ""
msgid "This switch lacks documentation"
msgstr ""
-#: opts.c:1017
+#: opts.c:1040
msgid "[default]"
msgstr ""
-#: opts.c:1028
+#: opts.c:1051
msgid "[enabled]"
msgstr ""
-#: opts.c:1028
+#: opts.c:1051
msgid "[disabled]"
msgstr ""
-#: opts.c:1047
+#: opts.c:1070
#, c-format
msgid " No options with the desired characteristics were found\n"
msgstr ""
-#: opts.c:1056
+#: opts.c:1079
#, c-format
msgid ""
" None found. Use --help=%s to show *all* the options supported by the %s "
"front-end\n"
msgstr ""
-#: opts.c:1062
+#: opts.c:1085
#, c-format
msgid ""
" All options with the desired characteristics have already been displayed\n"
msgstr ""
-#: opts.c:1157
+#: opts.c:1180
msgid "The following options are target specific"
msgstr ""
-#: opts.c:1160
+#: opts.c:1183
msgid "The following options control compiler warning messages"
msgstr ""
-#: opts.c:1163
+#: opts.c:1186
msgid "The following options control optimizations"
msgstr ""
-#: opts.c:1166 opts.c:1205
+#: opts.c:1189 opts.c:1228
msgid "The following options are language-independent"
msgstr ""
-#: opts.c:1169
+#: opts.c:1192
msgid "The --param option recognizes the following as parameters"
msgstr ""
-#: opts.c:1175
+#: opts.c:1198
msgid "The following options are specific to just the language "
msgstr ""
-#: opts.c:1177
+#: opts.c:1200
msgid "The following options are supported by the language "
msgstr ""
-#: opts.c:1188
+#: opts.c:1211
msgid "The following options are not documented"
msgstr ""
-#: opts.c:1190
+#: opts.c:1213
msgid "The following options take separate arguments"
msgstr ""
-#: opts.c:1192
+#: opts.c:1215
msgid "The following options take joined arguments"
msgstr ""
-#: opts.c:1203
+#: opts.c:1226
msgid "The following options are language-related"
msgstr ""
-#: opts.c:2052
+#: opts.c:2074
msgid "enabled by default"
msgstr ""
-#: plugin.c:782
+#: plugin.c:781
msgid "Event"
msgstr ""
-#: plugin.c:782
+#: plugin.c:781
msgid "Plugins"
msgstr ""
-#: plugin.c:814
+#: plugin.c:813
#, c-format
msgid ""
"*** WARNING *** there are active plugins, do not report this as a bug unless "
"you can reproduce it without enabling any plugins.\n"
msgstr ""
-#: reload.c:3824
+#: reload.c:3879
msgid "unable to generate reloads for:"
msgstr ""
-#: reload1.c:2125
+#: reload1.c:2124
msgid "this is the insn:"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6109
+#: reload1.c:6099
msgid "could not find a spill register"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:7919
+#: reload1.c:7909
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:8679
+#: reload1.c:8684
msgid "failure trying to reload:"
msgstr ""
@@ -1399,20 +1266,20 @@ msgstr ""
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: targhooks.c:1411
+#: targhooks.c:1468
#, c-format
msgid "created and used with differing settings of '%s'"
msgstr ""
-#: targhooks.c:1413
+#: targhooks.c:1470
msgid "out of memory"
msgstr ""
-#: targhooks.c:1428
+#: targhooks.c:1485
msgid "created and used with different settings of -fpic"
msgstr ""
-#: targhooks.c:1430
+#: targhooks.c:1487
msgid "created and used with different settings of -fpie"
msgstr ""
@@ -1436,47 +1303,52 @@ msgstr ""
msgid "collect: relinking\n"
msgstr ""
-#: toplev.c:335
+#: toplev.c:331
#, c-format
msgid "unrecoverable error"
msgstr ""
-#: toplev.c:685
+#: toplev.c:678
#, c-format
msgid ""
"%s%s%s %sversion %s (%s)\n"
"%s\tcompiled by GNU C version %s, "
msgstr ""
-#: toplev.c:687
+#: toplev.c:680
#, c-format
msgid "%s%s%s %sversion %s (%s) compiled by CC, "
msgstr ""
-#: toplev.c:691
+#: toplev.c:684
#, c-format
msgid "GMP version %s, MPFR version %s, MPC version %s\n"
msgstr ""
-#: toplev.c:693
+#: toplev.c:686
#, c-format
msgid "%s%swarning: %s header version %s differs from library version %s.\n"
msgstr ""
-#: toplev.c:695
+#: toplev.c:688
#, c-format
msgid ""
"%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
msgstr ""
-#: toplev.c:855
+#: toplev.c:848
msgid "options passed: "
msgstr ""
-#: toplev.c:883
+#: toplev.c:876
msgid "options enabled: "
msgstr ""
+#: tree-diagnostic.c:333 c-family/c-pretty-print.c:424 c/c-decl.c:4728
+#: c/c-typeck.c:5881 cp/error.c:656 cp/error.c:940
+msgid "<anonymous>"
+msgstr ""
+
#. Function has not be considered for inlining. This is the code for
#. functions that have not been rejected for inlining yet.
#: cif-code.def:38
@@ -2104,237 +1976,240 @@ msgid ""
"The maximum number of RTL nodes that can be recorded as combiner's last value"
msgstr ""
-#: params.def:644
+#: params.def:645
msgid "The upper bound for sharing integer constants"
msgstr ""
-#: params.def:663
-msgid ""
-"Minimum number of virtual mappings to consider switching to full virtual "
-"renames"
-msgstr ""
-
-#: params.def:668
-msgid ""
-"Ratio between virtual mappings and virtual symbols to do full virtual renames"
-msgstr ""
-
-#: params.def:673
+#: params.def:650
msgid ""
"The lower bound for a buffer to be considered for stack smashing protection"
msgstr ""
-#: params.def:691
+#: params.def:668
msgid ""
"Maximum number of statements allowed in a block that needs to be duplicated "
"when threading jumps"
msgstr ""
-#: params.def:700
+#: params.def:677
msgid ""
"Maximum number of fields in a structure before pointer analysis treats the "
"structure as a single variable"
msgstr ""
-#: params.def:705
+#: params.def:682
msgid ""
"The maximum number of instructions ready to be issued to be considered by "
"the scheduler during the first scheduling pass"
msgstr ""
-#: params.def:711
+#: params.def:688
msgid "Maximum number of active local stores in RTL dead store elimination"
msgstr ""
-#: params.def:721
+#: params.def:698
msgid "The number of insns executed before prefetch is completed"
msgstr ""
-#: params.def:728
+#: params.def:705
msgid "The number of prefetches that can run at the same time"
msgstr ""
-#: params.def:735
+#: params.def:712
msgid "The size of L1 cache"
msgstr ""
-#: params.def:742
+#: params.def:719
msgid "The size of L1 cache line"
msgstr ""
-#: params.def:749
+#: params.def:726
msgid "The size of L2 cache"
msgstr ""
-#: params.def:760
+#: params.def:737
msgid "Whether to use canonical types"
msgstr ""
-#: params.def:765
+#: params.def:742
msgid ""
"Maximum length of partial antic set when performing tree pre optimization"
msgstr ""
-#: params.def:775
+#: params.def:752
msgid "Maximum size of a SCC before SCCVN stops processing a function"
msgstr ""
-#: params.def:780
+#: params.def:763
+msgid "Maximum number of disambiguations to perform per memory access"
+msgstr ""
+
+#: params.def:768
msgid "Max loops number for regional RA"
msgstr ""
-#: params.def:785
+#: params.def:773
msgid "Max size of conflict table in MB"
msgstr ""
-#: params.def:790
+#: params.def:778
msgid ""
"The number of registers in each class kept unused by loop invariant motion"
msgstr ""
-#: params.def:798
+#: params.def:786
msgid ""
"The maximum ratio between array size and switch branches for a switch "
"conversion to take place"
msgstr ""
-#: params.def:806
+#: params.def:794
msgid "size of tiles for loop blocking"
msgstr ""
-#: params.def:813
+#: params.def:801
msgid "maximum number of parameters in a SCoP"
msgstr ""
-#: params.def:820
+#: params.def:808
msgid "maximum number of basic blocks per function to be analyzed by Graphite"
msgstr ""
-#: params.def:826
+#: params.def:814
msgid "Maximum number of datarefs in loop for building loop data dependencies"
msgstr ""
-#: params.def:833
+#: params.def:821
msgid "Max basic blocks number in loop for loop invariant motion"
msgstr ""
-#: params.def:839
+#: params.def:827
msgid ""
"Maximum number of instructions in basic block to be considered for SLP "
"vectorization"
msgstr ""
-#: params.def:844
+#: params.def:832
msgid ""
"Min. ratio of insns to prefetches to enable prefetching for a loop with an "
"unknown trip count"
msgstr ""
-#: params.def:850
+#: params.def:838
msgid "Min. ratio of insns to mem ops to enable prefetching in a loop"
msgstr ""
-#: params.def:857
+#: params.def:845
msgid "Max. size of var tracking hash tables"
msgstr ""
-#: params.def:865
+#: params.def:853
msgid "Max. recursion depth for expanding var tracking expressions"
msgstr ""
-#: params.def:872
+#: params.def:860
msgid "The minimum UID to be used for a nondebug insn"
msgstr ""
-#: params.def:877
+#: params.def:865
msgid ""
"Maximum allowed growth of size of new parameters ipa-sra replaces a pointer "
"to an aggregate with"
msgstr ""
-#: params.def:883
+#: params.def:871
msgid ""
"Size in bytes after which thread-local aggregates should be instrumented "
"with the logging functions instead of save/restore pairs"
msgstr ""
-#: params.def:890
+#: params.def:878
msgid ""
"Maximum size of a list of values associated with each parameter for "
"interprocedural constant propagation"
msgstr ""
-#: params.def:896
+#: params.def:884
msgid ""
"Threshold ipa-cp opportunity evaluation that is still considered beneficial "
"to clone."
msgstr ""
-#: params.def:904
+#: params.def:890
+msgid ""
+"Maximum number of aggregate content items for a parameter in jump functions "
+"and lattices"
+msgstr ""
+
+#: params.def:898
msgid "Number of partitions the program should be split to"
msgstr ""
-#: params.def:909
+#: params.def:903
msgid "Minimal size of a partition for LTO (in estimated instructions)"
msgstr ""
-#: params.def:916
+#: params.def:910
msgid ""
"Maximum number of namespaces to search for alternatives when name lookup "
"fails"
msgstr ""
-#: params.def:923
+#: params.def:917
msgid "Maximum number of conditional store pairs that can be sunk"
msgstr ""
-#: params.def:931
+#: params.def:925
msgid ""
"The smallest number of different values for which it is best to use a jump-"
"table instead of a tree of conditional branches, if 0, use the default for "
"the machine"
msgstr ""
-#: params.def:939
+#: params.def:933
msgid "Allow new data races on loads to be introduced"
msgstr ""
-#: params.def:944
+#: params.def:938
msgid "Allow new data races on stores to be introduced"
msgstr ""
-#: params.def:949
+#: params.def:943
msgid "Allow new data races on packed data loads to be introduced"
msgstr ""
-#: params.def:954
+#: params.def:948
msgid "Allow new data races on packed data stores to be introduced"
msgstr ""
-#: params.def:960
+#: params.def:954
msgid ""
"Set the maximum number of instructions executed in parallel in reassociated "
"tree. If 0, use the target dependent heuristic."
msgstr ""
-#: params.def:966
+#: params.def:960
msgid "Maximum amount of similar bbs to compare a bb with"
msgstr ""
-#: params.def:971
+#: params.def:965
msgid "Maximum amount of iterations of the pass over a function"
msgstr ""
-#: params.def:978
+#: params.def:972
msgid ""
"Maximum number of strings for which strlen optimization pass will track "
"string lengths"
msgstr ""
-#: params.def:985
+#: params.def:979
msgid "Which -fsched-pressure algorithm to apply"
msgstr ""
+#: params.def:985
+msgid "Maximum length of candidate scans for straight-line strength reduction"
+msgstr ""
+
#: c-family/c-format.c:368
msgid "format"
msgstr ""
@@ -2604,7 +2479,7 @@ msgid "length modifier in strfmon format"
msgstr ""
#. Handle deferred options from command-line.
-#: c-family/c-opts.c:1371 fortran/cpp.c:581
+#: c-family/c-opts.c:1378 fortran/cpp.c:581
msgid "<command-line>"
msgstr ""
@@ -2636,326 +2511,341 @@ msgstr ""
msgid "<tag-error>"
msgstr ""
-#: c-family/c-pretty-print.c:1230
+#: c-family/c-pretty-print.c:1229
msgid "<erroneous-expression>"
msgstr ""
-#: c-family/c-pretty-print.c:1234 cp/cxx-pretty-print.c:153
+#: c-family/c-pretty-print.c:1233 cp/cxx-pretty-print.c:153
msgid "<return-value>"
msgstr ""
-#: c-family/c-pretty-print.c:2148 cp/error.c:1809 cp/error.c:2753
+#: c-family/c-pretty-print.c:2148 cp/error.c:1812 cp/error.c:2756
msgid "<unknown>"
msgstr ""
-#: config/alpha/alpha.c:5045
+#: config/alpha/alpha.c:5066
#, c-format
msgid "invalid %%H value"
msgstr ""
-#: config/alpha/alpha.c:5066 config/bfin/bfin.c:1424
+#: config/alpha/alpha.c:5087 config/bfin/bfin.c:1427
#, c-format
msgid "invalid %%J value"
msgstr ""
-#: config/alpha/alpha.c:5096 config/ia64/ia64.c:5482
+#: config/alpha/alpha.c:5117 config/ia64/ia64.c:5445
#, c-format
msgid "invalid %%r value"
msgstr ""
-#: config/alpha/alpha.c:5106 config/ia64/ia64.c:5436
-#: config/rs6000/rs6000.c:14834 config/xtensa/xtensa.c:2350
+#: config/alpha/alpha.c:5127 config/ia64/ia64.c:5399
+#: config/rs6000/rs6000.c:14910 config/xtensa/xtensa.c:2356
#, c-format
msgid "invalid %%R value"
msgstr ""
-#: config/alpha/alpha.c:5112 config/rs6000/rs6000.c:14753
-#: config/xtensa/xtensa.c:2317
+#: config/alpha/alpha.c:5133 config/rs6000/rs6000.c:14829
+#: config/xtensa/xtensa.c:2323
#, c-format
msgid "invalid %%N value"
msgstr ""
-#: config/alpha/alpha.c:5120 config/rs6000/rs6000.c:14781
+#: config/alpha/alpha.c:5141 config/rs6000/rs6000.c:14857
#, c-format
msgid "invalid %%P value"
msgstr ""
-#: config/alpha/alpha.c:5128
+#: config/alpha/alpha.c:5149
#, c-format
msgid "invalid %%h value"
msgstr ""
-#: config/alpha/alpha.c:5136 config/xtensa/xtensa.c:2343
+#: config/alpha/alpha.c:5157 config/xtensa/xtensa.c:2349
#, c-format
msgid "invalid %%L value"
msgstr ""
-#: config/alpha/alpha.c:5175 config/rs6000/rs6000.c:14735
+#: config/alpha/alpha.c:5196 config/rs6000/rs6000.c:14811
#, c-format
msgid "invalid %%m value"
msgstr ""
-#: config/alpha/alpha.c:5183 config/rs6000/rs6000.c:14743
+#: config/alpha/alpha.c:5204 config/rs6000/rs6000.c:14819
#, c-format
msgid "invalid %%M value"
msgstr ""
-#: config/alpha/alpha.c:5227
+#: config/alpha/alpha.c:5248
#, c-format
msgid "invalid %%U value"
msgstr ""
-#: config/alpha/alpha.c:5235 config/alpha/alpha.c:5246
-#: config/rs6000/rs6000.c:14842
+#: config/alpha/alpha.c:5256 config/alpha/alpha.c:5267
+#: config/rs6000/rs6000.c:14918
#, c-format
msgid "invalid %%s value"
msgstr ""
-#: config/alpha/alpha.c:5257
+#: config/alpha/alpha.c:5278
#, c-format
msgid "invalid %%C value"
msgstr ""
-#: config/alpha/alpha.c:5294 config/rs6000/rs6000.c:14600
+#: config/alpha/alpha.c:5315 config/rs6000/rs6000.c:14676
#, c-format
msgid "invalid %%E value"
msgstr ""
-#: config/alpha/alpha.c:5319 config/alpha/alpha.c:5367
+#: config/alpha/alpha.c:5340 config/alpha/alpha.c:5388
#, c-format
msgid "unknown relocation unspec"
msgstr ""
-#: config/alpha/alpha.c:5328 config/cr16/cr16.c:1537
-#: config/rs6000/rs6000.c:15191 config/spu/spu.c:1743
+#: config/alpha/alpha.c:5349 config/cr16/cr16.c:1539
+#: config/rs6000/rs6000.c:15267 config/spu/spu.c:1448
#, c-format
msgid "invalid %%xn code"
msgstr ""
-#: config/arm/arm.c:17474 config/arm/arm.c:17492
+#: config/arm/arm.c:16813 config/arm/arm.c:16831
#, c-format
msgid "predicated Thumb instruction"
msgstr ""
-#: config/arm/arm.c:17480
+#: config/arm/arm.c:16819
#, c-format
msgid "predicated instruction in conditional sequence"
msgstr ""
-#: config/arm/arm.c:17611 config/arm/arm.c:17624
+#: config/arm/arm.c:16950 config/arm/arm.c:16963
#, c-format
msgid "Unsupported operand for code '%c'"
msgstr ""
-#: config/arm/arm.c:17672
+#: config/arm/arm.c:17001
#, c-format
msgid "invalid shift operand"
msgstr ""
-#: config/arm/arm.c:17729 config/arm/arm.c:17751 config/arm/arm.c:17761
-#: config/arm/arm.c:17771 config/arm/arm.c:17781 config/arm/arm.c:17820
-#: config/arm/arm.c:17838 config/arm/arm.c:17873 config/arm/arm.c:17892
-#: config/arm/arm.c:17907 config/arm/arm.c:17934 config/arm/arm.c:17941
-#: config/arm/arm.c:17959 config/arm/arm.c:17966 config/arm/arm.c:17974
-#: config/arm/arm.c:17995 config/arm/arm.c:18002 config/arm/arm.c:18127
-#: config/arm/arm.c:18134 config/arm/arm.c:18157 config/arm/arm.c:18164
-#: config/bfin/bfin.c:1437 config/bfin/bfin.c:1444 config/bfin/bfin.c:1451
-#: config/bfin/bfin.c:1458 config/bfin/bfin.c:1467 config/bfin/bfin.c:1474
-#: config/bfin/bfin.c:1481 config/bfin/bfin.c:1488
+#: config/arm/arm.c:17058 config/arm/arm.c:17080 config/arm/arm.c:17090
+#: config/arm/arm.c:17100 config/arm/arm.c:17110 config/arm/arm.c:17149
+#: config/arm/arm.c:17167 config/arm/arm.c:17192 config/arm/arm.c:17207
+#: config/arm/arm.c:17234 config/arm/arm.c:17241 config/arm/arm.c:17259
+#: config/arm/arm.c:17266 config/arm/arm.c:17274 config/arm/arm.c:17295
+#: config/arm/arm.c:17302 config/arm/arm.c:17427 config/arm/arm.c:17434
+#: config/arm/arm.c:17457 config/arm/arm.c:17464 config/bfin/bfin.c:1440
+#: config/bfin/bfin.c:1447 config/bfin/bfin.c:1454 config/bfin/bfin.c:1461
+#: config/bfin/bfin.c:1470 config/bfin/bfin.c:1477 config/bfin/bfin.c:1484
+#: config/bfin/bfin.c:1491
#, c-format
msgid "invalid operand for code '%c'"
msgstr ""
-#: config/arm/arm.c:17833
+#: config/arm/arm.c:17162
#, c-format
msgid "instruction never executed"
msgstr ""
-#: config/arm/arm.c:18176
+#. Former Maverick support, removed after GCC-4.7.
+#: config/arm/arm.c:17183
+#, c-format
+msgid "obsolete Maverick format code '%c'"
+msgstr ""
+
+#: config/arm/arm.c:17476
#, c-format
msgid "missing operand"
msgstr ""
-#: config/arm/arm.c:20984
+#: config/arm/arm.c:20249
msgid "function parameters cannot have __fp16 type"
msgstr ""
-#: config/arm/arm.c:20994
+#: config/arm/arm.c:20259
msgid "functions cannot return __fp16 type"
msgstr ""
-#: config/avr/avr.c:1812
+#: config/avr/avr.c:1910
#, c-format
msgid "address operand requires constraint for X, Y, or Z register"
msgstr ""
-#: config/avr/avr.c:1965
+#: config/avr/avr.c:2063
msgid "operands to %T/%t must be reg + const_int:"
msgstr ""
-#: config/avr/avr.c:2003 config/avr/avr.c:2058
+#: config/avr/avr.c:2103 config/avr/avr.c:2158
msgid "bad address, not an I/O address:"
msgstr ""
-#: config/avr/avr.c:2012
+#: config/avr/avr.c:2112
msgid "bad address, not a constant:"
msgstr ""
-#: config/avr/avr.c:2030
+#: config/avr/avr.c:2130
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:2037
+#: config/avr/avr.c:2137
msgid "bad address, not post_inc or pre_dec:"
msgstr ""
-#: config/avr/avr.c:2048
+#: config/avr/avr.c:2148
msgid "internal compiler error. Bad address:"
msgstr ""
-#: config/avr/avr.c:2078
+#: config/avr/avr.c:2177
+#, c-format
+msgid "Unsupported code '%c'for fixed-point:"
+msgstr ""
+
+#: config/avr/avr.c:2186
msgid "internal compiler error. Unknown mode:"
msgstr ""
-#: config/avr/avr.c:2877 config/avr/avr.c:3450 config/avr/avr.c:3736
+#: config/avr/avr.c:2982 config/avr/avr.c:3556 config/avr/avr.c:3842
msgid "invalid insn:"
msgstr ""
-#: config/avr/avr.c:2906 config/avr/avr.c:2981 config/avr/avr.c:3024
-#: config/avr/avr.c:3043 config/avr/avr.c:3134 config/avr/avr.c:3303
-#: config/avr/avr.c:3513 config/avr/avr.c:3629 config/avr/avr.c:3765
-#: config/avr/avr.c:3856 config/avr/avr.c:3978
+#: config/avr/avr.c:3011 config/avr/avr.c:3086 config/avr/avr.c:3129
+#: config/avr/avr.c:3148 config/avr/avr.c:3239 config/avr/avr.c:3408
+#: config/avr/avr.c:3619 config/avr/avr.c:3735 config/avr/avr.c:3871
+#: config/avr/avr.c:3962 config/avr/avr.c:4084
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:3058 config/avr/avr.c:3219 config/avr/avr.c:3374
-#: config/avr/avr.c:3582 config/avr/avr.c:3675 config/avr/avr.c:3912
-#: config/avr/avr.c:4033
+#: config/avr/avr.c:3163 config/avr/avr.c:3324 config/avr/avr.c:3479
+#: config/avr/avr.c:3688 config/avr/avr.c:3781 config/avr/avr.c:4018
+#: config/avr/avr.c:4139
msgid "unknown move insn:"
msgstr ""
-#: config/avr/avr.c:4447
+#: config/avr/avr.c:4564
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:4555 config/avr/avr.c:5036 config/avr/avr.c:5451
+#: config/avr/avr.c:4672 config/avr/avr.c:5153 config/avr/avr.c:5568
msgid "internal compiler error. Incorrect shift:"
msgstr ""
-#: config/bfin/bfin.c:1386
+#: config/avr/avr.c:6991
+msgid "unsupported fixed-point conversion"
+msgstr ""
+
+#: config/bfin/bfin.c:1389
#, c-format
msgid "invalid %%j value"
msgstr ""
-#: config/bfin/bfin.c:1579 config/c6x/c6x.c:2292
+#: config/bfin/bfin.c:1582 config/c6x/c6x.c:2292
#, c-format
msgid "invalid const_double operand"
msgstr ""
-#: config/cris/cris.c:579 config/moxie/moxie.c:111 final.c:3129 final.c:3131
-#: fold-const.c:284 gcc.c:4623 gcc.c:4637 loop-iv.c:2968 loop-iv.c:2977
-#: rtl-error.c:103 toplev.c:339 tree-ssa-loop-niter.c:1916 tree-vrp.c:6487
-#: cp/typeck.c:5450 java/expr.c:390 lto/lto-object.c:184 lto/lto-object.c:282
+#: config/cris/cris.c:581 config/moxie/moxie.c:111 final.c:3241 final.c:3243
+#: fold-const.c:283 gcc.c:4624 gcc.c:4638 loop-iv.c:2991 loop-iv.c:3000
+#: rtl-error.c:103 toplev.c:335 tree-ssa-loop-niter.c:1913 tree-vrp.c:6637
+#: cp/typeck.c:5492 java/expr.c:390 lto/lto-object.c:184 lto/lto-object.c:282
#: lto/lto-object.c:339 lto/lto-object.c:363
#, gcc-internal-format, gfc-internal-format
msgid "%s"
msgstr ""
-#: config/cris/cris.c:630
+#: config/cris/cris.c:632
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:647
+#: config/cris/cris.c:649
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:711
+#: config/cris/cris.c:713
msgid "invalid operand for 'b' modifier"
msgstr ""
-#: config/cris/cris.c:728
+#: config/cris/cris.c:730
msgid "invalid operand for 'o' modifier"
msgstr ""
-#: config/cris/cris.c:747
+#: config/cris/cris.c:749
msgid "invalid operand for 'O' modifier"
msgstr ""
-#: config/cris/cris.c:780
+#: config/cris/cris.c:782
msgid "invalid operand for 'p' modifier"
msgstr ""
-#: config/cris/cris.c:819
+#: config/cris/cris.c:821
msgid "invalid operand for 'z' modifier"
msgstr ""
-#: config/cris/cris.c:883 config/cris/cris.c:917
+#: config/cris/cris.c:885 config/cris/cris.c:919
msgid "invalid operand for 'H' modifier"
msgstr ""
-#: config/cris/cris.c:893
+#: config/cris/cris.c:895
msgid "bad register"
msgstr ""
-#: config/cris/cris.c:937
+#: config/cris/cris.c:939
msgid "invalid operand for 'e' modifier"
msgstr ""
-#: config/cris/cris.c:954
+#: config/cris/cris.c:956
msgid "invalid operand for 'm' modifier"
msgstr ""
-#: config/cris/cris.c:979
+#: config/cris/cris.c:981
msgid "invalid operand for 'A' modifier"
msgstr ""
-#: config/cris/cris.c:1002
+#: config/cris/cris.c:1051
msgid "invalid operand for 'D' modifier"
msgstr ""
-#: config/cris/cris.c:1016
+#: config/cris/cris.c:1065
msgid "invalid operand for 'T' modifier"
msgstr ""
-#: config/cris/cris.c:1036 config/moxie/moxie.c:181
+#: config/cris/cris.c:1085 config/moxie/moxie.c:181
msgid "invalid operand modifier letter"
msgstr ""
-#: config/cris/cris.c:1093
+#: config/cris/cris.c:1142
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1113 config/moxie/moxie.c:206
+#: config/cris/cris.c:1162 config/moxie/moxie.c:206
msgid "unexpected operand"
msgstr ""
-#: config/cris/cris.c:1152 config/cris/cris.c:1162
+#: config/cris/cris.c:1201 config/cris/cris.c:1211
msgid "unrecognized address"
msgstr ""
-#: config/cris/cris.c:2468
+#: config/cris/cris.c:2507
msgid "unrecognized supposed constant"
msgstr ""
-#: config/cris/cris.c:2845 config/cris/cris.c:2909
+#: config/cris/cris.c:2908 config/cris/cris.c:2972
msgid "unexpected side-effects in address"
msgstr ""
#. Can't possibly get a GOT-needing-fixup for a function-call,
#. right?
-#: config/cris/cris.c:3751
+#: config/cris/cris.c:3814
msgid "unidentifiable call op"
msgstr ""
-#: config/cris/cris.c:3803
+#: config/cris/cris.c:3866
#, c-format
msgid "PIC register isn't set up"
msgstr ""
#. Unknown flag.
#. Undocumented flag.
-#: config/epiphany/epiphany.c:1195 config/m32r/m32r.c:2217
-#: config/sparc/sparc.c:8356
+#: config/epiphany/epiphany.c:1196 config/m32r/m32r.c:2217
+#: config/sparc/sparc.c:8369
#, c-format
msgid "invalid operand output code"
msgstr ""
@@ -3006,150 +2896,150 @@ msgstr ""
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
-#: config/frv/frv.c:2532
+#: config/frv/frv.c:2536
msgid "bad insn to frv_print_operand_address:"
msgstr ""
-#: config/frv/frv.c:2543
+#: config/frv/frv.c:2547
msgid "bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/frv/frv.c:2582 config/frv/frv.c:2592 config/frv/frv.c:2601
-#: config/frv/frv.c:2622 config/frv/frv.c:2627
+#: config/frv/frv.c:2586 config/frv/frv.c:2596 config/frv/frv.c:2605
+#: config/frv/frv.c:2626 config/frv/frv.c:2631
msgid "bad insn to frv_print_operand_memory_reference:"
msgstr ""
-#: config/frv/frv.c:2713
+#: config/frv/frv.c:2717
#, c-format
msgid "bad condition code"
msgstr ""
-#: config/frv/frv.c:2789
+#: config/frv/frv.c:2793
msgid "bad insn in frv_print_operand, bad const_double"
msgstr ""
-#: config/frv/frv.c:2850
+#: config/frv/frv.c:2854
msgid "bad insn to frv_print_operand, 'e' modifier:"
msgstr ""
-#: config/frv/frv.c:2858
+#: config/frv/frv.c:2862
msgid "bad insn to frv_print_operand, 'F' modifier:"
msgstr ""
-#: config/frv/frv.c:2874
+#: config/frv/frv.c:2878
msgid "bad insn to frv_print_operand, 'f' modifier:"
msgstr ""
-#: config/frv/frv.c:2888
+#: config/frv/frv.c:2892
msgid "bad insn to frv_print_operand, 'g' modifier:"
msgstr ""
-#: config/frv/frv.c:2936
+#: config/frv/frv.c:2940
msgid "bad insn to frv_print_operand, 'L' modifier:"
msgstr ""
-#: config/frv/frv.c:2949
+#: config/frv/frv.c:2953
msgid "bad insn to frv_print_operand, 'M/N' modifier:"
msgstr ""
-#: config/frv/frv.c:2970
+#: config/frv/frv.c:2974
msgid "bad insn to frv_print_operand, 'O' modifier:"
msgstr ""
-#: config/frv/frv.c:2988
+#: config/frv/frv.c:2992
msgid "bad insn to frv_print_operand, P modifier:"
msgstr ""
-#: config/frv/frv.c:3008
+#: config/frv/frv.c:3012
msgid "bad insn in frv_print_operand, z case"
msgstr ""
-#: config/frv/frv.c:3039
+#: config/frv/frv.c:3043
msgid "bad insn in frv_print_operand, 0 case"
msgstr ""
-#: config/frv/frv.c:3044
+#: config/frv/frv.c:3048
msgid "frv_print_operand: unknown code"
msgstr ""
-#: config/frv/frv.c:4451
+#: config/frv/frv.c:4455
msgid "bad output_move_single operand"
msgstr ""
-#: config/frv/frv.c:4578
+#: config/frv/frv.c:4582
msgid "bad output_move_double operand"
msgstr ""
-#: config/frv/frv.c:4720
+#: config/frv/frv.c:4724
msgid "bad output_condmove_single operand"
msgstr ""
-#: config/i386/i386.c:13368
+#: config/i386/i386.c:13642
#, c-format
msgid "invalid UNSPEC as operand"
msgstr ""
-#: config/i386/i386.c:14069
+#: config/i386/i386.c:14343
#, c-format
msgid "invalid operand size for operand code 'O'"
msgstr ""
-#: config/i386/i386.c:14104
+#: config/i386/i386.c:14378
#, c-format
msgid "invalid operand size for operand code 'z'"
msgstr ""
-#: config/i386/i386.c:14174
+#: config/i386/i386.c:14448
#, c-format
msgid "invalid operand type used with operand code 'Z'"
msgstr ""
-#: config/i386/i386.c:14179
+#: config/i386/i386.c:14453
#, c-format
msgid "invalid operand size for operand code 'Z'"
msgstr ""
-#: config/i386/i386.c:14254
+#: config/i386/i386.c:14528
#, c-format
msgid "operand is not a condition code, invalid operand code 'Y'"
msgstr ""
-#: config/i386/i386.c:14327
+#: config/i386/i386.c:14601
#, c-format
msgid "operand is not a condition code, invalid operand code 'D'"
msgstr ""
-#: config/i386/i386.c:14344
+#: config/i386/i386.c:14618
#, c-format
msgid "operand is not a condition code, invalid operand code '%c'"
msgstr ""
-#: config/i386/i386.c:14357
+#: config/i386/i386.c:14631
#, c-format
msgid ""
"operand is not an offsettable memory reference, invalid operand code 'H'"
msgstr ""
-#: config/i386/i386.c:14393
+#: config/i386/i386.c:14667
#, c-format
msgid "'%%&' used without any local dynamic TLS references"
msgstr ""
-#: config/i386/i386.c:14466
+#: config/i386/i386.c:14740
#, c-format
msgid "invalid operand code '%c'"
msgstr ""
-#: config/i386/i386.c:14521
+#: config/i386/i386.c:14795
#, c-format
msgid "invalid constraints for operand"
msgstr ""
-#: config/i386/i386.c:23491
+#: config/i386/i386.c:23832
msgid "unknown insn mode"
msgstr ""
-#: config/i386/i386-interix.h:78 config/i386/i386.opt:242
+#: config/i386/i386-interix.h:78 config/i386/i386.opt:250
msgid "Use native (MS) bitfield layout"
msgstr ""
@@ -3174,40 +3064,40 @@ msgstr ""
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr ""
-#: config/ia64/ia64.c:5364
+#: config/ia64/ia64.c:5327
#, c-format
msgid "invalid %%G mode"
msgstr ""
-#: config/ia64/ia64.c:5534
+#: config/ia64/ia64.c:5497
#, c-format
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:11094
+#: config/ia64/ia64.c:11057
msgid "invalid conversion from %<__fpreg%>"
msgstr ""
-#: config/ia64/ia64.c:11097
+#: config/ia64/ia64.c:11060
msgid "invalid conversion to %<__fpreg%>"
msgstr ""
-#: config/ia64/ia64.c:11110 config/ia64/ia64.c:11121
+#: config/ia64/ia64.c:11073 config/ia64/ia64.c:11084
msgid "invalid operation on %<__fpreg%>"
msgstr ""
-#: config/iq2000/iq2000.c:3131 config/tilegx/tilegx.c:5132
+#: config/iq2000/iq2000.c:3133 config/tilegx/tilegx.c:5207
#: config/tilepro/tilepro.c:4697
#, c-format
msgid "invalid %%P operand"
msgstr ""
-#: config/iq2000/iq2000.c:3139 config/rs6000/rs6000.c:14771
+#: config/iq2000/iq2000.c:3141 config/rs6000/rs6000.c:14847
#, c-format
msgid "invalid %%p value"
msgstr ""
-#: config/iq2000/iq2000.c:3196
+#: config/iq2000/iq2000.c:3198
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr ""
@@ -3281,7 +3171,7 @@ msgid "post-increment address is not a register"
msgstr ""
#: config/m32r/m32r.c:2321 config/m32r/m32r.c:2336
-#: config/rs6000/rs6000.c:24801
+#: config/rs6000/rs6000.c:24873
msgid "bad address"
msgstr ""
@@ -3289,115 +3179,115 @@ msgstr ""
msgid "lo_sum not of register"
msgstr ""
-#: config/mep/mep.c:3361
+#: config/mep/mep.c:3236
#, c-format
msgid "invalid %%L code"
msgstr ""
-#: config/microblaze/microblaze.c:1734
+#: config/microblaze/microblaze.c:1737
#, c-format
msgid "unknown punctuation '%c'"
msgstr ""
-#: config/microblaze/microblaze.c:1743
+#: config/microblaze/microblaze.c:1746
#, c-format
msgid "null pointer"
msgstr ""
-#: config/microblaze/microblaze.c:1778
+#: config/microblaze/microblaze.c:1781
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%C"
msgstr ""
-#: config/microblaze/microblaze.c:1807
+#: config/microblaze/microblaze.c:1810
#, c-format
msgid "PRINT_OPERAND, invalid insn for %%N"
msgstr ""
-#: config/microblaze/microblaze.c:1827 config/microblaze/microblaze.c:1988
+#: config/microblaze/microblaze.c:1830 config/microblaze/microblaze.c:1991
msgid "insn contains an invalid address !"
msgstr ""
-#: config/microblaze/microblaze.c:1841 config/microblaze/microblaze.c:2028
-#: config/xtensa/xtensa.c:2437
+#: config/microblaze/microblaze.c:1844 config/microblaze/microblaze.c:2031
+#: config/xtensa/xtensa.c:2443
msgid "invalid address"
msgstr ""
-#: config/microblaze/microblaze.c:1940
+#: config/microblaze/microblaze.c:1943
#, c-format
msgid "letter %c was found & insn was not CONST_INT"
msgstr ""
-#: config/mips/mips.c:7754 config/mips/mips.c:7775 config/mips/mips.c:7895
+#: config/mips/mips.c:7848 config/mips/mips.c:7869 config/mips/mips.c:7990
#, c-format
msgid "'%%%c' is not a valid operand prefix"
msgstr ""
-#: config/mips/mips.c:7832 config/mips/mips.c:7839 config/mips/mips.c:7846
-#: config/mips/mips.c:7853 config/mips/mips.c:7913 config/mips/mips.c:7927
-#: config/mips/mips.c:7940 config/mips/mips.c:7949
+#: config/mips/mips.c:7927 config/mips/mips.c:7934 config/mips/mips.c:7941
+#: config/mips/mips.c:7948 config/mips/mips.c:8008 config/mips/mips.c:8022
+#: config/mips/mips.c:8040 config/mips/mips.c:8049
#, c-format
msgid "invalid use of '%%%c'"
msgstr ""
-#: config/mmix/mmix.c:1612 config/mmix/mmix.c:1742
+#: config/mmix/mmix.c:1530 config/mmix/mmix.c:1660
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:1691
+#: config/mmix/mmix.c:1609
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:1710
+#: config/mmix/mmix.c:1628
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:1720
+#: config/mmix/mmix.c:1638
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:1804
+#: config/mmix/mmix.c:1722
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:1861
+#: config/mmix/mmix.c:1778
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:2741
+#: config/mmix/mmix.c:2658
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:2748
+#: config/mmix/mmix.c:2665
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2752
+#: config/mmix/mmix.c:2669
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:2816
+#: config/mmix/mmix.c:2733
msgid "MMIX Internal: This is not a constant:"
msgstr ""
-#: config/picochip/picochip.c:2664
+#: config/picochip/picochip.c:2662
msgid "picochip_print_memory_address - Operand isn't memory based"
msgstr ""
-#: config/picochip/picochip.c:2923
+#: config/picochip/picochip.c:2921
msgid "Unknown mode in print_operand (CONST_DOUBLE) :"
msgstr ""
-#: config/picochip/picochip.c:2969 config/picochip/picochip.c:3001
+#: config/picochip/picochip.c:2967 config/picochip/picochip.c:2999
msgid "Bad address, not (reg+disp):"
msgstr ""
-#: config/picochip/picochip.c:3015
+#: config/picochip/picochip.c:3013
msgid "Bad address, not register:"
msgstr ""
-#: config/rl78/rl78.c:1207 config/rl78/rl78.c:1246
+#: config/rl78/rl78.c:1208 config/rl78/rl78.c:1247
#, c-format
msgid "q/Q modifiers invalid for symbol references"
msgstr ""
@@ -3412,342 +3302,337 @@ msgstr ""
msgid "Try running '%s' in the shell to raise its limit.\n"
msgstr ""
-#: config/rs6000/rs6000.c:2618
+#: config/rs6000/rs6000.c:2580
msgid "-mvsx requires hardware floating point"
msgstr ""
-#: config/rs6000/rs6000.c:2623
+#: config/rs6000/rs6000.c:2585
msgid "-mvsx and -mpaired are incompatible"
msgstr ""
-#: config/rs6000/rs6000.c:2628
+#: config/rs6000/rs6000.c:2590
msgid "-mvsx used with little endian code"
msgstr ""
-#: config/rs6000/rs6000.c:2630
+#: config/rs6000/rs6000.c:2592
msgid "-mvsx needs indexed addressing"
msgstr ""
-#: config/rs6000/rs6000.c:2634
+#: config/rs6000/rs6000.c:2596
msgid "-mvsx and -mno-altivec are incompatible"
msgstr ""
-#: config/rs6000/rs6000.c:2636
+#: config/rs6000/rs6000.c:2598
msgid "-mno-altivec disables vsx"
msgstr ""
-#: config/rs6000/rs6000.c:7201
+#: config/rs6000/rs6000.c:7255
msgid "bad move"
msgstr ""
-#: config/rs6000/rs6000.c:14581
-#, c-format
-msgid "invalid %%c value"
-msgstr ""
-
-#: config/rs6000/rs6000.c:14609
+#: config/rs6000/rs6000.c:14685
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:14618
+#: config/rs6000/rs6000.c:14694
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:14627
+#: config/rs6000/rs6000.c:14703
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:14662
+#: config/rs6000/rs6000.c:14738
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:14672
+#: config/rs6000/rs6000.c:14748
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:14682
+#: config/rs6000/rs6000.c:14758
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/rs6000/rs6000.c:14697 config/xtensa/xtensa.c:2336
+#: config/rs6000/rs6000.c:14773 config/xtensa/xtensa.c:2342
#, c-format
msgid "invalid %%K value"
msgstr ""
-#: config/rs6000/rs6000.c:14761
+#: config/rs6000/rs6000.c:14837
#, c-format
msgid "invalid %%O value"
msgstr ""
-#: config/rs6000/rs6000.c:14808
+#: config/rs6000/rs6000.c:14884
#, c-format
msgid "invalid %%q value"
msgstr ""
-#: config/rs6000/rs6000.c:14852
+#: config/rs6000/rs6000.c:14928
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/rs6000/rs6000.c:14892
+#: config/rs6000/rs6000.c:14968
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:14902
+#: config/rs6000/rs6000.c:14978
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:14911 config/xtensa/xtensa.c:2306
+#: config/rs6000/rs6000.c:14987 config/xtensa/xtensa.c:2312
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/rs6000.c:14993 config/xtensa/xtensa.c:2357
+#: config/rs6000/rs6000.c:15069 config/xtensa/xtensa.c:2363
#, c-format
msgid "invalid %%x value"
msgstr ""
-#: config/rs6000/rs6000.c:15139
+#: config/rs6000/rs6000.c:15215
#, c-format
msgid "invalid %%y value, try using the 'Z' constraint"
msgstr ""
-#: config/rs6000/rs6000.c:27214
+#: config/rs6000/rs6000.c:27284
msgid "AltiVec argument passed to unprototyped function"
msgstr ""
-#: config/s390/s390.c:5145
+#: config/s390/s390.c:5287
#, c-format
msgid "symbolic memory references are only supported on z10 or later"
msgstr ""
-#: config/s390/s390.c:5156
+#: config/s390/s390.c:5298
#, c-format
msgid "cannot decompose address"
msgstr ""
-#: config/s390/s390.c:5215
+#: config/s390/s390.c:5357
#, c-format
msgid "invalid comparison operator for 'E' output modifier"
msgstr ""
-#: config/s390/s390.c:5236
+#: config/s390/s390.c:5378
#, c-format
msgid "invalid reference for 'J' output modifier"
msgstr ""
-#: config/s390/s390.c:5250
+#: config/s390/s390.c:5392
#, c-format
msgid "memory reference expected for 'O' output modifier"
msgstr ""
-#: config/s390/s390.c:5261
+#: config/s390/s390.c:5403
#, c-format
msgid "invalid address for 'O' output modifier"
msgstr ""
-#: config/s390/s390.c:5279
+#: config/s390/s390.c:5421
#, c-format
msgid "memory reference expected for 'R' output modifier"
msgstr ""
-#: config/s390/s390.c:5290
+#: config/s390/s390.c:5432
#, c-format
msgid "invalid address for 'R' output modifier"
msgstr ""
-#: config/s390/s390.c:5308
+#: config/s390/s390.c:5450
#, c-format
msgid "memory reference expected for 'S' output modifier"
msgstr ""
-#: config/s390/s390.c:5318
+#: config/s390/s390.c:5460
#, c-format
msgid "invalid address for 'S' output modifier"
msgstr ""
-#: config/s390/s390.c:5339
+#: config/s390/s390.c:5481
#, c-format
msgid "register or memory expression expected for 'N' output modifier"
msgstr ""
-#: config/s390/s390.c:5350
+#: config/s390/s390.c:5492
#, c-format
msgid "register or memory expression expected for 'M' output modifier"
msgstr ""
-#: config/s390/s390.c:5415
+#: config/s390/s390.c:5557
#, c-format
msgid "invalid constant - try using an output modifier"
msgstr ""
-#: config/s390/s390.c:5418
+#: config/s390/s390.c:5560
#, c-format
msgid "invalid constant for output modifier '%c'"
msgstr ""
-#: config/s390/s390.c:5425
+#: config/s390/s390.c:5567
#, c-format
msgid "invalid expression - try using an output modifier"
msgstr ""
-#: config/s390/s390.c:5428
+#: config/s390/s390.c:5570
#, c-format
msgid "invalid expression for output modifier '%c'"
msgstr ""
-#: config/score/score.c:1343
+#: config/score/score.c:1316
#, c-format
msgid "invalid operand for code: '%c'"
msgstr ""
-#: config/sh/sh.c:1081
+#: config/sh/sh.c:1088
#, c-format
msgid "invalid operand to %%R"
msgstr ""
-#: config/sh/sh.c:1108
+#: config/sh/sh.c:1115
#, c-format
msgid "invalid operand to %%S"
msgstr ""
-#: config/sh/sh.c:9328
+#: config/sh/sh.c:9599
msgid "created and used with different architectures / ABIs"
msgstr ""
-#: config/sh/sh.c:9330
+#: config/sh/sh.c:9601
msgid "created and used with different ABIs"
msgstr ""
-#: config/sh/sh.c:9332
+#: config/sh/sh.c:9603
msgid "created and used with different endianness"
msgstr ""
-#: config/sparc/sparc.c:8180 config/sparc/sparc.c:8186
+#: config/sparc/sparc.c:8193 config/sparc/sparc.c:8199
#, c-format
msgid "invalid %%Y operand"
msgstr ""
-#: config/sparc/sparc.c:8256
+#: config/sparc/sparc.c:8269
#, c-format
msgid "invalid %%A operand"
msgstr ""
-#: config/sparc/sparc.c:8266
+#: config/sparc/sparc.c:8279
#, c-format
msgid "invalid %%B operand"
msgstr ""
-#: config/sparc/sparc.c:8295 config/tilegx/tilegx.c:4935
+#: config/sparc/sparc.c:8308 config/tilegx/tilegx.c:4990
#: config/tilepro/tilepro.c:4500
#, c-format
msgid "invalid %%C operand"
msgstr ""
-#: config/sparc/sparc.c:8312 config/tilegx/tilegx.c:4968
+#: config/sparc/sparc.c:8325 config/tilegx/tilegx.c:5023
#, c-format
msgid "invalid %%D operand"
msgstr ""
-#: config/sparc/sparc.c:8328
+#: config/sparc/sparc.c:8341
#, c-format
msgid "invalid %%f operand"
msgstr ""
-#: config/sparc/sparc.c:8342
+#: config/sparc/sparc.c:8355
#, c-format
msgid "invalid %%s operand"
msgstr ""
-#: config/sparc/sparc.c:8396
+#: config/sparc/sparc.c:8409
#, c-format
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:8399
+#: config/sparc/sparc.c:8412
#, c-format
msgid "floating point constant not a valid immediate operand"
msgstr ""
-#: config/stormy16/stormy16.c:1724 config/stormy16/stormy16.c:1795
+#: config/stormy16/stormy16.c:1729 config/stormy16/stormy16.c:1800
#, c-format
msgid "'B' operand is not constant"
msgstr ""
-#: config/stormy16/stormy16.c:1751
+#: config/stormy16/stormy16.c:1756
#, c-format
msgid "'B' operand has multiple bits set"
msgstr ""
-#: config/stormy16/stormy16.c:1777
+#: config/stormy16/stormy16.c:1782
#, c-format
msgid "'o' operand is not constant"
msgstr ""
-#: config/stormy16/stormy16.c:1809
+#: config/stormy16/stormy16.c:1814
#, c-format
msgid "xstormy16_print_operand: unknown code"
msgstr ""
-#: config/tilegx/tilegx.c:4920 config/tilepro/tilepro.c:4485
+#: config/tilegx/tilegx.c:4975 config/tilepro/tilepro.c:4485
#, c-format
msgid "invalid %%c operand"
msgstr ""
-#: config/tilegx/tilegx.c:4951
+#: config/tilegx/tilegx.c:5006
#, c-format
msgid "invalid %%d operand"
msgstr ""
-#: config/tilegx/tilegx.c:5034
+#: config/tilegx/tilegx.c:5103
#, c-format
msgid "invalid %%H specifier"
msgstr ""
-#: config/tilegx/tilegx.c:5070 config/tilepro/tilepro.c:4514
+#: config/tilegx/tilegx.c:5145 config/tilepro/tilepro.c:4514
#, c-format
msgid "invalid %%h operand"
msgstr ""
-#: config/tilegx/tilegx.c:5082 config/tilepro/tilepro.c:4578
+#: config/tilegx/tilegx.c:5157 config/tilepro/tilepro.c:4578
#, c-format
msgid "invalid %%I operand"
msgstr ""
-#: config/tilegx/tilegx.c:5096 config/tilepro/tilepro.c:4592
+#: config/tilegx/tilegx.c:5171 config/tilepro/tilepro.c:4592
#, c-format
msgid "invalid %%i operand"
msgstr ""
-#: config/tilegx/tilegx.c:5119 config/tilepro/tilepro.c:4615
+#: config/tilegx/tilegx.c:5194 config/tilepro/tilepro.c:4615
#, c-format
msgid "invalid %%j operand"
msgstr ""
-#: config/tilegx/tilegx.c:5150
+#: config/tilegx/tilegx.c:5225
#, c-format
msgid "invalid %%%c operand"
msgstr ""
-#: config/tilegx/tilegx.c:5165 config/tilepro/tilepro.c:4729
+#: config/tilegx/tilegx.c:5240 config/tilepro/tilepro.c:4729
#, c-format
msgid "invalid %%N operand"
msgstr ""
-#: config/tilegx/tilegx.c:5209
+#: config/tilegx/tilegx.c:5284
#, c-format
msgid "invalid operand for 'r' specifier"
msgstr ""
-#: config/tilegx/tilegx.c:5234 config/tilepro/tilepro.c:4811
+#: config/tilegx/tilegx.c:5309 config/tilepro/tilepro.c:4811
#, c-format
msgid "unable to print out operand yet; code == %d (%c)"
msgstr ""
@@ -3790,62 +3675,190 @@ msgstr ""
msgid "output_move_single:"
msgstr ""
-#: config/vax/vax.c:456
+#: config/vax/vax.c:459
#, c-format
msgid "symbol used with both base and indexed registers"
msgstr ""
-#: config/vax/vax.c:465
+#: config/vax/vax.c:468
#, c-format
msgid "symbol with offset used in PIC mode"
msgstr ""
-#: config/vax/vax.c:553
+#: config/vax/vax.c:556
#, c-format
msgid "symbol used as immediate operand"
msgstr ""
-#: config/vax/vax.c:1576
+#: config/vax/vax.c:1581
msgid "illegal operand detected"
msgstr ""
-#: config/xtensa/xtensa.c:760 config/xtensa/xtensa.c:792
-#: config/xtensa/xtensa.c:801
+#: config/xtensa/xtensa.c:766 config/xtensa/xtensa.c:798
+#: config/xtensa/xtensa.c:807
msgid "bad test"
msgstr ""
-#: config/xtensa/xtensa.c:2294
+#: config/xtensa/xtensa.c:2300
#, c-format
msgid "invalid %%D value"
msgstr ""
-#: config/xtensa/xtensa.c:2331
+#: config/xtensa/xtensa.c:2337
msgid "invalid mask"
msgstr ""
-#: config/xtensa/xtensa.c:2364
+#: config/xtensa/xtensa.c:2370
#, c-format
msgid "invalid %%d value"
msgstr ""
-#: config/xtensa/xtensa.c:2385 config/xtensa/xtensa.c:2395
+#: config/xtensa/xtensa.c:2391 config/xtensa/xtensa.c:2401
#, c-format
msgid "invalid %%t/%%b value"
msgstr ""
-#: config/xtensa/xtensa.c:2462
+#: config/xtensa/xtensa.c:2468
msgid "no register in address"
msgstr ""
-#: config/xtensa/xtensa.c:2470
+#: config/xtensa/xtensa.c:2476
msgid "address offset not a constant"
msgstr ""
-#: cp/call.c:8426
+#: c/c-objc-common.c:173
+msgid "({anonymous})"
+msgstr ""
+
+#: c/c-parser.c:945 cp/parser.c:22386
+#, gcc-internal-format
+msgid "expected end of line"
+msgstr ""
+
+#: c/c-parser.c:1802 c/c-parser.c:1816 c/c-parser.c:4131 c/c-parser.c:4584
+#: c/c-parser.c:4845 c/c-parser.c:5003 c/c-parser.c:5020 c/c-parser.c:5185
+#: c/c-parser.c:7365 c/c-parser.c:7400 c/c-parser.c:7431 c/c-parser.c:7478
+#: c/c-parser.c:7659 c/c-parser.c:8427 c/c-parser.c:8497 c/c-parser.c:8540
+#: c/c-parser.c:9818 c/c-parser.c:9833 c/c-parser.c:9842 c/c-parser.c:9987
+#: c/c-parser.c:10026 c/c-parser.c:2508 c/c-parser.c:7652 cp/parser.c:21822
+#: cp/parser.c:22332
+#, gcc-internal-format
+msgid "expected %<;%>"
+msgstr ""
+
+#: c/c-parser.c:1846 c/c-parser.c:2446 c/c-parser.c:2737 c/c-parser.c:2802
+#: c/c-parser.c:3420 c/c-parser.c:3532 c/c-parser.c:3537 c/c-parser.c:4628
+#: c/c-parser.c:4761 c/c-parser.c:4925 c/c-parser.c:5121 c/c-parser.c:5247
+#: c/c-parser.c:6396 c/c-parser.c:6434 c/c-parser.c:6559 c/c-parser.c:6703
+#: c/c-parser.c:6718 c/c-parser.c:6742 c/c-parser.c:7950 c/c-parser.c:8022
+#: c/c-parser.c:8849 c/c-parser.c:8870 c/c-parser.c:8920 c/c-parser.c:9073
+#: c/c-parser.c:9152 c/c-parser.c:9236 c/c-parser.c:9950 c/c-parser.c:10774
+#: c/c-parser.c:8993 c/c-parser.c:9018 cp/parser.c:22335
+#, gcc-internal-format
+msgid "expected %<(%>"
+msgstr ""
+
+#: c/c-parser.c:1851 c/c-parser.c:6404 c/c-parser.c:6442 c/c-parser.c:6570
+#: cp/parser.c:21820 cp/parser.c:22350
+#, gcc-internal-format
+msgid "expected %<,%>"
+msgstr ""
+
+#: c/c-parser.c:1872 c/c-parser.c:2461 c/c-parser.c:2773 c/c-parser.c:2812
+#: c/c-parser.c:3020 c/c-parser.c:3184 c/c-parser.c:3246 c/c-parser.c:3298
+#: c/c-parser.c:3427 c/c-parser.c:3614 c/c-parser.c:3625 c/c-parser.c:3634
+#: c/c-parser.c:4631 c/c-parser.c:4765 c/c-parser.c:5044 c/c-parser.c:5179
+#: c/c-parser.c:5259 c/c-parser.c:5810 c/c-parser.c:6008 c/c-parser.c:6082
+#: c/c-parser.c:6163 c/c-parser.c:6341 c/c-parser.c:6359 c/c-parser.c:6380
+#: c/c-parser.c:6413 c/c-parser.c:6514 c/c-parser.c:6583 c/c-parser.c:6711
+#: c/c-parser.c:6734 c/c-parser.c:6755 c/c-parser.c:6906 c/c-parser.c:7208
+#: c/c-parser.c:7744 c/c-parser.c:7765 c/c-parser.c:7973 c/c-parser.c:8026
+#: c/c-parser.c:8399 c/c-parser.c:8852 c/c-parser.c:8873 c/c-parser.c:8951
+#: c/c-parser.c:9080 c/c-parser.c:9217 c/c-parser.c:9300 c/c-parser.c:9878
+#: c/c-parser.c:9995 c/c-parser.c:10037 c/c-parser.c:10783 cp/parser.c:22380
+#, gcc-internal-format
+msgid "expected %<)%>"
+msgstr ""
+
+#: c/c-parser.c:3103 c/c-parser.c:3919 c/c-parser.c:3953 c/c-parser.c:5239
+#: c/c-parser.c:6506 c/c-parser.c:6775 c/c-parser.c:6891 c/c-parser.c:10686
+#: c/c-parser.c:10688 cp/parser.c:22344
+#, gcc-internal-format
+msgid "expected %<]%>"
+msgstr ""
+
+#: c/c-parser.c:3279
+msgid "expected %<;%>, %<,%> or %<)%>"
+msgstr ""
+
+#: c/c-parser.c:3782 c/c-parser.c:9834 cp/parser.c:22338 cp/parser.c:24155
+#, gcc-internal-format
+msgid "expected %<}%>"
+msgstr ""
+
+#: c/c-parser.c:4072 c/c-parser.c:7993 c/c-parser.c:10280 c/c-parser.c:2326
+#: c/c-parser.c:2529 c/c-parser.c:7547 cp/parser.c:14461 cp/parser.c:22341
+#, gcc-internal-format
+msgid "expected %<{%>"
+msgstr ""
+
+#: c/c-parser.c:4291 c/c-parser.c:4300 c/c-parser.c:5143 c/c-parser.c:5484
+#: c/c-parser.c:7758 c/c-parser.c:8133 c/c-parser.c:8190 c/c-parser.c:9206
+#: cp/parser.c:22374 cp/parser.c:23376
+#, gcc-internal-format
+msgid "expected %<:%>"
+msgstr ""
+
+#: c/c-parser.c:4839 cp/parser.c:22268
+#, gcc-internal-format
+msgid "expected %<while%>"
+msgstr ""
+
+#: c/c-parser.c:6294
+msgid "expected %<.%>"
+msgstr ""
+
+#: c/c-parser.c:7218 c/c-parser.c:7250 c/c-parser.c:7490 cp/parser.c:23939
+#: cp/parser.c:24013
+#, gcc-internal-format
+msgid "expected %<@end%>"
+msgstr ""
+
+#: c/c-parser.c:7907 cp/parser.c:22359
+#, gcc-internal-format
+msgid "expected %<>%>"
+msgstr ""
+
+#: c/c-parser.c:9304 cp/parser.c:22383
+#, gcc-internal-format
+msgid "expected %<,%> or %<)%>"
+msgstr ""
+
+#: c/c-parser.c:9557 c/c-parser.c:9588 c/c-parser.c:9824 c/c-parser.c:9976
+#: c/c-parser.c:3976 cp/parser.c:22362
+#, gcc-internal-format
+msgid "expected %<=%>"
+msgstr ""
+
+#: c/c-parser.c:10337 c/c-parser.c:10327 cp/parser.c:26796
+#, gcc-internal-format
+msgid "expected %<#pragma omp section%> or %<}%>"
+msgstr ""
+
+#: c/c-parser.c:10674 cp/parser.c:22347
+#, gcc-internal-format
+msgid "expected %<[%>"
+msgstr ""
+
+#: c/c-typeck.c:6524
+msgid "(anonymous)"
+msgstr ""
+
+#: cp/call.c:8441
msgid "candidate 1:"
msgstr ""
-#: cp/call.c:8427
+#: cp/call.c:8442
msgid "candidate 2:"
msgstr ""
@@ -3853,7 +3866,7 @@ msgstr ""
msgid "<unnamed>"
msgstr ""
-#: cp/cxx-pretty-print.c:2147
+#: cp/cxx-pretty-print.c:2144
msgid "template-parameter-"
msgstr ""
@@ -3861,8 +3874,7 @@ msgstr ""
msgid "candidates are: %+#D"
msgstr ""
-#: cp/decl2.c:729 cp/pt.c:1730
-#, gcc-internal-format
+#: cp/decl2.c:729
msgid "candidate is: %+#D"
msgstr ""
@@ -3896,180 +3908,180 @@ msgstr ""
msgid "<typeprefixerror>"
msgstr ""
-#: cp/error.c:905
+#: cp/error.c:907
#, c-format
msgid "(static initializers for %s)"
msgstr ""
-#: cp/error.c:907
+#: cp/error.c:909
#, c-format
msgid "(static destructors for %s)"
msgstr ""
-#: cp/error.c:1006
+#: cp/error.c:1008
msgid "vtable for "
msgstr ""
-#: cp/error.c:1018
+#: cp/error.c:1020
msgid "<return value> "
msgstr ""
-#: cp/error.c:1033
+#: cp/error.c:1035
msgid "{anonymous}"
msgstr ""
-#: cp/error.c:1035
+#: cp/error.c:1037
msgid "(anonymous namespace)"
msgstr ""
-#: cp/error.c:1133
+#: cp/error.c:1135
msgid "<template arguments error>"
msgstr ""
-#: cp/error.c:1154
+#: cp/error.c:1156
msgid "<enumerator>"
msgstr ""
-#: cp/error.c:1194
+#: cp/error.c:1196
msgid "<declaration error>"
msgstr ""
-#: cp/error.c:1437 cp/error.c:2844
+#: cp/error.c:1439 cp/error.c:2847
msgid "with"
msgstr ""
-#: cp/error.c:1637 cp/error.c:1657
+#: cp/error.c:1639 cp/error.c:1659
msgid "<template parameter error>"
msgstr ""
-#: cp/error.c:1783
+#: cp/error.c:1785
msgid "<statement>"
msgstr ""
#. While waiting for caret diagnostics, avoid printing
#. __cxa_allocate_exception, __cxa_throw, and the like.
-#: cp/error.c:1826
+#: cp/error.c:1829
msgid "<throw-expression>"
msgstr ""
-#: cp/error.c:2343
+#: cp/error.c:2346
msgid "<unparsed>"
msgstr ""
-#: cp/error.c:2493
+#: cp/error.c:2496
msgid "<expression error>"
msgstr ""
-#: cp/error.c:2507
+#: cp/error.c:2510
msgid "<unknown operator>"
msgstr ""
-#: cp/error.c:2796
+#: cp/error.c:2799
msgid "{unknown}"
msgstr ""
-#: cp/error.c:2911
+#: cp/error.c:2914
msgid "At global scope:"
msgstr ""
-#: cp/error.c:3017
+#: cp/error.c:3020
#, c-format
msgid "In static member function %qs"
msgstr ""
-#: cp/error.c:3019
+#: cp/error.c:3022
#, c-format
msgid "In copy constructor %qs"
msgstr ""
-#: cp/error.c:3021
+#: cp/error.c:3024
#, c-format
msgid "In constructor %qs"
msgstr ""
-#: cp/error.c:3023
+#: cp/error.c:3026
#, c-format
msgid "In destructor %qs"
msgstr ""
-#: cp/error.c:3025
+#: cp/error.c:3028
msgid "In lambda function"
msgstr ""
-#: cp/error.c:3045
+#: cp/error.c:3048
#, c-format
msgid "%s: In substitution of %qS:\n"
msgstr ""
-#: cp/error.c:3046
+#: cp/error.c:3049
msgid "%s: In instantiation of %q#D:\n"
msgstr ""
-#: cp/error.c:3069
+#: cp/error.c:3072
#, c-format
msgid "%s:%d:%d: "
msgstr ""
-#: cp/error.c:3072
+#: cp/error.c:3075
#, c-format
msgid "%s:%d: "
msgstr ""
-#: cp/error.c:3080
+#: cp/error.c:3083
#, c-format
msgid "recursively required by substitution of %qS\n"
msgstr ""
-#: cp/error.c:3081
+#: cp/error.c:3084
#, c-format
msgid "required by substitution of %qS\n"
msgstr ""
-#: cp/error.c:3086
+#: cp/error.c:3089
msgid "recursively required from %q#D\n"
msgstr ""
-#: cp/error.c:3087
+#: cp/error.c:3090
msgid "required from %q#D\n"
msgstr ""
-#: cp/error.c:3094
+#: cp/error.c:3097
msgid "recursively required from here"
msgstr ""
-#: cp/error.c:3095
+#: cp/error.c:3098
msgid "required from here"
msgstr ""
-#: cp/error.c:3147
+#: cp/error.c:3150
#, c-format
msgid ""
"%s:%d:%d: [ skipping %d instantiation contexts, use -ftemplate-backtrace-"
"limit=0 to disable ]\n"
msgstr ""
-#: cp/error.c:3152
+#: cp/error.c:3155
#, c-format
msgid ""
"%s:%d: [ skipping %d instantiation contexts, use -ftemplate-backtrace-"
"limit=0 to disable ]\n"
msgstr ""
-#: cp/error.c:3215
+#: cp/error.c:3219
#, c-format
msgid "%s:%d:%d: in constexpr expansion of %qs"
msgstr ""
-#: cp/error.c:3219
+#: cp/error.c:3223
#, c-format
msgid "%s:%d: in constexpr expansion of %qs"
msgstr ""
-#: cp/pt.c:1734
+#: cp/pt.c:1737
msgid "candidates are:"
msgstr ""
-#: cp/pt.c:17853 cp/call.c:3320
+#: cp/pt.c:17666 cp/call.c:3297
#, gcc-internal-format
msgid "candidate is:"
msgid_plural "candidates are:"
@@ -4116,127 +4128,147 @@ msgstr ""
msgid "source type is not polymorphic"
msgstr ""
-#: cp/typeck.c:5207 c-typeck.c:3580
+#: cp/typeck.c:5249 c/c-typeck.c:3494
#, gcc-internal-format
msgid "wrong type argument to unary minus"
msgstr ""
-#: cp/typeck.c:5208 c-typeck.c:3567
+#: cp/typeck.c:5250 c/c-typeck.c:3481
#, gcc-internal-format
msgid "wrong type argument to unary plus"
msgstr ""
-#: cp/typeck.c:5235 c-typeck.c:3606
+#: cp/typeck.c:5277 c/c-typeck.c:3520
#, gcc-internal-format
msgid "wrong type argument to bit-complement"
msgstr ""
-#: cp/typeck.c:5242 c-typeck.c:3614
+#: cp/typeck.c:5284 c/c-typeck.c:3528
#, gcc-internal-format
msgid "wrong type argument to abs"
msgstr ""
-#: cp/typeck.c:5254 c-typeck.c:3626
+#: cp/typeck.c:5296 c/c-typeck.c:3540
#, gcc-internal-format
msgid "wrong type argument to conjugation"
msgstr ""
-#: cp/typeck.c:5269
+#: cp/typeck.c:5311
msgid "in argument to unary !"
msgstr ""
-#: cp/typeck.c:5318
+#: cp/typeck.c:5360
msgid "no pre-increment operator for type"
msgstr ""
-#: cp/typeck.c:5320
+#: cp/typeck.c:5362
msgid "no post-increment operator for type"
msgstr ""
-#: cp/typeck.c:5322
+#: cp/typeck.c:5364
msgid "no pre-decrement operator for type"
msgstr ""
-#: cp/typeck.c:5324
+#: cp/typeck.c:5366
msgid "no post-decrement operator for type"
msgstr ""
-#: fortran/arith.c:96
+#: fortran/arith.c:97
msgid "Arithmetic OK at %L"
msgstr ""
-#: fortran/arith.c:99
+#: fortran/arith.c:100
msgid "Arithmetic overflow at %L"
msgstr ""
-#: fortran/arith.c:102
+#: fortran/arith.c:103
msgid "Arithmetic underflow at %L"
msgstr ""
-#: fortran/arith.c:105
+#: fortran/arith.c:106
msgid "Arithmetic NaN at %L"
msgstr ""
-#: fortran/arith.c:108
+#: fortran/arith.c:109
msgid "Division by zero at %L"
msgstr ""
-#: fortran/arith.c:111
+#: fortran/arith.c:112
msgid "Array operands are incommensurate at %L"
msgstr ""
-#: fortran/arith.c:115
+#: fortran/arith.c:116
msgid "Integer outside symmetric range implied by Standard Fortran at %L"
msgstr ""
-#: fortran/arith.c:1346
+#: fortran/arith.c:1353
msgid "elemental binary operation"
msgstr ""
-#: fortran/check.c:1638 fortran/check.c:2554 fortran/check.c:2608
+#: fortran/check.c:1655 fortran/check.c:2571 fortran/check.c:2625
#, c-format
msgid "arguments '%s' and '%s' for intrinsic %s"
msgstr ""
-#: fortran/check.c:2360
+#: fortran/check.c:2377
#, c-format
msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
msgstr ""
-#: fortran/check.c:2873 fortran/intrinsic.c:3932
+#: fortran/check.c:2908 fortran/intrinsic.c:3936
#, c-format
msgid "arguments '%s' and '%s' for intrinsic '%s'"
msgstr ""
-#: fortran/error.c:771 fortran/error.c:825 fortran/error.c:860
-#: fortran/error.c:935
+#: fortran/error.c:774 fortran/error.c:829 fortran/error.c:903
+#: fortran/error.c:978
msgid "Warning:"
msgstr ""
-#: fortran/error.c:827 fortran/error.c:915 fortran/error.c:965
+#: fortran/error.c:831 fortran/error.c:958 fortran/error.c:1008
msgid "Error:"
msgstr ""
-#: fortran/error.c:989
+#: fortran/error.c:839
+msgid "Fortran 2008 obsolescent feature:"
+msgstr ""
+
+#: fortran/error.c:848
+msgid "GNU Extension:"
+msgstr ""
+
+#: fortran/error.c:851
+msgid "Legacy Extension:"
+msgstr ""
+
+#: fortran/error.c:854
+msgid "Obsolescent feature:"
+msgstr ""
+
+#: fortran/error.c:857
+msgid "Deleted feature:"
+msgstr ""
+
+#: fortran/error.c:1032
msgid "Fatal Error:"
msgstr ""
-#: fortran/expr.c:621
+#: fortran/expr.c:622
#, c-format
msgid "Constant expression required at %C"
msgstr ""
-#: fortran/expr.c:624
+#: fortran/expr.c:625
#, c-format
msgid "Integer expression required at %C"
msgstr ""
-#: fortran/expr.c:629
+#: fortran/expr.c:630
#, c-format
msgid "Integer value too large in expression at %C"
msgstr ""
-#: fortran/expr.c:3161
+#: fortran/expr.c:3159
msgid "array assignment"
msgstr ""
@@ -4255,355 +4287,355 @@ msgstr ""
msgid "Driving:"
msgstr ""
-#: fortran/interface.c:2517 fortran/intrinsic.c:3641
+#: fortran/interface.c:2696 fortran/intrinsic.c:3645
msgid "actual argument to INTENT = OUT/INOUT"
msgstr ""
-#: fortran/io.c:549
+#: fortran/io.c:550
msgid "Positive width required"
msgstr ""
-#: fortran/io.c:550
+#: fortran/io.c:551
msgid "Nonnegative width required"
msgstr ""
-#: fortran/io.c:551
+#: fortran/io.c:552
msgid "Unexpected element '%c' in format string at %L"
msgstr ""
-#: fortran/io.c:553
+#: fortran/io.c:554
msgid "Unexpected end of format string"
msgstr ""
-#: fortran/io.c:554
+#: fortran/io.c:555
msgid "Zero width in format descriptor"
msgstr ""
-#: fortran/io.c:574
+#: fortran/io.c:575
msgid "Missing leading left parenthesis"
msgstr ""
-#: fortran/io.c:603
+#: fortran/io.c:604
msgid "Left parenthesis required after '*'"
msgstr ""
-#: fortran/io.c:634
+#: fortran/io.c:635
msgid "Expected P edit descriptor"
msgstr ""
#. P requires a prior number.
-#: fortran/io.c:642
+#: fortran/io.c:643
msgid "P descriptor requires leading scale factor"
msgstr ""
-#: fortran/io.c:737 fortran/io.c:751
+#: fortran/io.c:738 fortran/io.c:752
msgid "Comma required after P descriptor"
msgstr ""
-#: fortran/io.c:765
+#: fortran/io.c:766
msgid "Positive width required with T descriptor"
msgstr ""
-#: fortran/io.c:844
+#: fortran/io.c:845
msgid "E specifier not allowed with g0 descriptor"
msgstr ""
-#: fortran/io.c:914
+#: fortran/io.c:915
msgid "Positive exponent width required"
msgstr ""
-#: fortran/io.c:944
+#: fortran/io.c:945
msgid "Period required in format specifier"
msgstr ""
-#: fortran/io.c:1533
+#: fortran/io.c:1534
#, c-format
msgid "%s tag"
msgstr ""
-#: fortran/io.c:2868
+#: fortran/io.c:2869
msgid "internal unit in WRITE"
msgstr ""
#. For INQUIRE, all tags except FILE, ID and UNIT are variable definition
#. contexts. Thus, use an extended RESOLVE_TAG macro for that.
-#: fortran/io.c:4062
+#: fortran/io.c:4063
#, c-format
msgid "%s tag with INQUIRE"
msgstr ""
-#: fortran/matchexp.c:28
+#: fortran/matchexp.c:29
#, c-format
msgid "Syntax error in expression at %C"
msgstr ""
-#: fortran/module.c:1061
+#: fortran/module.c:1062
msgid "Unexpected EOF"
msgstr ""
-#: fortran/module.c:1146
+#: fortran/module.c:1147
msgid "Integer overflow"
msgstr ""
-#: fortran/module.c:1176
+#: fortran/module.c:1177
msgid "Name too long"
msgstr ""
-#: fortran/module.c:1278 fortran/module.c:1381
+#: fortran/module.c:1279 fortran/module.c:1382
msgid "Bad name"
msgstr ""
-#: fortran/module.c:1405
+#: fortran/module.c:1406
msgid "Expected name"
msgstr ""
-#: fortran/module.c:1408
+#: fortran/module.c:1409
msgid "Expected left parenthesis"
msgstr ""
-#: fortran/module.c:1411
+#: fortran/module.c:1412
msgid "Expected right parenthesis"
msgstr ""
-#: fortran/module.c:1414
+#: fortran/module.c:1415
msgid "Expected integer"
msgstr ""
-#: fortran/module.c:1417 fortran/module.c:2333
+#: fortran/module.c:1418 fortran/module.c:2340
msgid "Expected string"
msgstr ""
-#: fortran/module.c:1442
+#: fortran/module.c:1443
msgid "find_enum(): Enum not found"
msgstr ""
-#: fortran/module.c:2085
+#: fortran/module.c:2089
msgid "Expected attribute bit name"
msgstr ""
-#: fortran/module.c:2984
+#: fortran/module.c:3001
msgid "Expected integer string"
msgstr ""
-#: fortran/module.c:2988
+#: fortran/module.c:3005
msgid "Error converting integer"
msgstr ""
-#: fortran/module.c:3010
+#: fortran/module.c:3027
msgid "Expected real string"
msgstr ""
-#: fortran/module.c:3232
+#: fortran/module.c:3249
msgid "Expected expression type"
msgstr ""
-#: fortran/module.c:3286
+#: fortran/module.c:3303
msgid "Bad operator"
msgstr ""
-#: fortran/module.c:3375
+#: fortran/module.c:3392
msgid "Bad type in constant expression"
msgstr ""
-#: fortran/module.c:6103
+#: fortran/module.c:6117
msgid "Unexpected end of module"
msgstr ""
-#: fortran/parse.c:1227
+#: fortran/parse.c:1231
msgid "arithmetic IF"
msgstr ""
-#: fortran/parse.c:1236
+#: fortran/parse.c:1240
msgid "attribute declaration"
msgstr ""
-#: fortran/parse.c:1272
+#: fortran/parse.c:1276
msgid "data declaration"
msgstr ""
-#: fortran/parse.c:1281
+#: fortran/parse.c:1285
msgid "derived type declaration"
msgstr ""
-#: fortran/parse.c:1375
+#: fortran/parse.c:1379
msgid "block IF"
msgstr ""
-#: fortran/parse.c:1384
+#: fortran/parse.c:1388
msgid "implied END DO"
msgstr ""
-#: fortran/parse.c:1475 fortran/resolve.c:9460
+#: fortran/parse.c:1479 fortran/resolve.c:9673
msgid "assignment"
msgstr ""
-#: fortran/parse.c:1478 fortran/resolve.c:9499 fortran/resolve.c:9502
+#: fortran/parse.c:1482 fortran/resolve.c:9712 fortran/resolve.c:9715
msgid "pointer assignment"
msgstr ""
-#: fortran/parse.c:1496
+#: fortran/parse.c:1500
msgid "simple IF"
msgstr ""
-#: fortran/resolve.c:535
+#: fortran/resolve.c:598
msgid "module procedure"
msgstr ""
-#: fortran/resolve.c:536
+#: fortran/resolve.c:599
msgid "internal function"
msgstr ""
-#: fortran/resolve.c:1978
+#: fortran/resolve.c:2049
msgid "elemental procedure"
msgstr ""
-#: fortran/resolve.c:3803
+#: fortran/resolve.c:3921
#, c-format
msgid "Invalid context for NULL() pointer at %%L"
msgstr ""
-#: fortran/resolve.c:3819
+#: fortran/resolve.c:3937
#, c-format
msgid "Operand of unary numeric operator '%s' at %%L is %s"
msgstr ""
-#: fortran/resolve.c:3835
+#: fortran/resolve.c:3953
#, c-format
msgid "Operands of binary numeric operator '%s' at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3850
+#: fortran/resolve.c:3968
#, c-format
msgid "Operands of string concatenation operator at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3869
+#: fortran/resolve.c:3987
#, c-format
msgid "Operands of logical operator '%s' at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3883
+#: fortran/resolve.c:4001
#, c-format
msgid "Operand of .not. operator at %%L is %s"
msgstr ""
-#: fortran/resolve.c:3897
+#: fortran/resolve.c:4015
msgid "COMPLEX quantities cannot be compared at %L"
msgstr ""
-#: fortran/resolve.c:3926
+#: fortran/resolve.c:4066
#, c-format
msgid "Logicals at %%L must be compared with %s instead of %s"
msgstr ""
-#: fortran/resolve.c:3932
+#: fortran/resolve.c:4072
#, c-format
msgid "Operands of comparison operator '%s' at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:3940
+#: fortran/resolve.c:4080
#, c-format
msgid "Unknown operator '%s' at %%L"
msgstr ""
-#: fortran/resolve.c:3942
+#: fortran/resolve.c:4082
#, c-format
msgid "Operand of user operator '%s' at %%L is %s"
msgstr ""
-#: fortran/resolve.c:3946
+#: fortran/resolve.c:4086
#, c-format
msgid "Operands of user operator '%s' at %%L are %s/%s"
msgstr ""
-#: fortran/resolve.c:4034
+#: fortran/resolve.c:4174
#, c-format
msgid "Inconsistent ranks for operator at %%L and %%L"
msgstr ""
-#: fortran/resolve.c:6448
+#: fortran/resolve.c:6660
msgid "Loop variable"
msgstr ""
-#: fortran/resolve.c:6452
+#: fortran/resolve.c:6664
msgid "iterator variable"
msgstr ""
-#: fortran/resolve.c:6457
+#: fortran/resolve.c:6669
msgid "Start expression in DO loop"
msgstr ""
-#: fortran/resolve.c:6461
+#: fortran/resolve.c:6673
msgid "End expression in DO loop"
msgstr ""
-#: fortran/resolve.c:6465
+#: fortran/resolve.c:6677
msgid "Step expression in DO loop"
msgstr ""
-#: fortran/resolve.c:6721 fortran/resolve.c:6724
+#: fortran/resolve.c:6933 fortran/resolve.c:6936
msgid "DEALLOCATE object"
msgstr ""
-#: fortran/resolve.c:7067 fortran/resolve.c:7069
+#: fortran/resolve.c:7279 fortran/resolve.c:7281
msgid "ALLOCATE object"
msgstr ""
-#: fortran/resolve.c:7249 fortran/resolve.c:8499
+#: fortran/resolve.c:7461 fortran/resolve.c:8712
msgid "STAT variable"
msgstr ""
-#: fortran/resolve.c:7292 fortran/resolve.c:8511
+#: fortran/resolve.c:7504 fortran/resolve.c:8724
msgid "ERRMSG variable"
msgstr ""
-#: fortran/resolve.c:8377
+#: fortran/resolve.c:8590
msgid "item in READ"
msgstr ""
-#: fortran/resolve.c:8523
+#: fortran/resolve.c:8736
msgid "ACQUIRED_LOCK variable"
msgstr ""
-#: fortran/trans-array.c:1408
+#: fortran/trans-array.c:1427
#, c-format
msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
msgstr ""
-#: fortran/trans-array.c:5097
+#: fortran/trans-array.c:5172
msgid "Integer overflow when calculating the amount of memory to allocate"
msgstr ""
-#: fortran/trans-decl.c:4788
+#: fortran/trans-decl.c:4803
#, c-format
msgid ""
"Actual string length does not match the declared one for dummy argument "
"'%s' (%ld/%ld)"
msgstr ""
-#: fortran/trans-decl.c:4796
+#: fortran/trans-decl.c:4811
#, c-format
msgid ""
"Actual string length is shorter than the declared one for dummy argument "
"'%s' (%ld/%ld)"
msgstr ""
-#: fortran/trans-expr.c:6032
+#: fortran/trans-expr.c:6266
#, c-format
msgid "Target of rank remapping is too small (%ld < %ld)"
msgstr ""
-#: fortran/trans-intrinsic.c:895
+#: fortran/trans-intrinsic.c:894
#, c-format
msgid "Unequal character lengths (%ld/%ld) in %s"
msgstr ""
-#: fortran/trans-intrinsic.c:6069
+#: fortran/trans-intrinsic.c:6057
#, c-format
msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
msgstr ""
-#: fortran/trans-intrinsic.c:6101
+#: fortran/trans-intrinsic.c:6089
msgid "Argument NCOPIES of REPEAT intrinsic is too large"
msgstr ""
@@ -4615,28 +4647,28 @@ msgstr ""
msgid "Unit number in I/O statement too large"
msgstr ""
-#: fortran/trans-stmt.c:156
+#: fortran/trans-stmt.c:157
msgid "Assigned label is not a target label"
msgstr ""
-#: fortran/trans-stmt.c:793
+#: fortran/trans-stmt.c:794
#, c-format
msgid "Invalid image number %d in SYNC IMAGES"
msgstr ""
-#: fortran/trans-stmt.c:1414 fortran/trans-stmt.c:1695
+#: fortran/trans-stmt.c:1411 fortran/trans-stmt.c:1692
msgid "Loop variable has been modified"
msgstr ""
-#: fortran/trans-stmt.c:1554
+#: fortran/trans-stmt.c:1551
msgid "DO step value is zero"
msgstr ""
-#: fortran/trans.c:48
+#: fortran/trans.c:47
msgid "Array reference out of bounds"
msgstr ""
-#: fortran/trans.c:49
+#: fortran/trans.c:48
msgid "Incorrect function return value"
msgstr ""
@@ -4804,41 +4836,35 @@ msgstr ""
msgid "Bad byte codes.\n"
msgstr ""
-#: java/jvgenmain.c:48
+#: java/jvgenmain.c:47
#, c-format
msgid "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n"
msgstr ""
-#: java/jvgenmain.c:121
+#: java/jvgenmain.c:120
#, c-format
msgid "%s: Cannot open output file: %s\n"
msgstr ""
-#: java/jvgenmain.c:167
+#: java/jvgenmain.c:166
#, c-format
msgid "%s: Failed to close output file %s\n"
msgstr ""
-#: config/alpha/freebsd.h:34 config/ia64/freebsd.h:26 config/i386/freebsd.h:96
-#: config/i386/freebsd64.h:35 config/rs6000/sysv4.h:761
-#: config/sparc/freebsd.h:46
-msgid "consider using '-pg' instead of '-p' with gprof(1)"
-msgstr ""
-
-#: gcc.c:655
-msgid "-fuse-linker-plugin is not supported in this configuration"
+#: config/bfin/elf.h:55
+msgid "no processor type specified for linking"
msgstr ""
-#: gcc.c:779 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80
-msgid "-pg and -fomit-frame-pointer are incompatible"
+#: config/arm/arm.h:208
+msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
msgstr ""
-#: gcc.c:946
-msgid "GNU C no longer supports -traditional without -E"
+#: config/arm/arm.h:210
+msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr ""
-#: gcc.c:955
-msgid "-E or -x required when input is from standard input"
+#: ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80 gcc.c:779
+msgid "-pg and -fomit-frame-pointer are incompatible"
msgstr ""
#: ada/gcc-interface/lang-specs.h:34
@@ -4849,27 +4875,10 @@ msgstr ""
msgid "-c required for gnat2why"
msgstr ""
-#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116
-#: config/i386/cygwin.h:114
-msgid "shared and mdll are not compatible"
-msgstr ""
-
-#: config/s390/tpf.h:110
-msgid "static is not supported on TPF-OS"
-msgstr ""
-
-#: config/sparc/sol2.h:201 config/sparc/sol2.h:207 config/sparc/linux64.h:158
-#: config/sparc/linux64.h:165 config/sparc/netbsd-elf.h:109
-#: config/sparc/netbsd-elf.h:118
-msgid "may not use both -m32 and -m64"
-msgstr ""
-
-#: config/rs6000/freebsd64.h:160 config/rs6000/freebsd64.h:172
-msgid "consider using `-pg' instead of `-p' with gprof(1)"
-msgstr ""
-
-#: config/mips/mips.h:1155
-msgid "may not use both -EB and -EL"
+#: config/i386/freebsd.h:96 config/i386/freebsd64.h:35
+#: config/rs6000/sysv4.h:755 config/alpha/freebsd.h:34
+#: config/ia64/freebsd.h:26 config/sparc/freebsd.h:46
+msgid "consider using '-pg' instead of '-p' with gprof(1)"
msgstr ""
#: config/mips/r3900.h:38
@@ -4880,56 +4889,27 @@ msgstr ""
msgid "-msingle-float and -msoft-float cannot both be specified"
msgstr ""
-#: config/lynx.h:70
-msgid "cannot use mthreads and mlegacy-threads together"
-msgstr ""
-
-#: config/lynx.h:95
-msgid "cannot use mshared and static together"
-msgstr ""
-
-#: config/bfin/elf.h:55
-msgid "no processor type specified for linking"
-msgstr ""
-
-#: config/arm/arm.h:159
-msgid "-mfloat-abi=soft and -mfloat-abi=hard may not be used together"
-msgstr ""
-
-#: config/arm/arm.h:161
-msgid "-mbig-endian and -mlittle-endian may not be used together"
-msgstr ""
-
-#: config/mcore/mcore.h:54
-msgid "the m210 does not have little endian support"
-msgstr ""
-
#: config/sol2-bi.h:108 config/sol2-bi.h:113
msgid "does not support multilib"
msgstr ""
-#: objc/lang-specs.h:31 objc/lang-specs.h:42
-msgid "GNU Objective C no longer supports traditional compilation"
-msgstr ""
-
-#: objc/lang-specs.h:56
-msgid ""
-"objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
msgstr ""
-#: config/vax/netbsd-elf.h:51
-msgid "the -shared option is not currently supported for VAX ELF"
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
msgstr ""
-#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
-msgid "gfortran does not support -E without -cpp"
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
msgstr ""
#: config/sh/sh.h:433 config/sh/sh.h:436
msgid "SH2a does not support little-endian"
msgstr ""
-#: config/sh/sh.h:447 config/sh/sh.c:908
+#: config/sh/sh.h:447 config/sh/sh.c:915
#, gcc-internal-format
msgid "-mhard-atomic is only available for SH4A targets"
msgstr ""
@@ -4948,77 +4928,129 @@ msgstr ""
msgid " profiling support are only provided in archive format"
msgstr ""
-#: config/rs6000/darwin.h:96
-msgid " conflicting code gen style switches are used"
+#: config/mcore/mcore.h:54
+msgid "the m210 does not have little endian support"
msgstr ""
#: config/vxworks.h:71
msgid "-Xbind-now and -Xbind-lazy are incompatible"
msgstr ""
-#: config/darwin.h:244
+#: config/darwin.h:241
msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:246
+#: config/darwin.h:243
msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:251
+#: config/darwin.h:248
msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:252
+#: config/darwin.h:249
msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:253
+#: config/darwin.h:250
msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:258
+#: config/darwin.h:255
msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:260
+#: config/darwin.h:257
msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/darwin.h:261
+#: config/darwin.h:258
msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
-#: objcp/lang-specs.h:58
+#: config/vax/netbsd-elf.h:51
+msgid "the -shared option is not currently supported for VAX ELF"
+msgstr ""
+
+#: config/cris/cris.h:193
+msgid "do not specify both -march=... and -mcpu=..."
+msgstr ""
+
+#: config/rs6000/darwin.h:95
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/rx/rx.h:57
+msgid "-mas100-syntax is incompatible with -gdwarf"
+msgstr ""
+
+#: config/rx/rx.h:58
+msgid "rx200 cpu does not have FPU hardware"
+msgstr ""
+
+#: objc/lang-specs.h:31 objc/lang-specs.h:42
+msgid "GNU Objective C no longer supports traditional compilation"
+msgstr ""
+
+#: objc/lang-specs.h:56
msgid ""
-"objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
+"objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
msgstr ""
-#: config/vax/vax.h:50 config/vax/vax.h:51
+#: config/vax/vax.h:48 config/vax/vax.h:49
msgid "profiling not supported with -mg"
msgstr ""
-#: config/cris/cris.h:194
-msgid "do not specify both -march=... and -mcpu=..."
+#: gcc.c:655
+msgid "-fuse-linker-plugin is not supported in this configuration"
msgstr ""
-#: java/lang-specs.h:33
-msgid "-fjni and -femit-class-files are incompatible"
+#: gcc.c:946
+msgid "GNU C no longer supports -traditional without -E"
msgstr ""
-#: java/lang-specs.h:34
-msgid "-fjni and -femit-class-file are incompatible"
+#: gcc.c:955
+msgid "-E or -x required when input is from standard input"
msgstr ""
-#: java/lang-specs.h:35 java/lang-specs.h:36
-msgid "-femit-class-file should used along with -fsyntax-only"
+#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116
+#: config/i386/cygwin.h:114
+msgid "shared and mdll are not compatible"
msgstr ""
-#: config/rx/rx.h:57
-msgid "-mas100-syntax is incompatible with -gdwarf"
+#: fortran/lang-specs.h:55 fortran/lang-specs.h:69
+msgid "gfortran does not support -E without -cpp"
msgstr ""
-#: config/rx/rx.h:58
-msgid "rx200 cpu does not have FPU hardware"
+#: config/sparc/linux64.h:158 config/sparc/linux64.h:165
+#: config/sparc/netbsd-elf.h:109 config/sparc/netbsd-elf.h:118
+#: config/sparc/sol2.h:201 config/sparc/sol2.h:207
+msgid "may not use both -m32 and -m64"
+msgstr ""
+
+#: config/s390/tpf.h:110
+msgid "static is not supported on TPF-OS"
+msgstr ""
+
+#: config/rs6000/freebsd64.h:160 config/rs6000/freebsd64.h:172
+msgid "consider using `-pg' instead of `-p' with gprof(1)"
+msgstr ""
+
+#: config/mips/mips.h:1170
+msgid "may not use both -EB and -EL"
+msgstr ""
+
+#: config/lynx.h:70
+msgid "cannot use mthreads and mlegacy-threads together"
+msgstr ""
+
+#: config/lynx.h:95
+msgid "cannot use mshared and static together"
+msgstr ""
+
+#: objcp/lang-specs.h:58
+msgid ""
+"objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
msgstr ""
#: java/lang.opt:122
@@ -5188,384 +5220,392 @@ msgstr ""
msgid "Warn about truncated character expressions"
msgstr ""
-#: fortran/lang.opt:227
-msgid "Warn about most implicit conversions"
+#: fortran/lang.opt:223
+msgid "Warn about equality comparisons involving REAL or COMPLEX expressions"
msgstr ""
#: fortran/lang.opt:231
-msgid "Warn about function call elimination"
+msgid "Warn about most implicit conversions"
msgstr ""
#: fortran/lang.opt:235
-msgid "Warn about calls with implicit interface"
+msgid "Warn about function call elimination"
msgstr ""
#: fortran/lang.opt:239
-msgid "Warn about called procedures not explicitly declared"
+msgid "Warn about calls with implicit interface"
msgstr ""
#: fortran/lang.opt:243
-msgid "Warn about truncated source lines"
+msgid "Warn about called procedures not explicitly declared"
msgstr ""
#: fortran/lang.opt:247
-msgid "Warn on intrinsics not part of the selected standard"
+msgid "Warn about truncated source lines"
msgstr ""
#: fortran/lang.opt:251
-msgid "Warn about real-literal-constants with 'q' exponent-letter"
+msgid "Warn on intrinsics not part of the selected standard"
msgstr ""
#: fortran/lang.opt:255
-msgid "Warn when a left-hand-side array variable is reallocated"
+msgid "Warn about real-literal-constants with 'q' exponent-letter"
msgstr ""
#: fortran/lang.opt:259
+msgid "Warn when a left-hand-side array variable is reallocated"
+msgstr ""
+
+#: fortran/lang.opt:263
msgid "Warn when a left-hand-side variable is reallocated"
msgstr ""
#: fortran/lang.opt:267
+msgid "Warn if the pointer in a pointer assignment might outlive its target"
+msgstr ""
+
+#: fortran/lang.opt:275
msgid "Warn about \"suspicious\" constructs"
msgstr ""
-#: fortran/lang.opt:271
+#: fortran/lang.opt:279
msgid "Permit nonconforming uses of the tab character"
msgstr ""
-#: fortran/lang.opt:275
+#: fortran/lang.opt:283
msgid "Warn about underflow of numerical constant expressions"
msgstr ""
-#: fortran/lang.opt:279
+#: fortran/lang.opt:287
msgid "Warn if a user-procedure has the same name as an intrinsic"
msgstr ""
-#: fortran/lang.opt:283
+#: fortran/lang.opt:291
msgid "Warn about unused dummy arguments."
msgstr ""
-#: fortran/lang.opt:287
+#: fortran/lang.opt:295
msgid "Enable preprocessing"
msgstr ""
-#: fortran/lang.opt:295
+#: fortran/lang.opt:303
msgid "Disable preprocessing"
msgstr ""
-#: fortran/lang.opt:303
+#: fortran/lang.opt:311
msgid "Eliminate multiple function invokations also for impure functions"
msgstr ""
-#: fortran/lang.opt:307
+#: fortran/lang.opt:315
msgid "Enable alignment of COMMON blocks"
msgstr ""
-#: fortran/lang.opt:311
+#: fortran/lang.opt:319
msgid "All intrinsics procedures are available regardless of selected standard"
msgstr ""
-#: fortran/lang.opt:319
+#: fortran/lang.opt:327
msgid ""
"Do not treat local variables and COMMON blocks as if they were named in SAVE "
"statements"
msgstr ""
-#: fortran/lang.opt:323
+#: fortran/lang.opt:331
msgid "Specify that backslash in string introduces an escape character"
msgstr ""
-#: fortran/lang.opt:327
+#: fortran/lang.opt:335
msgid "Produce a backtrace when a runtime error is encountered"
msgstr ""
-#: fortran/lang.opt:331
+#: fortran/lang.opt:339
msgid ""
"-fblas-matmul-limit=<n>\tSize of the smallest matrix for which matmul will "
"use BLAS"
msgstr ""
-#: fortran/lang.opt:335
+#: fortran/lang.opt:343
msgid ""
"Produce a warning at runtime if a array temporary has been created for a "
"procedure argument"
msgstr ""
-#: fortran/lang.opt:339
+#: fortran/lang.opt:347
msgid "Use big-endian format for unformatted files"
msgstr ""
-#: fortran/lang.opt:343
+#: fortran/lang.opt:351
msgid "Use little-endian format for unformatted files"
msgstr ""
-#: fortran/lang.opt:347
+#: fortran/lang.opt:355
msgid "Use native format for unformatted files"
msgstr ""
-#: fortran/lang.opt:351
+#: fortran/lang.opt:359
msgid "Swap endianness for unformatted files"
msgstr ""
-#: fortran/lang.opt:355
+#: fortran/lang.opt:363
msgid "Use the Cray Pointer extension"
msgstr ""
-#: fortran/lang.opt:359
+#: fortran/lang.opt:367
msgid "Ignore 'D' in column one in fixed form"
msgstr ""
-#: fortran/lang.opt:363
+#: fortran/lang.opt:371
msgid "Treat lines with 'D' in column one as comments"
msgstr ""
-#: fortran/lang.opt:367
+#: fortran/lang.opt:375
msgid "Set the default double precision kind to an 8 byte wide type"
msgstr ""
-#: fortran/lang.opt:371
+#: fortran/lang.opt:379
msgid "Set the default integer kind to an 8 byte wide type"
msgstr ""
-#: fortran/lang.opt:375
+#: fortran/lang.opt:383
msgid "Set the default real kind to an 8 byte wide type"
msgstr ""
-#: fortran/lang.opt:379
+#: fortran/lang.opt:387
msgid "Allow dollar signs in entity names"
msgstr ""
-#: fortran/lang.opt:383 config/alpha/alpha.opt:31 common.opt:662
-#: common.opt:831 common.opt:835 common.opt:839 common.opt:843 common.opt:1216
-#: common.opt:1334
+#: fortran/lang.opt:391 config/alpha/alpha.opt:31 common.opt:672
+#: common.opt:841 common.opt:845 common.opt:849 common.opt:853 common.opt:1230
+#: common.opt:1363 common.opt:1367
msgid "Does nothing. Preserved for backward compatibility."
msgstr ""
-#: fortran/lang.opt:387
+#: fortran/lang.opt:395
msgid "Display the code tree after parsing"
msgstr ""
-#: fortran/lang.opt:391
+#: fortran/lang.opt:399
msgid "Display the code tree after front end optimization"
msgstr ""
-#: fortran/lang.opt:395
+#: fortran/lang.opt:403
msgid "Display the code tree after parsing; deprecated option"
msgstr ""
-#: fortran/lang.opt:399
+#: fortran/lang.opt:407
msgid ""
"Specify that an external BLAS library should be used for matmul calls on "
"large-size arrays"
msgstr ""
-#: fortran/lang.opt:403
+#: fortran/lang.opt:411
msgid "Use f2c calling convention"
msgstr ""
-#: fortran/lang.opt:407
+#: fortran/lang.opt:415
msgid "Assume that the source file is fixed form"
msgstr ""
-#: fortran/lang.opt:411
+#: fortran/lang.opt:419
msgid "Interpret any INTEGER(4) as an INTEGER(8)"
msgstr ""
-#: fortran/lang.opt:415
+#: fortran/lang.opt:423
msgid "Specify where to find the compiled intrinsic modules"
msgstr ""
-#: fortran/lang.opt:419
+#: fortran/lang.opt:427
msgid "Allow arbitrary character line width in fixed mode"
msgstr ""
-#: fortran/lang.opt:423
+#: fortran/lang.opt:431
msgid "-ffixed-line-length-<n>\tUse n as character line width in fixed mode"
msgstr ""
-#: fortran/lang.opt:427
+#: fortran/lang.opt:435
msgid "-ffpe-trap=[...]\tStop on following floating point exceptions"
msgstr ""
-#: fortran/lang.opt:431
+#: fortran/lang.opt:439
msgid "Assume that the source file is free form"
msgstr ""
-#: fortran/lang.opt:435
+#: fortran/lang.opt:443
msgid "Allow arbitrary character line width in free mode"
msgstr ""
-#: fortran/lang.opt:439
+#: fortran/lang.opt:447
msgid "-ffree-line-length-<n>\tUse n as character line width in free mode"
msgstr ""
-#: fortran/lang.opt:443
+#: fortran/lang.opt:451
msgid "Enable front end optimization"
msgstr ""
-#: fortran/lang.opt:447
+#: fortran/lang.opt:455
msgid ""
"Specify that no implicit typing is allowed, unless overridden by explicit "
"IMPLICIT statements"
msgstr ""
-#: fortran/lang.opt:451
+#: fortran/lang.opt:459
msgid ""
"-finit-character=<n>\tInitialize local character variables to ASCII value n"
msgstr ""
-#: fortran/lang.opt:455
+#: fortran/lang.opt:463
msgid "-finit-integer=<n>\tInitialize local integer variables to n"
msgstr ""
-#: fortran/lang.opt:459
+#: fortran/lang.opt:467
msgid "Initialize local variables to zero (from g77)"
msgstr ""
-#: fortran/lang.opt:463
+#: fortran/lang.opt:471
msgid "-finit-logical=<true|false>\tInitialize local logical variables"
msgstr ""
-#: fortran/lang.opt:467
+#: fortran/lang.opt:475
msgid "-finit-real=<zero|nan|inf|-inf>\tInitialize local real variables"
msgstr ""
-#: fortran/lang.opt:471
+#: fortran/lang.opt:479
msgid ""
"-fmax-array-constructor=<n>\tMaximum number of objects in an array "
"constructor"
msgstr ""
-#: fortran/lang.opt:475
+#: fortran/lang.opt:483
msgid "-fmax-identifier-length=<n>\tMaximum identifier length"
msgstr ""
-#: fortran/lang.opt:479
+#: fortran/lang.opt:487
msgid "-fmax-subrecord-length=<n>\tMaximum length for subrecords"
msgstr ""
-#: fortran/lang.opt:483
+#: fortran/lang.opt:491
msgid ""
"-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be "
"put on the stack"
msgstr ""
-#: fortran/lang.opt:487
+#: fortran/lang.opt:495
msgid "Put all local arrays on stack."
msgstr ""
-#: fortran/lang.opt:491
+#: fortran/lang.opt:499
msgid "Set default accessibility of module entities to PRIVATE."
msgstr ""
-#: fortran/lang.opt:499
+#: fortran/lang.opt:507
msgid "Try to lay out derived types as compactly as possible"
msgstr ""
-#: fortran/lang.opt:507
+#: fortran/lang.opt:515
msgid "Protect parentheses in expressions"
msgstr ""
-#: fortran/lang.opt:511
+#: fortran/lang.opt:519
msgid "Enable range checking during compilation"
msgstr ""
-#: fortran/lang.opt:515
+#: fortran/lang.opt:523
msgid "Interpret any REAL(4) as a REAL(8)"
msgstr ""
-#: fortran/lang.opt:519
+#: fortran/lang.opt:527
msgid "Interpret any REAL(4) as a REAL(10)"
msgstr ""
-#: fortran/lang.opt:523
+#: fortran/lang.opt:531
msgid "Interpret any REAL(4) as a REAL(16)"
msgstr ""
-#: fortran/lang.opt:527
+#: fortran/lang.opt:535
msgid "Interpret any REAL(8) as a REAL(4)"
msgstr ""
-#: fortran/lang.opt:531
+#: fortran/lang.opt:539
msgid "Interpret any REAL(8) as a REAL(10)"
msgstr ""
-#: fortran/lang.opt:535
+#: fortran/lang.opt:543
msgid "Interpret any REAL(8) as a REAL(16)"
msgstr ""
-#: fortran/lang.opt:539
+#: fortran/lang.opt:547
msgid "Reallocate the LHS in assignments"
msgstr ""
-#: fortran/lang.opt:543
+#: fortran/lang.opt:551
msgid "Use a 4-byte record marker for unformatted files"
msgstr ""
-#: fortran/lang.opt:547
+#: fortran/lang.opt:555
msgid "Use an 8-byte record marker for unformatted files"
msgstr ""
-#: fortran/lang.opt:551
+#: fortran/lang.opt:559
msgid "Allocate local variables on the stack to allow indirect recursion"
msgstr ""
-#: fortran/lang.opt:555
+#: fortran/lang.opt:563
msgid "Copy array sections into a contiguous block on procedure entry"
msgstr ""
-#: fortran/lang.opt:559
+#: fortran/lang.opt:567
msgid "-fcoarray=[...]\tSpecify which coarray parallelization should be used"
msgstr ""
-#: fortran/lang.opt:563
+#: fortran/lang.opt:571
msgid "-fcheck=[...]\tSpecify which runtime checks are to be performed"
msgstr ""
-#: fortran/lang.opt:567
+#: fortran/lang.opt:575
msgid "Append a second underscore if the name already contains an underscore"
msgstr ""
-#: fortran/lang.opt:575
+#: fortran/lang.opt:583
msgid "Apply negative sign to zero values"
msgstr ""
-#: fortran/lang.opt:579
+#: fortran/lang.opt:587
msgid "Append underscores to externally visible names"
msgstr ""
-#: fortran/lang.opt:583
+#: fortran/lang.opt:591
msgid "Compile all program units at once and check all interfaces"
msgstr ""
-#: fortran/lang.opt:623
+#: fortran/lang.opt:631
msgid "Statically link the GNU Fortran helper library (libgfortran)"
msgstr ""
-#: fortran/lang.opt:627
+#: fortran/lang.opt:635
msgid "Conform to the ISO Fortran 2003 standard"
msgstr ""
-#: fortran/lang.opt:631
+#: fortran/lang.opt:639
msgid "Conform to the ISO Fortran 2008 standard"
msgstr ""
-#: fortran/lang.opt:635
+#: fortran/lang.opt:643
msgid "Conform to the ISO Fortran 2008 standard including TS 29113"
msgstr ""
-#: fortran/lang.opt:639
+#: fortran/lang.opt:647
msgid "Conform to the ISO Fortran 95 standard"
msgstr ""
-#: fortran/lang.opt:643
+#: fortran/lang.opt:651
msgid "Conform to nothing in particular"
msgstr ""
-#: fortran/lang.opt:647
+#: fortran/lang.opt:655
msgid "Accept extensions to support legacy code"
msgstr ""
-#: config/alpha/alpha.opt:23 config/i386/i386.opt:298
+#: config/alpha/alpha.opt:23 config/i386/i386.opt:306
msgid "Do not use hardware fp"
msgstr ""
@@ -5639,7 +5679,7 @@ msgid "Use 128-bit long double"
msgstr ""
#: config/alpha/alpha.opt:102 config/s390/s390.opt:102
-#: config/sparc/long-double-switch.opt:27
+#: config/sparc/long-double-switch.opt:27 config/i386/i386.opt:95
msgid "Use 64-bit long double"
msgstr ""
@@ -5754,7 +5794,7 @@ msgstr ""
msgid "Enable use of GPREL for read-only data in FDPIC"
msgstr ""
-#: config/frv/frv.opt:158 config/rs6000/rs6000.opt:184
+#: config/frv/frv.opt:158 config/rs6000/rs6000.opt:159
#: config/pdp11/pdp11.opt:67
msgid "Use hardware floating point"
msgstr ""
@@ -5847,7 +5887,7 @@ msgstr ""
msgid "Target the AM34 processor"
msgstr ""
-#: config/mn10300/mn10300.opt:42 config/arm/arm.opt:239
+#: config/mn10300/mn10300.opt:42 config/arm/arm.opt:223
msgid "Tune code for the given processor"
msgstr ""
@@ -5887,7 +5927,7 @@ msgstr ""
msgid "64 bit ABI"
msgstr ""
-#: config/s390/s390.opt:47 config/i386/i386.opt:115 config/spu/spu.opt:80
+#: config/s390/s390.opt:47 config/i386/i386.opt:123 config/spu/spu.opt:80
msgid "Generate code for given CPU"
msgstr ""
@@ -5936,7 +5976,7 @@ msgid ""
msgstr ""
#: config/s390/s390.opt:126 config/ia64/ia64.opt:123
-#: config/sparc/sparc.opt:118 config/i386/i386.opt:361 config/spu/spu.opt:84
+#: config/sparc/sparc.opt:118 config/i386/i386.opt:369 config/spu/spu.opt:84
msgid "Schedule code for given CPU"
msgstr ""
@@ -6048,7 +6088,7 @@ msgstr ""
msgid "Enable earlier placing stop bits for better scheduling"
msgstr ""
-#: config/ia64/ia64.opt:115 config/spu/spu.opt:72 config/sh/sh.opt:258
+#: config/ia64/ia64.opt:115 config/spu/spu.opt:72 config/sh/sh.opt:262
#: config/pa/pa.opt:58
msgid "Specify range of registers to make fixed"
msgstr ""
@@ -6483,7 +6523,7 @@ msgstr ""
msgid "Support TLS segment larger than 64K"
msgstr ""
-#: config/m68k/ieee.opt:24 config/i386/i386.opt:226
+#: config/m68k/ieee.opt:24 config/i386/i386.opt:234
msgid "Use IEEE math for fp comparisons"
msgstr ""
@@ -6519,7 +6559,7 @@ msgstr ""
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.opt:83 config/i386/i386.opt:222
+#: config/i386/i386.opt:83 config/i386/i386.opt:230
msgid "Use hardware fp"
msgstr ""
@@ -6527,410 +6567,427 @@ msgstr ""
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.opt:91 config/sh/sh.opt:206
+#: config/i386/i386.opt:91
+msgid "Use 80-bit long double"
+msgstr ""
+
+#: config/i386/i386.opt:99 config/sh/sh.opt:206
msgid "Reserve space for outgoing arguments in the function prologue"
msgstr ""
-#: config/i386/i386.opt:95
+#: config/i386/i386.opt:103
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.opt:99
+#: config/i386/i386.opt:107
msgid "Function starts are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.opt:103
+#: config/i386/i386.opt:111
msgid "Jump targets are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.opt:107
+#: config/i386/i386.opt:115
msgid "Loop code aligned to this power of 2"
msgstr ""
-#: config/i386/i386.opt:111
+#: config/i386/i386.opt:119
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.opt:119
+#: config/i386/i386.opt:127
msgid "Use given assembler dialect"
msgstr ""
-#: config/i386/i386.opt:123
+#: config/i386/i386.opt:131
msgid "Known assembler dialects (for use with the -masm-dialect= option):"
msgstr ""
-#: config/i386/i386.opt:133
+#: config/i386/i386.opt:141
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.opt:137
+#: config/i386/i386.opt:145
msgid ""
"Data greater than given threshold will go into .ldata section in x86-64 "
"medium model"
msgstr ""
-#: config/i386/i386.opt:141
+#: config/i386/i386.opt:149
msgid "Use given x86-64 code model"
msgstr ""
-#: config/i386/i386.opt:145 config/rs6000/linux64.opt:32
+#: config/i386/i386.opt:153 config/rs6000/linux64.opt:32
+#: config/tilegx/tilegx.opt:50
msgid "Known code models (for use with the -mcmodel= option):"
msgstr ""
-#: config/i386/i386.opt:164
+#: config/i386/i386.opt:172
msgid "Use given address mode"
msgstr ""
-#: config/i386/i386.opt:168
+#: config/i386/i386.opt:176
msgid "Known address mode (for use with the -maddress-mode= option):"
msgstr ""
-#: config/i386/i386.opt:177
+#: config/i386/i386.opt:185
msgid "%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead"
msgstr ""
-#: config/i386/i386.opt:181
+#: config/i386/i386.opt:189
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.opt:185
+#: config/i386/i386.opt:193
msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack"
msgstr ""
-#: config/i386/i386.opt:189
+#: config/i386/i386.opt:197
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.opt:193
+#: config/i386/i386.opt:201
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.opt:197
+#: config/i386/i386.opt:205
msgid "Valid arguments to -mfpmath=:"
msgstr ""
-#: config/i386/i386.opt:230
+#: config/i386/i386.opt:238
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.opt:234
+#: config/i386/i386.opt:242
msgid ""
"Inline memset/memcpy string operations, but perform inline version only for "
"small blocks"
msgstr ""
-#: config/i386/i386.opt:237
+#: config/i386/i386.opt:245
msgid ""
"%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-"
"masm=intel%> and %<-masm=att%> instead"
msgstr ""
-#: config/i386/i386.opt:258
+#: config/i386/i386.opt:266
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.opt:262
+#: config/i386/i386.opt:270
msgid "Set 80387 floating-point precision to 32-bit"
msgstr ""
-#: config/i386/i386.opt:266
+#: config/i386/i386.opt:274
msgid "Set 80387 floating-point precision to 64-bit"
msgstr ""
-#: config/i386/i386.opt:270
+#: config/i386/i386.opt:278
msgid "Set 80387 floating-point precision to 80-bit"
msgstr ""
-#: config/i386/i386.opt:274
+#: config/i386/i386.opt:282
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.opt:278
+#: config/i386/i386.opt:286
msgid "Assume incoming stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.opt:282
+#: config/i386/i386.opt:290
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.opt:286
+#: config/i386/i386.opt:294
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.opt:290
+#: config/i386/i386.opt:298
msgid "Number of registers used to pass integer arguments"
msgstr ""
-#: config/i386/i386.opt:294
+#: config/i386/i386.opt:302
msgid "Alternate calling convention"
msgstr ""
-#: config/i386/i386.opt:302
+#: config/i386/i386.opt:310
msgid "Use SSE register passing conventions for SF and DF mode"
msgstr ""
-#: config/i386/i386.opt:306
+#: config/i386/i386.opt:314
msgid "Realign stack in prologue"
msgstr ""
-#: config/i386/i386.opt:310
+#: config/i386/i386.opt:318
msgid "Enable stack probing"
msgstr ""
-#: config/i386/i386.opt:314
+#: config/i386/i386.opt:322
msgid "Chose strategy to generate stringop using"
msgstr ""
-#: config/i386/i386.opt:318
+#: config/i386/i386.opt:326
msgid "Valid arguments to -mstringop-strategy=:"
msgstr ""
-#: config/i386/i386.opt:343
+#: config/i386/i386.opt:351
msgid "Use given thread-local storage dialect"
msgstr ""
-#: config/i386/i386.opt:347
+#: config/i386/i386.opt:355
msgid "Known TLS dialects (for use with the -mtls-dialect= option):"
msgstr ""
-#: config/i386/i386.opt:357
+#: config/i386/i386.opt:365
#, c-format
msgid "Use direct references against %gs when accessing tls data"
msgstr ""
-#: config/i386/i386.opt:365
+#: config/i386/i386.opt:373
msgid "Generate code that conforms to the given ABI"
msgstr ""
-#: config/i386/i386.opt:369
+#: config/i386/i386.opt:377
msgid "Known ABIs (for use with the -mabi= option):"
msgstr ""
-#: config/i386/i386.opt:379 config/rs6000/rs6000.opt:196
+#: config/i386/i386.opt:387 config/rs6000/rs6000.opt:171
msgid "Vector library ABI to use"
msgstr ""
-#: config/i386/i386.opt:383
+#: config/i386/i386.opt:391
msgid ""
"Known vectorization library ABIs (for use with the -mveclibabi= option):"
msgstr ""
-#: config/i386/i386.opt:393
+#: config/i386/i386.opt:401
msgid "Return 8-byte vectors in memory"
msgstr ""
-#: config/i386/i386.opt:397
+#: config/i386/i386.opt:405
msgid "Generate reciprocals instead of divss and sqrtss."
msgstr ""
-#: config/i386/i386.opt:401
+#: config/i386/i386.opt:409
msgid "Control generation of reciprocal estimates."
msgstr ""
-#: config/i386/i386.opt:405
+#: config/i386/i386.opt:413
msgid "Generate cld instruction in the function prologue."
msgstr ""
-#: config/i386/i386.opt:409
+#: config/i386/i386.opt:417
msgid ""
"Generate vzeroupper instruction before a transfer of control flow out of"
msgstr ""
-#: config/i386/i386.opt:414
+#: config/i386/i386.opt:422
msgid ""
"Do dispatch scheduling if processor is bdver1 or bdver2 and Haifa scheduling"
msgstr ""
-#: config/i386/i386.opt:419
+#: config/i386/i386.opt:427
msgid ""
"Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-"
"vectorizer."
msgstr ""
-#: config/i386/i386.opt:425
+#: config/i386/i386.opt:433
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.opt:429
+#: config/i386/i386.opt:437
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.opt:433
+#: config/i386/i386.opt:441
msgid "Generate 32bit x86-64 code"
msgstr ""
-#: config/i386/i386.opt:437
+#: config/i386/i386.opt:445
msgid "Support MMX built-in functions"
msgstr ""
-#: config/i386/i386.opt:441
+#: config/i386/i386.opt:449
msgid "Support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.opt:445
+#: config/i386/i386.opt:453
msgid "Support Athlon 3Dnow! built-in functions"
msgstr ""
-#: config/i386/i386.opt:449
+#: config/i386/i386.opt:457
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:453
+#: config/i386/i386.opt:461
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:457
+#: config/i386/i386.opt:465
msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:461
+#: config/i386/i386.opt:469
msgid ""
"Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:465
+#: config/i386/i386.opt:473
msgid ""
"Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code "
"generation"
msgstr ""
-#: config/i386/i386.opt:469 config/i386/i386.opt:473
+#: config/i386/i386.opt:477 config/i386/i386.opt:481
msgid ""
"Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions "
"and code generation"
msgstr ""
-#: config/i386/i386.opt:477
+#: config/i386/i386.opt:485
msgid "Do not support SSE4.1 and SSE4.2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:480
+#: config/i386/i386.opt:488
msgid "%<-msse5%> was removed"
msgstr ""
-#: config/i386/i386.opt:485
+#: config/i386/i386.opt:493
msgid ""
"Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in "
"functions and code generation"
msgstr ""
-#: config/i386/i386.opt:489
+#: config/i386/i386.opt:497
msgid ""
"Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in "
"functions and code generation"
msgstr ""
-#: config/i386/i386.opt:493
+#: config/i386/i386.opt:501
msgid ""
"Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in "
"functions and code generation"
msgstr ""
-#: config/i386/i386.opt:497
+#: config/i386/i386.opt:505
msgid ""
"Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:501
+#: config/i386/i386.opt:509
msgid "Support FMA4 built-in functions and code generation "
msgstr ""
-#: config/i386/i386.opt:505
+#: config/i386/i386.opt:513
msgid "Support XOP built-in functions and code generation "
msgstr ""
-#: config/i386/i386.opt:509
+#: config/i386/i386.opt:517
msgid "Support LWP built-in functions and code generation "
msgstr ""
-#: config/i386/i386.opt:513
+#: config/i386/i386.opt:521
msgid ""
"Support code generation of Advanced Bit Manipulation (ABM) instructions."
msgstr ""
-#: config/i386/i386.opt:517
+#: config/i386/i386.opt:525
msgid "Support code generation of popcnt instruction."
msgstr ""
-#: config/i386/i386.opt:521
+#: config/i386/i386.opt:529
msgid "Support BMI built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:525
+#: config/i386/i386.opt:533
msgid "Support BMI2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:529
+#: config/i386/i386.opt:537
msgid "Support LZCNT built-in function and code generation"
msgstr ""
-#: config/i386/i386.opt:533
+#: config/i386/i386.opt:541
msgid "Support Hardware Lock Elision prefixes"
msgstr ""
-#: config/i386/i386.opt:537
+#: config/i386/i386.opt:545
+msgid "Support RDSEED instruction"
+msgstr ""
+
+#: config/i386/i386.opt:549
+msgid "Support PREFETCHW instruction"
+msgstr ""
+
+#: config/i386/i386.opt:553
+msgid "Support flag-preserving add-carry instructions"
+msgstr ""
+
+#: config/i386/i386.opt:557
msgid "Support TBM built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:541
+#: config/i386/i386.opt:561
msgid "Support code generation of cmpxchg16b instruction."
msgstr ""
-#: config/i386/i386.opt:545
+#: config/i386/i386.opt:565
msgid "Support code generation of sahf instruction in 64bit x86-64 code."
msgstr ""
-#: config/i386/i386.opt:549
+#: config/i386/i386.opt:569
msgid "Support code generation of movbe instruction."
msgstr ""
-#: config/i386/i386.opt:553
+#: config/i386/i386.opt:573
msgid "Support code generation of crc32 instruction."
msgstr ""
-#: config/i386/i386.opt:557
+#: config/i386/i386.opt:577
msgid "Support AES built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:561
+#: config/i386/i386.opt:581
msgid "Support PCLMUL built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:565
+#: config/i386/i386.opt:585
msgid "Encode SSE instructions with VEX prefix"
msgstr ""
-#: config/i386/i386.opt:569
+#: config/i386/i386.opt:589
msgid "Support FSGSBASE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:573
+#: config/i386/i386.opt:593
msgid "Support RDRND built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:577
+#: config/i386/i386.opt:597
msgid "Support F16C built-in functions and code generation"
msgstr ""
-#: config/i386/i386.opt:581
+#: config/i386/i386.opt:601
msgid "Emit profiling counter call at function entry before prologue."
msgstr ""
-#: config/i386/i386.opt:585
+#: config/i386/i386.opt:605
msgid ""
"Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-"
"time check"
msgstr ""
-#: config/i386/i386.opt:589
+#: config/i386/i386.opt:609
msgid "Split 32-byte AVX unaligned load"
msgstr ""
-#: config/i386/i386.opt:593
+#: config/i386/i386.opt:613
msgid "Split 32-byte AVX unaligned store"
msgstr ""
-#: config/i386/i386.opt:597
+#: config/i386/i386.opt:617
msgid "Support RTM built-in functions and code generation"
msgstr ""
@@ -6986,346 +7043,318 @@ msgstr ""
msgid "Generate 32-bit code"
msgstr ""
-#: config/rs6000/rs6000.opt:96
-msgid "Use POWER instruction set"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:100
-msgid "Do not use POWER instruction set"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:104
-msgid "Use POWER2 instruction set"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:108
-msgid "Use PowerPC instruction set"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:112
-msgid "Do not use PowerPC instruction set"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:116
+#: config/rs6000/rs6000.opt:99
msgid "Use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.opt:120
+#: config/rs6000/rs6000.opt:103
msgid "Use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:124
+#: config/rs6000/rs6000.opt:107
msgid "Use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:128
+#: config/rs6000/rs6000.opt:111
msgid "Use PowerPC V2.01 single field mfcr instruction"
msgstr ""
-#: config/rs6000/rs6000.opt:132
+#: config/rs6000/rs6000.opt:115
msgid "Use PowerPC V2.02 popcntb instruction"
msgstr ""
-#: config/rs6000/rs6000.opt:136
+#: config/rs6000/rs6000.opt:119
msgid "Use PowerPC V2.02 floating point rounding instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:140
+#: config/rs6000/rs6000.opt:123
msgid "Use PowerPC V2.05 compare bytes instruction"
msgstr ""
-#: config/rs6000/rs6000.opt:144
+#: config/rs6000/rs6000.opt:127
msgid "Use extended PowerPC V2.05 move floating point to/from GPR instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:148
+#: config/rs6000/rs6000.opt:131
msgid "Use AltiVec instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:152
+#: config/rs6000/rs6000.opt:135
msgid "Use decimal floating point instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:156
+#: config/rs6000/rs6000.opt:139
msgid "Use 4xx half-word multiply instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:160
+#: config/rs6000/rs6000.opt:143
msgid "Use 4xx string-search dlmzb instruction"
msgstr ""
-#: config/rs6000/rs6000.opt:164
+#: config/rs6000/rs6000.opt:147
msgid "Generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:168
+#: config/rs6000/rs6000.opt:151
msgid "Generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.opt:172
-msgid "Use new mnemonics for PowerPC architecture"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:176
-msgid "Use old mnemonics for PowerPC architecture"
-msgstr ""
-
-#: config/rs6000/rs6000.opt:180 config/pdp11/pdp11.opt:79
+#: config/rs6000/rs6000.opt:155 config/pdp11/pdp11.opt:79
msgid "Do not use hardware floating point"
msgstr ""
-#: config/rs6000/rs6000.opt:188
+#: config/rs6000/rs6000.opt:163
msgid "Use PowerPC V2.06 popcntd instruction"
msgstr ""
-#: config/rs6000/rs6000.opt:192
+#: config/rs6000/rs6000.opt:167
msgid ""
"Under -ffast-math, generate a FRIZ instruction for (double)(long long) "
"conversions"
msgstr ""
-#: config/rs6000/rs6000.opt:200
+#: config/rs6000/rs6000.opt:175
msgid "Use vector/scalar (VSX) instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:240
+#: config/rs6000/rs6000.opt:215
msgid "Do not generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:244
+#: config/rs6000/rs6000.opt:219
msgid "Generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:248 config/arm/arm.opt:191
+#: config/rs6000/rs6000.opt:223 config/arm/arm.opt:175
msgid "Do not load the PIC register in function prologues"
msgstr ""
-#: config/rs6000/rs6000.opt:252
+#: config/rs6000/rs6000.opt:227
msgid "Avoid generation of indexed load/store instructions when possible"
msgstr ""
-#: config/rs6000/rs6000.opt:256
+#: config/rs6000/rs6000.opt:231
msgid "Mark __tls_get_addr calls with argument info"
msgstr ""
-#: config/rs6000/rs6000.opt:263
+#: config/rs6000/rs6000.opt:238
msgid "Schedule the start and end of the procedure"
msgstr ""
-#: config/rs6000/rs6000.opt:267
+#: config/rs6000/rs6000.opt:242
msgid "Return all structures in memory (AIX default)"
msgstr ""
-#: config/rs6000/rs6000.opt:271
+#: config/rs6000/rs6000.opt:246
msgid "Return small structures in registers (SVR4 default)"
msgstr ""
-#: config/rs6000/rs6000.opt:275
+#: config/rs6000/rs6000.opt:250
msgid "Conform more closely to IBM XLC semantics"
msgstr ""
-#: config/rs6000/rs6000.opt:279 config/rs6000/rs6000.opt:283
+#: config/rs6000/rs6000.opt:254 config/rs6000/rs6000.opt:258
msgid ""
"Generate software reciprocal divide and square root for better throughput."
msgstr ""
-#: config/rs6000/rs6000.opt:287
+#: config/rs6000/rs6000.opt:262
msgid "Assume that the reciprocal estimate instructions provide more accuracy."
msgstr ""
-#: config/rs6000/rs6000.opt:291
+#: config/rs6000/rs6000.opt:266
msgid "Do not place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.opt:295
+#: config/rs6000/rs6000.opt:270
msgid "Place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.opt:299
+#: config/rs6000/rs6000.opt:274
msgid "Do not place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.opt:303
+#: config/rs6000/rs6000.opt:278
msgid "Place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.opt:314
+#: config/rs6000/rs6000.opt:289
msgid "Use only one TOC entry per procedure"
msgstr ""
-#: config/rs6000/rs6000.opt:318
+#: config/rs6000/rs6000.opt:293
msgid "Put everything in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.opt:322
+#: config/rs6000/rs6000.opt:297
msgid "Generate VRSAVE instructions when generating AltiVec code"
msgstr ""
-#: config/rs6000/rs6000.opt:326
+#: config/rs6000/rs6000.opt:301
msgid "Deprecated option. Use -mno-vrsave instead"
msgstr ""
-#: config/rs6000/rs6000.opt:330
+#: config/rs6000/rs6000.opt:305
msgid "Deprecated option. Use -mvrsave instead"
msgstr ""
-#: config/rs6000/rs6000.opt:334
+#: config/rs6000/rs6000.opt:309
msgid ""
"Specify how many bytes should be moved inline before calling out to memcpy/"
"memmove"
msgstr ""
-#: config/rs6000/rs6000.opt:338
+#: config/rs6000/rs6000.opt:313
msgid "Generate isel instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:342
+#: config/rs6000/rs6000.opt:317
msgid "Deprecated option. Use -mno-isel instead"
msgstr ""
-#: config/rs6000/rs6000.opt:346
+#: config/rs6000/rs6000.opt:321
msgid "Deprecated option. Use -misel instead"
msgstr ""
-#: config/rs6000/rs6000.opt:350
+#: config/rs6000/rs6000.opt:325
msgid "Generate SPE SIMD instructions on E500"
msgstr ""
-#: config/rs6000/rs6000.opt:354
+#: config/rs6000/rs6000.opt:329
msgid "Generate PPC750CL paired-single instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:358
+#: config/rs6000/rs6000.opt:333
msgid "Deprecated option. Use -mno-spe instead"
msgstr ""
-#: config/rs6000/rs6000.opt:362
+#: config/rs6000/rs6000.opt:337
msgid "Deprecated option. Use -mspe instead"
msgstr ""
-#: config/rs6000/rs6000.opt:366
+#: config/rs6000/rs6000.opt:341
msgid "-mdebug=\tEnable debug output"
msgstr ""
-#: config/rs6000/rs6000.opt:370
+#: config/rs6000/rs6000.opt:345
msgid "Use the AltiVec ABI extensions"
msgstr ""
-#: config/rs6000/rs6000.opt:374
+#: config/rs6000/rs6000.opt:349
msgid "Do not use the AltiVec ABI extensions"
msgstr ""
-#: config/rs6000/rs6000.opt:378
+#: config/rs6000/rs6000.opt:353
msgid "Use the SPE ABI extensions"
msgstr ""
-#: config/rs6000/rs6000.opt:382
+#: config/rs6000/rs6000.opt:357
msgid "Do not use the SPE ABI extensions"
msgstr ""
-#: config/rs6000/rs6000.opt:389
+#: config/rs6000/rs6000.opt:364
msgid "using darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.opt:392
+#: config/rs6000/rs6000.opt:367
msgid "using old darwin ABI"
msgstr ""
-#: config/rs6000/rs6000.opt:395
+#: config/rs6000/rs6000.opt:370
msgid "using IEEE extended precision long double"
msgstr ""
-#: config/rs6000/rs6000.opt:398
+#: config/rs6000/rs6000.opt:373
msgid "using IBM extended precision long double"
msgstr ""
-#: config/rs6000/rs6000.opt:402
+#: config/rs6000/rs6000.opt:377
msgid "-mcpu=\tUse features of and schedule code for given CPU"
msgstr ""
-#: config/rs6000/rs6000.opt:406
+#: config/rs6000/rs6000.opt:381
msgid "-mtune=\tSchedule code for given CPU"
msgstr ""
-#: config/rs6000/rs6000.opt:410
+#: config/rs6000/rs6000.opt:385
msgid "-mtraceback=\tSelect full, part, or no traceback table"
msgstr ""
-#: config/rs6000/rs6000.opt:426
+#: config/rs6000/rs6000.opt:401
msgid "Avoid all range limits on call instructions"
msgstr ""
-#: config/rs6000/rs6000.opt:430
+#: config/rs6000/rs6000.opt:405
msgid "Generate Cell microcode"
msgstr ""
-#: config/rs6000/rs6000.opt:434
+#: config/rs6000/rs6000.opt:409
msgid "Warn when a Cell microcoded instruction is emitted"
msgstr ""
-#: config/rs6000/rs6000.opt:438
+#: config/rs6000/rs6000.opt:413
msgid "Warn about deprecated 'vector long ...' AltiVec type usage"
msgstr ""
-#: config/rs6000/rs6000.opt:442
+#: config/rs6000/rs6000.opt:417
msgid "-mfloat-gprs=\tSelect GPR floating point method"
msgstr ""
-#: config/rs6000/rs6000.opt:446
+#: config/rs6000/rs6000.opt:421
msgid "Valid arguments to -mfloat-gprs=:"
msgstr ""
-#: config/rs6000/rs6000.opt:462
+#: config/rs6000/rs6000.opt:437
msgid "-mlong-double-<n>\tSpecify size of long double (64 or 128 bits)"
msgstr ""
-#: config/rs6000/rs6000.opt:466
+#: config/rs6000/rs6000.opt:441
msgid "Determine which dependences between insns are considered costly"
msgstr ""
-#: config/rs6000/rs6000.opt:470
+#: config/rs6000/rs6000.opt:445
msgid "Specify which post scheduling nop insertion scheme to apply"
msgstr ""
-#: config/rs6000/rs6000.opt:474
+#: config/rs6000/rs6000.opt:449
msgid "Specify alignment of structure fields default/natural"
msgstr ""
-#: config/rs6000/rs6000.opt:478
+#: config/rs6000/rs6000.opt:453
msgid "Valid arguments to -malign-:"
msgstr ""
-#: config/rs6000/rs6000.opt:488
+#: config/rs6000/rs6000.opt:463
msgid "Specify scheduling priority for dispatch slot restricted insns"
msgstr ""
-#: config/rs6000/rs6000.opt:492
+#: config/rs6000/rs6000.opt:467
msgid "Single-precision floating point unit"
msgstr ""
-#: config/rs6000/rs6000.opt:496
+#: config/rs6000/rs6000.opt:471
msgid "Double-precision floating point unit"
msgstr ""
-#: config/rs6000/rs6000.opt:500
+#: config/rs6000/rs6000.opt:475
msgid "Floating point unit does not support divide & sqrt"
msgstr ""
-#: config/rs6000/rs6000.opt:504
+#: config/rs6000/rs6000.opt:479
msgid "-mfpu=\tSpecify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)"
msgstr ""
-#: config/rs6000/rs6000.opt:526
+#: config/rs6000/rs6000.opt:501
msgid "Specify Xilinx FPU."
msgstr ""
-#: config/rs6000/rs6000.opt:530
+#: config/rs6000/rs6000.opt:505
msgid ""
"Use/do not use r11 to hold the static link in calls to functions via "
"pointers."
msgstr ""
-#: config/rs6000/rs6000.opt:534
+#: config/rs6000/rs6000.opt:509
msgid ""
"Control whether we save the TOC in the prologue for indirect calls or "
"generate the save inline"
@@ -7523,7 +7552,8 @@ msgstr ""
msgid "Force functions to be aligned to a 4 byte boundary"
msgstr ""
-#: config/mcore/mcore.opt:35 config/score/score.opt:23
+#: config/mcore/mcore.opt:35 config/moxie/moxie.opt:23
+#: config/score/score.opt:23
msgid "Generate big-endian code"
msgstr ""
@@ -7539,7 +7569,8 @@ msgstr ""
msgid "Inline constants if it can be done in 2 insns or less"
msgstr ""
-#: config/mcore/mcore.opt:51 config/score/score.opt:27
+#: config/mcore/mcore.opt:51 config/moxie/moxie.opt:27
+#: config/score/score.opt:27
msgid "Generate little-endian code"
msgstr ""
@@ -7749,10 +7780,10 @@ msgstr ""
msgid "Generate FPU-less SHcompact code"
msgstr ""
-#: config/sh/sh.opt:210 c-family/c.opt:765 c-family/c.opt:785
-#: c-family/c.opt:972 common.opt:942 common.opt:1124 common.opt:1404
-#: common.opt:1658 common.opt:1694 common.opt:1779 common.opt:1783
-#: common.opt:1859 common.opt:1941 common.opt:1965 common.opt:2053
+#: config/sh/sh.opt:210 c-family/c.opt:772 c-family/c.opt:792
+#: c-family/c.opt:979 common.opt:952 common.opt:1138 common.opt:1437
+#: common.opt:1699 common.opt:1735 common.opt:1820 common.opt:1824
+#: common.opt:1900 common.opt:1982 common.opt:2006 common.opt:2094
msgid "Does nothing. Preserved for backward compatibility."
msgstr ""
@@ -7773,126 +7804,130 @@ msgid "Cost to assume for a branch insn"
msgstr ""
#: config/sh/sh.opt:230
-msgid "Enable cbranchdi4 pattern"
+msgid "Assume that zero displacement conditional branches are fast"
msgstr ""
#: config/sh/sh.opt:234
-msgid "Emit cmpeqdi_t pattern even when -mcbranchdi is in effect."
+msgid "Enable cbranchdi4 pattern"
msgstr ""
#: config/sh/sh.opt:238
-msgid "Enable SH5 cut2 workaround"
+msgid "Emit cmpeqdi_t pattern even when -mcbranchdi is in effect."
msgstr ""
#: config/sh/sh.opt:242
-msgid "Align doubles at 64-bit boundaries"
+msgid "Enable SH5 cut2 workaround"
msgstr ""
#: config/sh/sh.opt:246
+msgid "Align doubles at 64-bit boundaries"
+msgstr ""
+
+#: config/sh/sh.opt:250
msgid ""
"Division strategy, one of: call, call2, fp, inv, inv:minlat, inv20u, inv20l, "
"inv:call, inv:call2, inv:fp, call-div1, call-fp, call-table"
msgstr ""
-#: config/sh/sh.opt:250
+#: config/sh/sh.opt:254
msgid "Specify name for 32 bit signed division function"
msgstr ""
-#: config/sh/sh.opt:254
+#: config/sh/sh.opt:258
msgid ""
"Enable the use of 64-bit floating point registers in fmov instructions. See "
"-mdalign if 64-bit alignment is required."
msgstr ""
-#: config/sh/sh.opt:262
+#: config/sh/sh.opt:266
msgid "Cost to assume for gettr insn"
msgstr ""
-#: config/sh/sh.opt:266 config/sh/sh.opt:316
+#: config/sh/sh.opt:270 config/sh/sh.opt:320
msgid "Follow Renesas (formerly Hitachi) / SuperH calling conventions"
msgstr ""
-#: config/sh/sh.opt:270
-msgid "Increase the IEEE compliance for floating-point code"
+#: config/sh/sh.opt:274
+msgid "Increase the IEEE compliance for floating-point comparisons"
msgstr ""
-#: config/sh/sh.opt:274
+#: config/sh/sh.opt:278
msgid "Enable the use of the indexed addressing mode for SHmedia32/SHcompact"
msgstr ""
-#: config/sh/sh.opt:278
+#: config/sh/sh.opt:282
msgid ""
"inline code to invalidate instruction cache entries after setting up nested "
"function trampolines"
msgstr ""
-#: config/sh/sh.opt:282
+#: config/sh/sh.opt:286
msgid "Assume symbols might be invalid"
msgstr ""
-#: config/sh/sh.opt:286
+#: config/sh/sh.opt:290
msgid "Annotate assembler instructions with estimated addresses"
msgstr ""
-#: config/sh/sh.opt:290
+#: config/sh/sh.opt:294
msgid "Generate code in little endian mode"
msgstr ""
-#: config/sh/sh.opt:294
+#: config/sh/sh.opt:298
msgid "Mark MAC register as call-clobbered"
msgstr ""
-#: config/sh/sh.opt:300
+#: config/sh/sh.opt:304
msgid "Make structs a multiple of 4 bytes (warning: ABI altered)"
msgstr ""
-#: config/sh/sh.opt:304
+#: config/sh/sh.opt:308
msgid "Emit function-calls using global offset table when generating PIC"
msgstr ""
-#: config/sh/sh.opt:308
+#: config/sh/sh.opt:312
msgid "Assume pt* instructions won't trap"
msgstr ""
-#: config/sh/sh.opt:312
+#: config/sh/sh.opt:316
msgid "Shorten address references during linking"
msgstr ""
-#: config/sh/sh.opt:320
+#: config/sh/sh.opt:324
msgid "Use gUSA software atomic sequences"
msgstr ""
-#: config/sh/sh.opt:324
+#: config/sh/sh.opt:328
msgid "Use hardware atomic sequences"
msgstr ""
-#: config/sh/sh.opt:328
+#: config/sh/sh.opt:332
msgid "Use tas.b instruction for __atomic_test_and_set"
msgstr ""
-#: config/sh/sh.opt:332
+#: config/sh/sh.opt:336
msgid "Deprecated. Use -Os instead"
msgstr ""
-#: config/sh/sh.opt:336
+#: config/sh/sh.opt:340
msgid "Cost to assume for a multiply insn"
msgstr ""
-#: config/sh/sh.opt:340
+#: config/sh/sh.opt:344
msgid ""
"Don't generate privileged-mode only code; implies -mno-inline-ic_invalidate "
"if the inline code would not work in user mode."
msgstr ""
-#: config/sh/sh.opt:346
+#: config/sh/sh.opt:350
msgid "Pretend a branch-around-a-move is a conditional move."
msgstr ""
-#: config/sh/sh.opt:350
+#: config/sh/sh.opt:354
msgid "Enable the use of the fsca instruction"
msgstr ""
-#: config/sh/sh.opt:354
+#: config/sh/sh.opt:358
msgid "Enable the use of the fsrra instruction"
msgstr ""
@@ -7964,95 +7999,95 @@ msgstr ""
msgid "Known floating-point ABIs (for use with the -mfloat-abi= option):"
msgstr ""
-#: config/arm/arm.opt:137
+#: config/arm/arm.opt:131
msgid "Specify the __fp16 floating-point format"
msgstr ""
-#: config/arm/arm.opt:141
+#: config/arm/arm.opt:135
msgid "Known __fp16 formats (for use with the -mfp16-format= option):"
msgstr ""
-#: config/arm/arm.opt:164
+#: config/arm/arm.opt:148
msgid "Specify the name of the target floating point hardware/format"
msgstr ""
-#: config/arm/arm.opt:171
+#: config/arm/arm.opt:155
msgid "Assume target CPU is configured as little endian"
msgstr ""
-#: config/arm/arm.opt:175
+#: config/arm/arm.opt:159
msgid "Generate call insns as indirect calls, if necessary"
msgstr ""
-#: config/arm/arm.opt:179
+#: config/arm/arm.opt:163
msgid "Specify the register to be used for PIC addressing"
msgstr ""
-#: config/arm/arm.opt:183
+#: config/arm/arm.opt:167
msgid "Store function names in object code"
msgstr ""
-#: config/arm/arm.opt:187
+#: config/arm/arm.opt:171
msgid "Permit scheduling of a function's prologue sequence"
msgstr ""
-#: config/arm/arm.opt:198
+#: config/arm/arm.opt:182
msgid "Specify the minimum bit alignment of structures"
msgstr ""
-#: config/arm/arm.opt:202
+#: config/arm/arm.opt:186
msgid "Generate code for Thumb state"
msgstr ""
-#: config/arm/arm.opt:206
+#: config/arm/arm.opt:190
msgid "Support calls between Thumb and ARM instruction sets"
msgstr ""
-#: config/arm/arm.opt:210
+#: config/arm/arm.opt:194
msgid "Specify thread local storage scheme"
msgstr ""
-#: config/arm/arm.opt:214
+#: config/arm/arm.opt:198
msgid "Specify how to access the thread pointer"
msgstr ""
-#: config/arm/arm.opt:218
+#: config/arm/arm.opt:202
msgid "Valid arguments to -mtp=:"
msgstr ""
-#: config/arm/arm.opt:231
+#: config/arm/arm.opt:215
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.opt:235
+#: config/arm/arm.opt:219
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.opt:248
+#: config/arm/arm.opt:232
msgid ""
"Assume big endian bytes, little endian words. This option is deprecated."
msgstr ""
-#: config/arm/arm.opt:252
+#: config/arm/arm.opt:236
msgid ""
"Use Neon quad-word (rather than double-word) registers for vectorization"
msgstr ""
-#: config/arm/arm.opt:256
+#: config/arm/arm.opt:240
msgid ""
"Use Neon double-word (rather than quad-word) registers for vectorization"
msgstr ""
-#: config/arm/arm.opt:260
+#: config/arm/arm.opt:244
msgid "Only generate absolute relocations on word sized values."
msgstr ""
-#: config/arm/arm.opt:264
+#: config/arm/arm.opt:248
msgid ""
"Avoid overlapping destination and address registers on LDRD instructions"
msgstr ""
-#: config/arm/arm.opt:269
+#: config/arm/arm.opt:253
msgid "Enable unaligned word and halfword accesses to packed data."
msgstr ""
@@ -8064,7 +8099,7 @@ msgstr ""
msgid "Known ARM architectures (for use with the -march= option):"
msgstr ""
-#: config/arm/arm-tables.opt:360
+#: config/arm/arm-tables.opt:357
msgid "Known ARM FPUs (for use with the -mfpu= option):"
msgstr ""
@@ -8536,83 +8571,87 @@ msgid "Prevent the use of all floating-point operations"
msgstr ""
#: config/mips/mips.opt:274
-msgid "Do not use a cache-flushing function before calling stack trampolines"
+msgid "Use MCU instructions"
msgstr ""
#: config/mips/mips.opt:278
-msgid "Do not use MDMX instructions"
+msgid "Do not use a cache-flushing function before calling stack trampolines"
msgstr ""
#: config/mips/mips.opt:282
-msgid "Generate normal-mode code"
+msgid "Do not use MDMX instructions"
msgstr ""
#: config/mips/mips.opt:286
-msgid "Do not use MIPS-3D instructions"
+msgid "Generate normal-mode code"
msgstr ""
#: config/mips/mips.opt:290
-msgid "Use paired-single floating-point instructions"
+msgid "Do not use MIPS-3D instructions"
msgstr ""
#: config/mips/mips.opt:294
+msgid "Use paired-single floating-point instructions"
+msgstr ""
+
+#: config/mips/mips.opt:298
msgid ""
"-mr10k-cache-barrier=SETTING\tSpecify when r10k cache barriers should be "
"inserted"
msgstr ""
-#: config/mips/mips.opt:298
+#: config/mips/mips.opt:302
msgid "Valid arguments to -mr10k-cache-barrier=:"
msgstr ""
-#: config/mips/mips.opt:311
+#: config/mips/mips.opt:315
msgid "Try to allow the linker to turn PIC calls into direct calls"
msgstr ""
-#: config/mips/mips.opt:315
+#: config/mips/mips.opt:319
msgid ""
"When generating -mabicalls code, make the code suitable for use in shared "
"libraries"
msgstr ""
-#: config/mips/mips.opt:319
+#: config/mips/mips.opt:323
msgid ""
"Restrict the use of hardware floating-point instructions to 32-bit operations"
msgstr ""
-#: config/mips/mips.opt:323
+#: config/mips/mips.opt:327
msgid "Use SmartMIPS instructions"
msgstr ""
-#: config/mips/mips.opt:327
+#: config/mips/mips.opt:331
msgid "Prevent the use of all hardware floating-point instructions"
msgstr ""
-#: config/mips/mips.opt:331
+#: config/mips/mips.opt:335
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.opt:335
+#: config/mips/mips.opt:339
msgid "Assume all symbols have 32-bit values"
msgstr ""
-#: config/mips/mips.opt:339
+#: config/mips/mips.opt:343
msgid "Use synci instruction to invalidate i-cache"
msgstr ""
-#: config/mips/mips.opt:343
+#: config/mips/mips.opt:347
msgid "-mtune=PROCESSOR\tOptimize the output for PROCESSOR"
msgstr ""
-#: config/mips/mips.opt:347 config/iq2000/iq2000.opt:74
+#: config/mips/mips.opt:351 config/iq2000/iq2000.opt:74
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/mips/mips.opt:351
+#: config/mips/mips.opt:355
msgid "Perform VR4130-specific alignment optimizations"
msgstr ""
-#: config/mips/mips.opt:355
+#: config/mips/mips.opt:359
msgid "Lift restrictions on GOT size"
msgstr ""
@@ -8738,6 +8777,12 @@ msgid ""
"builtins on misaligned memory"
msgstr ""
+#: config/cris/cris.opt:188
+msgid ""
+"Handle atomic builtins that may be applied to unaligned data by calling "
+"library functions. Overrides -mtrap-unaligned-atomic."
+msgstr ""
+
#: config/h8300/h8300.opt:23
msgid "Generate H8S code"
msgstr ""
@@ -9114,22 +9159,26 @@ msgstr ""
msgid "Treat integers as 32-bit."
msgstr ""
-#: config/tilegx/tilegx.opt:24 config/tilepro/tilepro.opt:29
+#: config/tilegx/tilegx.opt:27 config/tilepro/tilepro.opt:29
msgid "-mcpu=CPU\tUse features of and schedule code for given CPU"
msgstr ""
-#: config/tilegx/tilegx.opt:28
+#: config/tilegx/tilegx.opt:31
msgid "Known TILE-Gx CPUs (for use with the -mcpu= option):"
msgstr ""
-#: config/tilegx/tilegx.opt:35
+#: config/tilegx/tilegx.opt:38
msgid "Compile with 32 bit longs and pointers."
msgstr ""
-#: config/tilegx/tilegx.opt:39
+#: config/tilegx/tilegx.opt:42
msgid "Compile with 64 bit longs and pointers."
msgstr ""
+#: config/tilegx/tilegx.opt:46
+msgid "Use given TILE-Gx code model"
+msgstr ""
+
#: config/tilepro/tilepro.opt:24
msgid "Compile with 32 bit longs and pointers, which is the only supported"
msgstr ""
@@ -9177,8 +9226,8 @@ msgstr ""
#: config/darwin.opt:53 c-family/c.opt:71 c-family/c.opt:74 c-family/c.opt:77
#: c-family/c.opt:80 c-family/c.opt:176 c-family/c.opt:179 c-family/c.opt:217
-#: c-family/c.opt:221 c-family/c.opt:233 c-family/c.opt:1146
-#: c-family/c.opt:1154 common.opt:301 common.opt:304 common.opt:2308
+#: c-family/c.opt:221 c-family/c.opt:233 c-family/c.opt:1153
+#: c-family/c.opt:1161 common.opt:307 common.opt:310 common.opt:2361
#, c-format
msgid "missing filename after %qs"
msgstr ""
@@ -9596,8 +9645,8 @@ msgid "macro name missing after %qs"
msgstr ""
#: c-family/c.opt:86 c-family/c.opt:89 c-family/c.opt:92 c-family/c.opt:95
-#: c-family/c.opt:201 c-family/c.opt:209 c-family/c.opt:1142
-#: c-family/c.opt:1162 c-family/c.opt:1166 c-family/c.opt:1170
+#: c-family/c.opt:201 c-family/c.opt:209 c-family/c.opt:1149
+#: c-family/c.opt:1169 c-family/c.opt:1173 c-family/c.opt:1177
#, c-format
msgid "missing path after %qs"
msgstr ""
@@ -9901,796 +9950,800 @@ msgstr ""
msgid "Warn about missing fields in struct initializers"
msgstr ""
-#: c-family/c.opt:479
+#: c-family/c.opt:482
msgid "Warn about functions which might be candidates for format attributes"
msgstr ""
-#: c-family/c.opt:487
+#: c-family/c.opt:490
msgid "Warn about user-specified include directories that do not exist"
msgstr ""
-#: c-family/c.opt:491
+#: c-family/c.opt:494
msgid ""
"Warn about function parameters declared without a type specifier in K&R-"
"style functions"
msgstr ""
-#: c-family/c.opt:495
+#: c-family/c.opt:498
msgid "Warn about global functions without prototypes"
msgstr ""
-#: c-family/c.opt:499
+#: c-family/c.opt:502
msgid "Warn about constructs not instrumented by -fmudflap"
msgstr ""
-#: c-family/c.opt:503
+#: c-family/c.opt:506
msgid "Warn about use of multi-character character constants"
msgstr ""
-#: c-family/c.opt:507
+#: c-family/c.opt:510
msgid ""
"Warn about narrowing conversions within { } that are ill-formed in C++11"
msgstr ""
-#: c-family/c.opt:511
+#: c-family/c.opt:514
msgid "Warn about \"extern\" declarations not at file scope"
msgstr ""
-#: c-family/c.opt:515
+#: c-family/c.opt:518
msgid ""
"Warn when a noexcept expression evaluates to false even though the "
"expression can't actually throw"
msgstr ""
-#: c-family/c.opt:519
+#: c-family/c.opt:522
msgid ""
"Warn when non-templatized friend functions are declared within a template"
msgstr ""
-#: c-family/c.opt:523
+#: c-family/c.opt:526
msgid "Warn about non-virtual destructors"
msgstr ""
-#: c-family/c.opt:527
+#: c-family/c.opt:530
msgid ""
"Warn about NULL being passed to argument slots marked as requiring non-NULL"
msgstr ""
-#: c-family/c.opt:531
+#: c-family/c.opt:534
msgid "-Wnormalized=<id|nfc|nfkc>\tWarn about non-normalised Unicode strings"
msgstr ""
-#: c-family/c.opt:535
+#: c-family/c.opt:538
msgid "Warn if a C-style cast is used in a program"
msgstr ""
-#: c-family/c.opt:539
+#: c-family/c.opt:542
msgid "Warn for obsolescent usage in a declaration"
msgstr ""
-#: c-family/c.opt:543
+#: c-family/c.opt:546
msgid "Warn if an old-style parameter definition is used"
msgstr ""
-#: c-family/c.opt:547
+#: c-family/c.opt:550
msgid ""
"Warn if a string is longer than the maximum portable length specified by the "
"standard"
msgstr ""
-#: c-family/c.opt:551
+#: c-family/c.opt:554
msgid "Warn about overloaded virtual function names"
msgstr ""
-#: c-family/c.opt:555
+#: c-family/c.opt:558
msgid "Warn about overriding initializers without side effects"
msgstr ""
-#: c-family/c.opt:559
+#: c-family/c.opt:562
msgid "Warn about packed bit-fields whose offset changed in GCC 4.4"
msgstr ""
-#: c-family/c.opt:563
+#: c-family/c.opt:566
msgid "Warn about possibly missing parentheses"
msgstr ""
-#: c-family/c.opt:571
+#: c-family/c.opt:574
msgid "Warn when converting the type of pointers to member functions"
msgstr ""
-#: c-family/c.opt:575
+#: c-family/c.opt:578
msgid "Warn about function pointer arithmetic"
msgstr ""
-#: c-family/c.opt:579
+#: c-family/c.opt:582
msgid "Warn when a pointer is cast to an integer of a different size"
msgstr ""
-#: c-family/c.opt:583
+#: c-family/c.opt:586
msgid "Warn about misuses of pragmas"
msgstr ""
-#: c-family/c.opt:587
+#: c-family/c.opt:590
msgid ""
"Warn if a property for an Objective-C object has no assign semantics "
"specified"
msgstr ""
-#: c-family/c.opt:591
+#: c-family/c.opt:594
msgid "Warn if inherited methods are unimplemented"
msgstr ""
-#: c-family/c.opt:595
+#: c-family/c.opt:598
msgid "Warn about multiple declarations of the same object"
msgstr ""
-#: c-family/c.opt:599
+#: c-family/c.opt:602
msgid "Warn when the compiler reorders code"
msgstr ""
-#: c-family/c.opt:603
+#: c-family/c.opt:606
msgid ""
"Warn whenever a function's return type defaults to \"int\" (C), or about "
"inconsistent return types (C++)"
msgstr ""
-#: c-family/c.opt:607
+#: c-family/c.opt:610
msgid "Warn if a selector has multiple methods"
msgstr ""
-#: c-family/c.opt:611
+#: c-family/c.opt:614
msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: c-family/c.opt:615
+#: c-family/c.opt:618
msgid "Warn about signed-unsigned comparisons"
msgstr ""
-#: c-family/c.opt:619
+#: c-family/c.opt:622
msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
-#: c-family/c.opt:623
+#: c-family/c.opt:626
msgid "Warn about uncasted NULL used as sentinel"
msgstr ""
-#: c-family/c.opt:627
+#: c-family/c.opt:630
msgid "Warn about unprototyped function declarations"
msgstr ""
-#: c-family/c.opt:631
+#: c-family/c.opt:634
msgid "Warn if type signatures of candidate methods do not match exactly"
msgstr ""
-#: c-family/c.opt:635
+#: c-family/c.opt:638
msgid ""
"Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions "
"are used"
msgstr ""
-#: c-family/c.opt:639
+#: c-family/c.opt:642
msgid "Deprecated. This switch has no effect"
msgstr ""
-#: c-family/c.opt:647
+#: c-family/c.opt:650
msgid "Warn about features not present in traditional C"
msgstr ""
-#: c-family/c.opt:651
+#: c-family/c.opt:654
msgid ""
"Warn of prototypes causing type conversions different from what would happen "
"in the absence of prototype"
msgstr ""
-#: c-family/c.opt:655
+#: c-family/c.opt:658
msgid ""
"Warn if trigraphs are encountered that might affect the meaning of the "
"program"
msgstr ""
-#: c-family/c.opt:659
+#: c-family/c.opt:662
msgid "Warn about @selector()s without previously declared methods"
msgstr ""
-#: c-family/c.opt:663
+#: c-family/c.opt:666
msgid "Warn if an undefined macro is used in an #if directive"
msgstr ""
-#: c-family/c.opt:667
+#: c-family/c.opt:670
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: c-family/c.opt:671
+#: c-family/c.opt:674
msgid "Warn about unsuffixed float constants"
msgstr ""
-#: c-family/c.opt:675
+#: c-family/c.opt:678
msgid "Warn when typedefs locally defined in a function are not used"
msgstr ""
-#: c-family/c.opt:679
+#: c-family/c.opt:682
msgid "Warn about macros defined in the main file that are not used"
msgstr ""
-#: c-family/c.opt:683
+#: c-family/c.opt:686
msgid ""
"Warn if a caller of a function, marked with attribute warn_unused_result, "
"does not use its return value"
msgstr ""
-#: c-family/c.opt:687
+#: c-family/c.opt:690
msgid "Do not warn about using variadic macros when -pedantic"
msgstr ""
-#: c-family/c.opt:691
+#: c-family/c.opt:694
msgid ""
"Warn about questionable usage of the macros used to retrieve variable "
"arguments"
msgstr ""
-#: c-family/c.opt:695
+#: c-family/c.opt:698
msgid "Warn if a variable length array is used"
msgstr ""
-#: c-family/c.opt:699
+#: c-family/c.opt:702
msgid "Warn when a register variable is declared volatile"
msgstr ""
-#: c-family/c.opt:703
+#: c-family/c.opt:706
msgid ""
"In C++, nonzero means warn about deprecated conversion from string literals "
"to 'char *'. In C, similar warning, except that the conversion is of course "
"not deprecated by the ISO C standard."
msgstr ""
-#: c-family/c.opt:707
+#: c-family/c.opt:710
msgid "Warn when a pointer differs in signedness in an assignment"
msgstr ""
-#: c-family/c.opt:711
+#: c-family/c.opt:714
msgid "Warn when a literal '0' is used as null pointer"
msgstr ""
-#: c-family/c.opt:715
+#: c-family/c.opt:718
msgid "Warn about useless casts"
msgstr ""
-#: c-family/c.opt:719
+#: c-family/c.opt:722
msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)"
msgstr ""
-#: c-family/c.opt:727
+#: c-family/c.opt:730
msgid "Enforce class member access control semantics"
msgstr ""
-#: c-family/c.opt:730 c-family/c.opt:737 c-family/c.opt:803 c-family/c.opt:819
-#: c-family/c.opt:842 c-family/c.opt:848 c-family/c.opt:855 c-family/c.opt:879
-#: c-family/c.opt:902 c-family/c.opt:905 c-family/c.opt:919
-#: c-family/c.opt:1038 c-family/c.opt:1049 c-family/c.opt:1067
-#: c-family/c.opt:1098 c-family/c.opt:1102 c-family/c.opt:1118
-#: c-family/c-opts.c:560
+#: c-family/c.opt:734
+msgid "-fada-spec-parent=unit Dump Ada specs as child units of given parent"
+msgstr ""
+
+#: c-family/c.opt:737 c-family/c.opt:744 c-family/c.opt:810 c-family/c.opt:826
+#: c-family/c.opt:849 c-family/c.opt:855 c-family/c.opt:862 c-family/c.opt:886
+#: c-family/c.opt:909 c-family/c.opt:912 c-family/c.opt:926
+#: c-family/c.opt:1045 c-family/c.opt:1056 c-family/c.opt:1074
+#: c-family/c.opt:1105 c-family/c.opt:1109 c-family/c.opt:1125
+#: c-family/c-opts.c:561
#, gcc-internal-format
msgid "switch %qs is no longer supported"
msgstr ""
-#: c-family/c.opt:734
+#: c-family/c.opt:741
msgid "Allow variadic functions without named parameter"
msgstr ""
-#: c-family/c.opt:738 c-family/c.opt:856 c-family/c.opt:1099
-#: c-family/c.opt:1103 c-family/c.opt:1119
+#: c-family/c.opt:745 c-family/c.opt:863 c-family/c.opt:1106
+#: c-family/c.opt:1110 c-family/c.opt:1126
msgid "No longer supported"
msgstr ""
-#: c-family/c.opt:742
+#: c-family/c.opt:749
msgid "Recognize the \"asm\" keyword"
msgstr ""
-#: c-family/c.opt:750
+#: c-family/c.opt:757
msgid "Recognize built-in functions"
msgstr ""
-#: c-family/c.opt:757
+#: c-family/c.opt:764
msgid "Check the return value of new"
msgstr ""
-#: c-family/c.opt:761
+#: c-family/c.opt:768
msgid "Allow the arguments of the '?' operator to have different types"
msgstr ""
-#: c-family/c.opt:768
+#: c-family/c.opt:775
#, c-format
msgid "no class name specified with %qs"
msgstr ""
-#: c-family/c.opt:769
+#: c-family/c.opt:776
msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
msgstr ""
-#: c-family/c.opt:773
+#: c-family/c.opt:780
msgid "-fconstexpr-depth=<number>\tSpecify maximum constexpr recursion depth"
msgstr ""
-#: c-family/c.opt:777
+#: c-family/c.opt:784
msgid "Emit debug annotations during preprocessing"
msgstr ""
-#: c-family/c.opt:781
+#: c-family/c.opt:788
msgid ""
"-fdeduce-init-list\tenable deduction of std::initializer_list for a template "
"type parameter from a brace-enclosed initializer-list"
msgstr ""
-#: c-family/c.opt:789
+#: c-family/c.opt:796
msgid "Preprocess directives only."
msgstr ""
-#: c-family/c.opt:793
+#: c-family/c.opt:800
msgid "Permit '$' as an identifier character"
msgstr ""
-#: c-family/c.opt:800
+#: c-family/c.opt:807
msgid "Generate code to check exception specifications"
msgstr ""
-#: c-family/c.opt:807
+#: c-family/c.opt:814
msgid ""
"-fexec-charset=<cset>\tConvert all strings and character constants to "
"character set <cset>"
msgstr ""
-#: c-family/c.opt:811
+#: c-family/c.opt:818
msgid "Permit universal character names (\\u and \\U) in identifiers"
msgstr ""
-#: c-family/c.opt:815
+#: c-family/c.opt:822
msgid ""
"-finput-charset=<cset>\tSpecify the default character set for source files"
msgstr ""
-#: c-family/c.opt:823
+#: c-family/c.opt:830
msgid "Scope of for-init-statement variables is local to the loop"
msgstr ""
-#: c-family/c.opt:827
+#: c-family/c.opt:834
msgid "Do not assume that standard C libraries and \"main\" exist"
msgstr ""
-#: c-family/c.opt:831
+#: c-family/c.opt:838
msgid "Recognize GNU-defined keywords"
msgstr ""
-#: c-family/c.opt:835
+#: c-family/c.opt:842
msgid "Generate code for GNU runtime environment"
msgstr ""
-#: c-family/c.opt:839
+#: c-family/c.opt:846
msgid "Use traditional GNU semantics for inline functions"
msgstr ""
-#: c-family/c.opt:845
+#: c-family/c.opt:852
msgid ""
"-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
msgstr ""
-#: c-family/c.opt:852
+#: c-family/c.opt:859
msgid "Assume normal C execution environment"
msgstr ""
-#: c-family/c.opt:860
+#: c-family/c.opt:867
msgid "Export functions even if they can be inlined"
msgstr ""
-#: c-family/c.opt:864
+#: c-family/c.opt:871
msgid "Emit implicit instantiations of inline templates"
msgstr ""
-#: c-family/c.opt:868
+#: c-family/c.opt:875
msgid "Emit implicit instantiations of templates"
msgstr ""
-#: c-family/c.opt:872
+#: c-family/c.opt:879
msgid "Inject friend functions into enclosing namespace"
msgstr ""
-#: c-family/c.opt:876
+#: c-family/c.opt:883
msgid "Don't emit dllexported inline functions unless needed"
msgstr ""
-#: c-family/c.opt:883
+#: c-family/c.opt:890
msgid ""
"Allow implicit conversions between vectors with differing numbers of "
"subparts and/or differing element types."
msgstr ""
-#: c-family/c.opt:887
+#: c-family/c.opt:894
msgid "Don't warn about uses of Microsoft extensions"
msgstr ""
-#: c-family/c.opt:891
+#: c-family/c.opt:898
msgid "Add mudflap bounds-checking instrumentation for single-threaded program"
msgstr ""
-#: c-family/c.opt:895
+#: c-family/c.opt:902
msgid "Add mudflap bounds-checking instrumentation for multi-threaded program"
msgstr ""
-#: c-family/c.opt:899
+#: c-family/c.opt:906
msgid "Ignore read operations when inserting mudflap instrumentation"
msgstr ""
-#: c-family/c.opt:909
+#: c-family/c.opt:916
msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
msgstr ""
-#: c-family/c.opt:913
+#: c-family/c.opt:920
msgid "Assume that receivers of Objective-C messages may be nil"
msgstr ""
-#: c-family/c.opt:923
+#: c-family/c.opt:930
msgid ""
"Treat a throw() exception specification as noexcept to improve code size"
msgstr ""
-#: c-family/c.opt:927
+#: c-family/c.opt:934
msgid ""
"Specify which ABI to use for Objective-C family code and meta-data "
"generation."
msgstr ""
-#: c-family/c.opt:933
+#: c-family/c.opt:940
msgid ""
"Generate special Objective-C methods to initialize/destroy non-POD C++ "
"ivars, if needed"
msgstr ""
-#: c-family/c.opt:937
+#: c-family/c.opt:944
msgid "Allow fast jumps to the message dispatcher"
msgstr ""
-#: c-family/c.opt:943
+#: c-family/c.opt:950
msgid "Enable Objective-C exception and synchronization syntax"
msgstr ""
-#: c-family/c.opt:947
+#: c-family/c.opt:954
msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs"
msgstr ""
-#: c-family/c.opt:951
+#: c-family/c.opt:958
msgid ""
"Enable inline checks for nil receivers with the NeXT runtime and ABI version "
"2."
msgstr ""
-#: c-family/c.opt:956
+#: c-family/c.opt:963
msgid "Enable Objective-C setjmp exception handling runtime"
msgstr ""
-#: c-family/c.opt:960
+#: c-family/c.opt:967
msgid "Conform to the Objective-C 1.0 language as implemented in GCC 4.0"
msgstr ""
-#: c-family/c.opt:964
+#: c-family/c.opt:971
msgid "Enable OpenMP (implies -frecursive in Fortran)"
msgstr ""
-#: c-family/c.opt:968
+#: c-family/c.opt:975
msgid "Recognize C++ keywords like \"compl\" and \"xor\""
msgstr ""
-#: c-family/c.opt:979
+#: c-family/c.opt:986
msgid "Look for and use PCH files even when preprocessing"
msgstr ""
-#: c-family/c.opt:983
+#: c-family/c.opt:990
msgid "Downgrade conformance errors to warnings"
msgstr ""
-#: c-family/c.opt:987
+#: c-family/c.opt:994
msgid "Enable Plan 9 language extensions"
msgstr ""
-#: c-family/c.opt:991
+#: c-family/c.opt:998
msgid "Treat the input file as already preprocessed"
msgstr ""
-#: c-family/c.opt:999
+#: c-family/c.opt:1006
msgid ""
"-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro "
"expansion and display them in error messages"
msgstr ""
-#: c-family/c.opt:1003
+#: c-family/c.opt:1010
msgid ""
"-fno-pretty-templates Do not pretty-print template specializations as the "
"template signature followed by the arguments"
msgstr ""
-#: c-family/c.opt:1007
+#: c-family/c.opt:1014
msgid ""
"Used in Fix-and-Continue mode to indicate that object files may be swapped "
"in at runtime"
msgstr ""
-#: c-family/c.opt:1011
+#: c-family/c.opt:1018
msgid "Enable automatic template instantiation"
msgstr ""
-#: c-family/c.opt:1015
+#: c-family/c.opt:1022
msgid "Generate run time type descriptor information"
msgstr ""
-#: c-family/c.opt:1019
+#: c-family/c.opt:1026
msgid "Use the same size for double as for float"
msgstr ""
-#: c-family/c.opt:1023
+#: c-family/c.opt:1030
msgid "Use the narrowest integer type possible for enumeration types"
msgstr ""
-#: c-family/c.opt:1027
+#: c-family/c.opt:1034
msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
msgstr ""
-#: c-family/c.opt:1031
+#: c-family/c.opt:1038
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
msgstr ""
-#: c-family/c.opt:1035
+#: c-family/c.opt:1042
msgid "Make \"char\" signed by default"
msgstr ""
-#: c-family/c.opt:1042
+#: c-family/c.opt:1049
msgid "Display statistics accumulated during compilation"
msgstr ""
-#: c-family/c.opt:1046
+#: c-family/c.opt:1053
msgid ""
"Assume that values of enumeration type are always within the minimum range "
"of that type"
msgstr ""
-#: c-family/c.opt:1053
+#: c-family/c.opt:1060
msgid "-ftabstop=<number>\tDistance between tab stops for column reporting"
msgstr ""
-#: c-family/c.opt:1057
+#: c-family/c.opt:1064
msgid ""
"Set the maximum number of template instantiation notes for a single warning "
"or error"
msgstr ""
-#: c-family/c.opt:1064
+#: c-family/c.opt:1071
msgid "-ftemplate-depth=<number>\tSpecify maximum template instantiation depth"
msgstr ""
-#: c-family/c.opt:1071
+#: c-family/c.opt:1078
msgid ""
"-fno-threadsafe-statics\tDo not generate thread-safe code for initializing "
"local statics"
msgstr ""
-#: c-family/c.opt:1075
+#: c-family/c.opt:1082
msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
msgstr ""
-#: c-family/c.opt:1079
+#: c-family/c.opt:1086
msgid "Make \"char\" unsigned by default"
msgstr ""
-#: c-family/c.opt:1083
+#: c-family/c.opt:1090
msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: c-family/c.opt:1087
+#: c-family/c.opt:1094
msgid "Use __cxa_get_exception_ptr in exception handling"
msgstr ""
-#: c-family/c.opt:1091
+#: c-family/c.opt:1098
msgid "Marks all inlined functions and methods as having hidden visibility"
msgstr ""
-#: c-family/c.opt:1095
+#: c-family/c.opt:1102
msgid "Changes visibility to match Microsoft Visual Studio by default"
msgstr ""
-#: c-family/c.opt:1107
+#: c-family/c.opt:1114
msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: c-family/c.opt:1111
+#: c-family/c.opt:1118
msgid ""
"-fwide-exec-charset=<cset>\tConvert all wide strings and character constants "
"to character set <cset>"
msgstr ""
-#: c-family/c.opt:1115
+#: c-family/c.opt:1122
msgid "Generate a #line directive pointing at the current working directory"
msgstr ""
-#: c-family/c.opt:1123
+#: c-family/c.opt:1130
msgid ""
"Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
msgstr ""
-#: c-family/c.opt:1127
+#: c-family/c.opt:1134
msgid "Dump declarations to a .decl file"
msgstr ""
-#: c-family/c.opt:1131
+#: c-family/c.opt:1138
msgid "-femit-struct-debug-baseonly\tAggressive reduced debug info for structs"
msgstr ""
-#: c-family/c.opt:1135
+#: c-family/c.opt:1142
msgid ""
"-femit-struct-debug-reduced\tConservative reduced debug info for structs"
msgstr ""
-#: c-family/c.opt:1139
+#: c-family/c.opt:1146
msgid ""
"-femit-struct-debug-detailed=<spec-list>\tDetailed reduced debug info for "
"structs"
msgstr ""
-#: c-family/c.opt:1143
+#: c-family/c.opt:1150
msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: c-family/c.opt:1147
+#: c-family/c.opt:1154
msgid "-imacros <file>\tAccept definition of macros in <file>"
msgstr ""
-#: c-family/c.opt:1151
+#: c-family/c.opt:1158
msgid "-imultilib <dir>\tSet <dir> to be the multilib include subdirectory"
msgstr ""
-#: c-family/c.opt:1155
+#: c-family/c.opt:1162
msgid "-include <file>\tInclude the contents of <file> before other files"
msgstr ""
-#: c-family/c.opt:1159
+#: c-family/c.opt:1166
msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
msgstr ""
-#: c-family/c.opt:1163
+#: c-family/c.opt:1170
msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
msgstr ""
-#: c-family/c.opt:1167
+#: c-family/c.opt:1174
msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
msgstr ""
-#: c-family/c.opt:1171
+#: c-family/c.opt:1178
msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
msgstr ""
-#: c-family/c.opt:1175
+#: c-family/c.opt:1182
msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
msgstr ""
-#: c-family/c.opt:1179
+#: c-family/c.opt:1186
msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
msgstr ""
-#: c-family/c.opt:1189
+#: c-family/c.opt:1196
msgid ""
"Do not search standard system include directories (those specified with -"
"isystem will still be used)"
msgstr ""
-#: c-family/c.opt:1193
+#: c-family/c.opt:1200
msgid "Do not search standard system include directories for C++"
msgstr ""
-#: c-family/c.opt:1205
+#: c-family/c.opt:1212
msgid "Generate C header of platform-specific features"
msgstr ""
-#: c-family/c.opt:1209
+#: c-family/c.opt:1216
msgid "Remap file names when including files"
msgstr ""
-#: c-family/c.opt:1213 c-family/c.opt:1217
+#: c-family/c.opt:1220 c-family/c.opt:1224
msgid ""
"Conform to the ISO 1998 C++ standard revised by the 2003 technical "
"corrigendum"
msgstr ""
-#: c-family/c.opt:1221
+#: c-family/c.opt:1228
msgid ""
"Conform to the ISO 2011 C++ standard (experimental and incomplete support)"
msgstr ""
-#: c-family/c.opt:1225
+#: c-family/c.opt:1232
msgid "Deprecated in favor of -std=c++11"
msgstr ""
-#: c-family/c.opt:1229
+#: c-family/c.opt:1236
msgid ""
"Conform to the ISO 201y(7?) C++ draft standard (experimental and incomplete "
"support)"
msgstr ""
-#: c-family/c.opt:1233 c-family/c.opt:1319
+#: c-family/c.opt:1240 c-family/c.opt:1326
msgid ""
"Conform to the ISO 2011 C standard (experimental and incomplete support)"
msgstr ""
-#: c-family/c.opt:1237
+#: c-family/c.opt:1244
msgid "Deprecated in favor of -std=c11"
msgstr ""
-#: c-family/c.opt:1241 c-family/c.opt:1245 c-family/c.opt:1303
+#: c-family/c.opt:1248 c-family/c.opt:1252 c-family/c.opt:1310
msgid "Conform to the ISO 1990 C standard"
msgstr ""
-#: c-family/c.opt:1249 c-family/c.opt:1311
+#: c-family/c.opt:1256 c-family/c.opt:1318
msgid "Conform to the ISO 1999 C standard"
msgstr ""
-#: c-family/c.opt:1253
+#: c-family/c.opt:1260
msgid "Deprecated in favor of -std=c99"
msgstr ""
-#: c-family/c.opt:1257 c-family/c.opt:1262
+#: c-family/c.opt:1264 c-family/c.opt:1269
msgid "Conform to the ISO 1998 C++ standard revised by the 2003 technical"
msgstr ""
-#: c-family/c.opt:1267
+#: c-family/c.opt:1274
msgid ""
"Conform to the ISO 2011 C++ standard with GNU extensions (experimental and "
"incomplete support)"
msgstr ""
-#: c-family/c.opt:1271
+#: c-family/c.opt:1278
msgid "Deprecated in favor of -std=gnu++11"
msgstr ""
-#: c-family/c.opt:1275
+#: c-family/c.opt:1282
msgid ""
"Conform to the ISO 201y(7?) C++ draft standard with GNU extensions "
"(experimental and incomplete support)"
msgstr ""
-#: c-family/c.opt:1279
+#: c-family/c.opt:1286
msgid ""
"Conform to the ISO 2011 C standard with GNU extensions (experimental and "
"incomplete support)"
msgstr ""
-#: c-family/c.opt:1283
+#: c-family/c.opt:1290
msgid "Deprecated in favor of -std=gnu11"
msgstr ""
-#: c-family/c.opt:1287 c-family/c.opt:1291
+#: c-family/c.opt:1294 c-family/c.opt:1298
msgid "Conform to the ISO 1990 C standard with GNU extensions"
msgstr ""
-#: c-family/c.opt:1295
+#: c-family/c.opt:1302
msgid "Conform to the ISO 1999 C standard with GNU extensions"
msgstr ""
-#: c-family/c.opt:1299
+#: c-family/c.opt:1306
msgid "Deprecated in favor of -std=gnu99"
msgstr ""
-#: c-family/c.opt:1307
+#: c-family/c.opt:1314
msgid "Conform to the ISO 1990 C standard as amended in 1994"
msgstr ""
-#: c-family/c.opt:1315
+#: c-family/c.opt:1322
msgid "Deprecated in favor of -std=iso9899:1999"
msgstr ""
-#: c-family/c.opt:1326
+#: c-family/c.opt:1333
msgid "Enable traditional preprocessing"
msgstr ""
-#: c-family/c.opt:1330
+#: c-family/c.opt:1337
msgid "-trigraphs\tSupport ISO C trigraphs"
msgstr ""
-#: c-family/c.opt:1334
+#: c-family/c.opt:1341
msgid "Do not predefine system-specific and GCC-specific macros"
msgstr ""
@@ -10738,1825 +10791,1860 @@ msgstr ""
msgid "The resolution file"
msgstr ""
-#: common.opt:270
+#: common.opt:273
msgid "Display this information"
msgstr ""
-#: common.opt:274
+#: common.opt:277
msgid ""
"--help=<class>\tDisplay descriptions of a specific class of options. "
"<class> is one or more of optimizers, target, warnings, undocumented, params"
msgstr ""
-#: common.opt:386
+#: common.opt:392
msgid "Alias for --help=target"
msgstr ""
-#: common.opt:411
+#: common.opt:417
msgid ""
"--param <param>=<value>\tSet parameter <param> to value. See below for a "
"complete list of parameters"
msgstr ""
-#: common.opt:439
+#: common.opt:445
msgid "-O<number>\tSet optimization level to <number>"
msgstr ""
-#: common.opt:443
+#: common.opt:449
msgid "Optimize for space rather than speed"
msgstr ""
-#: common.opt:447
+#: common.opt:453
msgid "Optimize for speed disregarding exact standards compliance"
msgstr ""
-#: common.opt:487
+#: common.opt:457
+msgid "Optimize for debugging experience rather than speed or size"
+msgstr ""
+
+#: common.opt:497
msgid "This switch is deprecated; use -Wextra instead"
msgstr ""
-#: common.opt:500
+#: common.opt:510
msgid "Warn about returning structures, unions or arrays"
msgstr ""
-#: common.opt:504
+#: common.opt:514
msgid "Warn if an array is accessed out of bounds"
msgstr ""
-#: common.opt:508
+#: common.opt:518
msgid "Warn about inappropriate attribute usage"
msgstr ""
-#: common.opt:512
+#: common.opt:522
msgid "Warn about pointer casts which increase alignment"
msgstr ""
-#: common.opt:516
+#: common.opt:526
msgid "Warn when a #warning directive is encountered"
msgstr ""
-#: common.opt:520
+#: common.opt:530
msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr ""
-#: common.opt:524
+#: common.opt:534
msgid "Warn when an optimization pass is disabled"
msgstr ""
-#: common.opt:528
+#: common.opt:538
msgid "Treat all warnings as errors"
msgstr ""
-#: common.opt:532
+#: common.opt:542
msgid "Treat specified warning as error"
msgstr ""
-#: common.opt:536
+#: common.opt:546
msgid "Print extra (possibly unwanted) warnings"
msgstr ""
-#: common.opt:540
+#: common.opt:550
msgid "Exit on the first error occurred"
msgstr ""
-#: common.opt:544
+#: common.opt:554
msgid ""
"-Wframe-larger-than=<number>\tWarn if a function's stack frame requires more "
"than <number> bytes"
msgstr ""
-#: common.opt:548
+#: common.opt:558
msgid "Warn when attempting to free a non-heap object"
msgstr ""
-#: common.opt:552
+#: common.opt:562
msgid "Warn when an inlined function cannot be inlined"
msgstr ""
-#: common.opt:556
+#: common.opt:566
msgid ""
"Warn when an atomic memory model parameter is known to be outside the valid "
"range."
msgstr ""
-#: common.opt:563
+#: common.opt:573
msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes"
msgstr ""
-#: common.opt:567
+#: common.opt:577
msgid "Warn if the loop cannot be optimized due to nontrivial assumptions."
msgstr ""
-#: common.opt:574
+#: common.opt:584
msgid "Warn about overflow in arithmetic expressions"
msgstr ""
-#: common.opt:578
+#: common.opt:588
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr ""
-#: common.opt:582
+#: common.opt:592
msgid "Warn when padding is required to align structure members"
msgstr ""
-#: common.opt:586
+#: common.opt:596
msgid "Issue warnings needed for strict compliance to the standard"
msgstr ""
-#: common.opt:590
+#: common.opt:600
msgid "Warn when one local variable shadows another"
msgstr ""
-#: common.opt:594
+#: common.opt:604
msgid "Warn when not issuing stack smashing protection for some reason"
msgstr ""
-#: common.opt:598
+#: common.opt:608
msgid "Warn if stack usage might be larger than specified amount"
msgstr ""
-#: common.opt:602 common.opt:606
+#: common.opt:612 common.opt:616
msgid "Warn about code which might break strict aliasing rules"
msgstr ""
-#: common.opt:610 common.opt:614
+#: common.opt:620 common.opt:624
msgid "Warn about optimizations that assume that signed overflow is undefined"
msgstr ""
-#: common.opt:618
+#: common.opt:628
msgid ""
"Warn about functions which might be candidates for __attribute__((const))"
msgstr ""
-#: common.opt:622
+#: common.opt:632
msgid ""
"Warn about functions which might be candidates for __attribute__((pure))"
msgstr ""
-#: common.opt:626
+#: common.opt:636
msgid ""
"Warn about functions which might be candidates for __attribute__((noreturn))"
msgstr ""
-#: common.opt:630
+#: common.opt:640
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: common.opt:634
+#: common.opt:644
msgid "Warn about enumerated switches missing a \"default:\" statement"
msgstr ""
-#: common.opt:638
+#: common.opt:648
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: common.opt:642
+#: common.opt:652
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: common.opt:646
+#: common.opt:656
msgid "Warn whenever a trampoline is generated"
msgstr ""
-#: common.opt:650
+#: common.opt:660
msgid ""
"Warn if a comparison is always true or always false due to the limited range "
"of the data type"
msgstr ""
-#: common.opt:654
+#: common.opt:664
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: common.opt:658
+#: common.opt:668
msgid "Warn about maybe uninitialized automatic variables"
msgstr ""
-#: common.opt:666
+#: common.opt:676
msgid "Enable all -Wunused- warnings"
msgstr ""
-#: common.opt:670
+#: common.opt:680
msgid "Warn when a function parameter is only set, otherwise unused"
msgstr ""
-#: common.opt:674
+#: common.opt:684
msgid "Warn when a variable is only set, otherwise unused"
msgstr ""
-#: common.opt:678
+#: common.opt:688
msgid "Warn when a function is unused"
msgstr ""
-#: common.opt:682
+#: common.opt:692
msgid "Warn when a label is unused"
msgstr ""
-#: common.opt:686
+#: common.opt:696
msgid "Warn when a function parameter is unused"
msgstr ""
-#: common.opt:690
+#: common.opt:700
msgid "Warn when an expression value is unused"
msgstr ""
-#: common.opt:694
+#: common.opt:704
msgid "Warn when a variable is unused"
msgstr ""
-#: common.opt:698
+#: common.opt:708
msgid "Warn in case profiles in -fprofile-use do not match"
msgstr ""
-#: common.opt:702
+#: common.opt:712
msgid "Warn when a vector operation is compiled outside the SIMD"
msgstr ""
-#: common.opt:718
+#: common.opt:728
msgid "-aux-info <file>\tEmit declaration information into <file>"
msgstr ""
-#: common.opt:737
+#: common.opt:747
msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
msgstr ""
-#: common.opt:741
+#: common.opt:751
msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
msgstr ""
-#: common.opt:745
+#: common.opt:755
msgid "-dumpdir <dir>\tSet the directory name to be used for dumps"
msgstr ""
-#: common.opt:803
+#: common.opt:813
msgid "Align the start of functions"
msgstr ""
-#: common.opt:810
+#: common.opt:820
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: common.opt:817
+#: common.opt:827
msgid "Align all labels"
msgstr ""
-#: common.opt:824
+#: common.opt:834
msgid "Align the start of loops"
msgstr ""
-#: common.opt:847
+#: common.opt:857
msgid "Generate unwind tables that are exact at each instruction boundary"
msgstr ""
-#: common.opt:851
+#: common.opt:861
msgid "Generate auto-inc/dec instructions"
msgstr ""
-#: common.opt:859
+#: common.opt:869
msgid "Generate code to check bounds before indexing arrays"
msgstr ""
-#: common.opt:863
+#: common.opt:873
msgid "Replace add, compare, branch with branch on count register"
msgstr ""
-#: common.opt:867
+#: common.opt:877
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: common.opt:871
+#: common.opt:881
msgid ""
"Perform branch target load optimization before prologue / epilogue threading"
msgstr ""
-#: common.opt:875
+#: common.opt:885
msgid ""
"Perform branch target load optimization after prologue / epilogue threading"
msgstr ""
-#: common.opt:879
+#: common.opt:889
msgid ""
"Restrict target load migration not to re-use registers in any basic block"
msgstr ""
-#: common.opt:883
+#: common.opt:893
msgid ""
"-fcall-saved-<register>\tMark <register> as being preserved across functions"
msgstr ""
-#: common.opt:887
+#: common.opt:897
msgid ""
"-fcall-used-<register>\tMark <register> as being corrupted by function calls"
msgstr ""
-#: common.opt:894
+#: common.opt:904
msgid "Save registers around function calls"
msgstr ""
-#: common.opt:898
+#: common.opt:908
msgid "Compare the results of several data dependence analyzers."
msgstr ""
-#: common.opt:902
+#: common.opt:912
msgid ""
"Looks for opportunities to reduce stack adjustments and stack references."
msgstr ""
-#: common.opt:906
+#: common.opt:916
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: common.opt:914
+#: common.opt:924
msgid ""
"-fcompare-debug[=<opts>]\tCompile with and without e.g. -gtoggle, and "
"compare the final-insns dump"
msgstr ""
-#: common.opt:918
+#: common.opt:928
msgid "Run only the second compilation of -fcompare-debug"
msgstr ""
-#: common.opt:922
+#: common.opt:932
msgid "Perform comparison elimination after register allocation has finished"
msgstr ""
-#: common.opt:926
+#: common.opt:936
msgid "Do not perform optimizations increasing noticeably stack usage"
msgstr ""
-#: common.opt:930
+#: common.opt:940
msgid "Perform a register copy-propagation optimization pass"
msgstr ""
-#: common.opt:934
+#: common.opt:944
msgid "Perform cross-jumping optimization"
msgstr ""
-#: common.opt:938
+#: common.opt:948
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: common.opt:946
+#: common.opt:956
msgid "Omit range reduction step when performing complex division"
msgstr ""
-#: common.opt:950
+#: common.opt:960
msgid "Complex multiplication and division follow Fortran rules"
msgstr ""
-#: common.opt:954
+#: common.opt:964
msgid "Place data items into their own section"
msgstr ""
-#: common.opt:958
+#: common.opt:968
msgid "List all available debugging counters with their limits and counts."
msgstr ""
-#: common.opt:962
+#: common.opt:972
msgid ""
"-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]\tSet the debug counter "
"limit. "
msgstr ""
-#: common.opt:966
+#: common.opt:976
msgid "Map one directory name to another in debug information"
msgstr ""
-#: common.opt:970
+#: common.opt:980
msgid "Output .debug_types section when using DWARF v4 debuginfo."
msgstr ""
-#: common.opt:976
+#: common.opt:986
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: common.opt:980
+#: common.opt:990
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: common.opt:984
+#: common.opt:994
+msgid "Delete dead instructions that may throw exceptions"
+msgstr ""
+
+#: common.opt:998
msgid "Delete useless null pointer checks"
msgstr ""
-#: common.opt:988
+#: common.opt:1002
msgid "Try to convert virtual calls to direct ones."
msgstr ""
-#: common.opt:992
+#: common.opt:1006
msgid ""
"-fdiagnostics-show-location=[once|every-line]\tHow often to emit source "
"location at the beginning of line-wrapped diagnostics"
msgstr ""
-#: common.opt:1009
+#: common.opt:1023
msgid "Show the source line with a caret indicating the column"
msgstr ""
-#: common.opt:1013
+#: common.opt:1027
msgid ""
"Amend appropriate diagnostic messages with the command line option that "
"controls them"
msgstr ""
-#: common.opt:1017
+#: common.opt:1031
msgid ""
"-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass"
msgstr ""
-#: common.opt:1021
+#: common.opt:1035
msgid ""
"-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass"
msgstr ""
-#: common.opt:1025
+#: common.opt:1039
msgid "-fdump-<type>\tDump various compiler internals to a file"
msgstr ""
-#: common.opt:1032
+#: common.opt:1046
msgid ""
"-fdump-final-insns=filename\tDump to filename the insns at the end of "
"translation"
msgstr ""
-#: common.opt:1036
+#: common.opt:1050
msgid "-fdump-go-spec=filename\tWrite all declarations to file as Go code"
msgstr ""
-#: common.opt:1040
+#: common.opt:1054
msgid "Suppress output of addresses in debugging dumps"
msgstr ""
-#: common.opt:1044
+#: common.opt:1058
msgid "Dump optimization passes"
msgstr ""
-#: common.opt:1048
+#: common.opt:1062
msgid ""
"Suppress output of instruction numbers, line number notes and addresses in "
"debugging dumps"
msgstr ""
-#: common.opt:1052
+#: common.opt:1066
msgid "Suppress output of previous and next insn numbers in debugging dumps"
msgstr ""
-#: common.opt:1056
+#: common.opt:1070
msgid "Enable CFI tables via GAS assembler directives."
msgstr ""
-#: common.opt:1060
+#: common.opt:1074
msgid "Perform early inlining"
msgstr ""
-#: common.opt:1064
+#: common.opt:1078
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: common.opt:1068
+#: common.opt:1082
msgid "Perform interprocedural reduction of aggregates"
msgstr ""
-#: common.opt:1072 common.opt:1076
+#: common.opt:1086 common.opt:1090
msgid "Perform unused type elimination in debug info"
msgstr ""
-#: common.opt:1080
+#: common.opt:1094
msgid "Do not suppress C++ class debug information."
msgstr ""
-#: common.opt:1084
+#: common.opt:1098
msgid "Enable exception handling"
msgstr ""
-#: common.opt:1088
+#: common.opt:1102
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: common.opt:1092
+#: common.opt:1106
msgid ""
"-fexcess-precision=[fast|standard]\tSpecify handling of excess floating-"
"point precision"
msgstr ""
-#: common.opt:1095
+#: common.opt:1109
#, c-format
msgid "unknown excess precision style %qs"
msgstr ""
-#: common.opt:1108
+#: common.opt:1122
msgid ""
"Output lto objects containing both the intermediate language and binary "
"output."
msgstr ""
-#: common.opt:1112
+#: common.opt:1126
msgid "Assume no NaNs or infinities are generated"
msgstr ""
-#: common.opt:1116
+#: common.opt:1130
msgid ""
"-ffixed-<register>\tMark <register> as being unavailable to the compiler"
msgstr ""
-#: common.opt:1120
+#: common.opt:1134
msgid "Don't allocate floats and doubles in extended-precision registers"
msgstr ""
-#: common.opt:1128
+#: common.opt:1142
msgid "Perform a forward propagation pass on RTL"
msgstr ""
-#: common.opt:1132
+#: common.opt:1146
msgid ""
"-ffp-contract=[off|on|fast] Perform floating-point expression contraction."
msgstr ""
-#: common.opt:1135
+#: common.opt:1149
#, c-format
msgid "unknown floating point contraction style %qs"
msgstr ""
-#: common.opt:1152
+#: common.opt:1166
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: common.opt:1156
+#: common.opt:1170
msgid "Place each function into its own section"
msgstr ""
-#: common.opt:1160
+#: common.opt:1174
msgid "Perform global common subexpression elimination"
msgstr ""
-#: common.opt:1164
+#: common.opt:1178
msgid ""
"Perform enhanced load motion during global common subexpression elimination"
msgstr ""
-#: common.opt:1168
+#: common.opt:1182
msgid "Perform store motion after global common subexpression elimination"
msgstr ""
-#: common.opt:1172
+#: common.opt:1186
msgid ""
"Perform redundant load after store elimination in global common subexpression"
msgstr ""
-#: common.opt:1177
+#: common.opt:1191
msgid ""
"Perform global common subexpression elimination after register allocation"
msgstr ""
-#: common.opt:1183
+#: common.opt:1197
msgid "Enable in and out of Graphite representation"
msgstr ""
-#: common.opt:1187
+#: common.opt:1201
msgid "Enable Graphite Identity transformation"
msgstr ""
-#: common.opt:1191
+#: common.opt:1205
msgid "Enable hoisting adjacent loads to encourage generating conditional move"
msgstr ""
-#: common.opt:1196
+#: common.opt:1210
msgid "Mark all loops as parallel"
msgstr ""
-#: common.opt:1200
+#: common.opt:1214
msgid "Enable Loop Strip Mining transformation"
msgstr ""
-#: common.opt:1204
+#: common.opt:1218
msgid "Enable Loop Interchange transformation"
msgstr ""
-#: common.opt:1208
+#: common.opt:1222
msgid "Enable Loop Blocking transformation"
msgstr ""
-#: common.opt:1212
+#: common.opt:1226
msgid "Enable support for GNU transactional memory"
msgstr ""
-#: common.opt:1220
+#: common.opt:1234
+msgid "Enable the ISL based loop nest optimizer"
+msgstr ""
+
+#: common.opt:1238
msgid "Force bitfield accesses to match their type width"
msgstr ""
-#: common.opt:1224
+#: common.opt:1242
msgid "Enable guessing of branch probabilities"
msgstr ""
-#: common.opt:1232
+#: common.opt:1250
msgid "Process #ident directives"
msgstr ""
-#: common.opt:1236
+#: common.opt:1254
msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: common.opt:1240
+#: common.opt:1258
msgid "Perform conversion of conditional jumps to conditional execution"
msgstr ""
-#: common.opt:1244
+#: common.opt:1262
+msgid ""
+"-fstack-reuse=[all|named_vars|none] Set stack reuse level for local "
+"variables."
+msgstr ""
+
+#: common.opt:1265
+#, c-format
+msgid "unknown Stack Reuse Level %qs"
+msgstr ""
+
+#: common.opt:1278
msgid "Convert conditional jumps in innermost loops to branchless equivalents"
msgstr ""
-#: common.opt:1248
+#: common.opt:1282
msgid "Also if-convert conditional jumps containing memory writes"
msgstr ""
-#: common.opt:1256
+#: common.opt:1290
msgid "Do not generate .size directives"
msgstr ""
-#: common.opt:1260
+#: common.opt:1294
msgid "Perform indirect inlining"
msgstr ""
-#: common.opt:1266
+#: common.opt:1300
msgid ""
"Enable inlining of function declared \"inline\", disabling disables all "
"inlining"
msgstr ""
-#: common.opt:1270
+#: common.opt:1304
msgid ""
"Integrate functions into their callers when code size is known not to grow"
msgstr ""
-#: common.opt:1274
+#: common.opt:1308
msgid ""
"Integrate functions not declared \"inline\" into their callers when "
"profitable"
msgstr ""
-#: common.opt:1278
+#: common.opt:1312
msgid "Integrate functions only required by their single caller"
msgstr ""
-#: common.opt:1285
+#: common.opt:1319
msgid ""
"-finline-limit=<number>\tLimit the size of inlined functions to <number>"
msgstr ""
-#: common.opt:1289
+#: common.opt:1323
msgid ""
"Inline __atomic operations when a lock free instruction sequence is "
"available."
msgstr ""
-#: common.opt:1293
+#: common.opt:1327
msgid "Instrument function entry and exit with profiling calls"
msgstr ""
-#: common.opt:1297
+#: common.opt:1331
msgid ""
"-finstrument-functions-exclude-function-list=name,... Do not instrument "
"listed functions"
msgstr ""
-#: common.opt:1301
+#: common.opt:1335
msgid ""
"-finstrument-functions-exclude-file-list=filename,... Do not instrument "
"functions listed in files"
msgstr ""
-#: common.opt:1305
+#: common.opt:1339
msgid "Perform Interprocedural constant propagation"
msgstr ""
-#: common.opt:1309
+#: common.opt:1343
msgid "Perform cloning to make Interprocedural constant propagation stronger"
msgstr ""
-#: common.opt:1313
+#: common.opt:1347
msgid "Perform interprocedural profile propagation"
msgstr ""
-#: common.opt:1317
+#: common.opt:1351
msgid "Perform interprocedural points-to analysis"
msgstr ""
-#: common.opt:1321
+#: common.opt:1355
msgid "Discover pure and const functions"
msgstr ""
-#: common.opt:1325
+#: common.opt:1359
msgid "Discover readonly and non addressable static variables"
msgstr ""
-#: common.opt:1329
-msgid "Perform matrix layout flattening and transposing based"
-msgstr ""
-
-#: common.opt:1338
+#: common.opt:1371
msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm"
msgstr ""
-#: common.opt:1341
+#: common.opt:1374
#, c-format
msgid "unknown IRA algorithm %qs"
msgstr ""
-#: common.opt:1351
+#: common.opt:1384
msgid "-fira-region=[one|all|mixed] Set regions for IRA"
msgstr ""
-#: common.opt:1354
+#: common.opt:1387
#, c-format
msgid "unknown IRA region %qs"
msgstr ""
-#: common.opt:1367
+#: common.opt:1400
msgid "Use IRA based register pressure calculation"
msgstr ""
-#: common.opt:1372
+#: common.opt:1405
msgid "Share slots for saving different hard registers."
msgstr ""
-#: common.opt:1376
+#: common.opt:1409
msgid "Share stack slots for spilled pseudo-registers."
msgstr ""
-#: common.opt:1380
+#: common.opt:1413
msgid "-fira-verbose=<number>\tControl IRA's level of diagnostic messages."
msgstr ""
-#: common.opt:1384
+#: common.opt:1417
msgid "Optimize induction variables on trees"
msgstr ""
-#: common.opt:1388
+#: common.opt:1421
msgid "Use jump tables for sufficiently large switch statements"
msgstr ""
-#: common.opt:1392
+#: common.opt:1425
msgid "Generate code for functions even if they are fully inlined"
msgstr ""
-#: common.opt:1396
+#: common.opt:1429
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: common.opt:1400
+#: common.opt:1433
msgid "Give external symbols a leading underscore"
msgstr ""
-#: common.opt:1408
+#: common.opt:1441
msgid "Enable link-time optimization."
msgstr ""
-#: common.opt:1412
+#: common.opt:1445
msgid "Link-time optimization with number of parallel jobs or jobserver."
msgstr ""
-#: common.opt:1416
+#: common.opt:1449
msgid ""
-"Partition functions and vars at linktime based on object files they "
-"originate from"
+"Partition symbols and vars at linktime based on object files they originate "
+"from"
msgstr ""
-#: common.opt:1420
+#: common.opt:1453
msgid ""
"Partition functions and vars at linktime into approximately same sized "
"buckets"
msgstr ""
-#: common.opt:1424
+#: common.opt:1457
+msgid "Put every symbol into separate partition"
+msgstr ""
+
+#: common.opt:1461
msgid "Disable partioning and streaming"
msgstr ""
-#: common.opt:1429
+#: common.opt:1466
msgid ""
"-flto-compression-level=<number>\tUse zlib compression level <number> for IL"
msgstr ""
-#: common.opt:1433
+#: common.opt:1470
msgid "Report various link-time optimization statistics"
msgstr ""
-#: common.opt:1437
+#: common.opt:1474
msgid "Set errno after built-in math functions"
msgstr ""
-#: common.opt:1441
+#: common.opt:1478
msgid "-fmax-errors=<number>\tMaximum number of errors to report"
msgstr ""
-#: common.opt:1445
+#: common.opt:1482
msgid "Report on permanent memory allocation"
msgstr ""
-#: common.opt:1452
+#: common.opt:1486
+msgid "Report on permanent memory allocation in WPA only"
+msgstr ""
+
+#: common.opt:1493
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: common.opt:1456
+#: common.opt:1497
msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: common.opt:1460
+#: common.opt:1501
msgid "Attempt to merge identical debug strings across compilation units"
msgstr ""
-#: common.opt:1464
+#: common.opt:1505
msgid ""
"-fmessage-length=<number>\tLimit diagnostics to <number> characters per "
"line. 0 suppresses line-wrapping"
msgstr ""
-#: common.opt:1468
+#: common.opt:1509
msgid "Perform SMS based modulo scheduling before the first scheduling pass"
msgstr ""
-#: common.opt:1472
+#: common.opt:1513
msgid "Perform SMS based modulo scheduling with register moves allowed"
msgstr ""
-#: common.opt:1476
+#: common.opt:1517
msgid "Move loop invariant computations out of loops"
msgstr ""
-#: common.opt:1480
+#: common.opt:1521
msgid "Use the RTL dead code elimination pass"
msgstr ""
-#: common.opt:1484
+#: common.opt:1525
msgid "Use the RTL dead store elimination pass"
msgstr ""
-#: common.opt:1488
+#: common.opt:1529
msgid ""
"Enable/Disable the traditional scheduling in loops that already passed "
"modulo scheduling"
msgstr ""
-#: common.opt:1492
+#: common.opt:1533
msgid "Support synchronous non-call exceptions"
msgstr ""
-#: common.opt:1496
+#: common.opt:1537
msgid "When possible do not generate stack frames"
msgstr ""
-#: common.opt:1500
+#: common.opt:1541
msgid "Do the full register move optimization pass"
msgstr ""
-#: common.opt:1504
+#: common.opt:1545
msgid "Optimize sibling and tail recursive calls"
msgstr ""
-#: common.opt:1508
+#: common.opt:1549
msgid "Perform partial inlining"
msgstr ""
-#: common.opt:1512 common.opt:1516
+#: common.opt:1553 common.opt:1557
msgid "Report on memory allocation before interprocedural optimization"
msgstr ""
-#: common.opt:1520
+#: common.opt:1561
msgid "Pack structure members together without holes"
msgstr ""
-#: common.opt:1524
+#: common.opt:1565
msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment"
msgstr ""
-#: common.opt:1528
+#: common.opt:1569
msgid "Return small aggregates in memory, not registers"
msgstr ""
-#: common.opt:1532
+#: common.opt:1573
msgid "Perform loop peeling"
msgstr ""
-#: common.opt:1536
+#: common.opt:1577
msgid "Enable machine specific peephole optimizations"
msgstr ""
-#: common.opt:1540
+#: common.opt:1581
msgid "Enable an RTL peephole pass before sched2"
msgstr ""
-#: common.opt:1544
+#: common.opt:1585
msgid "Generate position-independent code if possible (large mode)"
msgstr ""
-#: common.opt:1548
+#: common.opt:1589
msgid ""
"Generate position-independent code for executables if possible (large mode)"
msgstr ""
-#: common.opt:1552
+#: common.opt:1593
msgid "Generate position-independent code if possible (small mode)"
msgstr ""
-#: common.opt:1556
+#: common.opt:1597
msgid ""
"Generate position-independent code for executables if possible (small mode)"
msgstr ""
-#: common.opt:1560
+#: common.opt:1601
msgid "Specify a plugin to load"
msgstr ""
-#: common.opt:1564
+#: common.opt:1605
msgid ""
"-fplugin-arg-<name>-<key>[=<value>]\tSpecify argument <key>=<value> for "
"plugin <name>"
msgstr ""
-#: common.opt:1568
+#: common.opt:1609
msgid "Run predictive commoning optimization."
msgstr ""
-#: common.opt:1572
+#: common.opt:1613
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
-#: common.opt:1576
+#: common.opt:1617
msgid "Enable basic program profiling code"
msgstr ""
-#: common.opt:1580
+#: common.opt:1621
msgid "Insert arc-based program profiling code"
msgstr ""
-#: common.opt:1584
+#: common.opt:1625
msgid "Set the top-level directory for storing the profile data."
msgstr ""
-#: common.opt:1589
+#: common.opt:1630
msgid "Enable correction of flow inconsistent profile data input"
msgstr ""
-#: common.opt:1593
+#: common.opt:1634
msgid ""
"Enable common options for generating profile info for profile feedback "
"directed optimizations"
msgstr ""
-#: common.opt:1597
+#: common.opt:1638
msgid ""
"Enable common options for generating profile info for profile feedback "
"directed optimizations, and set -fprofile-dir="
msgstr ""
-#: common.opt:1601
+#: common.opt:1642
msgid ""
"Enable common options for performing profile feedback directed optimizations"
msgstr ""
-#: common.opt:1605
+#: common.opt:1646
msgid ""
"Enable common options for performing profile feedback directed "
"optimizations, and set -fprofile-dir="
msgstr ""
-#: common.opt:1609
+#: common.opt:1650
msgid "Insert code to profile values of expressions"
msgstr ""
-#: common.opt:1616
+#: common.opt:1657
msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
msgstr ""
-#: common.opt:1626
+#: common.opt:1667
msgid "Record gcc command line switches in the object file."
msgstr ""
-#: common.opt:1630
+#: common.opt:1671
msgid "Return small aggregates in registers"
msgstr ""
-#: common.opt:1634
+#: common.opt:1675
msgid "Enables a register move optimization"
msgstr ""
-#: common.opt:1638
+#: common.opt:1679
msgid "Perform a register renaming optimization pass"
msgstr ""
-#: common.opt:1642
+#: common.opt:1683
msgid "Reorder basic blocks to improve code placement"
msgstr ""
-#: common.opt:1646
+#: common.opt:1687
msgid "Reorder basic blocks and partition into hot and cold sections"
msgstr ""
-#: common.opt:1650
+#: common.opt:1691
msgid "Reorder functions to improve code placement"
msgstr ""
-#: common.opt:1654
+#: common.opt:1695
msgid "Add a common subexpression elimination pass after loop optimizations"
msgstr ""
-#: common.opt:1662
+#: common.opt:1703
msgid "Disable optimizations that assume default FP rounding behavior"
msgstr ""
-#: common.opt:1666
+#: common.opt:1707
msgid "Enable scheduling across basic blocks"
msgstr ""
-#: common.opt:1670
+#: common.opt:1711
msgid "Enable register pressure sensitive insn scheduling"
msgstr ""
-#: common.opt:1674
+#: common.opt:1715
msgid "Allow speculative motion of non-loads"
msgstr ""
-#: common.opt:1678
+#: common.opt:1719
msgid "Allow speculative motion of some loads"
msgstr ""
-#: common.opt:1682
+#: common.opt:1723
msgid "Allow speculative motion of more loads"
msgstr ""
-#: common.opt:1686
+#: common.opt:1727
msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
msgstr ""
-#: common.opt:1690
+#: common.opt:1731
msgid "If scheduling post reload, do superblock scheduling"
msgstr ""
-#: common.opt:1698
+#: common.opt:1739
msgid "Reschedule instructions before register allocation"
msgstr ""
-#: common.opt:1702
+#: common.opt:1743
msgid "Reschedule instructions after register allocation"
msgstr ""
-#: common.opt:1709
+#: common.opt:1750
msgid "Schedule instructions using selective scheduling algorithm"
msgstr ""
-#: common.opt:1713
+#: common.opt:1754
msgid "Run selective scheduling after reload"
msgstr ""
-#: common.opt:1717
+#: common.opt:1758
msgid "Perform software pipelining of inner loops during selective scheduling"
msgstr ""
-#: common.opt:1721
+#: common.opt:1762
msgid "Perform software pipelining of outer loops during selective scheduling"
msgstr ""
-#: common.opt:1725
+#: common.opt:1766
msgid "Reschedule pipelined regions without pipelining"
msgstr ""
-#: common.opt:1731
+#: common.opt:1772
msgid "Allow premature scheduling of queued insns"
msgstr ""
-#: common.opt:1735
+#: common.opt:1776
msgid ""
"-fsched-stalled-insns=<number>\tSet number of queued insns that can be "
"prematurely scheduled"
msgstr ""
-#: common.opt:1743
+#: common.opt:1784
msgid ""
"Set dependence distance checking in premature scheduling of queued insns"
msgstr ""
-#: common.opt:1747
+#: common.opt:1788
msgid ""
"-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in "
"premature scheduling of queued insns"
msgstr ""
-#: common.opt:1751
+#: common.opt:1792
msgid "Enable the group heuristic in the scheduler"
msgstr ""
-#: common.opt:1755
+#: common.opt:1796
msgid "Enable the critical path heuristic in the scheduler"
msgstr ""
-#: common.opt:1759
+#: common.opt:1800
msgid "Enable the speculative instruction heuristic in the scheduler"
msgstr ""
-#: common.opt:1763
+#: common.opt:1804
msgid "Enable the rank heuristic in the scheduler"
msgstr ""
-#: common.opt:1767
+#: common.opt:1808
msgid "Enable the last instruction heuristic in the scheduler"
msgstr ""
-#: common.opt:1771
+#: common.opt:1812
msgid "Enable the dependent count heuristic in the scheduler"
msgstr ""
-#: common.opt:1775
+#: common.opt:1816
msgid "Access data in the same section from shared anchor points"
msgstr ""
-#: common.opt:1787
+#: common.opt:1828
msgid "Turn on Redundant Extensions Elimination pass."
msgstr ""
-#: common.opt:1791
+#: common.opt:1832
msgid "Show column numbers in diagnostics, when available. Default on"
msgstr ""
-#: common.opt:1795
+#: common.opt:1836
msgid "Emit function prologues only before parts of the function that need it,"
msgstr ""
-#: common.opt:1800
+#: common.opt:1841
msgid "Disable optimizations observable by IEEE signaling NaNs"
msgstr ""
-#: common.opt:1804
+#: common.opt:1845
msgid ""
"Disable floating point optimizations that ignore the IEEE signedness of zero"
msgstr ""
-#: common.opt:1808
+#: common.opt:1849
msgid "Convert floating point constants to single precision constants"
msgstr ""
-#: common.opt:1812
+#: common.opt:1853
msgid "Split lifetimes of induction variables when loops are unrolled"
msgstr ""
-#: common.opt:1816
+#: common.opt:1857
msgid "Generate discontiguous stack frames"
msgstr ""
-#: common.opt:1820
+#: common.opt:1861
msgid "Split wide types into independent registers"
msgstr ""
-#: common.opt:1824
+#: common.opt:1865
msgid "Apply variable expansion when loops are unrolled"
msgstr ""
-#: common.opt:1828
+#: common.opt:1869
msgid ""
"-fstack-check=[no|generic|specific]\tInsert stack checking code into the "
"program"
msgstr ""
-#: common.opt:1832
+#: common.opt:1873
msgid ""
"Insert stack checking code into the program. Same as -fstack-check=specific"
msgstr ""
-#: common.opt:1839
+#: common.opt:1880
msgid ""
"-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
msgstr ""
-#: common.opt:1843
+#: common.opt:1884
msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>"
msgstr ""
-#: common.opt:1847
+#: common.opt:1888
msgid "Use propolice as a stack protection method"
msgstr ""
-#: common.opt:1851
+#: common.opt:1892
msgid "Use a stack protection method for every function"
msgstr ""
-#: common.opt:1855
+#: common.opt:1896
msgid "Output stack usage information on a per-function basis"
msgstr ""
-#: common.opt:1867
+#: common.opt:1908
msgid "Assume strict aliasing rules apply"
msgstr ""
-#: common.opt:1871
+#: common.opt:1912
msgid "Treat signed overflow as undefined"
msgstr ""
-#: common.opt:1875
+#: common.opt:1916
msgid "Implement __atomic operations via libcalls to legacy __sync functions"
msgstr ""
-#: common.opt:1879
+#: common.opt:1920
msgid "Check for syntax errors, then stop"
msgstr ""
-#: common.opt:1883
+#: common.opt:1924
msgid "Create data files needed by \"gcov\""
msgstr ""
-#: common.opt:1887
+#: common.opt:1928
msgid "Perform jump threading optimizations"
msgstr ""
-#: common.opt:1891
+#: common.opt:1932
msgid "Report the time taken by each compiler pass"
msgstr ""
-#: common.opt:1895
+#: common.opt:1936
msgid ""
"-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the "
"default thread-local storage code generation model"
msgstr ""
-#: common.opt:1898
+#: common.opt:1939
#, c-format
msgid "unknown TLS model %qs"
msgstr ""
-#: common.opt:1914
+#: common.opt:1955
msgid "Reorder top level functions, variables, and asms"
msgstr ""
-#: common.opt:1918
+#: common.opt:1959
msgid "Perform superblock formation via tail duplication"
msgstr ""
-#: common.opt:1925
+#: common.opt:1966
msgid "Assume floating-point operations can trap"
msgstr ""
-#: common.opt:1929
+#: common.opt:1970
msgid "Trap for signed overflow in addition, subtraction and multiplication"
msgstr ""
-#: common.opt:1933
+#: common.opt:1974
msgid "Enable SSA-CCP optimization on trees"
msgstr ""
-#: common.opt:1937
+#: common.opt:1978
msgid "Enable SSA-BIT-CCP optimization on trees"
msgstr ""
-#: common.opt:1945
+#: common.opt:1986
msgid "Enable loop header copying on trees"
msgstr ""
-#: common.opt:1949
+#: common.opt:1990
msgid "Enable coalescing of copy-related user variables that are inlined"
msgstr ""
-#: common.opt:1953
+#: common.opt:1994
msgid "Enable coalescing of all copy-related user variables"
msgstr ""
-#: common.opt:1957
+#: common.opt:1998
msgid "Replace SSA temporaries with better names in copies"
msgstr ""
-#: common.opt:1961
+#: common.opt:2002
msgid "Enable copy propagation on trees"
msgstr ""
-#: common.opt:1969
+#: common.opt:2010
msgid "Transform condition stores into unconditional ones"
msgstr ""
-#: common.opt:1973
+#: common.opt:2014
msgid "Perform conversions of switch initializations."
msgstr ""
-#: common.opt:1977
+#: common.opt:2018
msgid "Enable SSA dead code elimination optimization on trees"
msgstr ""
-#: common.opt:1981
+#: common.opt:2022
msgid "Enable dominator optimizations"
msgstr ""
-#: common.opt:1985
+#: common.opt:2026
msgid "Enable tail merging on trees"
msgstr ""
-#: common.opt:1989
+#: common.opt:2030
msgid "Enable dead store elimination"
msgstr ""
-#: common.opt:1993
+#: common.opt:2034
msgid "Enable forward propagation on trees"
msgstr ""
-#: common.opt:1997
+#: common.opt:2038
msgid "Enable Full Redundancy Elimination (FRE) on trees"
msgstr ""
-#: common.opt:2001
+#: common.opt:2042
msgid "Enable string length optimizations on trees"
msgstr ""
-#: common.opt:2005
+#: common.opt:2046
msgid "Enable loop distribution on trees"
msgstr ""
-#: common.opt:2009
+#: common.opt:2050
msgid "Enable loop distribution for patterns transformed into a library call"
msgstr ""
-#: common.opt:2013
+#: common.opt:2054
msgid "Enable loop invariant motion on trees"
msgstr ""
-#: common.opt:2017
+#: common.opt:2058
msgid "Enable loop interchange transforms. Same as -floop-interchange"
msgstr ""
-#: common.opt:2021
+#: common.opt:2062
msgid "Create canonical induction variables in loops"
msgstr ""
-#: common.opt:2025
+#: common.opt:2066
msgid "Enable loop optimizations on tree level"
msgstr ""
-#: common.opt:2029
+#: common.opt:2070
msgid "Enable automatic parallelization of loops"
msgstr ""
-#: common.opt:2033
+#: common.opt:2074
msgid "Enable hoisting loads from conditional pointers."
msgstr ""
-#: common.opt:2037
+#: common.opt:2078
msgid "Enable SSA-PRE optimization on trees"
msgstr ""
-#: common.opt:2041
+#: common.opt:2082
msgid ""
"In SSA-PRE optimization on trees, enable partial-partial redundancy "
"elimination"
msgstr ""
-#: common.opt:2045
+#: common.opt:2086
msgid "Perform function-local points-to analysis on trees."
msgstr ""
-#: common.opt:2049
+#: common.opt:2090
msgid "Enable reassociation on tree level"
msgstr ""
-#: common.opt:2057
+#: common.opt:2098
msgid "Enable SSA code sinking on trees"
msgstr ""
-#: common.opt:2061
+#: common.opt:2102
+msgid "Perform straight-line strength reduction"
+msgstr ""
+
+#: common.opt:2106
msgid "Perform scalar replacement of aggregates"
msgstr ""
-#: common.opt:2065
+#: common.opt:2110
msgid "Replace temporary expressions in the SSA->normal pass"
msgstr ""
-#: common.opt:2069
+#: common.opt:2114
msgid "Perform live range splitting during the SSA->normal pass"
msgstr ""
-#: common.opt:2073
+#: common.opt:2118
msgid "Perform Value Range Propagation on trees"
msgstr ""
-#: common.opt:2077
+#: common.opt:2122
msgid "Compile whole compilation unit at a time"
msgstr ""
-#: common.opt:2081
+#: common.opt:2126
msgid "Perform loop unrolling when iteration count is known"
msgstr ""
-#: common.opt:2085
+#: common.opt:2130
msgid "Perform loop unrolling for all loops"
msgstr ""
-#: common.opt:2092
+#: common.opt:2137
msgid "Allow loop optimizations to assume that the loops behave in normal way"
msgstr ""
-#: common.opt:2096
+#: common.opt:2141
msgid "Allow optimization for floating-point arithmetic which may change the"
msgstr ""
-#: common.opt:2101
+#: common.opt:2146
msgid "Same as -fassociative-math for expressions which include division."
msgstr ""
-#: common.opt:2109
+#: common.opt:2154
msgid "Allow math optimizations that may violate IEEE or ISO standards"
msgstr ""
-#: common.opt:2113
+#: common.opt:2158
msgid "Perform loop unswitching"
msgstr ""
-#: common.opt:2117
+#: common.opt:2162
msgid "Just generate unwind tables for exception handling"
msgstr ""
-#: common.opt:2129
+#: common.opt:2174
msgid "Perform variable tracking"
msgstr ""
-#: common.opt:2137
+#: common.opt:2182
msgid "Perform variable tracking by annotating assignments"
msgstr ""
-#: common.opt:2143
+#: common.opt:2188
msgid "Toggle -fvar-tracking-assignments"
msgstr ""
-#: common.opt:2147
+#: common.opt:2192
msgid "Perform variable tracking and also tag variables that are uninitialized"
msgstr ""
-#: common.opt:2151
+#: common.opt:2196
msgid "Enable loop vectorization on trees"
msgstr ""
-#: common.opt:2155
+#: common.opt:2200
msgid "Enable basic block vectorization (SLP) on trees"
msgstr ""
-#: common.opt:2159
+#: common.opt:2204
msgid "Enable use of cost model in vectorization"
msgstr ""
-#: common.opt:2163
+#: common.opt:2208
msgid "Enable loop versioning when doing loop vectorization on trees"
msgstr ""
-#: common.opt:2167
+#: common.opt:2212
msgid ""
"-ftree-vectorizer-verbose=<number>\tSet the verbosity level of the vectorizer"
msgstr ""
-#: common.opt:2171
+#: common.opt:2216
msgid "Enable copy propagation of scalar-evolution information."
msgstr ""
-#: common.opt:2181
+#: common.opt:2226
msgid "Add extra commentary to assembler output"
msgstr ""
-#: common.opt:2185
+#: common.opt:2230
msgid ""
"-fvisibility=[default|internal|hidden|protected]\tSet the default symbol "
"visibility"
msgstr ""
-#: common.opt:2188
+#: common.opt:2233
#, c-format
msgid "unrecognized visibility value %qs"
msgstr ""
-#: common.opt:2204
+#: common.opt:2249
msgid "Use expression value profiles in optimizations"
msgstr ""
-#: common.opt:2208
+#: common.opt:2253
msgid "Construct webs and split unrelated uses of single variable"
msgstr ""
-#: common.opt:2212
+#: common.opt:2257
msgid "Enable conditional dead code elimination for builtin calls"
msgstr ""
-#: common.opt:2216
+#: common.opt:2261
msgid "Perform whole program optimizations"
msgstr ""
-#: common.opt:2220
+#: common.opt:2265
msgid "Assume signed arithmetic overflow wraps around"
msgstr ""
-#: common.opt:2224
+#: common.opt:2269
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: common.opt:2228
+#: common.opt:2273
msgid "Generate debug information in default format"
msgstr ""
-#: common.opt:2232
+#: common.opt:2277
msgid "Generate debug information in COFF format"
msgstr ""
-#: common.opt:2236
+#: common.opt:2281
msgid "Generate debug information in DWARF v2 (or later) format"
msgstr ""
-#: common.opt:2240
+#: common.opt:2285
msgid "Generate debug information in default extended format"
msgstr ""
-#: common.opt:2244
+#: common.opt:2289
+msgid "Don't generate DWARF pubnames and pubtypes sections."
+msgstr ""
+
+#: common.opt:2293
+msgid "Generate DWARF pubnames and pubtypes sections."
+msgstr ""
+
+#: common.opt:2297
msgid "Don't record gcc command line switches in DWARF DW_AT_producer."
msgstr ""
-#: common.opt:2248
+#: common.opt:2301
msgid "Record gcc command line switches in DWARF DW_AT_producer."
msgstr ""
-#: common.opt:2252
+#: common.opt:2305
msgid "Generate debug information in STABS format"
msgstr ""
-#: common.opt:2256
+#: common.opt:2309
msgid "Generate debug information in extended STABS format"
msgstr ""
-#: common.opt:2260
+#: common.opt:2313
msgid "Emit DWARF additions beyond selected version"
msgstr ""
-#: common.opt:2264
+#: common.opt:2317
msgid "Don't emit DWARF additions beyond selected version"
msgstr ""
-#: common.opt:2268
+#: common.opt:2321
msgid "Toggle debug information generation"
msgstr ""
-#: common.opt:2272
+#: common.opt:2325
msgid "Generate debug information in VMS format"
msgstr ""
-#: common.opt:2276
+#: common.opt:2329
msgid "Generate debug information in XCOFF format"
msgstr ""
-#: common.opt:2280
+#: common.opt:2333
msgid "Generate debug information in extended XCOFF format"
msgstr ""
-#: common.opt:2287
+#: common.opt:2340
msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory"
msgstr ""
-#: common.opt:2309
+#: common.opt:2362
msgid "-o <file>\tPlace output into <file>"
msgstr ""
-#: common.opt:2313
+#: common.opt:2366
msgid "Enable function profiling"
msgstr ""
-#: common.opt:2323
+#: common.opt:2376
msgid "Like -pedantic but issue them as errors"
msgstr ""
-#: common.opt:2360
+#: common.opt:2413
msgid "Do not display functions compiled or elapsed time"
msgstr ""
-#: common.opt:2392
+#: common.opt:2445
msgid "Enable verbose output"
msgstr ""
-#: common.opt:2396
+#: common.opt:2449
msgid "Display the compiler's version"
msgstr ""
-#: common.opt:2400
+#: common.opt:2453
msgid "Suppress warnings"
msgstr ""
-#: common.opt:2410
+#: common.opt:2463
msgid "Create a shared library"
msgstr ""
-#: common.opt:2443
+#: common.opt:2496
msgid "Create a position independent executable"
msgstr ""
-#: go/gofrontend/expressions.cc:853
+#: go/gofrontend/expressions.cc:849
msgid "invalid use of type"
msgstr ""
-#: go/gofrontend/expressions.cc:2533 go/gofrontend/expressions.cc:2599
-#: go/gofrontend/expressions.cc:2615
+#: go/gofrontend/expressions.cc:2529 go/gofrontend/expressions.cc:2595
+#: go/gofrontend/expressions.cc:2611
msgid "constant refers to itself"
msgstr ""
-#: go/gofrontend/expressions.cc:3900
+#: go/gofrontend/expressions.cc:3896
msgid "expected numeric type"
msgstr ""
-#: go/gofrontend/expressions.cc:3905
+#: go/gofrontend/expressions.cc:3901
msgid "expected boolean type"
msgstr ""
-#: go/gofrontend/expressions.cc:3911
+#: go/gofrontend/expressions.cc:3907
msgid "expected integer or boolean type"
msgstr ""
-#: go/gofrontend/expressions.cc:3918
+#: go/gofrontend/expressions.cc:3914
msgid "invalid operand for unary %<&%>"
msgstr ""
-#: go/gofrontend/expressions.cc:3927
+#: go/gofrontend/expressions.cc:3923
msgid "expected pointer"
msgstr ""
-#: go/gofrontend/expressions.cc:5588 go/gofrontend/expressions.cc:5606
+#: go/gofrontend/expressions.cc:5593 go/gofrontend/expressions.cc:5611
msgid "incompatible types in binary expression"
msgstr ""
-#: go/gofrontend/expressions.cc:5620
+#: go/gofrontend/expressions.cc:5625
msgid "shift of non-integer operand"
msgstr ""
-#: go/gofrontend/expressions.cc:5625 go/gofrontend/expressions.cc:5633
+#: go/gofrontend/expressions.cc:5630 go/gofrontend/expressions.cc:5638
msgid "shift count not unsigned integer"
msgstr ""
-#: go/gofrontend/expressions.cc:5638
+#: go/gofrontend/expressions.cc:5643
msgid "negative shift count"
msgstr ""
-#: go/gofrontend/expressions.cc:6431
+#: go/gofrontend/expressions.cc:6442
msgid "object is not a method"
msgstr ""
-#: go/gofrontend/expressions.cc:6440
+#: go/gofrontend/expressions.cc:6451
msgid "method type does not match object type"
msgstr ""
-#: go/gofrontend/expressions.cc:6714
+#: go/gofrontend/expressions.cc:6725
msgid "invalid use of %<...%> with builtin function"
msgstr ""
-#: go/gofrontend/expressions.cc:6748 go/gofrontend/expressions.cc:6805
-#: go/gofrontend/expressions.cc:6850 go/gofrontend/expressions.cc:7539
-#: go/gofrontend/expressions.cc:7686 go/gofrontend/expressions.cc:7729
-#: go/gofrontend/expressions.cc:7785 go/gofrontend/expressions.cc:8967
-#: go/gofrontend/expressions.cc:8986
+#: go/gofrontend/expressions.cc:6759 go/gofrontend/expressions.cc:6816
+#: go/gofrontend/expressions.cc:6861 go/gofrontend/expressions.cc:7550
+#: go/gofrontend/expressions.cc:7697 go/gofrontend/expressions.cc:7740
+#: go/gofrontend/expressions.cc:7796 go/gofrontend/expressions.cc:8978
+#: go/gofrontend/expressions.cc:8997
msgid "not enough arguments"
msgstr ""
-#: go/gofrontend/expressions.cc:6750 go/gofrontend/expressions.cc:6807
-#: go/gofrontend/expressions.cc:7544 go/gofrontend/expressions.cc:7669
-#: go/gofrontend/expressions.cc:7691 go/gofrontend/expressions.cc:7734
-#: go/gofrontend/expressions.cc:7787 go/gofrontend/expressions.cc:8662
-#: go/gofrontend/expressions.cc:8972 go/gofrontend/expressions.cc:8993
+#: go/gofrontend/expressions.cc:6761 go/gofrontend/expressions.cc:6818
+#: go/gofrontend/expressions.cc:7555 go/gofrontend/expressions.cc:7680
+#: go/gofrontend/expressions.cc:7702 go/gofrontend/expressions.cc:7745
+#: go/gofrontend/expressions.cc:7798 go/gofrontend/expressions.cc:8673
+#: go/gofrontend/expressions.cc:8983 go/gofrontend/expressions.cc:9004
msgid "too many arguments"
msgstr ""
-#: go/gofrontend/expressions.cc:6809
+#: go/gofrontend/expressions.cc:6820
msgid "argument 1 must be a map"
msgstr ""
-#: go/gofrontend/expressions.cc:6876
+#: go/gofrontend/expressions.cc:6887
msgid "invalid type for make function"
msgstr ""
-#: go/gofrontend/expressions.cc:6890
+#: go/gofrontend/expressions.cc:6901
msgid "length required when allocating a slice"
msgstr ""
-#: go/gofrontend/expressions.cc:6904
+#: go/gofrontend/expressions.cc:6915
msgid "bad size for make"
msgstr ""
-#: go/gofrontend/expressions.cc:6919
+#: go/gofrontend/expressions.cc:6930
msgid "bad capacity when making slice"
msgstr ""
-#: go/gofrontend/expressions.cc:6930
+#: go/gofrontend/expressions.cc:6941
msgid "too many arguments to make"
msgstr ""
-#: go/gofrontend/expressions.cc:7588
+#: go/gofrontend/expressions.cc:7599
msgid "argument must be array or slice or channel"
msgstr ""
-#: go/gofrontend/expressions.cc:7598
+#: go/gofrontend/expressions.cc:7609
msgid "argument must be string or array or slice or map or channel"
msgstr ""
-#: go/gofrontend/expressions.cc:7644
+#: go/gofrontend/expressions.cc:7655
msgid "unsupported argument type to builtin function"
msgstr ""
-#: go/gofrontend/expressions.cc:7655
+#: go/gofrontend/expressions.cc:7666
msgid "argument must be channel"
msgstr ""
-#: go/gofrontend/expressions.cc:7657
+#: go/gofrontend/expressions.cc:7668
msgid "cannot close receive-only channel"
msgstr ""
-#: go/gofrontend/expressions.cc:7677
+#: go/gofrontend/expressions.cc:7688
msgid "argument must be a field reference"
msgstr ""
-#: go/gofrontend/expressions.cc:7704
+#: go/gofrontend/expressions.cc:7715
msgid "left argument must be a slice"
msgstr ""
-#: go/gofrontend/expressions.cc:7712
+#: go/gofrontend/expressions.cc:7723
msgid "element types must be the same"
msgstr ""
-#: go/gofrontend/expressions.cc:7717
+#: go/gofrontend/expressions.cc:7728
msgid "first argument must be []byte"
msgstr ""
-#: go/gofrontend/expressions.cc:7720
+#: go/gofrontend/expressions.cc:7731
msgid "second argument must be slice or string"
msgstr ""
-#: go/gofrontend/expressions.cc:7761
+#: go/gofrontend/expressions.cc:7772
msgid "argument 2 has invalid type"
msgstr ""
-#: go/gofrontend/expressions.cc:7777
+#: go/gofrontend/expressions.cc:7788
msgid "argument must have complex type"
msgstr ""
-#: go/gofrontend/expressions.cc:7795
+#: go/gofrontend/expressions.cc:7806
msgid "complex arguments must have identical types"
msgstr ""
-#: go/gofrontend/expressions.cc:7797
+#: go/gofrontend/expressions.cc:7808
msgid "complex arguments must have floating-point type"
msgstr ""
-#: go/gofrontend/expressions.cc:8666
+#: go/gofrontend/expressions.cc:8677
msgid "invalid use of %<...%> with non-slice"
msgstr ""
-#: go/gofrontend/expressions.cc:8920 go/gofrontend/expressions.cc:9361
+#: go/gofrontend/expressions.cc:8931 go/gofrontend/expressions.cc:9372
msgid "expected function"
msgstr ""
-#: go/gofrontend/expressions.cc:8939
+#: go/gofrontend/expressions.cc:8950
msgid "incompatible type for receiver"
msgstr ""
-#: go/gofrontend/expressions.cc:8957
+#: go/gofrontend/expressions.cc:8968
msgid "invalid use of %<...%> calling non-variadic function"
msgstr ""
-#: go/gofrontend/expressions.cc:9370 go/gofrontend/expressions.cc:9384
+#: go/gofrontend/expressions.cc:9381 go/gofrontend/expressions.cc:9395
msgid "number of results does not match number of values"
msgstr ""
-#: go/gofrontend/expressions.cc:9688 go/gofrontend/expressions.cc:10110
+#: go/gofrontend/expressions.cc:9699 go/gofrontend/expressions.cc:10122
msgid "index must be integer"
msgstr ""
-#: go/gofrontend/expressions.cc:9694 go/gofrontend/expressions.cc:10114
+#: go/gofrontend/expressions.cc:9705 go/gofrontend/expressions.cc:10126
msgid "slice end must be integer"
msgstr ""
-#: go/gofrontend/expressions.cc:9751
+#: go/gofrontend/expressions.cc:9762
msgid "slice of unaddressable value"
msgstr ""
-#: go/gofrontend/expressions.cc:10344
+#: go/gofrontend/expressions.cc:10356
msgid "incompatible type for map index"
msgstr ""
-#: go/gofrontend/expressions.cc:10692
+#: go/gofrontend/expressions.cc:10704
msgid "expected interface or pointer to interface"
msgstr ""
-#: go/gofrontend/expressions.cc:11260
+#: go/gofrontend/expressions.cc:11272
msgid "too many expressions for struct"
msgstr ""
-#: go/gofrontend/expressions.cc:11273
+#: go/gofrontend/expressions.cc:11285
msgid "too few expressions for struct"
msgstr ""
-#: go/gofrontend/expressions.cc:12933 go/gofrontend/expressions.cc:12941
-msgid "invalid unsafe.Pointer conversion"
-msgstr ""
-
-#: go/gofrontend/expressions.cc:12946 go/gofrontend/statements.cc:1539
+#: go/gofrontend/expressions.cc:12945 go/gofrontend/statements.cc:1539
msgid "type assertion only valid for interface types"
msgstr ""
-#: go/gofrontend/expressions.cc:12958
+#: go/gofrontend/expressions.cc:12957
msgid "impossible type assertion: type does not implement interface"
msgstr ""
-#: go/gofrontend/expressions.cc:13142 go/gofrontend/statements.cc:1387
+#: go/gofrontend/expressions.cc:13128 go/gofrontend/statements.cc:1387
msgid "expected channel"
msgstr ""
-#: go/gofrontend/expressions.cc:13147 go/gofrontend/statements.cc:1392
+#: go/gofrontend/expressions.cc:13133 go/gofrontend/statements.cc:1392
msgid "invalid receive on send-only channel"
msgstr ""
@@ -12593,139 +12681,143 @@ msgstr ""
msgid "expected boolean expression"
msgstr ""
-#: go/gofrontend/statements.cc:4334
+#: go/gofrontend/statements.cc:4198
+msgid "cannot type switch on non-interface value"
+msgstr ""
+
+#: go/gofrontend/statements.cc:4320
msgid "incompatible types in send"
msgstr ""
-#: go/gofrontend/statements.cc:4339
+#: go/gofrontend/statements.cc:4325
msgid "invalid send on receive-only channel"
msgstr ""
-#: go/gofrontend/statements.cc:5226
+#: go/gofrontend/statements.cc:5212
msgid "too many variables for range clause with channel"
msgstr ""
-#: go/gofrontend/statements.cc:5233
+#: go/gofrontend/statements.cc:5219
msgid "range clause must have array, slice, string, map, or channel type"
msgstr ""
-#: go/gofrontend/types.cc:527
+#: go/gofrontend/types.cc:518
msgid "invalid comparison of non-ordered type"
msgstr ""
-#: go/gofrontend/types.cc:543
+#: go/gofrontend/types.cc:534
msgid "slice can only be compared to nil"
msgstr ""
-#: go/gofrontend/types.cc:545
+#: go/gofrontend/types.cc:536
msgid "map can only be compared to nil"
msgstr ""
-#: go/gofrontend/types.cc:547
+#: go/gofrontend/types.cc:538
msgid "func can only be compared to nil"
msgstr ""
-#: go/gofrontend/types.cc:553
+#: go/gofrontend/types.cc:544
#, c-format
msgid "invalid operation (%s)"
msgstr ""
-#: go/gofrontend/types.cc:576
+#: go/gofrontend/types.cc:567
msgid "invalid comparison of non-comparable type"
msgstr ""
-#: go/gofrontend/types.cc:594
+#: go/gofrontend/types.cc:585
msgid "invalid comparison of non-comparable struct"
msgstr ""
-#: go/gofrontend/types.cc:605
+#: go/gofrontend/types.cc:596
msgid "invalid comparison of non-comparable array"
msgstr ""
-#: go/gofrontend/types.cc:636
+#: go/gofrontend/types.cc:627
msgid "multiple value function call in single value context"
msgstr ""
-#: go/gofrontend/types.cc:723
+#: go/gofrontend/types.cc:714
msgid "need explicit conversion"
msgstr ""
-#: go/gofrontend/types.cc:730
+#: go/gofrontend/types.cc:721
#, c-format
msgid "cannot use type %s as type %s"
msgstr ""
-#: go/gofrontend/types.cc:3207
+#: go/gofrontend/types.cc:3225
msgid "different receiver types"
msgstr ""
-#: go/gofrontend/types.cc:3227 go/gofrontend/types.cc:3240
-#: go/gofrontend/types.cc:3255
+#: go/gofrontend/types.cc:3245 go/gofrontend/types.cc:3258
+#: go/gofrontend/types.cc:3273
msgid "different number of parameters"
msgstr ""
-#: go/gofrontend/types.cc:3248
+#: go/gofrontend/types.cc:3266
msgid "different parameter types"
msgstr ""
-#: go/gofrontend/types.cc:3263
+#: go/gofrontend/types.cc:3281
msgid "different varargs"
msgstr ""
-#: go/gofrontend/types.cc:3272 go/gofrontend/types.cc:3285
-#: go/gofrontend/types.cc:3300
+#: go/gofrontend/types.cc:3290 go/gofrontend/types.cc:3303
+#: go/gofrontend/types.cc:3318
msgid "different number of results"
msgstr ""
-#: go/gofrontend/types.cc:3293
+#: go/gofrontend/types.cc:3311
msgid "different result types"
msgstr ""
-#: go/gofrontend/types.cc:4249
+#: go/gofrontend/types.cc:4267
#, c-format
msgid "implicit assignment of %s%s%s hidden field %s%s%s"
msgstr ""
-#: go/gofrontend/types.cc:6639
+#: go/gofrontend/types.cc:6657
#, c-format
msgid "need explicit conversion; missing method %s%s%s"
msgstr ""
-#: go/gofrontend/types.cc:6656 go/gofrontend/types.cc:6798
+#: go/gofrontend/types.cc:6674 go/gofrontend/types.cc:6816
#, c-format
msgid "incompatible type for method %s%s%s"
msgstr ""
-#: go/gofrontend/types.cc:6660 go/gofrontend/types.cc:6802
+#: go/gofrontend/types.cc:6678 go/gofrontend/types.cc:6820
#, c-format
msgid "incompatible type for method %s%s%s (%s)"
msgstr ""
-#: go/gofrontend/types.cc:6739 go/gofrontend/types.cc:6752
+#: go/gofrontend/types.cc:6757 go/gofrontend/types.cc:6770
msgid "pointer to interface type has no methods"
msgstr ""
-#: go/gofrontend/types.cc:6741 go/gofrontend/types.cc:6754
+#: go/gofrontend/types.cc:6759 go/gofrontend/types.cc:6772
msgid "type has no methods"
msgstr ""
-#: go/gofrontend/types.cc:6775
+#: go/gofrontend/types.cc:6793
#, c-format
msgid "ambiguous method %s%s%s"
msgstr ""
-#: go/gofrontend/types.cc:6778
+#: go/gofrontend/types.cc:6796
#, c-format
msgid "missing method %s%s%s"
msgstr ""
-#: go/gofrontend/types.cc:6818
+#: go/gofrontend/types.cc:6836
#, c-format
msgid "method %s%s%s requires a pointer"
msgstr ""
#. Warn about and ignore all others for now, but store them.
-#: attribs.c:316 c-family/c-common.c:7521 objc/objc-act.c:4948
+#: attribs.c:316 c-family/c-common.c:7762 objc/objc-act.c:4948
#: objc/objc-act.c:6918 objc/objc-act.c:8105 objc/objc-act.c:8156
#, gcc-internal-format
msgid "%qE attribute directive ignored"
@@ -12751,4440 +12843,939 @@ msgstr ""
msgid "type attributes ignored after type is already defined"
msgstr ""
-#: bb-reorder.c:1902
+#: bb-reorder.c:2096
#, gcc-internal-format, gfc-internal-format
msgid "multiple hot/cold transitions found (bb %i)"
msgstr ""
-#: bt-load.c:1545
+#: bt-load.c:1546
#, gcc-internal-format
msgid ""
"branch target register load optimization is not intended to be run twice"
msgstr ""
-#: builtins.c:656
+#: builtins.c:638
#, gcc-internal-format
msgid "offset outside bounds of constant string"
msgstr ""
-#: builtins.c:1200
+#: builtins.c:1182
#, gcc-internal-format
msgid "second argument to %<__builtin_prefetch%> must be a constant"
msgstr ""
-#: builtins.c:1207
+#: builtins.c:1189
#, gcc-internal-format
msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1197
#, gcc-internal-format
msgid "third argument to %<__builtin_prefetch%> must be a constant"
msgstr ""
-#: builtins.c:1222
+#: builtins.c:1204
#, gcc-internal-format
msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
msgstr ""
-#: builtins.c:4283 gimplify.c:2533
+#: builtins.c:4182 gimplify.c:2510
#, gcc-internal-format
msgid "too few arguments to function %<va_start%>"
msgstr ""
-#: builtins.c:4441
+#: builtins.c:4340
#, gcc-internal-format
msgid "first argument to %<va_arg%> not of type %<va_list%>"
msgstr ""
-#: builtins.c:4457
+#: builtins.c:4356
#, gcc-internal-format
msgid "%qT is promoted to %qT when passed through %<...%>"
msgstr ""
-#: builtins.c:4462
+#: builtins.c:4361
#, gcc-internal-format
msgid "(so you should pass %qT not %qT to %<va_arg%>)"
msgstr ""
#. We can, however, treat "undefined" any way we please.
#. Call abort to encourage the user to fix the program.
-#: builtins.c:4469 c-typeck.c:2800
+#: builtins.c:4368 c/c-typeck.c:2806
#, gcc-internal-format
msgid "if this code is reached, the program will abort"
msgstr ""
-#: builtins.c:4596
+#: builtins.c:4495
#, gcc-internal-format
msgid "invalid argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4598
+#: builtins.c:4497
#, gcc-internal-format
msgid "invalid argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4611
+#: builtins.c:4510
#, gcc-internal-format
msgid "unsupported argument to %<__builtin_frame_address%>"
msgstr ""
-#: builtins.c:4613
+#: builtins.c:4512
#, gcc-internal-format
msgid "unsupported argument to %<__builtin_return_address%>"
msgstr ""
-#: builtins.c:4883
+#: builtins.c:4782
#, gcc-internal-format
msgid "both arguments to %<__builtin___clear_cache%> must be pointers"
msgstr ""
-#: builtins.c:4983
+#: builtins.c:4882
#, gcc-internal-format
msgid "trampoline generated for nested function %qD"
msgstr ""
-#: builtins.c:5279 builtins.c:5292
+#: builtins.c:5178 builtins.c:5191
#, gcc-internal-format
msgid "%qD changed semantics in GCC 4.4"
msgstr ""
-#: builtins.c:5396
+#: builtins.c:5295
#, gcc-internal-format
msgid "Unknown architecture specifier in memory model to builtin."
msgstr ""
-#: builtins.c:5403
+#: builtins.c:5302
#, gcc-internal-format
msgid "invalid memory model argument to builtin"
msgstr ""
-#: builtins.c:5424
+#: builtins.c:5323
#, gcc-internal-format
msgid "invalid memory model for %<__atomic_exchange%>"
msgstr ""
-#: builtins.c:5461
+#: builtins.c:5360
#, gcc-internal-format
msgid "invalid failure memory model for %<__atomic_compare_exchange%>"
msgstr ""
-#: builtins.c:5467
+#: builtins.c:5366
#, gcc-internal-format
msgid ""
"failure memory model cannot be stronger than success memory model for "
"%<__atomic_compare_exchange%>"
msgstr ""
-#: builtins.c:5513
+#: builtins.c:5414
#, gcc-internal-format
msgid "invalid memory model for %<__atomic_load%>"
msgstr ""
-#: builtins.c:5543 builtins.c:5650
+#: builtins.c:5444 builtins.c:5551
#, gcc-internal-format
msgid "invalid memory model for %<__atomic_store%>"
msgstr ""
-#: builtins.c:5759
+#: builtins.c:5660
#, gcc-internal-format
msgid "non-constant argument 1 to __atomic_always_lock_free"
msgstr ""
-#: builtins.c:5801
+#: builtins.c:5702
#, gcc-internal-format
msgid "non-integer argument 1 to __atomic_is_lock_free"
msgstr ""
#. All valid uses of __builtin_va_arg_pack () are removed during
#. inlining.
-#: builtins.c:6084 expr.c:10133
+#: builtins.c:5985 expr.c:10124
#, gcc-internal-format
msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
msgstr ""
#. All valid uses of __builtin_va_arg_pack_len () are removed during
#. inlining.
-#: builtins.c:6090
+#: builtins.c:5991
#, gcc-internal-format
msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>"
msgstr ""
-#: builtins.c:6329
+#: builtins.c:6230
#, gcc-internal-format
msgid "%<__builtin_longjmp%> second argument must be 1"
msgstr ""
-#: builtins.c:7174
+#: builtins.c:7075
#, gcc-internal-format
msgid "target format does not support infinity"
msgstr ""
-#: builtins.c:12163
+#: builtins.c:12064
#, gcc-internal-format
msgid "%<va_start%> used in function with fixed args"
msgstr ""
-#: builtins.c:12171
+#: builtins.c:12072
#, gcc-internal-format
msgid "wrong number of arguments to function %<va_start%>"
msgstr ""
-#: builtins.c:12186
+#: builtins.c:12087
#, gcc-internal-format
msgid "%<__builtin_next_arg%> called without an argument"
msgstr ""
-#: builtins.c:12191
+#: builtins.c:12092
#, gcc-internal-format
msgid "wrong number of arguments to function %<__builtin_next_arg%>"
msgstr ""
-#: builtins.c:12223
+#: builtins.c:12124
#, gcc-internal-format
msgid "second parameter of %<va_start%> not last named argument"
msgstr ""
-#: builtins.c:12236
+#: builtins.c:12137
#, gcc-internal-format
msgid ""
"undefined behaviour when second parameter of %<va_start%> is declared with "
"%<register%> storage"
msgstr ""
-#: builtins.c:12473
+#: builtins.c:12374
#, gcc-internal-format
msgid "%Kfirst argument of %D must be a pointer, second integer constant"
msgstr ""
-#: builtins.c:12486
+#: builtins.c:12387
#, gcc-internal-format
msgid "%Klast argument of %D is not integer constant between 0 and 3"
msgstr ""
-#: builtins.c:12531 builtins.c:12682 builtins.c:12739
+#: builtins.c:12432 builtins.c:12583 builtins.c:12640
#, gcc-internal-format
msgid "%Kcall to %D will always overflow destination buffer"
msgstr ""
-#: builtins.c:12672
+#: builtins.c:12573
#, gcc-internal-format
msgid "%Kcall to %D might overflow destination buffer"
msgstr ""
-#: builtins.c:12760
+#: builtins.c:12661
#, gcc-internal-format
msgid "%Kattempt to free a non-heap object %qD"
msgstr ""
-#: builtins.c:12763
+#: builtins.c:12664
#, gcc-internal-format
msgid "%Kattempt to free a non-heap object"
msgstr ""
-#. Except for passing an argument to an unprototyped function,
-#. this is a constraint violation. When passing an argument to
-#. an unprototyped function, it is compile-time undefined;
-#. making it a constraint in that case was rejected in
-#. DR#252.
-#: c-convert.c:101 c-typeck.c:1991 c-typeck.c:5329 c-typeck.c:10589
-#: cp/typeck.c:1855 cp/typeck.c:6881 cp/typeck.c:7581
-#, gcc-internal-format
-msgid "void value not ignored as it ought to be"
-msgstr ""
-
-#: c-convert.c:181 java/typeck.c:150
-#, gcc-internal-format
-msgid "conversion to non-scalar type requested"
-msgstr ""
-
-#: c-decl.c:737
-#, gcc-internal-format
-msgid "array %q+D assumed to have one element"
-msgstr ""
-
-#: c-decl.c:778
-#, gcc-internal-format
-msgid "%qD is static but used in inline function %qD which is not static"
-msgstr ""
-
-#: c-decl.c:783
-#, gcc-internal-format
-msgid "%q+D is static but declared in inline function %qD which is not static"
-msgstr ""
-
-#: c-decl.c:968
-#, gcc-internal-format, gfc-internal-format
-msgid "GCC supports only %u nested scopes"
-msgstr ""
-
-#: c-decl.c:1120 cp/decl.c:372
-#, gcc-internal-format
-msgid "label %q+D used but not defined"
-msgstr ""
-
-#: c-decl.c:1165
-#, gcc-internal-format
-msgid "nested function %q+D declared but never defined"
-msgstr ""
-
-#: c-decl.c:1177
-#, gcc-internal-format
-msgid "inline function %q+D declared but never defined"
-msgstr ""
-
-#: c-decl.c:1194 cp/decl.c:627
-#, gcc-internal-format
-msgid "unused variable %q+D"
-msgstr ""
-
-#: c-decl.c:1198
-#, gcc-internal-format
-msgid "variable %qD set but not used"
-msgstr ""
-
-#: c-decl.c:1203
-#, gcc-internal-format
-msgid "type of array %q+D completed incompatibly with implicit initialization"
-msgstr ""
-
-#: c-decl.c:1482 c-decl.c:5867 c-decl.c:6697 c-decl.c:7407
-#, gcc-internal-format
-msgid "originally defined here"
-msgstr ""
-
-#: c-decl.c:1552
-#, gcc-internal-format
-msgid ""
-"a parameter list with an ellipsis can%'t match an empty parameter name list "
-"declaration"
-msgstr ""
-
-#: c-decl.c:1559
-#, gcc-internal-format
-msgid ""
-"an argument type that has a default promotion can%'t match an empty "
-"parameter name list declaration"
-msgstr ""
-
-#: c-decl.c:1600
-#, gcc-internal-format
-msgid ""
-"prototype for %q+D declares more arguments than previous old-style definition"
-msgstr ""
-
-#: c-decl.c:1606
-#, gcc-internal-format
-msgid ""
-"prototype for %q+D declares fewer arguments than previous old-style "
-"definition"
-msgstr ""
-
-#: c-decl.c:1615
-#, gcc-internal-format
-msgid "prototype for %q+D declares argument %d with incompatible type"
-msgstr ""
-
-#. If we get here, no errors were found, but do issue a warning
-#. for this poor-style construct.
-#: c-decl.c:1628
-#, gcc-internal-format
-msgid "prototype for %q+D follows non-prototype definition"
-msgstr ""
-
-#: c-decl.c:1643
-#, gcc-internal-format
-msgid "previous definition of %q+D was here"
-msgstr ""
-
-#: c-decl.c:1645
-#, gcc-internal-format
-msgid "previous implicit declaration of %q+D was here"
-msgstr ""
-
-#: c-decl.c:1647
-#, gcc-internal-format
-msgid "previous declaration of %q+D was here"
-msgstr ""
-
-#: c-decl.c:1687
-#, gcc-internal-format
-msgid "%q+D redeclared as different kind of symbol"
-msgstr ""
-
-#: c-decl.c:1691
-#, gcc-internal-format
-msgid "built-in function %q+D declared as non-function"
-msgstr ""
-
-#: c-decl.c:1694 c-decl.c:1867 c-decl.c:2569
-#, gcc-internal-format
-msgid "declaration of %q+D shadows a built-in function"
-msgstr ""
-
-#: c-decl.c:1703
-#, gcc-internal-format
-msgid "redeclaration of enumerator %q+D"
-msgstr ""
-
-#. If types don't match for a built-in, throw away the
-#. built-in. No point in calling locate_old_decl here, it
-#. won't print anything.
-#: c-decl.c:1724
-#, gcc-internal-format
-msgid "conflicting types for built-in function %q+D"
-msgstr ""
-
-#: c-decl.c:1749 c-decl.c:1762 c-decl.c:1798
-#, gcc-internal-format
-msgid "conflicting types for %q+D"
-msgstr ""
-
-#: c-decl.c:1778
-#, gcc-internal-format
-msgid "conflicting named address spaces (generic vs %s) for %q+D"
-msgstr ""
-
-#: c-decl.c:1782
-#, gcc-internal-format
-msgid "conflicting named address spaces (%s vs generic) for %q+D"
-msgstr ""
-
-#: c-decl.c:1786
-#, gcc-internal-format
-msgid "conflicting named address spaces (%s vs %s) for %q+D"
-msgstr ""
-
-#: c-decl.c:1795
-#, gcc-internal-format
-msgid "conflicting type qualifiers for %q+D"
-msgstr ""
-
-#: c-decl.c:1820
-#, gcc-internal-format
-msgid "redefinition of typedef %q+D with different type"
-msgstr ""
-
-#: c-decl.c:1833
-#, gcc-internal-format
-msgid "redefinition of typedef %q+D with variably modified type"
-msgstr ""
-
-#: c-decl.c:1840
-#, gcc-internal-format
-msgid "redefinition of typedef %q+D"
-msgstr ""
-
-#: c-decl.c:1893 c-decl.c:1996
-#, gcc-internal-format
-msgid "redefinition of %q+D"
-msgstr ""
-
-#: c-decl.c:1928 c-decl.c:2034
-#, gcc-internal-format
-msgid "static declaration of %q+D follows non-static declaration"
-msgstr ""
-
-#: c-decl.c:1938 c-decl.c:1946 c-decl.c:2024 c-decl.c:2031
-#, gcc-internal-format
-msgid "non-static declaration of %q+D follows static declaration"
-msgstr ""
-
-#: c-decl.c:1962
-#, gcc-internal-format
-msgid "%<gnu_inline%> attribute present on %q+D"
-msgstr ""
-
-#: c-decl.c:1965
-#, gcc-internal-format
-msgid "but not here"
-msgstr ""
-
-#: c-decl.c:1983
-#, gcc-internal-format
-msgid "thread-local declaration of %q+D follows non-thread-local declaration"
-msgstr ""
-
-#: c-decl.c:1986
-#, gcc-internal-format
-msgid "non-thread-local declaration of %q+D follows thread-local declaration"
-msgstr ""
-
-#: c-decl.c:2016
-#, gcc-internal-format
-msgid "extern declaration of %q+D follows declaration with no linkage"
-msgstr ""
-
-#: c-decl.c:2052
-#, gcc-internal-format
-msgid "declaration of %q+D with no linkage follows extern declaration"
-msgstr ""
-
-#: c-decl.c:2058
-#, gcc-internal-format
-msgid "redeclaration of %q+D with no linkage"
-msgstr ""
-
-#: c-decl.c:2084
-#, gcc-internal-format
-msgid ""
-"redeclaration of %q+D with different visibility (old visibility preserved)"
-msgstr ""
-
-#: c-decl.c:2095
-#, gcc-internal-format
-msgid "inline declaration of %qD follows declaration with attribute noinline"
-msgstr ""
-
-#: c-decl.c:2102
-#, gcc-internal-format
-msgid "declaration of %q+D with attribute noinline follows inline declaration "
-msgstr ""
-
-#: c-decl.c:2120
-#, gcc-internal-format
-msgid "redefinition of parameter %q+D"
-msgstr ""
-
-#: c-decl.c:2147
-#, gcc-internal-format
-msgid "redundant redeclaration of %q+D"
-msgstr ""
-
-#: c-decl.c:2556
-#, gcc-internal-format
-msgid "declaration of %q+D shadows previous non-variable"
-msgstr ""
-
-#: c-decl.c:2561
-#, gcc-internal-format
-msgid "declaration of %q+D shadows a parameter"
-msgstr ""
-
-#: c-decl.c:2564
-#, gcc-internal-format
-msgid "declaration of %q+D shadows a global declaration"
-msgstr ""
-
-#: c-decl.c:2574
-#, gcc-internal-format
-msgid "declaration of %q+D shadows a previous local"
-msgstr ""
-
-#: c-decl.c:2578 cp/name-lookup.c:1153 cp/name-lookup.c:1196
-#, gcc-internal-format
-msgid "shadowed declaration is here"
-msgstr ""
-
-#: c-decl.c:2705
-#, gcc-internal-format
-msgid "nested extern declaration of %qD"
-msgstr ""
-
-#: c-decl.c:2881 c-decl.c:2884
-#, gcc-internal-format
-msgid "implicit declaration of function %qE"
-msgstr ""
-
-#: c-decl.c:2947
-#, gcc-internal-format
-msgid "incompatible implicit declaration of built-in function %qD"
-msgstr ""
-
-#: c-decl.c:2956
-#, gcc-internal-format
-msgid "incompatible implicit declaration of function %qD"
-msgstr ""
-
-#: c-decl.c:3009
-#, gcc-internal-format
-msgid "%qE undeclared here (not in a function)"
-msgstr ""
-
-#: c-decl.c:3015
-#, gcc-internal-format
-msgid "%qE undeclared (first use in this function)"
-msgstr ""
-
-#: c-decl.c:3018
-#, gcc-internal-format
-msgid ""
-"each undeclared identifier is reported only once for each function it "
-"appears in"
-msgstr ""
-
-#: c-decl.c:3068 cp/decl.c:2609
-#, gcc-internal-format
-msgid "label %qE referenced outside of any function"
-msgstr ""
-
-#: c-decl.c:3104
-#, gcc-internal-format
-msgid "jump into scope of identifier with variably modified type"
-msgstr ""
-
-#: c-decl.c:3107
-#, gcc-internal-format
-msgid "jump skips variable initialization"
-msgstr ""
-
-#: c-decl.c:3108 c-decl.c:3164 c-decl.c:3253
-#, gcc-internal-format
-msgid "label %qD defined here"
-msgstr ""
-
-#: c-decl.c:3109 c-decl.c:3381 c-typeck.c:7065
-#, gcc-internal-format
-msgid "%qD declared here"
-msgstr ""
-
-#: c-decl.c:3163 c-decl.c:3252
-#, gcc-internal-format
-msgid "jump into statement expression"
-msgstr ""
-
-#: c-decl.c:3185
-#, gcc-internal-format
-msgid "duplicate label declaration %qE"
-msgstr ""
-
-#: c-decl.c:3283 cp/decl.c:2932
-#, gcc-internal-format
-msgid "duplicate label %qD"
-msgstr ""
-
-#: c-decl.c:3314
-#, gcc-internal-format
-msgid ""
-"traditional C lacks a separate namespace for labels, identifier %qE conflicts"
-msgstr ""
-
-#: c-decl.c:3379
-#, gcc-internal-format
-msgid "switch jumps over variable initialization"
-msgstr ""
-
-#: c-decl.c:3380 c-decl.c:3391
-#, gcc-internal-format
-msgid "switch starts here"
-msgstr ""
-
-#: c-decl.c:3390
-#, gcc-internal-format
-msgid "switch jumps into statement expression"
-msgstr ""
-
-#: c-decl.c:3461
-#, gcc-internal-format
-msgid "%qE defined as wrong kind of tag"
-msgstr ""
-
-#: c-decl.c:3684 c-typeck.c:11015 c-family/c-common.c:4296
-#, gcc-internal-format
-msgid "invalid use of %<restrict%>"
-msgstr ""
-
-#: c-decl.c:3694
-#, gcc-internal-format
-msgid "unnamed struct/union that defines no instances"
-msgstr ""
-
-#: c-decl.c:3704
-#, gcc-internal-format
-msgid "empty declaration with storage class specifier does not redeclare tag"
-msgstr ""
-
-#: c-decl.c:3718
-#, gcc-internal-format
-msgid "empty declaration with type qualifier does not redeclare tag"
-msgstr ""
-
-#: c-decl.c:3729
-#, gcc-internal-format
-msgid "empty declaration with %<_Alignas%> does not redeclare tag"
-msgstr ""
-
-#: c-decl.c:3751 c-decl.c:3758
-#, gcc-internal-format
-msgid "useless type name in empty declaration"
-msgstr ""
-
-#: c-decl.c:3766
-#, gcc-internal-format
-msgid "%<inline%> in empty declaration"
-msgstr ""
-
-#: c-decl.c:3772
-#, gcc-internal-format
-msgid "%<_Noreturn%> in empty declaration"
-msgstr ""
-
-#: c-decl.c:3778
-#, gcc-internal-format
-msgid "%<auto%> in file-scope empty declaration"
-msgstr ""
-
-#: c-decl.c:3784
-#, gcc-internal-format
-msgid "%<register%> in file-scope empty declaration"
-msgstr ""
-
-#: c-decl.c:3790
-#, gcc-internal-format
-msgid "useless storage class specifier in empty declaration"
-msgstr ""
-
-#: c-decl.c:3796
-#, gcc-internal-format
-msgid "useless %<__thread%> in empty declaration"
-msgstr ""
-
-#: c-decl.c:3805
-#, gcc-internal-format
-msgid "useless type qualifier in empty declaration"
-msgstr ""
-
-#: c-decl.c:3811
-#, gcc-internal-format
-msgid "useless %<_Alignas%> in empty declaration"
-msgstr ""
-
-#: c-decl.c:3818 c-parser.c:1497
-#, gcc-internal-format
-msgid "empty declaration"
-msgstr ""
-
-#: c-decl.c:3890
-#, gcc-internal-format
-msgid ""
-"ISO C90 does not support %<static%> or type qualifiers in parameter array "
-"declarators"
-msgstr ""
-
-#: c-decl.c:3894
-#, gcc-internal-format
-msgid "ISO C90 does not support %<[*]%> array declarators"
-msgstr ""
-
-#. C99 6.7.5.2p4
-#. A function definition isn't function prototype scope C99 6.2.1p4.
-#. C99 6.7.5.2p4
-#: c-decl.c:3901 c-decl.c:6265
-#, gcc-internal-format
-msgid "%<[*]%> not allowed in other than function prototype scope"
-msgstr ""
-
-#: c-decl.c:4014
-#, gcc-internal-format
-msgid "%q+D is usually a function"
-msgstr ""
-
-#: c-decl.c:4023
-#, gcc-internal-format
-msgid "typedef %qD is initialized (use __typeof__ instead)"
-msgstr ""
-
-#: c-decl.c:4028
-#, gcc-internal-format
-msgid "function %qD is initialized like a variable"
-msgstr ""
-
-#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:4034
-#, gcc-internal-format
-msgid "parameter %qD is initialized"
-msgstr ""
-
-#. Although C99 is unclear about whether incomplete arrays
-#. of VLAs themselves count as VLAs, it does not make
-#. sense to permit them to be initialized given that
-#. ordinary VLAs may not be initialized.
-#: c-decl.c:4053 c-decl.c:4068 c-typeck.c:6388
-#, gcc-internal-format
-msgid "variable-sized object may not be initialized"
-msgstr ""
-
-#: c-decl.c:4059
-#, gcc-internal-format
-msgid "variable %qD has initializer but incomplete type"
-msgstr ""
-
-#: c-decl.c:4148 cp/decl.c:4441 cp/decl.c:12714
-#, gcc-internal-format
-msgid "inline function %q+D given attribute noinline"
-msgstr ""
-
-#: c-decl.c:4199
-#, gcc-internal-format
-msgid "uninitialized const member in %qT is invalid in C++"
-msgstr ""
-
-#: c-decl.c:4201 cp/init.c:2121 cp/init.c:2136
-#, gcc-internal-format
-msgid "%qD should be initialized"
-msgstr ""
-
-#: c-decl.c:4279
-#, gcc-internal-format
-msgid "initializer fails to determine size of %q+D"
-msgstr ""
-
-#: c-decl.c:4284
-#, gcc-internal-format
-msgid "array size missing in %q+D"
-msgstr ""
-
-#: c-decl.c:4296
-#, gcc-internal-format
-msgid "zero or negative size array %q+D"
-msgstr ""
-
-#: c-decl.c:4351 varasm.c:1932
-#, gcc-internal-format
-msgid "storage size of %q+D isn%'t known"
-msgstr ""
-
-#: c-decl.c:4362
-#, gcc-internal-format
-msgid "storage size of %q+D isn%'t constant"
-msgstr ""
-
-#: c-decl.c:4412
-#, gcc-internal-format
-msgid "ignoring asm-specifier for non-static local variable %q+D"
-msgstr ""
-
-#: c-decl.c:4442
-#, gcc-internal-format
-msgid "cannot put object with volatile field into register"
-msgstr ""
-
-#: c-decl.c:4529
-#, gcc-internal-format
-msgid "uninitialized const %qD is invalid in C++"
-msgstr ""
-
-#: c-decl.c:4587
-#, gcc-internal-format
-msgid "ISO C forbids forward parameter declarations"
-msgstr ""
-
-#: c-decl.c:4682
-#, gcc-internal-format
-msgid "defining a type in a compound literal is invalid in C++"
-msgstr ""
-
-#: c-decl.c:4734 c-decl.c:4749
-#, gcc-internal-format
-msgid "bit-field %qs width not an integer constant"
-msgstr ""
-
-#: c-decl.c:4744
-#, gcc-internal-format
-msgid "bit-field %qs width not an integer constant expression"
-msgstr ""
-
-#: c-decl.c:4755
-#, gcc-internal-format
-msgid "negative width in bit-field %qs"
-msgstr ""
-
-#: c-decl.c:4760
-#, gcc-internal-format
-msgid "zero width for bit-field %qs"
-msgstr ""
-
-#: c-decl.c:4770
-#, gcc-internal-format
-msgid "bit-field %qs has invalid type"
-msgstr ""
-
-#: c-decl.c:4780
-#, gcc-internal-format
-msgid "type of bit-field %qs is a GCC extension"
-msgstr ""
-
-#: c-decl.c:4786
-#, gcc-internal-format
-msgid "width of %qs exceeds its type"
-msgstr ""
-
-#: c-decl.c:4799
-#, gcc-internal-format
-msgid "%qs is narrower than values of its type"
-msgstr ""
-
-#: c-decl.c:4818
-#, gcc-internal-format
-msgid "ISO C90 forbids array %qE whose size can%'t be evaluated"
-msgstr ""
-
-#: c-decl.c:4822
-#, gcc-internal-format
-msgid "ISO C90 forbids array whose size can%'t be evaluated"
-msgstr ""
-
-#: c-decl.c:4829
-#, gcc-internal-format
-msgid "ISO C90 forbids variable length array %qE"
-msgstr ""
-
-#: c-decl.c:4832
-#, gcc-internal-format
-msgid "ISO C90 forbids variable length array"
-msgstr ""
-
-#: c-decl.c:4841
-#, gcc-internal-format
-msgid "the size of array %qE can%'t be evaluated"
-msgstr ""
-
-#: c-decl.c:4845
-#, gcc-internal-format
-msgid "the size of array can %'t be evaluated"
-msgstr ""
-
-#: c-decl.c:4851
-#, gcc-internal-format
-msgid "variable length array %qE is used"
-msgstr ""
-
-#: c-decl.c:4855 cp/decl.c:8076
-#, gcc-internal-format
-msgid "variable length array is used"
-msgstr ""
-
-#: c-decl.c:5014 c-decl.c:5362 c-decl.c:5372
-#, gcc-internal-format
-msgid "variably modified %qE at file scope"
-msgstr ""
-
-#: c-decl.c:5016
-#, gcc-internal-format
-msgid "variably modified field at file scope"
-msgstr ""
-
-#: c-decl.c:5036
-#, gcc-internal-format
-msgid "type defaults to %<int%> in declaration of %qE"
-msgstr ""
-
-#: c-decl.c:5040
-#, gcc-internal-format
-msgid "type defaults to %<int%> in type name"
-msgstr ""
-
-#: c-decl.c:5073
-#, gcc-internal-format
-msgid "duplicate %<const%>"
-msgstr ""
-
-#: c-decl.c:5075
-#, gcc-internal-format
-msgid "duplicate %<restrict%>"
-msgstr ""
-
-#: c-decl.c:5077
-#, gcc-internal-format
-msgid "duplicate %<volatile%>"
-msgstr ""
-
-#: c-decl.c:5081
-#, gcc-internal-format, gfc-internal-format
-msgid "conflicting named address spaces (%s vs %s)"
-msgstr ""
-
-#: c-decl.c:5105
-#, gcc-internal-format
-msgid "function definition declared %<auto%>"
-msgstr ""
-
-#: c-decl.c:5107
-#, gcc-internal-format
-msgid "function definition declared %<register%>"
-msgstr ""
-
-#: c-decl.c:5109
-#, gcc-internal-format
-msgid "function definition declared %<typedef%>"
-msgstr ""
-
-#: c-decl.c:5111
-#, gcc-internal-format
-msgid "function definition declared %<__thread%>"
-msgstr ""
-
-#: c-decl.c:5128
-#, gcc-internal-format
-msgid "storage class specified for structure field %qE"
-msgstr ""
-
-#: c-decl.c:5131
-#, gcc-internal-format
-msgid "storage class specified for structure field"
-msgstr ""
-
-#: c-decl.c:5135
-#, gcc-internal-format
-msgid "storage class specified for parameter %qE"
-msgstr ""
-
-#: c-decl.c:5138
-#, gcc-internal-format
-msgid "storage class specified for unnamed parameter"
-msgstr ""
-
-#: c-decl.c:5141 cp/decl.c:9055
-#, gcc-internal-format
-msgid "storage class specified for typename"
-msgstr ""
-
-#: c-decl.c:5158
-#, gcc-internal-format
-msgid "%qE initialized and declared %<extern%>"
-msgstr ""
-
-#: c-decl.c:5162
-#, gcc-internal-format
-msgid "%qE has both %<extern%> and initializer"
-msgstr ""
-
-#: c-decl.c:5167
-#, gcc-internal-format
-msgid "file-scope declaration of %qE specifies %<auto%>"
-msgstr ""
-
-#: c-decl.c:5171
-#, gcc-internal-format
-msgid "file-scope declaration of %qE specifies %<register%>"
-msgstr ""
-
-#: c-decl.c:5176
-#, gcc-internal-format
-msgid "nested function %qE declared %<extern%>"
-msgstr ""
-
-#: c-decl.c:5179
-#, gcc-internal-format
-msgid "function-scope %qE implicitly auto and declared %<__thread%>"
-msgstr ""
-
-#. Only the innermost declarator (making a parameter be of
-#. array type which is converted to pointer type)
-#. may have static or type qualifiers.
-#: c-decl.c:5226 c-decl.c:5556
-#, gcc-internal-format
-msgid "static or type qualifiers in non-parameter array declarator"
-msgstr ""
-
-#: c-decl.c:5274
-#, gcc-internal-format
-msgid "declaration of %qE as array of voids"
-msgstr ""
-
-#: c-decl.c:5276
-#, gcc-internal-format
-msgid "declaration of type name as array of voids"
-msgstr ""
-
-#: c-decl.c:5283
-#, gcc-internal-format
-msgid "declaration of %qE as array of functions"
-msgstr ""
-
-#: c-decl.c:5286
-#, gcc-internal-format
-msgid "declaration of type name as array of functions"
-msgstr ""
-
-#: c-decl.c:5293 c-decl.c:7193
-#, gcc-internal-format
-msgid "invalid use of structure with flexible array member"
-msgstr ""
-
-#: c-decl.c:5319
-#, gcc-internal-format
-msgid "size of array %qE has non-integer type"
-msgstr ""
-
-#: c-decl.c:5323
-#, gcc-internal-format
-msgid "size of unnamed array has non-integer type"
-msgstr ""
-
-#: c-decl.c:5333
-#, gcc-internal-format
-msgid "ISO C forbids zero-size array %qE"
-msgstr ""
-
-#: c-decl.c:5336
-#, gcc-internal-format
-msgid "ISO C forbids zero-size array"
-msgstr ""
-
-#: c-decl.c:5345
-#, gcc-internal-format
-msgid "size of array %qE is negative"
-msgstr ""
-
-#: c-decl.c:5347
-#, gcc-internal-format
-msgid "size of unnamed array is negative"
-msgstr ""
-
-#: c-decl.c:5421 c-decl.c:5824
-#, gcc-internal-format
-msgid "size of array %qE is too large"
-msgstr ""
-
-#: c-decl.c:5424 c-decl.c:5826
-#, gcc-internal-format
-msgid "size of unnamed array is too large"
-msgstr ""
-
-#: c-decl.c:5461
-#, gcc-internal-format
-msgid "ISO C90 does not support flexible array members"
-msgstr ""
-
-#. C99 6.7.5.2p4
-#: c-decl.c:5482
-#, gcc-internal-format
-msgid "%<[*]%> not in a declaration"
-msgstr ""
-
-#: c-decl.c:5495
-#, gcc-internal-format
-msgid "array type has incomplete element type"
-msgstr ""
-
-#: c-decl.c:5589
-#, gcc-internal-format
-msgid "%qE declared as function returning a function"
-msgstr ""
-
-#: c-decl.c:5592
-#, gcc-internal-format
-msgid "type name declared as function returning a function"
-msgstr ""
-
-#: c-decl.c:5599
-#, gcc-internal-format
-msgid "%qE declared as function returning an array"
-msgstr ""
-
-#: c-decl.c:5602
-#, gcc-internal-format
-msgid "type name declared as function returning an array"
-msgstr ""
-
-#: c-decl.c:5630
-#, gcc-internal-format
-msgid "function definition has qualified void return type"
-msgstr ""
-
-#: c-decl.c:5633 cp/decl.c:9161
-#, gcc-internal-format
-msgid "type qualifiers ignored on function return type"
-msgstr ""
-
-#: c-decl.c:5662 c-decl.c:5840 c-decl.c:5952 c-decl.c:6047
-#, gcc-internal-format
-msgid "ISO C forbids qualified function types"
-msgstr ""
-
-#: c-decl.c:5729
-#, gcc-internal-format
-msgid "%qs combined with %<auto%> qualifier for %qE"
-msgstr ""
-
-#: c-decl.c:5733
-#, gcc-internal-format
-msgid "%qs combined with %<register%> qualifier for %qE"
-msgstr ""
-
-#: c-decl.c:5739
-#, gcc-internal-format
-msgid "%qs specified for auto variable %qE"
-msgstr ""
-
-#: c-decl.c:5755
-#, gcc-internal-format
-msgid "%qs specified for parameter %qE"
-msgstr ""
-
-#: c-decl.c:5758
-#, gcc-internal-format
-msgid "%qs specified for unnamed parameter"
-msgstr ""
-
-#: c-decl.c:5764
-#, gcc-internal-format
-msgid "%qs specified for structure field %qE"
-msgstr ""
-
-#: c-decl.c:5767
-#, gcc-internal-format
-msgid "%qs specified for structure field"
-msgstr ""
-
-#: c-decl.c:5780
-#, gcc-internal-format
-msgid "alignment specified for typedef %qE"
-msgstr ""
-
-#: c-decl.c:5782
-#, gcc-internal-format
-msgid "alignment specified for %<register%> object %qE"
-msgstr ""
-
-#: c-decl.c:5787
-#, gcc-internal-format
-msgid "alignment specified for parameter %qE"
-msgstr ""
-
-#: c-decl.c:5789
-#, gcc-internal-format
-msgid "alignment specified for unnamed parameter"
-msgstr ""
-
-#: c-decl.c:5794
-#, gcc-internal-format
-msgid "alignment specified for bit-field %qE"
-msgstr ""
-
-#: c-decl.c:5796
-#, gcc-internal-format
-msgid "alignment specified for unnamed bit-field"
-msgstr ""
-
-#: c-decl.c:5799
-#, gcc-internal-format
-msgid "alignment specified for function %qE"
-msgstr ""
-
-#: c-decl.c:5806
-#, gcc-internal-format
-msgid "%<_Alignas%> specifiers cannot reduce alignment of %qE"
-msgstr ""
-
-#: c-decl.c:5809
-#, gcc-internal-format
-msgid "%<_Alignas%> specifiers cannot reduce alignment of unnamed field"
-msgstr ""
-
-#: c-decl.c:5848
-#, gcc-internal-format
-msgid "typedef %q+D declared %<inline%>"
-msgstr ""
-
-#: c-decl.c:5850
-#, gcc-internal-format
-msgid "typedef %q+D declared %<_Noreturn%>"
-msgstr ""
-
-#: c-decl.c:5886
-#, gcc-internal-format
-msgid "ISO C forbids const or volatile function types"
-msgstr ""
-
-#. C99 6.7.2.1p8
-#: c-decl.c:5896
-#, gcc-internal-format
-msgid "a member of a structure or union cannot have a variably modified type"
-msgstr ""
-
-#: c-decl.c:5913 cp/decl.c:8305
-#, gcc-internal-format
-msgid "variable or field %qE declared void"
-msgstr ""
-
-#: c-decl.c:5944
-#, gcc-internal-format
-msgid "attributes in parameter array declarator ignored"
-msgstr ""
-
-#: c-decl.c:5978
-#, gcc-internal-format
-msgid "parameter %q+D declared %<inline%>"
-msgstr ""
-
-#: c-decl.c:5980
-#, gcc-internal-format
-msgid "parameter %q+D declared %<_Noreturn%>"
-msgstr ""
-
-#: c-decl.c:5993
-#, gcc-internal-format
-msgid "field %qE declared as a function"
-msgstr ""
-
-#: c-decl.c:6000
-#, gcc-internal-format
-msgid "field %qE has incomplete type"
-msgstr ""
-
-#: c-decl.c:6002
-#, gcc-internal-format
-msgid "unnamed field has incomplete type"
-msgstr ""
-
-#: c-decl.c:6019 c-decl.c:6030 c-decl.c:6033
-#, gcc-internal-format
-msgid "invalid storage class for function %qE"
-msgstr ""
-
-#: c-decl.c:6084
-#, gcc-internal-format
-msgid "cannot inline function %<main%>"
-msgstr ""
-
-#: c-decl.c:6086
-#, gcc-internal-format
-msgid "%<main%> declared %<_Noreturn%>"
-msgstr ""
-
-#: c-decl.c:6099
-#, gcc-internal-format
-msgid "ISO C99 does not support %<_Noreturn%>"
-msgstr ""
-
-#: c-decl.c:6102
-#, gcc-internal-format
-msgid "ISO C90 does not support %<_Noreturn%>"
-msgstr ""
-
-#: c-decl.c:6131
-#, gcc-internal-format
-msgid "variable previously declared %<static%> redeclared %<extern%>"
-msgstr ""
-
-#: c-decl.c:6141
-#, gcc-internal-format
-msgid "variable %q+D declared %<inline%>"
-msgstr ""
-
-#: c-decl.c:6143
-#, gcc-internal-format
-msgid "variable %q+D declared %<_Noreturn%>"
-msgstr ""
-
-#: c-decl.c:6178
-#, gcc-internal-format
-msgid "non-nested function with variably modified type"
-msgstr ""
-
-#: c-decl.c:6180
-#, gcc-internal-format
-msgid "object with variably modified type must have no linkage"
-msgstr ""
-
-#: c-decl.c:6270 c-decl.c:7828
-#, gcc-internal-format
-msgid "function declaration isn%'t a prototype"
-msgstr ""
-
-#: c-decl.c:6279
-#, gcc-internal-format
-msgid "parameter names (without types) in function declaration"
-msgstr ""
-
-#: c-decl.c:6317
-#, gcc-internal-format
-msgid "parameter %u (%q+D) has incomplete type"
-msgstr ""
-
-#: c-decl.c:6321
-#, gcc-internal-format, gfc-internal-format
-msgid "parameter %u has incomplete type"
-msgstr ""
-
-#: c-decl.c:6332
-#, gcc-internal-format
-msgid "parameter %u (%q+D) has void type"
-msgstr ""
-
-#: c-decl.c:6336
-#, gcc-internal-format, gfc-internal-format
-msgid "parameter %u has void type"
-msgstr ""
-
-#: c-decl.c:6421
-#, gcc-internal-format
-msgid "%<void%> as only parameter may not be qualified"
-msgstr ""
-
-#: c-decl.c:6425 c-decl.c:6460
-#, gcc-internal-format
-msgid "%<void%> must be the only parameter"
-msgstr ""
-
-#: c-decl.c:6454
-#, gcc-internal-format
-msgid "parameter %q+D has just a forward declaration"
-msgstr ""
-
-#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:6499
-#, gcc-internal-format
-msgid "%<%s %E%> declared inside parameter list"
-msgstr ""
-
-#. The %s will be one of 'struct', 'union', or 'enum'.
-#: c-decl.c:6503
-#, gcc-internal-format, gfc-internal-format
-msgid "anonymous %s declared inside parameter list"
-msgstr ""
-
-#: c-decl.c:6508
-#, gcc-internal-format
-msgid ""
-"its scope is only this definition or declaration, which is probably not what "
-"you want"
-msgstr ""
-
-#: c-decl.c:6608
-#, gcc-internal-format
-msgid "enum type defined here"
-msgstr ""
-
-#: c-decl.c:6614
-#, gcc-internal-format
-msgid "struct defined here"
-msgstr ""
-
-#: c-decl.c:6620
-#, gcc-internal-format
-msgid "union defined here"
-msgstr ""
-
-#: c-decl.c:6693
-#, gcc-internal-format
-msgid "redefinition of %<union %E%>"
-msgstr ""
-
-#: c-decl.c:6695
-#, gcc-internal-format
-msgid "redefinition of %<struct %E%>"
-msgstr ""
-
-#: c-decl.c:6704
-#, gcc-internal-format
-msgid "nested redefinition of %<union %E%>"
-msgstr ""
-
-#: c-decl.c:6706
-#, gcc-internal-format
-msgid "nested redefinition of %<struct %E%>"
-msgstr ""
-
-#: c-decl.c:6738 c-decl.c:7425
-#, gcc-internal-format
-msgid "defining type in %qs expression is invalid in C++"
-msgstr ""
-
-#: c-decl.c:6807 cp/decl.c:4160
-#, gcc-internal-format
-msgid "declaration does not declare anything"
-msgstr ""
-
-#: c-decl.c:6814
-#, gcc-internal-format
-msgid "ISO C99 doesn%'t support unnamed structs/unions"
-msgstr ""
-
-#: c-decl.c:6817
-#, gcc-internal-format
-msgid "ISO C90 doesn%'t support unnamed structs/unions"
-msgstr ""
-
-#: c-decl.c:6909 c-decl.c:6928 c-decl.c:6991
-#, gcc-internal-format
-msgid "duplicate member %q+D"
-msgstr ""
-
-#: c-decl.c:7101
-#, gcc-internal-format
-msgid "union has no named members"
-msgstr ""
-
-#: c-decl.c:7103
-#, gcc-internal-format
-msgid "union has no members"
-msgstr ""
-
-#: c-decl.c:7108
-#, gcc-internal-format
-msgid "struct has no named members"
-msgstr ""
-
-#: c-decl.c:7110
-#, gcc-internal-format
-msgid "struct has no members"
-msgstr ""
-
-#: c-decl.c:7173
-#, gcc-internal-format
-msgid "flexible array member in union"
-msgstr ""
-
-#: c-decl.c:7179
-#, gcc-internal-format
-msgid "flexible array member not at end of struct"
-msgstr ""
-
-#: c-decl.c:7185
-#, gcc-internal-format
-msgid "flexible array member in otherwise empty struct"
-msgstr ""
-
-#: c-decl.c:7304
-#, gcc-internal-format
-msgid "union cannot be made transparent"
-msgstr ""
-
-#: c-decl.c:7398
-#, gcc-internal-format
-msgid "nested redefinition of %<enum %E%>"
-msgstr ""
-
-#. This enum is a named one that has been declared already.
-#: c-decl.c:7405
-#, gcc-internal-format
-msgid "redeclaration of %<enum %E%>"
-msgstr ""
-
-#: c-decl.c:7480
-#, gcc-internal-format
-msgid "enumeration values exceed range of largest integer"
-msgstr ""
-
-#: c-decl.c:7497
-#, gcc-internal-format
-msgid "specified mode too small for enumeral values"
-msgstr ""
-
-#: c-decl.c:7602 c-decl.c:7618
-#, gcc-internal-format
-msgid "enumerator value for %qE is not an integer constant"
-msgstr ""
-
-#: c-decl.c:7613
-#, gcc-internal-format
-msgid "enumerator value for %qE is not an integer constant expression"
-msgstr ""
-
-#: c-decl.c:7637
-#, gcc-internal-format
-msgid "overflow in enumeration values"
-msgstr ""
-
-#: c-decl.c:7645
-#, gcc-internal-format
-msgid "ISO C restricts enumerator values to range of %<int%>"
-msgstr ""
-
-#: c-decl.c:7730
-#, gcc-internal-format
-msgid "inline function %qD given attribute noinline"
-msgstr ""
-
-#: c-decl.c:7748
-#, gcc-internal-format
-msgid "return type is an incomplete type"
-msgstr ""
-
-#: c-decl.c:7758
-#, gcc-internal-format
-msgid "return type defaults to %<int%>"
-msgstr ""
-
-#: c-decl.c:7836
-#, gcc-internal-format
-msgid "no previous prototype for %qD"
-msgstr ""
-
-#: c-decl.c:7845
-#, gcc-internal-format
-msgid "%qD was used with no prototype before its definition"
-msgstr ""
-
-#: c-decl.c:7852
-#, gcc-internal-format
-msgid "no previous declaration for %qD"
-msgstr ""
-
-#: c-decl.c:7862
-#, gcc-internal-format
-msgid "%qD was used with no declaration before its definition"
-msgstr ""
-
-#: c-decl.c:7881
-#, gcc-internal-format
-msgid "return type of %qD is not %<int%>"
-msgstr ""
-
-#: c-decl.c:7887
-#, gcc-internal-format
-msgid "%qD is normally a non-static function"
-msgstr ""
-
-#: c-decl.c:7924
-#, gcc-internal-format
-msgid "old-style parameter declarations in prototyped function definition"
-msgstr ""
-
-#: c-decl.c:7938
-#, gcc-internal-format
-msgid "traditional C rejects ISO C style function definitions"
-msgstr ""
-
-#: c-decl.c:7954
-#, gcc-internal-format
-msgid "parameter name omitted"
-msgstr ""
-
-#: c-decl.c:7991
-#, gcc-internal-format
-msgid "old-style function definition"
-msgstr ""
-
-#: c-decl.c:8000
-#, gcc-internal-format
-msgid "parameter name missing from parameter list"
-msgstr ""
-
-#: c-decl.c:8015
-#, gcc-internal-format
-msgid "%qD declared as a non-parameter"
-msgstr ""
-
-#: c-decl.c:8021
-#, gcc-internal-format
-msgid "multiple parameters named %qD"
-msgstr ""
-
-#: c-decl.c:8030
-#, gcc-internal-format
-msgid "parameter %qD declared with void type"
-msgstr ""
-
-#: c-decl.c:8059 c-decl.c:8063
-#, gcc-internal-format
-msgid "type of %qD defaults to %<int%>"
-msgstr ""
-
-#: c-decl.c:8083
-#, gcc-internal-format
-msgid "parameter %qD has incomplete type"
-msgstr ""
-
-#: c-decl.c:8090
-#, gcc-internal-format
-msgid "declaration for parameter %qD but no such parameter"
-msgstr ""
-
-#: c-decl.c:8142
-#, gcc-internal-format
-msgid "number of arguments doesn%'t match built-in prototype"
-msgstr ""
-
-#: c-decl.c:8153
-#, gcc-internal-format
-msgid "number of arguments doesn%'t match prototype"
-msgstr ""
-
-#: c-decl.c:8156 c-decl.c:8198 c-decl.c:8212
-#, gcc-internal-format
-msgid "prototype declaration"
-msgstr ""
-
-#: c-decl.c:8190
-#, gcc-internal-format
-msgid "promoted argument %qD doesn%'t match built-in prototype"
-msgstr ""
-
-#: c-decl.c:8195
-#, gcc-internal-format
-msgid "promoted argument %qD doesn%'t match prototype"
-msgstr ""
-
-#: c-decl.c:8205
-#, gcc-internal-format
-msgid "argument %qD doesn%'t match built-in prototype"
-msgstr ""
-
-#: c-decl.c:8210
-#, gcc-internal-format
-msgid "argument %qD doesn%'t match prototype"
-msgstr ""
-
-#: c-decl.c:8393 cp/decl.c:13598
-#, gcc-internal-format
-msgid "no return statement in function returning non-void"
-msgstr ""
-
-#: c-decl.c:8413
-#, gcc-internal-format
-msgid "parameter %qD set but not used"
-msgstr ""
-
-#. If we get here, declarations have been used in a for loop without
-#. the C99 for loop scope. This doesn't make much sense, so don't
-#. allow it.
-#: c-decl.c:8502
-#, gcc-internal-format
-msgid "%<for%> loop initial declarations are only allowed in C99 mode"
-msgstr ""
-
-#: c-decl.c:8507
-#, gcc-internal-format
-msgid "use option -std=c99 or -std=gnu99 to compile your code"
-msgstr ""
-
-#: c-decl.c:8541
-#, gcc-internal-format
-msgid "declaration of static variable %qD in %<for%> loop initial declaration"
-msgstr ""
-
-#: c-decl.c:8545
-#, gcc-internal-format
-msgid ""
-"declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
-msgstr ""
-
-#: c-decl.c:8552
-#, gcc-internal-format
-msgid "%<struct %E%> declared in %<for%> loop initial declaration"
-msgstr ""
-
-#: c-decl.c:8557
-#, gcc-internal-format
-msgid "%<union %E%> declared in %<for%> loop initial declaration"
-msgstr ""
-
-#: c-decl.c:8561
-#, gcc-internal-format
-msgid "%<enum %E%> declared in %<for%> loop initial declaration"
-msgstr ""
-
-#: c-decl.c:8565
-#, gcc-internal-format
-msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
-msgstr ""
-
-#: c-decl.c:8830
-#, gcc-internal-format
-msgid "incompatible address space qualifiers %qs and %qs"
-msgstr ""
-
-#: c-decl.c:8876 c-decl.c:9206 c-decl.c:9635
-#, gcc-internal-format
-msgid "duplicate %qE"
-msgstr ""
-
-#: c-decl.c:8902 c-decl.c:9217 c-decl.c:9497
-#, gcc-internal-format
-msgid "two or more data types in declaration specifiers"
-msgstr ""
-
-#: c-decl.c:8914 cp/parser.c:22171
-#, gcc-internal-format
-msgid "%<long long long%> is too long for GCC"
-msgstr ""
-
-#: c-decl.c:8927
-#, gcc-internal-format
-msgid "ISO C90 does not support %<long long%>"
-msgstr ""
-
-#: c-decl.c:9106 c-parser.c:6645
-#, gcc-internal-format
-msgid "ISO C90 does not support complex types"
-msgstr ""
-
-#: c-decl.c:9148
-#, gcc-internal-format
-msgid "ISO C does not support saturating types"
-msgstr ""
-
-#: c-decl.c:9225
-#, gcc-internal-format
-msgid "%<__int128%> is not supported for this target"
-msgstr ""
-
-#: c-decl.c:9230
-#, gcc-internal-format
-msgid "ISO C does not support %<__int128%> type"
-msgstr ""
-
-#: c-decl.c:9455
-#, gcc-internal-format
-msgid "ISO C does not support decimal floating point"
-msgstr ""
-
-#: c-decl.c:9478 c-decl.c:9722 c-parser.c:6238
-#, gcc-internal-format
-msgid "fixed-point types not supported for this target"
-msgstr ""
-
-#: c-decl.c:9480
-#, gcc-internal-format
-msgid "ISO C does not support fixed-point types"
-msgstr ""
-
-#: c-decl.c:9515
-#, gcc-internal-format
-msgid "C++ lookup of %qD would return a field, not a type"
-msgstr ""
-
-#: c-decl.c:9528
-#, gcc-internal-format
-msgid "%qE fails to be a typedef or built in type"
-msgstr ""
-
-#: c-decl.c:9576
-#, gcc-internal-format
-msgid "%qE is not at beginning of declaration"
-msgstr ""
-
-#: c-decl.c:9597
-#, gcc-internal-format
-msgid "%<__thread%> used with %<auto%>"
-msgstr ""
-
-#: c-decl.c:9599
-#, gcc-internal-format
-msgid "%<__thread%> used with %<register%>"
-msgstr ""
-
-#: c-decl.c:9601
-#, gcc-internal-format
-msgid "%<__thread%> used with %<typedef%>"
-msgstr ""
-
-#: c-decl.c:9615
-#, gcc-internal-format
-msgid "%<__thread%> before %<extern%>"
-msgstr ""
-
-#: c-decl.c:9624
-#, gcc-internal-format
-msgid "%<__thread%> before %<static%>"
-msgstr ""
-
-#: c-decl.c:9640
-#, gcc-internal-format
-msgid "multiple storage classes in declaration specifiers"
-msgstr ""
-
-#: c-decl.c:9648
-#, gcc-internal-format
-msgid "%<__thread%> used with %qE"
-msgstr ""
-
-#: c-decl.c:9719
-#, gcc-internal-format
-msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
-msgstr ""
-
-#: c-decl.c:9734
-#, gcc-internal-format
-msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
-msgstr ""
-
-#: c-decl.c:9779 c-decl.c:9792 c-decl.c:9818
-#, gcc-internal-format
-msgid "ISO C does not support complex integer types"
-msgstr ""
-
-#: c-decl.c:9972 toplev.c:478
-#, gcc-internal-format
-msgid "%q+F used but never defined"
-msgstr ""
-
-#: c-parser.c:243
-#, gcc-internal-format
-msgid "identifier %qE conflicts with C++ keyword"
-msgstr ""
-
-#: c-parser.c:1241
-#, gcc-internal-format
-msgid "ISO C forbids an empty translation unit"
-msgstr ""
-
-#: c-parser.c:1339 c-parser.c:7543
-#, gcc-internal-format
-msgid "ISO C does not allow extra %<;%> outside of a function"
-msgstr ""
-
-#: c-parser.c:1465 c-parser.c:2047 c-parser.c:3322
-#, gcc-internal-format
-msgid "unknown type name %qE"
-msgstr ""
-
-#: c-parser.c:1485 c-parser.c:8574 cp/parser.c:27484
-#, gcc-internal-format
-msgid "expected declaration specifiers"
-msgstr ""
-
-#: c-parser.c:1510 c-parser.c:2633
-#, gcc-internal-format
-msgid "expected %<;%>, identifier or %<(%>"
-msgstr ""
-
-#: c-parser.c:1528 cp/parser.c:23912 cp/parser.c:23986
-#, gcc-internal-format
-msgid "prefix attributes are ignored for methods"
-msgstr ""
-
-#: c-parser.c:1563
-#, gcc-internal-format
-msgid "prefix attributes are ignored for implementations"
-msgstr ""
-
-#: c-parser.c:1584
-#, gcc-internal-format
-msgid "unexpected attribute"
-msgstr ""
-
-#: c-parser.c:1627
-#, gcc-internal-format
-msgid "data definition has no type or storage class"
-msgstr ""
-
-#: c-parser.c:1702 cp/parser.c:10450
-#, gcc-internal-format
-msgid "expected %<,%> or %<;%>"
-msgstr ""
-
-#. This can appear in many cases looking nothing like a
-#. function definition, so we don't give a more specific
-#. error suggesting there was one.
-#: c-parser.c:1709 c-parser.c:1725
-#, gcc-internal-format
-msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
-msgstr ""
-
-#: c-parser.c:1717
-#, gcc-internal-format
-msgid "ISO C forbids nested functions"
-msgstr ""
-
-#: c-parser.c:1833
-#, gcc-internal-format
-msgid "ISO C99 does not support %<_Static_assert%>"
-msgstr ""
-
-#: c-parser.c:1836
-#, gcc-internal-format
-msgid "ISO C90 does not support %<_Static_assert%>"
-msgstr ""
-
-#: c-parser.c:1861 c-parser.c:3389 c-parser.c:8629 cp/parser.c:27355
-#, gcc-internal-format
-msgid "expected string literal"
-msgstr ""
-
-#: c-parser.c:1869
-#, gcc-internal-format
-msgid "expression in static assertion is not an integer"
-msgstr ""
-
-#: c-parser.c:1876
-#, gcc-internal-format
-msgid "expression in static assertion is not an integer constant expression"
-msgstr ""
-
-#: c-parser.c:1881
-#, gcc-internal-format
-msgid "expression in static assertion is not constant"
-msgstr ""
-
-#: c-parser.c:1886
-#, gcc-internal-format
-msgid "static assertion failed: %E"
-msgstr ""
-
-#: c-parser.c:2263 c-parser.c:3162 c-parser.c:3835 c-parser.c:4109
-#: c-parser.c:5225 c-parser.c:5316 c-parser.c:5938 c-parser.c:6292
-#: c-parser.c:6481 c-parser.c:6503 c-parser.c:6716 c-parser.c:6913
-#: c-parser.c:6942 c-parser.c:7127 c-parser.c:7176 c-parser.c:7336
-#: c-parser.c:7366 c-parser.c:7374 c-parser.c:7403 c-parser.c:7416
-#: c-parser.c:7721 c-parser.c:7845 c-parser.c:8272 c-parser.c:8307
-#: c-parser.c:8360 c-parser.c:8413 c-parser.c:8429 c-parser.c:8475
-#: c-parser.c:8754 c-parser.c:9829 c-parser.c:10632 cp/parser.c:22373
-#: cp/parser.c:24756 cp/parser.c:24786 cp/parser.c:24856 cp/parser.c:27075
-#, gcc-internal-format
-msgid "expected identifier"
-msgstr ""
-
-#: c-parser.c:2296 cp/parser.c:14606
-#, gcc-internal-format
-msgid "comma at end of enumerator list"
-msgstr ""
-
-#: c-parser.c:2302
-#, gcc-internal-format
-msgid "expected %<,%> or %<}%>"
-msgstr ""
-
-#: c-parser.c:2333
-#, gcc-internal-format
-msgid "ISO C forbids forward references to %<enum%> types"
-msgstr ""
-
-#: c-parser.c:2449
-#, gcc-internal-format
-msgid "expected class name"
-msgstr ""
-
-#: c-parser.c:2468
-#, gcc-internal-format
-msgid "extra semicolon in struct or union specified"
-msgstr ""
-
-#: c-parser.c:2497
-#, gcc-internal-format
-msgid "no semicolon at end of struct or union"
-msgstr ""
-
-#: c-parser.c:2595 c-parser.c:3649
-#, gcc-internal-format
-msgid "expected specifier-qualifier-list"
-msgstr ""
-
-#: c-parser.c:2606
-#, gcc-internal-format
-msgid "ISO C forbids member declarations with no members"
-msgstr ""
-
-#: c-parser.c:2696
-#, gcc-internal-format
-msgid "expected %<,%>, %<;%> or %<}%>"
-msgstr ""
-
-#: c-parser.c:2703
-#, gcc-internal-format
-msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
-msgstr ""
-
-#: c-parser.c:2756
-#, gcc-internal-format
-msgid "%<typeof%> applied to a bit-field"
-msgstr ""
-
-#: c-parser.c:2790
-#, gcc-internal-format
-msgid "ISO C99 does not support %<_Alignas%>"
-msgstr ""
-
-#: c-parser.c:2793
-#, gcc-internal-format
-msgid "ISO C90 does not support %<_Alignas%>"
-msgstr ""
-
-#: c-parser.c:3021
-#, gcc-internal-format
-msgid "expected identifier or %<(%>"
-msgstr ""
-
-#: c-parser.c:3228
-#, gcc-internal-format
-msgid "ISO C requires a named argument before %<...%>"
-msgstr ""
-
-#: c-parser.c:3329
-#, gcc-internal-format
-msgid "expected declaration specifiers or %<...%>"
-msgstr ""
-
-#: c-parser.c:3383
-#, gcc-internal-format
-msgid "wide string literal in %<asm%>"
-msgstr ""
-
-#: c-parser.c:3749
-#, gcc-internal-format
-msgid "ISO C forbids empty initializer braces"
-msgstr ""
-
-#: c-parser.c:3800
-#, gcc-internal-format
-msgid "obsolete use of designated initializer with %<:%>"
-msgstr ""
-
-#: c-parser.c:3940
-#, gcc-internal-format
-msgid "ISO C forbids specifying range of elements to initialize"
-msgstr ""
-
-#: c-parser.c:3953
-#, gcc-internal-format
-msgid "ISO C90 forbids specifying subobject to initialize"
-msgstr ""
-
-#: c-parser.c:3960
-#, gcc-internal-format
-msgid "obsolete use of designated initializer without %<=%>"
-msgstr ""
-
-#: c-parser.c:4124
-#, gcc-internal-format
-msgid "ISO C forbids label declarations"
-msgstr ""
-
-#: c-parser.c:4130 c-parser.c:4211
-#, gcc-internal-format
-msgid "expected declaration or statement"
-msgstr ""
-
-#: c-parser.c:4162 c-parser.c:4192
-#, gcc-internal-format
-msgid "ISO C90 forbids mixed declarations and code"
-msgstr ""
-
-#: c-parser.c:4219
-#, gcc-internal-format
-msgid "expected %<}%> before %<else%>"
-msgstr ""
-
-#: c-parser.c:4224 cp/parser.c:8969
-#, gcc-internal-format
-msgid "%<else%> without a previous %<if%>"
-msgstr ""
-
-#: c-parser.c:4241
-#, gcc-internal-format
-msgid "label at end of compound statement"
-msgstr ""
-
-#: c-parser.c:4286
-#, gcc-internal-format
-msgid "expected %<:%> or %<...%>"
-msgstr ""
-
-#: c-parser.c:4317
-#, gcc-internal-format
-msgid ""
-"a label can only be part of a statement and a declaration is not a statement"
-msgstr ""
-
-#: c-parser.c:4492
-#, gcc-internal-format
-msgid "expected identifier or %<*%>"
-msgstr ""
-
-#. Avoid infinite loop in error recovery:
-#. c_parser_skip_until_found stops at a closing nesting
-#. delimiter without consuming it, but here we need to consume
-#. it to proceed further.
-#: c-parser.c:4565 cp/parser.c:8697
-#, gcc-internal-format
-msgid "expected statement"
-msgstr ""
-
-#: c-parser.c:4663 cp/parser.c:9051
-#, gcc-internal-format
-msgid "suggest braces around empty body in an %<if%> statement"
-msgstr ""
-
-#: c-parser.c:4691 cp/parser.c:9074
-#, gcc-internal-format
-msgid "suggest braces around empty body in an %<else%> statement"
-msgstr ""
-
-#: c-parser.c:4822
-#, gcc-internal-format
-msgid "suggest braces around empty body in %<do%> statement"
-msgstr ""
-
-#: c-parser.c:4938 c-parser.c:4968
-#, gcc-internal-format
-msgid "multiple iterating variables in fast enumeration"
-msgstr ""
-
-#: c-parser.c:4988
-#, gcc-internal-format
-msgid "invalid iterating variable in fast enumeration"
-msgstr ""
-
-#: c-parser.c:5021
-#, gcc-internal-format
-msgid "missing collection in fast enumeration"
-msgstr ""
-
-#: c-parser.c:5092
-#, gcc-internal-format
-msgid "%E qualifier ignored on asm"
-msgstr ""
-
-#: c-parser.c:5446
-#, gcc-internal-format
-msgid "ISO C forbids omitting the middle term of a ?: expression"
-msgstr ""
-
-#: c-parser.c:5903
-#, gcc-internal-format
-msgid "traditional C rejects the unary plus operator"
-msgstr ""
-
-#: c-parser.c:6032
-#, gcc-internal-format
-msgid "%<sizeof%> applied to a bit-field"
-msgstr ""
-
-#: c-parser.c:6053
-#, gcc-internal-format
-msgid "ISO C99 does not support %qE"
-msgstr ""
-
-#: c-parser.c:6056
-#, gcc-internal-format
-msgid "ISO C90 does not support %qE"
-msgstr ""
-
-#: c-parser.c:6107
-#, gcc-internal-format
-msgid "ISO C does not allow %<%E (expression)%>"
-msgstr ""
-
-#: c-parser.c:6132
-#, gcc-internal-format
-msgid "cannot take address of %qs"
-msgstr ""
-
-#: c-parser.c:6303 c-parser.c:6753 c-parser.c:6772
-#, gcc-internal-format
-msgid "expected expression"
-msgstr ""
-
-#: c-parser.c:6321
-#, gcc-internal-format
-msgid "braced-group within expression allowed only inside a function"
-msgstr ""
-
-#: c-parser.c:6334
-#, gcc-internal-format
-msgid "ISO C forbids braced-groups within expressions"
-msgstr ""
-
-#: c-parser.c:6526
-#, gcc-internal-format
-msgid "wrong number of arguments to %<__builtin_choose_expr%>"
-msgstr ""
-
-#: c-parser.c:6542
-#, gcc-internal-format
-msgid "first argument to %<__builtin_choose_expr%> not a constant"
-msgstr ""
-
-#: c-parser.c:6608
-#, gcc-internal-format
-msgid "wrong number of arguments to %<__builtin_complex%>"
-msgstr ""
-
-#: c-parser.c:6630
-#, gcc-internal-format
-msgid "%<__builtin_complex%> operand not of real binary floating-point type"
-msgstr ""
-
-#: c-parser.c:6639
-#, gcc-internal-format
-msgid "%<__builtin_complex%> operands of different types"
-msgstr ""
-
-#: c-parser.c:6685
-#, gcc-internal-format
-msgid "wrong number of arguments to %<__builtin_shuffle%>"
-msgstr ""
-
-#: c-parser.c:6807
-#, gcc-internal-format
-msgid "compound literal has variable size"
-msgstr ""
-
-#: c-parser.c:6818
-#, gcc-internal-format
-msgid "compound literal qualified by address-space qualifier"
-msgstr ""
-
-#: c-parser.c:6823
-#, gcc-internal-format
-msgid "ISO C90 forbids compound literals"
-msgstr ""
-
-#: c-parser.c:7147
-#, gcc-internal-format
-msgid "expected identifier or %<)%>"
-msgstr ""
-
-#: c-parser.c:7243
-#, gcc-internal-format
-msgid "extra semicolon"
-msgstr ""
-
-#: c-parser.c:7491
-#, gcc-internal-format
-msgid "extra semicolon in method definition specified"
-msgstr ""
-
-#: c-parser.c:7623
-#, gcc-internal-format
-msgid "method attributes must be specified at the end only"
-msgstr ""
-
-#: c-parser.c:7643
-#, gcc-internal-format
-msgid "expected %<;%> or %<{%> after method attribute definition"
-msgstr ""
-
-#: c-parser.c:7764
-#, gcc-internal-format
-msgid "objective-c method declaration is expected"
-msgstr ""
-
-#: c-parser.c:8186
-#, gcc-internal-format
-msgid "no type or storage class may be specified here,"
-msgstr ""
-
-#: c-parser.c:8276 c-parser.c:8333 cp/parser.c:24816
-#, gcc-internal-format
-msgid "unknown property attribute"
-msgstr ""
-
-#: c-parser.c:8297 cp/parser.c:24776
-#, gcc-internal-format
-msgid "missing %<=%> (after %<getter%> attribute)"
-msgstr ""
-
-#: c-parser.c:8300 cp/parser.c:24779
-#, gcc-internal-format
-msgid "missing %<=%> (after %<setter%> attribute)"
-msgstr ""
-
-#: c-parser.c:8314 cp/parser.c:24794
-#, gcc-internal-format
-msgid "the %<setter%> attribute may only be specified once"
-msgstr ""
-
-#: c-parser.c:8319 cp/parser.c:24800
-#, gcc-internal-format
-msgid "setter name must terminate with %<:%>"
-msgstr ""
-
-#: c-parser.c:8326 cp/parser.c:24808
-#, gcc-internal-format
-msgid "the %<getter%> attribute may only be specified once"
-msgstr ""
-
-#: c-parser.c:8512 cp/parser.c:27399
-#, gcc-internal-format
-msgid "%<#pragma omp barrier%> may only be used in compound statements"
-msgstr ""
-
-#: c-parser.c:8523 cp/parser.c:27414
-#, gcc-internal-format
-msgid "%<#pragma omp flush%> may only be used in compound statements"
-msgstr ""
-
-#: c-parser.c:8534 cp/parser.c:27430
-#, gcc-internal-format
-msgid "%<#pragma omp taskwait%> may only be used in compound statements"
-msgstr ""
-
-#: c-parser.c:8545 cp/parser.c:27446
-#, gcc-internal-format
-msgid "%<#pragma omp taskyield%> may only be used in compound statements"
-msgstr ""
-
-#: c-parser.c:8558 cp/parser.c:27474
-#, gcc-internal-format
-msgid ""
-"%<#pragma omp section%> may only be used in %<#pragma omp sections%> "
-"construct"
-msgstr ""
-
-#: c-parser.c:8564 cp/parser.c:27389
-#, gcc-internal-format
-msgid "%<#pragma GCC pch_preprocess%> must be first"
-msgstr ""
-
-#: c-parser.c:8729 cp/parser.c:25064
-#, gcc-internal-format
-msgid "too many %qs clauses"
-msgstr ""
-
-#: c-parser.c:8831 cp/parser.c:25179
-#, gcc-internal-format
-msgid "collapse argument needs positive constant integer expression"
-msgstr ""
-
-#: c-parser.c:8897 cp/parser.c:25230
-#, gcc-internal-format
-msgid "expected %<none%> or %<shared%>"
-msgstr ""
-
-#: c-parser.c:9032 c-parser.c:9246
-#, gcc-internal-format
-msgid "expected integer expression"
-msgstr ""
-
-#: c-parser.c:9044
-#, gcc-internal-format
-msgid "%<num_threads%> value must be positive"
-msgstr ""
-
-#: c-parser.c:9148 cp/parser.c:25449
-#, gcc-internal-format
-msgid ""
-"expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> "
-"or %<max%>"
-msgstr ""
-
-#: c-parser.c:9237 cp/parser.c:25534
-#, gcc-internal-format
-msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
-msgstr ""
-
-#: c-parser.c:9241 cp/parser.c:25537
-#, gcc-internal-format
-msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
-msgstr ""
-
-#: c-parser.c:9259 cp/parser.c:25553
-#, gcc-internal-format
-msgid "invalid schedule kind"
-msgstr ""
-
-#: c-parser.c:9387 cp/parser.c:25685
-#, gcc-internal-format
-msgid "expected %<#pragma omp%> clause"
-msgstr ""
-
-#: c-parser.c:9396 cp/parser.c:25694
-#, gcc-internal-format
-msgid "%qs is not valid for %qs"
-msgstr ""
-
-#: c-parser.c:9688 cp/parser.c:25978
-#, gcc-internal-format
-msgid "invalid form of %<#pragma omp atomic%>"
-msgstr ""
-
-#: c-parser.c:9728 c-parser.c:9746 cp/parser.c:26009 cp/parser.c:26026
-#, gcc-internal-format
-msgid "invalid operator for %<#pragma omp atomic%>"
-msgstr ""
-
-#: c-parser.c:9832 c-parser.c:9853
-#, gcc-internal-format
-msgid "expected %<(%> or end of line"
-msgstr ""
-
-#: c-parser.c:9888 cp/parser.c:26298
-#, gcc-internal-format
-msgid "for statement expected"
-msgstr ""
-
-#: c-parser.c:9941 cp/semantics.c:4719 cp/semantics.c:4789
-#, gcc-internal-format
-msgid "expected iteration declaration or initialization"
-msgstr ""
-
-#: c-parser.c:10022
-#, gcc-internal-format
-msgid "not enough perfectly nested loops"
-msgstr ""
-
-#: c-parser.c:10075 cp/parser.c:26641
-#, gcc-internal-format
-msgid "collapsed loops not perfectly nested"
-msgstr ""
-
-#: c-parser.c:10113 cp/parser.c:26484 cp/parser.c:26522 cp/pt.c:12709
-#, gcc-internal-format
-msgid "iteration variable %qD should not be firstprivate"
-msgstr ""
-
-#: c-parser.c:10574
-#, gcc-internal-format
-msgid "%qD is not a variable"
-msgstr ""
-
-#: c-parser.c:10576 cp/semantics.c:4331
-#, gcc-internal-format
-msgid "%qE declared %<threadprivate%> after first use"
-msgstr ""
-
-#: c-parser.c:10578 cp/semantics.c:4333
-#, gcc-internal-format
-msgid "automatic variable %qE cannot be %<threadprivate%>"
-msgstr ""
-
-#: c-parser.c:10582 cp/semantics.c:4335
-#, gcc-internal-format
-msgid "%<threadprivate%> %qE has incomplete type"
-msgstr ""
-
-#: c-parser.c:10779 cp/parser.c:27285
-#, gcc-internal-format
-msgid "%<__transaction_cancel%> without transactional memory support enabled"
-msgstr ""
-
-#: c-parser.c:10785 cp/parser.c:27291
-#, gcc-internal-format
-msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
-msgstr ""
-
-#: c-parser.c:10794 cp/parser.c:27300
-#, gcc-internal-format
-msgid ""
-"outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
-msgstr ""
-
-#: c-parser.c:10796 cp/parser.c:27303
-#, gcc-internal-format
-msgid " or a %<transaction_may_cancel_outer%> function"
-msgstr ""
-
-#: c-parser.c:10802 cp/parser.c:27309
-#, gcc-internal-format
-msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
-msgstr ""
-
-#: c-typeck.c:213
-#, gcc-internal-format
-msgid "%qD has an incomplete type"
-msgstr ""
-
-#: c-typeck.c:234 c-typeck.c:8626 c-typeck.c:8658 cp/call.c:3772
-#, gcc-internal-format
-msgid "invalid use of void expression"
-msgstr ""
-
-#: c-typeck.c:242
-#, gcc-internal-format
-msgid "invalid use of flexible array member"
-msgstr ""
-
-#: c-typeck.c:248 cp/typeck2.c:426
-#, gcc-internal-format
-msgid "invalid use of array with unspecified bounds"
-msgstr ""
-
-#: c-typeck.c:256
-#, gcc-internal-format
-msgid "invalid use of undefined type %<%s %E%>"
-msgstr ""
-
-#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:260
-#, gcc-internal-format
-msgid "invalid use of incomplete typedef %qD"
-msgstr ""
-
-#: c-typeck.c:326
-#, gcc-internal-format
-msgid "%qT and %qT are in disjoint named address spaces"
-msgstr ""
-
-#: c-typeck.c:565 c-typeck.c:590
-#, gcc-internal-format
-msgid "function types not truly compatible in ISO C"
-msgstr ""
-
-#: c-typeck.c:733
-#, gcc-internal-format
-msgid "can%'t mix operands of decimal float and vector types"
-msgstr ""
-
-#: c-typeck.c:738
-#, gcc-internal-format
-msgid "can%'t mix operands of decimal float and complex types"
-msgstr ""
-
-#: c-typeck.c:743
-#, gcc-internal-format
-msgid "can%'t mix operands of decimal float and other float types"
-msgstr ""
-
-#: c-typeck.c:1219
-#, gcc-internal-format
-msgid "types are not quite compatible"
-msgstr ""
-
-#: c-typeck.c:1223
-#, gcc-internal-format
-msgid "pointer target types incompatible in C++"
-msgstr ""
-
-#: c-typeck.c:1555
-#, gcc-internal-format
-msgid "function return types not compatible due to %<volatile%>"
-msgstr ""
-
-#: c-typeck.c:1731 c-typeck.c:3492
-#, gcc-internal-format
-msgid "arithmetic on pointer to an incomplete type"
-msgstr ""
-
-#: c-typeck.c:1795
-#, gcc-internal-format
-msgid "converting an array compound literal to a pointer is ill-formed in C++"
-msgstr ""
-
-#: c-typeck.c:2159
-#, gcc-internal-format
-msgid "%qT has no member named %qE"
-msgstr ""
-
-#: c-typeck.c:2213
-#, gcc-internal-format
-msgid "request for member %qE in something not a structure or union"
-msgstr ""
-
-#: c-typeck.c:2262
-#, gcc-internal-format
-msgid "dereferencing pointer to incomplete type"
-msgstr ""
-
-#: c-typeck.c:2266
-#, gcc-internal-format
-msgid "dereferencing %<void *%> pointer"
-msgstr ""
-
-#: c-typeck.c:2322
-#, gcc-internal-format
-msgid "subscripted value is neither array nor pointer nor vector"
-msgstr ""
-
-#: c-typeck.c:2334 cp/typeck.c:2947 cp/typeck.c:3041
-#, gcc-internal-format
-msgid "array subscript is not an integer"
-msgstr ""
-
-#: c-typeck.c:2340
-#, gcc-internal-format
-msgid "subscripted value is pointer to function"
-msgstr ""
-
-#: c-typeck.c:2390
-#, gcc-internal-format
-msgid "ISO C forbids subscripting %<register%> array"
-msgstr ""
-
-#: c-typeck.c:2393
-#, gcc-internal-format
-msgid "ISO C90 forbids subscripting non-lvalue array"
-msgstr ""
-
-#: c-typeck.c:2501
-#, gcc-internal-format
-msgid "enum constant defined here"
-msgstr ""
-
-#: c-typeck.c:2682 cp/decl2.c:4225 cp/typeck.c:3420
-#, gcc-internal-format
-msgid "declared here"
-msgstr ""
-
-#: c-typeck.c:2749
-#, gcc-internal-format
-msgid "called object %qE is not a function or function pointer"
-msgstr ""
-
-#: c-typeck.c:2754
-#, gcc-internal-format
-msgid "called object %qD is not a function or function pointer"
-msgstr ""
-
-#: c-typeck.c:2760
-#, gcc-internal-format
-msgid "called object is not a function or function pointer"
-msgstr ""
-
-#. This situation leads to run-time undefined behavior. We can't,
-#. therefore, simply error unless we can prove that all possible
-#. executions of the program must execute the code.
-#: c-typeck.c:2797
-#, gcc-internal-format
-msgid "function called through a non-compatible type"
-msgstr ""
-
-#: c-typeck.c:2811 c-typeck.c:2864
-#, gcc-internal-format
-msgid "function with qualified void return type called"
-msgstr ""
-
-#: c-typeck.c:2901
-#, gcc-internal-format
-msgid "__builtin_shuffle last argument must be an integer vector"
-msgstr ""
-
-#: c-typeck.c:2909
-#, gcc-internal-format
-msgid "__builtin_shuffle arguments must be vectors"
-msgstr ""
-
-#: c-typeck.c:2915
-#, gcc-internal-format
-msgid "__builtin_shuffle argument vectors must be of the same type"
-msgstr ""
-
-#: c-typeck.c:2925
-#, gcc-internal-format
-msgid ""
-"__builtin_shuffle number of elements of the argument vector(s) and the mask "
-"vector should be the same"
-msgstr ""
-
-#: c-typeck.c:2934
-#, gcc-internal-format
-msgid ""
-"__builtin_shuffle argument vector(s) inner type must have the same size as "
-"inner type of the mask"
-msgstr ""
-
-#: c-typeck.c:3046
-#, gcc-internal-format
-msgid "too many arguments to method %qE"
-msgstr ""
-
-#: c-typeck.c:3049 c-family/c-common.c:8567 c-family/c-common.c:9496
-#, gcc-internal-format
-msgid "too many arguments to function %qE"
-msgstr ""
-
-#: c-typeck.c:3085
-#, gcc-internal-format, gfc-internal-format
-msgid "type of formal parameter %d is incomplete"
-msgstr ""
-
-#: c-typeck.c:3100
-#, gcc-internal-format
-msgid ""
-"passing argument %d of %qE as integer rather than floating due to prototype"
-msgstr ""
-
-#: c-typeck.c:3105
-#, gcc-internal-format
-msgid ""
-"passing argument %d of %qE as integer rather than complex due to prototype"
-msgstr ""
-
-#: c-typeck.c:3110
-#, gcc-internal-format
-msgid ""
-"passing argument %d of %qE as complex rather than floating due to prototype"
-msgstr ""
-
-#: c-typeck.c:3115
-#, gcc-internal-format
-msgid ""
-"passing argument %d of %qE as floating rather than integer due to prototype"
-msgstr ""
-
-#: c-typeck.c:3120
-#, gcc-internal-format
-msgid ""
-"passing argument %d of %qE as complex rather than integer due to prototype"
-msgstr ""
-
-#: c-typeck.c:3125
-#, gcc-internal-format
-msgid ""
-"passing argument %d of %qE as floating rather than complex due to prototype"
-msgstr ""
-
-#: c-typeck.c:3138
-#, gcc-internal-format
-msgid ""
-"passing argument %d of %qE as %<float%> rather than %<double%> due to "
-"prototype"
-msgstr ""
-
-#: c-typeck.c:3163
-#, gcc-internal-format
-msgid "passing argument %d of %qE as %qT rather than %qT due to prototype"
-msgstr ""
-
-#: c-typeck.c:3185
-#, gcc-internal-format
-msgid "passing argument %d of %qE with different width due to prototype"
-msgstr ""
-
-#: c-typeck.c:3209
-#, gcc-internal-format
-msgid "passing argument %d of %qE as unsigned due to prototype"
-msgstr ""
-
-#: c-typeck.c:3214
-#, gcc-internal-format
-msgid "passing argument %d of %qE as signed due to prototype"
-msgstr ""
-
-#: c-typeck.c:3249 cp/call.c:6102
-#, gcc-internal-format
-msgid "implicit conversion from %qT to %qT when passing argument to function"
-msgstr ""
-
-#: c-typeck.c:3282 c-family/c-common.c:9414 c-family/c-common.c:9470
-#, gcc-internal-format
-msgid "too few arguments to function %qE"
-msgstr ""
-
-#: c-typeck.c:3363 c-typeck.c:3368
-#, gcc-internal-format
-msgid "comparison with string literal results in unspecified behavior"
-msgstr ""
-
-#: c-typeck.c:3382
-#, gcc-internal-format
-msgid "comparison between %qT and %qT"
-msgstr ""
-
-#: c-typeck.c:3433
-#, gcc-internal-format
-msgid "pointer of type %<void *%> used in subtraction"
-msgstr ""
-
-#: c-typeck.c:3436
-#, gcc-internal-format
-msgid "pointer to a function used in subtraction"
-msgstr ""
-
-#: c-typeck.c:3600
-#, gcc-internal-format
-msgid "ISO C does not support %<~%> for complex conjugation"
-msgstr ""
-
-#: c-typeck.c:3639
-#, gcc-internal-format
-msgid "wrong type argument to unary exclamation mark"
-msgstr ""
-
-#: c-typeck.c:3690
-#, gcc-internal-format
-msgid "increment of enumeration value is invalid in C++"
-msgstr ""
-
-#: c-typeck.c:3693
-#, gcc-internal-format
-msgid "decrement of enumeration value is invalid in C++"
-msgstr ""
-
-#: c-typeck.c:3706
-#, gcc-internal-format
-msgid "ISO C does not support %<++%> and %<--%> on complex types"
-msgstr ""
-
-#: c-typeck.c:3725 c-typeck.c:3757
-#, gcc-internal-format
-msgid "wrong type argument to increment"
-msgstr ""
-
-#: c-typeck.c:3727 c-typeck.c:3760
-#, gcc-internal-format
-msgid "wrong type argument to decrement"
-msgstr ""
-
-#: c-typeck.c:3747
-#, gcc-internal-format
-msgid "increment of pointer to unknown structure"
-msgstr ""
-
-#: c-typeck.c:3750
-#, gcc-internal-format
-msgid "decrement of pointer to unknown structure"
-msgstr ""
-
-#: c-typeck.c:3834
-#, gcc-internal-format
-msgid "taking address of expression of type %<void%>"
-msgstr ""
-
-#: c-typeck.c:3992 c-family/c-common.c:9168
-#, gcc-internal-format
-msgid "assignment of read-only location %qE"
-msgstr ""
-
-#: c-typeck.c:3995 c-family/c-common.c:9169
-#, gcc-internal-format
-msgid "increment of read-only location %qE"
-msgstr ""
-
-#: c-typeck.c:3998 c-family/c-common.c:9170
-#, gcc-internal-format
-msgid "decrement of read-only location %qE"
-msgstr ""
-
-#: c-typeck.c:4039
-#, gcc-internal-format
-msgid "cannot take address of bit-field %qD"
-msgstr ""
-
-#: c-typeck.c:4067
-#, gcc-internal-format
-msgid "global register variable %qD used in nested function"
-msgstr ""
-
-#: c-typeck.c:4070
-#, gcc-internal-format
-msgid "register variable %qD used in nested function"
-msgstr ""
-
-#: c-typeck.c:4075
-#, gcc-internal-format
-msgid "address of global register variable %qD requested"
-msgstr ""
-
-#: c-typeck.c:4077
-#, gcc-internal-format
-msgid "address of register variable %qD requested"
-msgstr ""
-
-#: c-typeck.c:4171
-#, gcc-internal-format
-msgid "non-lvalue array in conditional expression"
-msgstr ""
-
-#: c-typeck.c:4227 cp/call.c:4697
-#, gcc-internal-format
-msgid ""
-"implicit conversion from %qT to %qT to match other result of conditional"
-msgstr ""
-
-#: c-typeck.c:4301
-#, gcc-internal-format
-msgid "ISO C forbids conditional expr with only one void side"
-msgstr ""
-
-#: c-typeck.c:4318
-#, gcc-internal-format
-msgid "pointers to disjoint address spaces used in conditional expression"
-msgstr ""
-
-#: c-typeck.c:4326 c-typeck.c:4335
-#, gcc-internal-format
-msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
-msgstr ""
-
-#: c-typeck.c:4348
-#, gcc-internal-format
-msgid "pointer type mismatch in conditional expression"
-msgstr ""
-
-#: c-typeck.c:4357 c-typeck.c:4368
-#, gcc-internal-format
-msgid "pointer/integer type mismatch in conditional expression"
-msgstr ""
-
-#: c-typeck.c:4382 tree-cfg.c:3841
-#, gcc-internal-format
-msgid "type mismatch in conditional expression"
-msgstr ""
-
-#: c-typeck.c:4481
-#, gcc-internal-format
-msgid "left-hand operand of comma expression has no effect"
-msgstr ""
-
-#: c-typeck.c:4551
-msgid "cast adds %q#v qualifier to function type"
-msgstr ""
-
-#: c-typeck.c:4557
-msgid "cast discards %q#v qualifier from pointer target type"
-msgstr ""
-
-#: c-typeck.c:4592
-#, gcc-internal-format
-msgid ""
-"to be safe all intermediate pointers in cast from %qT to %qT must be %<const"
-"%> qualified"
-msgstr ""
-
-#: c-typeck.c:4629
-#, gcc-internal-format
-msgid "cast specifies array type"
-msgstr ""
-
-#: c-typeck.c:4635
-#, gcc-internal-format
-msgid "cast specifies function type"
-msgstr ""
-
-#: c-typeck.c:4651
-#, gcc-internal-format
-msgid "ISO C forbids casting nonscalar to the same type"
-msgstr ""
-
-#: c-typeck.c:4668
-#, gcc-internal-format
-msgid "ISO C forbids casts to union type"
-msgstr ""
-
-#: c-typeck.c:4678
-#, gcc-internal-format
-msgid "cast to union type from type not present in union"
-msgstr ""
-
-#: c-typeck.c:4713
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"cast to %s address space pointer from disjoint generic address space pointer"
-msgstr ""
-
-#: c-typeck.c:4718
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"cast to generic address space pointer from disjoint %s address space pointer"
-msgstr ""
-
-#: c-typeck.c:4723
-#, gcc-internal-format, gfc-internal-format
-msgid "cast to %s address space pointer from disjoint %s address space pointer"
-msgstr ""
-
-#: c-typeck.c:4743
-#, gcc-internal-format
-msgid "cast increases required alignment of target type"
-msgstr ""
-
-#: c-typeck.c:4754
-#, gcc-internal-format
-msgid "cast from pointer to integer of different size"
-msgstr ""
-
-#: c-typeck.c:4759
-#, gcc-internal-format
-msgid "cast from function call of type %qT to non-matching type %qT"
-msgstr ""
-
-#: c-typeck.c:4768 cp/typeck.c:6730
-#, gcc-internal-format
-msgid "cast to pointer from integer of different size"
-msgstr ""
-
-#: c-typeck.c:4782
-#, gcc-internal-format
-msgid "ISO C forbids conversion of function pointer to object pointer type"
-msgstr ""
-
-#: c-typeck.c:4791
-#, gcc-internal-format
-msgid "ISO C forbids conversion of object pointer to function pointer type"
-msgstr ""
-
-#: c-typeck.c:4874
-#, gcc-internal-format
-msgid "defining a type in a cast is invalid in C++"
-msgstr ""
-
-#: c-typeck.c:5013 c-typeck.c:5310
-#, gcc-internal-format
-msgid "enum conversion in assignment is invalid in C++"
-msgstr ""
-
-#. This macro is used to emit diagnostics to ensure that all format
-#. strings are complete sentences, visible to gettext and checked at
-#. compile time.
-#. This macro is used to emit diagnostics to ensure that all format
-#. strings are complete sentences, visible to gettext and checked at
-#. compile time. It is the same as WARN_FOR_ASSIGNMENT but with an
-#. extra parameter to enumerate qualifiers.
-#: c-typeck.c:5218 c-typeck.c:5248 c-typeck.c:5775
-#, gcc-internal-format
-msgid "expected %qT but argument is of type %qT"
-msgstr ""
-
-#: c-typeck.c:5308
-#, gcc-internal-format
-msgid "enum conversion when passing argument %d of %qE is invalid in C++"
-msgstr ""
-
-#: c-typeck.c:5312 c-typeck.c:7879
-#, gcc-internal-format
-msgid "enum conversion in initialization is invalid in C++"
-msgstr ""
-
-#: c-typeck.c:5314
-#, gcc-internal-format
-msgid "enum conversion in return is invalid in C++"
-msgstr ""
-
-#: c-typeck.c:5343
-#, gcc-internal-format
-msgid "cannot pass rvalue to reference parameter"
-msgstr ""
-
-#: c-typeck.c:5473 c-typeck.c:5696
-msgid ""
-"passing argument %d of %qE makes %q#v qualified function pointer from "
-"unqualified"
-msgstr ""
-
-#: c-typeck.c:5476 c-typeck.c:5699
-msgid "assignment makes %q#v qualified function pointer from unqualified"
-msgstr ""
-
-#: c-typeck.c:5479 c-typeck.c:5701
-msgid "initialization makes %q#v qualified function pointer from unqualified"
-msgstr ""
-
-#: c-typeck.c:5482 c-typeck.c:5703
-msgid "return makes %q#v qualified function pointer from unqualified"
-msgstr ""
-
-#: c-typeck.c:5489 c-typeck.c:5659
-msgid ""
-"passing argument %d of %qE discards %qv qualifier from pointer target type"
-msgstr ""
-
-#: c-typeck.c:5491 c-typeck.c:5661
-msgid "assignment discards %qv qualifier from pointer target type"
-msgstr ""
-
-#: c-typeck.c:5493 c-typeck.c:5663
-msgid "initialization discards %qv qualifier from pointer target type"
-msgstr ""
-
-#: c-typeck.c:5495 c-typeck.c:5665
-msgid "return discards %qv qualifier from pointer target type"
-msgstr ""
-
-#: c-typeck.c:5504
-#, gcc-internal-format
-msgid "ISO C prohibits argument conversion to union type"
-msgstr ""
-
-#: c-typeck.c:5559
-#, gcc-internal-format
-msgid "request for implicit conversion from %qT to %qT not permitted in C++"
-msgstr ""
-
-#: c-typeck.c:5571
-#, gcc-internal-format
-msgid "passing argument %d of %qE from pointer to non-enclosed address space"
-msgstr ""
-
-#: c-typeck.c:5575
-#, gcc-internal-format
-msgid "assignment from pointer to non-enclosed address space"
-msgstr ""
-
-#: c-typeck.c:5579
-#, gcc-internal-format
-msgid "initialization from pointer to non-enclosed address space"
-msgstr ""
-
-#: c-typeck.c:5583
-#, gcc-internal-format
-msgid "return from pointer to non-enclosed address space"
-msgstr ""
-
-#: c-typeck.c:5601
-#, gcc-internal-format
-msgid "argument %d of %qE might be a candidate for a format attribute"
-msgstr ""
-
-#: c-typeck.c:5607
-#, gcc-internal-format
-msgid "assignment left-hand side might be a candidate for a format attribute"
-msgstr ""
-
-#: c-typeck.c:5612
-#, gcc-internal-format
-msgid ""
-"initialization left-hand side might be a candidate for a format attribute"
-msgstr ""
-
-#: c-typeck.c:5617 cp/typeck.c:7715
-#, gcc-internal-format
-msgid "return type might be a candidate for a format attribute"
-msgstr ""
-
-#: c-typeck.c:5641
-#, gcc-internal-format
-msgid ""
-"ISO C forbids passing argument %d of %qE between function pointer and %<void "
-"*%>"
-msgstr ""
-
-#: c-typeck.c:5644
-#, gcc-internal-format
-msgid "ISO C forbids assignment between function pointer and %<void *%>"
-msgstr ""
-
-#: c-typeck.c:5646
-#, gcc-internal-format
-msgid "ISO C forbids initialization between function pointer and %<void *%>"
-msgstr ""
-
-#: c-typeck.c:5648
-#, gcc-internal-format
-msgid "ISO C forbids return between function pointer and %<void *%>"
-msgstr ""
-
-#: c-typeck.c:5677
-#, gcc-internal-format
-msgid "pointer targets in passing argument %d of %qE differ in signedness"
-msgstr ""
-
-#: c-typeck.c:5679
-#, gcc-internal-format
-msgid "pointer targets in assignment differ in signedness"
-msgstr ""
-
-#: c-typeck.c:5681
-#, gcc-internal-format
-msgid "pointer targets in initialization differ in signedness"
-msgstr ""
-
-#: c-typeck.c:5683
-#, gcc-internal-format
-msgid "pointer targets in return differ in signedness"
-msgstr ""
-
-#: c-typeck.c:5712
-#, gcc-internal-format
-msgid "passing argument %d of %qE from incompatible pointer type"
-msgstr ""
-
-#: c-typeck.c:5714
-#, gcc-internal-format
-msgid "assignment from incompatible pointer type"
-msgstr ""
-
-#: c-typeck.c:5715
-#, gcc-internal-format
-msgid "initialization from incompatible pointer type"
-msgstr ""
-
-#: c-typeck.c:5717
-#, gcc-internal-format
-msgid "return from incompatible pointer type"
-msgstr ""
-
-#. ??? This should not be an error when inlining calls to
-#. unprototyped functions.
-#: c-typeck.c:5725 c-typeck.c:6277 cp/typeck.c:1884
-#, gcc-internal-format
-msgid "invalid use of non-lvalue array"
-msgstr ""
-
-#: c-typeck.c:5735
-#, gcc-internal-format
-msgid "passing argument %d of %qE makes pointer from integer without a cast"
-msgstr ""
-
-#: c-typeck.c:5737
-#, gcc-internal-format
-msgid "assignment makes pointer from integer without a cast"
-msgstr ""
-
-#: c-typeck.c:5739
-#, gcc-internal-format
-msgid "initialization makes pointer from integer without a cast"
-msgstr ""
-
-#: c-typeck.c:5741
-#, gcc-internal-format
-msgid "return makes pointer from integer without a cast"
-msgstr ""
-
-#: c-typeck.c:5749
-#, gcc-internal-format
-msgid "passing argument %d of %qE makes integer from pointer without a cast"
-msgstr ""
-
-#: c-typeck.c:5751
-#, gcc-internal-format
-msgid "assignment makes integer from pointer without a cast"
-msgstr ""
-
-#: c-typeck.c:5753
-#, gcc-internal-format
-msgid "initialization makes integer from pointer without a cast"
-msgstr ""
-
-#: c-typeck.c:5755
-#, gcc-internal-format
-msgid "return makes integer from pointer without a cast"
-msgstr ""
-
-#: c-typeck.c:5772 c-family/c-common.c:9431 config/mep/mep.c:6302
-#, gcc-internal-format
-msgid "incompatible type for argument %d of %qE"
-msgstr ""
-
-#: c-typeck.c:5778
-#, gcc-internal-format
-msgid "incompatible types when assigning to type %qT from type %qT"
-msgstr ""
-
-#: c-typeck.c:5783
-#, gcc-internal-format
-msgid "incompatible types when initializing type %qT using type %qT"
-msgstr ""
-
-#: c-typeck.c:5788
-#, gcc-internal-format
-msgid "incompatible types when returning type %qT but %qT was expected"
-msgstr ""
-
-#: c-typeck.c:5852
-#, gcc-internal-format
-msgid "traditional C rejects automatic aggregate initialization"
-msgstr ""
-
-#: c-typeck.c:6028 c-typeck.c:6045 c-typeck.c:6063
-#, gcc-internal-format
-msgid "(near initialization for %qs)"
-msgstr ""
-
-#: c-typeck.c:6078
-#, gcc-internal-format
-msgid "array initialized from parenthesized string constant"
-msgstr ""
-
-#: c-typeck.c:6151 c-typeck.c:7026
-#, gcc-internal-format
-msgid "initialization of a flexible array member"
-msgstr ""
-
-#: c-typeck.c:6161 cp/typeck2.c:890
-#, gcc-internal-format
-msgid "char-array initialized from wide string"
-msgstr ""
-
-#: c-typeck.c:6169
-#, gcc-internal-format
-msgid "wide character array initialized from non-wide string"
-msgstr ""
-
-#: c-typeck.c:6175
-#, gcc-internal-format
-msgid "wide character array initialized from incompatible wide string"
-msgstr ""
-
-#: c-typeck.c:6209
-#, gcc-internal-format
-msgid "array of inappropriate type initialized from string constant"
-msgstr ""
-
-#: c-typeck.c:6303
-#, gcc-internal-format
-msgid "array initialized from non-constant array expression"
-msgstr ""
-
-#: c-typeck.c:6317 c-typeck.c:6320 c-typeck.c:6328 c-typeck.c:6367
-#: c-typeck.c:7852
-#, gcc-internal-format
-msgid "initializer element is not constant"
-msgstr ""
-
-#: c-typeck.c:6333 c-typeck.c:6379 c-typeck.c:7862
-#, gcc-internal-format
-msgid "initializer element is not a constant expression"
-msgstr ""
-
-#: c-typeck.c:6374 c-typeck.c:7857
-#, gcc-internal-format
-msgid "initializer element is not computable at load time"
-msgstr ""
-
-#: c-typeck.c:6392
-#, gcc-internal-format
-msgid "invalid initializer"
-msgstr ""
-
-#: c-typeck.c:6666 cp/decl.c:5542
-#, gcc-internal-format
-msgid "opaque vector types cannot be initialized"
-msgstr ""
-
-#: c-typeck.c:6881
-#, gcc-internal-format
-msgid "extra brace group at end of initializer"
-msgstr ""
-
-#: c-typeck.c:6902
-#, gcc-internal-format
-msgid "missing braces around initializer"
-msgstr ""
-
-#: c-typeck.c:6963
-#, gcc-internal-format
-msgid "braces around scalar initializer"
-msgstr ""
-
-#: c-typeck.c:7023
-#, gcc-internal-format
-msgid "initialization of flexible array member in a nested context"
-msgstr ""
-
-#: c-typeck.c:7061
-#, gcc-internal-format
-msgid "missing initializer for field %qD of %qT"
-msgstr ""
-
-#: c-typeck.c:7086
-#, gcc-internal-format
-msgid "empty scalar initializer"
-msgstr ""
-
-#: c-typeck.c:7091
-#, gcc-internal-format
-msgid "extra elements in scalar initializer"
-msgstr ""
-
-#: c-typeck.c:7202 c-typeck.c:7283
-#, gcc-internal-format
-msgid "array index in non-array initializer"
-msgstr ""
-
-#: c-typeck.c:7207 c-typeck.c:7339
-#, gcc-internal-format
-msgid "field name not in record or union initializer"
-msgstr ""
-
-#: c-typeck.c:7256
-#, gcc-internal-format
-msgid "array index in initializer not of integer type"
-msgstr ""
-
-#: c-typeck.c:7265 c-typeck.c:7274
-#, gcc-internal-format
-msgid "array index in initializer is not an integer constant expression"
-msgstr ""
-
-#: c-typeck.c:7279 c-typeck.c:7281
-#, gcc-internal-format
-msgid "nonconstant array index in initializer"
-msgstr ""
-
-#: c-typeck.c:7285 c-typeck.c:7288
-#, gcc-internal-format
-msgid "array index in initializer exceeds array bounds"
-msgstr ""
-
-#: c-typeck.c:7302
-#, gcc-internal-format
-msgid "empty index range in initializer"
-msgstr ""
-
-#: c-typeck.c:7311
-#, gcc-internal-format
-msgid "array index range in initializer exceeds array bounds"
-msgstr ""
-
-#: c-typeck.c:7346
-#, gcc-internal-format
-msgid "unknown field %qE specified in initializer"
-msgstr ""
-
-#: c-typeck.c:7398 c-typeck.c:7425 c-typeck.c:7953
-#, gcc-internal-format
-msgid "initialized field with side-effects overwritten"
-msgstr ""
-
-#: c-typeck.c:7400 c-typeck.c:7427 c-typeck.c:7955
-#, gcc-internal-format
-msgid "initialized field overwritten"
-msgstr ""
-
-#: c-typeck.c:8172
-#, gcc-internal-format
-msgid "excess elements in char array initializer"
-msgstr ""
-
-#: c-typeck.c:8179 c-typeck.c:8240
-#, gcc-internal-format
-msgid "excess elements in struct initializer"
-msgstr ""
-
-#: c-typeck.c:8255
-#, gcc-internal-format
-msgid "non-static initialization of a flexible array member"
-msgstr ""
-
-#: c-typeck.c:8326
-#, gcc-internal-format
-msgid "excess elements in union initializer"
-msgstr ""
-
-#: c-typeck.c:8348
-#, gcc-internal-format
-msgid "traditional C rejects initialization of unions"
-msgstr ""
-
-#: c-typeck.c:8416
-#, gcc-internal-format
-msgid "excess elements in array initializer"
-msgstr ""
-
-#: c-typeck.c:8450
-#, gcc-internal-format
-msgid "excess elements in vector initializer"
-msgstr ""
-
-#: c-typeck.c:8482
-#, gcc-internal-format
-msgid "excess elements in scalar initializer"
-msgstr ""
-
-#: c-typeck.c:8706
-#, gcc-internal-format
-msgid "ISO C forbids %<goto *expr;%>"
-msgstr ""
-
-#: c-typeck.c:8728 cp/typeck.c:7927
-#, gcc-internal-format
-msgid "function declared %<noreturn%> has a %<return%> statement"
-msgstr ""
-
-#: c-typeck.c:8751
-#, gcc-internal-format
-msgid "%<return%> with no value, in function returning non-void"
-msgstr ""
-
-#: c-typeck.c:8761
-#, gcc-internal-format
-msgid "%<return%> with a value, in function returning void"
-msgstr ""
-
-#: c-typeck.c:8763
-#, gcc-internal-format
-msgid "ISO C forbids %<return%> with expression, in function returning void"
-msgstr ""
-
-#: c-typeck.c:8824
-#, gcc-internal-format
-msgid "function returns address of local variable"
-msgstr ""
-
-#: c-typeck.c:8897 cp/semantics.c:1048
-#, gcc-internal-format
-msgid "switch quantity not an integer"
-msgstr ""
-
-#: c-typeck.c:8910
-#, gcc-internal-format
-msgid "%<long%> switch expression not converted to %<int%> in ISO C"
-msgstr ""
-
-#: c-typeck.c:8946 c-typeck.c:8954
-#, gcc-internal-format
-msgid "case label is not an integer constant expression"
-msgstr ""
-
-#: c-typeck.c:8960 cp/parser.c:8800
-#, gcc-internal-format
-msgid "case label not within a switch statement"
-msgstr ""
-
-#: c-typeck.c:8962
-#, gcc-internal-format
-msgid "%<default%> label not within a switch statement"
-msgstr ""
-
-#: c-typeck.c:9045 cp/parser.c:9100
-#, gcc-internal-format
-msgid "suggest explicit braces to avoid ambiguous %<else%>"
-msgstr ""
-
-#: c-typeck.c:9154 cp/parser.c:9829
-#, gcc-internal-format
-msgid "break statement not within loop or switch"
-msgstr ""
-
-#: c-typeck.c:9156 cp/parser.c:9850
-#, gcc-internal-format
-msgid "continue statement not within a loop"
-msgstr ""
-
-#: c-typeck.c:9161 cp/parser.c:9840
-#, gcc-internal-format
-msgid "break statement used with OpenMP for loop"
-msgstr ""
-
-#: c-typeck.c:9187 cp/cp-gimplify.c:429
-#, gcc-internal-format
-msgid "statement with no effect"
-msgstr ""
-
-#: c-typeck.c:9213
-#, gcc-internal-format
-msgid "expression statement has incomplete type"
-msgstr ""
-
-#: c-typeck.c:9472 c-typeck.c:9507 c-typeck.c:9521
-#, gcc-internal-format
-msgid "conversion of scalar to vector involves truncation"
-msgstr ""
-
-#: c-typeck.c:9949 cp/typeck.c:4002
-#, gcc-internal-format
-msgid "right shift count is negative"
-msgstr ""
-
-#: c-typeck.c:9960 cp/typeck.c:4009
-#, gcc-internal-format
-msgid "right shift count >= width of type"
-msgstr ""
-
-#: c-typeck.c:10001 cp/typeck.c:4031
-#, gcc-internal-format
-msgid "left shift count is negative"
-msgstr ""
-
-#: c-typeck.c:10008 cp/typeck.c:4037
-#, gcc-internal-format
-msgid "left shift count >= width of type"
-msgstr ""
-
-#: c-typeck.c:10031 c-typeck.c:10168
-#, gcc-internal-format
-msgid "comparing vectors with different element types"
-msgstr ""
-
-#: c-typeck.c:10038 c-typeck.c:10175
-#, gcc-internal-format
-msgid "comparing vectors with different number of elements"
-msgstr ""
-
-#: c-typeck.c:10054 cp/typeck.c:4083
-#, gcc-internal-format
-msgid "comparing floating point with == or != is unsafe"
-msgstr ""
-
-#: c-typeck.c:10071 c-typeck.c:10091
-#, gcc-internal-format
-msgid ""
-"the comparison will always evaluate as %<false%> for the address of %qD will "
-"never be NULL"
-msgstr ""
-
-#: c-typeck.c:10077 c-typeck.c:10097
-#, gcc-internal-format
-msgid ""
-"the comparison will always evaluate as %<true%> for the address of %qD will "
-"never be NULL"
-msgstr ""
-
-#: c-typeck.c:10118 c-typeck.c:10218
-#, gcc-internal-format
-msgid "comparison of pointers to disjoint address spaces"
-msgstr ""
-
-#: c-typeck.c:10125 c-typeck.c:10131
-#, gcc-internal-format
-msgid "ISO C forbids comparison of %<void *%> with function pointer"
-msgstr ""
-
-#: c-typeck.c:10138 c-typeck.c:10228
-#, gcc-internal-format
-msgid "comparison of distinct pointer types lacks a cast"
-msgstr ""
-
-#: c-typeck.c:10150 c-typeck.c:10155 c-typeck.c:10254 c-typeck.c:10259
-#, gcc-internal-format
-msgid "comparison between pointer and integer"
-msgstr ""
-
-#: c-typeck.c:10206
-#, gcc-internal-format
-msgid "comparison of complete and incomplete pointers"
-msgstr ""
-
-#: c-typeck.c:10208
-#, gcc-internal-format
-msgid "ISO C forbids ordered comparisons of pointers to functions"
-msgstr ""
-
-#: c-typeck.c:10213
-#, gcc-internal-format
-msgid "ordered comparison of pointer with null pointer"
-msgstr ""
-
-#: c-typeck.c:10236 c-typeck.c:10239 c-typeck.c:10246 c-typeck.c:10249
-#: cp/typeck.c:4336 cp/typeck.c:4343
-#, gcc-internal-format
-msgid "ordered comparison of pointer with integer zero"
-msgstr ""
-
-#: c-typeck.c:10293 cp/typeck.c:4415
-#, gcc-internal-format
-msgid ""
-"implicit conversion from %qT to %qT to match other operand of binary "
-"expression"
-msgstr ""
-
-#: c-typeck.c:10577
-#, gcc-internal-format
-msgid "used array that cannot be converted to pointer where scalar is required"
-msgstr ""
-
-#: c-typeck.c:10581
-#, gcc-internal-format
-msgid "used struct type value where scalar is required"
-msgstr ""
-
-#: c-typeck.c:10585
-#, gcc-internal-format
-msgid "used union type value where scalar is required"
-msgstr ""
-
-#: c-typeck.c:10596
-#, gcc-internal-format
-msgid "used vector type where scalar is required"
-msgstr ""
-
-#: c-typeck.c:10750 cp/semantics.c:4206
-#, gcc-internal-format
-msgid "%qE has invalid type for %<reduction%>"
-msgstr ""
-
-#: c-typeck.c:10787 cp/semantics.c:4221
-#, gcc-internal-format
-msgid "%qE has invalid type for %<reduction(%s)%>"
-msgstr ""
-
-#: c-typeck.c:10804 cp/semantics.c:4231
-#, gcc-internal-format
-msgid "%qE must be %<threadprivate%> for %<copyin%>"
-msgstr ""
-
-#: c-typeck.c:10814 cp/semantics.c:3999
-#, gcc-internal-format
-msgid "%qE is not a variable in clause %qs"
-msgstr ""
-
-#: c-typeck.c:10822 c-typeck.c:10844 c-typeck.c:10866
-#, gcc-internal-format
-msgid "%qE appears more than once in data clauses"
-msgstr ""
-
-#: c-typeck.c:10837 cp/semantics.c:4022
-#, gcc-internal-format
-msgid "%qE is not a variable in clause %<firstprivate%>"
-msgstr ""
-
-#: c-typeck.c:10859 cp/semantics.c:4044
-#, gcc-internal-format
-msgid "%qE is not a variable in clause %<lastprivate%>"
-msgstr ""
-
-#: c-typeck.c:10927 cp/semantics.c:4277
-#, gcc-internal-format
-msgid "%qE is predetermined %qs for %qs"
-msgstr ""
-
-#: c-typeck.c:11029
-#, gcc-internal-format
-msgid "C++ requires promoted type, not enum type, in %<va_arg%>"
-msgstr ""
-
#: calls.c:2346
#, gcc-internal-format
msgid "function call has aggregate value"
msgstr ""
-#: cfgexpand.c:1248 function.c:988 varasm.c:1958
+#: cfgexpand.c:1187 function.c:977 varasm.c:1960
#, gcc-internal-format
msgid "size of variable %q+D is too large"
msgstr ""
-#: cfgexpand.c:4453
+#: cfgexpand.c:4413
#, gcc-internal-format
msgid "stack protector not protecting local variables: variable length buffer"
msgstr ""
-#: cfgexpand.c:4457
+#: cfgexpand.c:4417
#, gcc-internal-format, gfc-internal-format
msgid ""
"stack protector not protecting function: all local arrays are less than %d "
"bytes long"
msgstr ""
-#: cfghooks.c:110
+#: cfghooks.c:111
#, gcc-internal-format, gfc-internal-format
msgid "bb %d on wrong place"
msgstr ""
-#: cfghooks.c:116
+#: cfghooks.c:117
#, gcc-internal-format, gfc-internal-format
msgid "prev_bb of %d should be %d, not %d"
msgstr ""
-#: cfghooks.c:133
+#: cfghooks.c:134
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Block %i has loop_father, but there are no loops"
msgstr ""
-#: cfghooks.c:139
+#: cfghooks.c:140
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Block %i lacks loop_father"
msgstr ""
-#: cfghooks.c:145
+#: cfghooks.c:146
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Wrong count of block %i %i"
msgstr ""
-#: cfghooks.c:151
+#: cfghooks.c:152
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Wrong frequency of block %i %i"
msgstr ""
-#: cfghooks.c:159
+#: cfghooks.c:160
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr ""
-#: cfghooks.c:165
+#: cfghooks.c:166
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
msgstr ""
-#: cfghooks.c:171
+#: cfghooks.c:172
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Wrong count of edge %i->%i %i"
msgstr ""
-#: cfghooks.c:183
+#: cfghooks.c:184
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfghooks.c:197
+#: cfghooks.c:198
#, gcc-internal-format, gfc-internal-format
msgid "wrong amount of branch edges after unconditional jump %i"
msgstr ""
-#: cfghooks.c:205 cfghooks.c:216
+#: cfghooks.c:206 cfghooks.c:217
#, gcc-internal-format, gfc-internal-format
msgid "basic block %d pred edge is corrupted"
msgstr ""
-#: cfghooks.c:217
+#: cfghooks.c:218
#, gcc-internal-format, gfc-internal-format
msgid "its dest_idx should be %d, not %d"
msgstr ""
-#: cfghooks.c:246
+#: cfghooks.c:247
#, gcc-internal-format, gfc-internal-format
msgid "basic block %i edge lists are corrupted"
msgstr ""
-#: cfghooks.c:259
+#: cfghooks.c:260
#, gcc-internal-format
msgid "verify_flow_info failed"
msgstr ""
-#: cfghooks.c:320
+#: cfghooks.c:315
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support redirect_edge_and_branch"
msgstr ""
-#: cfghooks.c:340
+#: cfghooks.c:335
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support can_remove_branch_p"
msgstr ""
-#: cfghooks.c:393
+#: cfghooks.c:419
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support redirect_edge_and_branch_force"
msgstr ""
-#: cfghooks.c:431
+#: cfghooks.c:457
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support split_block"
msgstr ""
-#: cfghooks.c:483
+#: cfghooks.c:508
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support move_block_after"
msgstr ""
-#: cfghooks.c:496
+#: cfghooks.c:521
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support delete_basic_block"
msgstr ""
-#: cfghooks.c:547
+#: cfghooks.c:572
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support split_edge"
msgstr ""
-#: cfghooks.c:620
+#: cfghooks.c:645
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support create_basic_block"
msgstr ""
-#: cfghooks.c:648
+#: cfghooks.c:673
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support can_merge_blocks_p"
msgstr ""
-#: cfghooks.c:659
+#: cfghooks.c:684
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support predict_edge"
msgstr ""
-#: cfghooks.c:668
+#: cfghooks.c:693
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support predicted_by_p"
msgstr ""
-#: cfghooks.c:682
+#: cfghooks.c:707
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support merge_blocks"
msgstr ""
-#: cfghooks.c:745
+#: cfghooks.c:770
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support make_forwarder_block"
msgstr ""
-#: cfghooks.c:900
+#: cfghooks.c:925
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support force_nonfallthru"
msgstr ""
-#: cfghooks.c:928
+#: cfghooks.c:953
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support can_duplicate_block_p"
msgstr ""
-#: cfghooks.c:950
+#: cfghooks.c:975
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support duplicate_block"
msgstr ""
-#: cfghooks.c:1047
+#: cfghooks.c:1071
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support block_ends_with_call_p"
msgstr ""
-#: cfghooks.c:1058
+#: cfghooks.c:1082
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support block_ends_with_condjump_p"
msgstr ""
-#: cfghooks.c:1076
+#: cfghooks.c:1100
#, gcc-internal-format, gfc-internal-format
msgid "%s does not support flow_call_edges_add"
msgstr ""
-#: cfgloop.c:1341
+#: cfgloop.c:1334
#, gcc-internal-format, gfc-internal-format
msgid "size of loop %d should be %d, not %d"
msgstr ""
-#: cfgloop.c:1355
+#: cfgloop.c:1348
#, gcc-internal-format, gfc-internal-format
msgid "bb %d do not belong to loop %d"
msgstr ""
#: cfgloop.c:1370
+#, gcc-internal-format, gfc-internal-format
+msgid "bb %d has father loop %d, should be loop %d"
+msgstr ""
+
+#: cfgloop.c:1386
#, gcc-internal-format
msgid "loop %d%'s header does not have exactly 2 entries"
msgstr ""
-#: cfgloop.c:1377
+#: cfgloop.c:1393
#, gcc-internal-format
msgid "loop %d%'s latch does not have exactly 1 successor"
msgstr ""
-#: cfgloop.c:1382
+#: cfgloop.c:1398
#, gcc-internal-format
msgid "loop %d%'s latch does not have header as successor"
msgstr ""
-#: cfgloop.c:1387
+#: cfgloop.c:1403
#, gcc-internal-format
msgid "loop %d%'s latch does not belong directly to it"
msgstr ""
-#: cfgloop.c:1393
+#: cfgloop.c:1409
#, gcc-internal-format
msgid "loop %d%'s header does not belong directly to it"
msgstr ""
-#: cfgloop.c:1399
+#: cfgloop.c:1415
#, gcc-internal-format
msgid "loop %d%'s latch is marked as part of irreducible region"
msgstr ""
-#: cfgloop.c:1432
+#: cfgloop.c:1448
#, gcc-internal-format, gfc-internal-format
msgid "basic block %d should be marked irreducible"
msgstr ""
-#: cfgloop.c:1438
+#: cfgloop.c:1454
#, gcc-internal-format, gfc-internal-format
msgid "basic block %d should not be marked irreducible"
msgstr ""
-#: cfgloop.c:1446
+#: cfgloop.c:1462
#, gcc-internal-format, gfc-internal-format
msgid "edge from %d to %d should be marked irreducible"
msgstr ""
-#: cfgloop.c:1453
+#: cfgloop.c:1469
#, gcc-internal-format, gfc-internal-format
msgid "edge from %d to %d should not be marked irreducible"
msgstr ""
-#: cfgloop.c:1468
+#: cfgloop.c:1484
#, gcc-internal-format, gfc-internal-format
msgid "corrupted head of the exits list of loop %d"
msgstr ""
-#: cfgloop.c:1486
+#: cfgloop.c:1502
#, gcc-internal-format, gfc-internal-format
msgid "corrupted exits list of loop %d"
msgstr ""
-#: cfgloop.c:1495
+#: cfgloop.c:1511
#, gcc-internal-format, gfc-internal-format
msgid "nonempty exits list of loop %d, but exits are not recorded"
msgstr ""
-#: cfgloop.c:1521
+#: cfgloop.c:1537
#, gcc-internal-format, gfc-internal-format
msgid "exit %d->%d not recorded"
msgstr ""
-#: cfgloop.c:1539
+#: cfgloop.c:1555
#, gcc-internal-format, gfc-internal-format
msgid "wrong list of exited loops for edge %d->%d"
msgstr ""
-#: cfgloop.c:1548
+#: cfgloop.c:1564
#, gcc-internal-format
msgid "too many loop exits recorded"
msgstr ""
-#: cfgloop.c:1559
+#: cfgloop.c:1575
#, gcc-internal-format, gfc-internal-format
msgid "%d exits recorded for loop %d (having %d exits)"
msgstr ""
-#: cfgrtl.c:1904
+#: cfgrtl.c:2047
#, gcc-internal-format, gfc-internal-format
msgid "BB_RTL flag not set for block %d"
msgstr ""
-#: cfgrtl.c:1911
+#: cfgrtl.c:2054
#, gcc-internal-format, gfc-internal-format
msgid "insn %d basic block pointer is %d, should be %d"
msgstr ""
-#: cfgrtl.c:1922
+#: cfgrtl.c:2065
#, gcc-internal-format, gfc-internal-format
msgid "insn %d in header of bb %d has non-NULL basic block"
msgstr ""
-#: cfgrtl.c:1930
+#: cfgrtl.c:2073
#, gcc-internal-format, gfc-internal-format
msgid "insn %d in footer of bb %d has non-NULL basic block"
msgstr ""
-#: cfgrtl.c:1952
+#: cfgrtl.c:2095
#, gcc-internal-format
msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
msgstr ""
-#: cfgrtl.c:1971
+#: cfgrtl.c:2114
#, gcc-internal-format
msgid "EDGE_CROSSING incorrectly set across same section"
msgstr ""
-#: cfgrtl.c:1976
+#: cfgrtl.c:2119
#, gcc-internal-format, gfc-internal-format
msgid "fallthru edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:1982
+#: cfgrtl.c:2125
#, gcc-internal-format, gfc-internal-format
msgid "EH edge crosses section boundary (bb %i)"
msgstr ""
-#: cfgrtl.c:1989
+#: cfgrtl.c:2132
#, gcc-internal-format
msgid "EDGE_CROSSING missing across section boundary"
msgstr ""
-#: cfgrtl.c:2012
+#: cfgrtl.c:2155
#, gcc-internal-format, gfc-internal-format
msgid "missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:2017
+#: cfgrtl.c:2160
#, gcc-internal-format, gfc-internal-format
msgid "too many eh edges %i"
msgstr ""
-#: cfgrtl.c:2025
+#: cfgrtl.c:2168
#, gcc-internal-format, gfc-internal-format
msgid "too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:2030
+#: cfgrtl.c:2173
#, gcc-internal-format, gfc-internal-format
msgid "fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2035
+#: cfgrtl.c:2178
#, gcc-internal-format, gfc-internal-format
msgid "wrong number of branch edges after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:2042
+#: cfgrtl.c:2185
#, gcc-internal-format, gfc-internal-format
msgid "wrong amount of branch edges after conditional jump %i"
msgstr ""
-#: cfgrtl.c:2048
+#: cfgrtl.c:2191
#, gcc-internal-format, gfc-internal-format
msgid "call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:2057
+#: cfgrtl.c:2200
#, gcc-internal-format, gfc-internal-format
msgid "abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:2069
+#: cfgrtl.c:2212
#, gcc-internal-format, gfc-internal-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:2073
+#: cfgrtl.c:2216
#, gcc-internal-format, gfc-internal-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:2087 cfgrtl.c:2097
+#: cfgrtl.c:2230 cfgrtl.c:2240
#, gcc-internal-format, gfc-internal-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:2110
+#: cfgrtl.c:2253
#, gcc-internal-format, gfc-internal-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2120
+#: cfgrtl.c:2263
#, gcc-internal-format, gfc-internal-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2172 cfgrtl.c:2262
+#: cfgrtl.c:2315 cfgrtl.c:2405
#, gcc-internal-format, gfc-internal-format
msgid "insn %d outside of basic blocks has non-NULL bb field"
msgstr ""
-#: cfgrtl.c:2180
+#: cfgrtl.c:2323
#, gcc-internal-format, gfc-internal-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:2193
+#: cfgrtl.c:2336
#, gcc-internal-format, gfc-internal-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:2205
+#: cfgrtl.c:2348
#, gcc-internal-format, gfc-internal-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:2222
+#: cfgrtl.c:2365
#, gcc-internal-format, gfc-internal-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:2238
+#: cfgrtl.c:2381
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2247
+#: cfgrtl.c:2390
#, gcc-internal-format, gfc-internal-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:2280
+#: cfgrtl.c:2423
#, gcc-internal-format
msgid "basic blocks not laid down consecutively"
msgstr ""
-#: cfgrtl.c:2317
+#: cfgrtl.c:2460
#, gcc-internal-format, gfc-internal-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cgraph.c:2073
+#: cgraph.c:2076
#, gcc-internal-format
msgid "caller edge count is negative"
msgstr ""
-#: cgraph.c:2078
+#: cgraph.c:2081
#, gcc-internal-format
msgid "caller edge frequency is negative"
msgstr ""
-#: cgraph.c:2083
+#: cgraph.c:2086
#, gcc-internal-format
msgid "caller edge frequency is too large"
msgstr ""
-#: cgraph.c:2099
+#: cgraph.c:2102
#, gcc-internal-format, gfc-internal-format
msgid "caller edge frequency %i does not match BB frequency %i"
msgstr ""
-#: cgraph.c:2170
+#: cgraph.c:2173
#, gcc-internal-format, gfc-internal-format
msgid "aux field set for edge %s->%s"
msgstr ""
-#: cgraph.c:2177
+#: cgraph.c:2180
#, gcc-internal-format
msgid "execution count is negative"
msgstr ""
-#: cgraph.c:2182
+#: cgraph.c:2185
#, gcc-internal-format
msgid "inline clone in same comdat group list"
msgstr ""
-#: cgraph.c:2187
+#: cgraph.c:2190
#, gcc-internal-format
msgid "externally visible inline clone"
msgstr ""
-#: cgraph.c:2192
+#: cgraph.c:2195
#, gcc-internal-format
msgid "inline clone with address taken"
msgstr ""
-#: cgraph.c:2197
+#: cgraph.c:2200
#, gcc-internal-format
msgid "inline clone is forced to output"
msgstr ""
-#: cgraph.c:2204
+#: cgraph.c:2207
#, gcc-internal-format, gfc-internal-format
msgid "aux field set for indirect edge from %s"
msgstr ""
-#: cgraph.c:2211
+#: cgraph.c:2214
#, gcc-internal-format, gfc-internal-format
msgid ""
"An indirect edge from %s is not marked as indirect or has associated "
"indirect_info, the corresponding statement is: "
msgstr ""
-#: cgraph.c:2228
+#: cgraph.c:2231
#, gcc-internal-format
msgid "inlined_to pointer is wrong"
msgstr ""
-#: cgraph.c:2233
+#: cgraph.c:2236
#, gcc-internal-format
msgid "multiple inline callers"
msgstr ""
-#: cgraph.c:2240
+#: cgraph.c:2243
#, gcc-internal-format
msgid "inlined_to pointer set for noninline callers"
msgstr ""
-#: cgraph.c:2249
+#: cgraph.c:2252
#, gcc-internal-format
msgid "inlined_to pointer is set but no predecessors found"
msgstr ""
-#: cgraph.c:2254
+#: cgraph.c:2257
#, gcc-internal-format
msgid "inlined_to pointer refers to itself"
msgstr ""
-#: cgraph.c:2266
+#: cgraph.c:2269
#, gcc-internal-format
msgid "node has wrong clone_of"
msgstr ""
-#: cgraph.c:2278
+#: cgraph.c:2281
#, gcc-internal-format
msgid "node has wrong clone list"
msgstr ""
-#: cgraph.c:2284
+#: cgraph.c:2287
#, gcc-internal-format
msgid "node is in clone list but it is not clone"
msgstr ""
-#: cgraph.c:2289
+#: cgraph.c:2292
#, gcc-internal-format
msgid "node has wrong prev_clone pointer"
msgstr ""
-#: cgraph.c:2294
+#: cgraph.c:2297
#, gcc-internal-format
msgid "double linked list of clones corrupted"
msgstr ""
-#: cgraph.c:2306
+#: cgraph.c:2309
#, gcc-internal-format
msgid "Alias has call edges"
msgstr ""
-#: cgraph.c:2313
+#: cgraph.c:2316
#, gcc-internal-format
msgid "Alias has non-alias reference"
msgstr ""
-#: cgraph.c:2318
+#: cgraph.c:2321
#, gcc-internal-format
msgid "Alias has more than one alias reference"
msgstr ""
-#: cgraph.c:2325
+#: cgraph.c:2328
#, gcc-internal-format
msgid "Analyzed alias has no reference"
msgstr ""
-#: cgraph.c:2333
+#: cgraph.c:2336
#, gcc-internal-format
msgid "No edge out of thunk node"
msgstr ""
-#: cgraph.c:2338
+#: cgraph.c:2341
#, gcc-internal-format
msgid "More than one edge out of thunk node"
msgstr ""
-#: cgraph.c:2343
+#: cgraph.c:2346
#, gcc-internal-format
msgid "Thunk is not supposed to have body"
msgstr ""
-#: cgraph.c:2373
+#: cgraph.c:2376
#, gcc-internal-format
msgid "shared call_stmt:"
msgstr ""
-#: cgraph.c:2381
+#: cgraph.c:2384
#, gcc-internal-format
msgid "edge points to wrong declaration:"
msgstr ""
-#: cgraph.c:2390
+#: cgraph.c:2393
#, gcc-internal-format
msgid ""
"an indirect edge with unknown callee corresponding to a call_stmt with a "
"known declaration:"
msgstr ""
-#: cgraph.c:2400
+#: cgraph.c:2403
#, gcc-internal-format
msgid "missing callgraph edge for call stmt:"
msgstr ""
-#: cgraph.c:2416
+#: cgraph.c:2419
#, gcc-internal-format, gfc-internal-format
msgid "edge %s->%s has no corresponding call_stmt"
msgstr ""
-#: cgraph.c:2428
+#: cgraph.c:2431
#, gcc-internal-format, gfc-internal-format
msgid "an indirect edge from %s has no corresponding call_stmt"
msgstr ""
-#: cgraph.c:2439
+#: cgraph.c:2442
#, gcc-internal-format
msgid "verify_cgraph_node failed"
msgstr ""
-#: cgraphunit.c:615
+#: cgraphunit.c:614
#, gcc-internal-format
msgid "function %q+D part of alias cycle"
msgstr ""
-#: cgraphunit.c:711
+#: cgraphunit.c:710
#, gcc-internal-format
msgid "%<weakref%> attribute should be accompanied with an %<alias%> attribute"
msgstr ""
-#: cgraphunit.c:760 cgraphunit.c:797
+#: cgraphunit.c:759 cgraphunit.c:796
#, gcc-internal-format
msgid "%<externally_visible%> attribute have effect only on public objects"
msgstr ""
-#: cgraphunit.c:767
+#: cgraphunit.c:766
#, gcc-internal-format
msgid "%<weakref%> attribute ignored because function is defined"
msgstr ""
-#: cgraphunit.c:779
+#: cgraphunit.c:778
#, gcc-internal-format
msgid "always_inline function might not be inlinable"
msgstr ""
-#: cgraphunit.c:805
+#: cgraphunit.c:804
#, gcc-internal-format
msgid "%<weakref%> attribute ignored because variable is initialized"
msgstr ""
-#: cgraphunit.c:1055 c-family/c-pragma.c:336
+#: cgraphunit.c:1054 c-family/c-pragma.c:336
#, gcc-internal-format
msgid "%q+D aliased to undefined symbol %qE"
msgstr ""
-#: cgraphunit.c:1078
+#: cgraphunit.c:1077
#, gcc-internal-format
msgid "%q+D aliased to external symbol %qE"
msgstr ""
-#: cgraphunit.c:1099
+#: cgraphunit.c:1098
#, gcc-internal-format
msgid "%q+D alias in between function and variable is not supported"
msgstr ""
-#: cgraphunit.c:1101
+#: cgraphunit.c:1100
#, gcc-internal-format
msgid "%q+D aliased declaration"
msgstr ""
-#: cgraphunit.c:1173
+#: cgraphunit.c:1172
#, gcc-internal-format
msgid "failed to reclaim unneeded function"
msgstr ""
-#: cgraphunit.c:1203
+#: cgraphunit.c:1202
#, gcc-internal-format
msgid "failed to reclaim unneeded function in same comdat group"
msgstr ""
-#: cgraphunit.c:1643
+#: cgraphunit.c:1637
#, gcc-internal-format
msgid "size of return value of %q+D is %u bytes"
msgstr ""
-#: cgraphunit.c:1646
+#: cgraphunit.c:1640
#, gcc-internal-format
msgid "size of return value of %q+D is larger than %wd bytes"
msgstr ""
-#: cgraphunit.c:2048
+#: cgraphunit.c:2042
#, gcc-internal-format
msgid "nodes with unreleased memory found"
msgstr ""
@@ -17199,7 +13790,7 @@ msgstr ""
msgid "no arguments"
msgstr ""
-#: collect2.c:1445 opts.c:786
+#: collect2.c:1445 opts.c:809
#, gcc-internal-format
msgid "LTO support has not been enabled in this configuration"
msgstr ""
@@ -17259,7 +13850,7 @@ msgstr ""
msgid "pex_init failed: %m"
msgstr ""
-#: collect2.c:2084 collect2.c:2611 collect2.c:2806 gcc.c:7070
+#: collect2.c:2084 collect2.c:2611 collect2.c:2806 gcc.c:7074
#, gcc-internal-format
msgid "%s: %m"
msgstr ""
@@ -17369,108 +13960,98 @@ msgstr ""
msgid "aggregate value used where a fixed-point was expected"
msgstr ""
-#: coverage.c:191
+#: coverage.c:193
#, gcc-internal-format
msgid "%qs is not a gcov data file"
msgstr ""
-#: coverage.c:202
+#: coverage.c:204
#, gcc-internal-format
msgid "%qs is version %q.*s, expected version %q.*s"
msgstr ""
-#: coverage.c:278 coverage.c:287
+#: coverage.c:286 coverage.c:295
#, gcc-internal-format, gfc-internal-format
msgid "Profile data for function %u is corrupted"
msgstr ""
-#: coverage.c:279
+#: coverage.c:287
#, gcc-internal-format
msgid "checksum is (%x,%x) instead of (%x,%x)"
msgstr ""
-#: coverage.c:288
+#: coverage.c:296
#, gcc-internal-format, gfc-internal-format
msgid "number of counters is %d instead of %d"
msgstr ""
-#: coverage.c:294
+#: coverage.c:302
#, gcc-internal-format, gfc-internal-format
msgid "cannot merge separate %s counters for function %u"
msgstr ""
-#: coverage.c:313
+#: coverage.c:321
#, gcc-internal-format
msgid "%qs has overflowed"
msgstr ""
-#: coverage.c:363
+#: coverage.c:371
#, gcc-internal-format
msgid ""
"the control flow of function %qE does not match its profile data (counter "
"%qs)"
msgstr ""
-#: coverage.c:367
+#: coverage.c:375
#, gcc-internal-format
msgid ""
"use -Wno-error=coverage-mismatch to tolerate the mismatch but performance "
"may drop if the function is hot"
msgstr ""
-#: coverage.c:373
+#: coverage.c:381
#, gcc-internal-format
msgid "coverage mismatch ignored"
msgstr ""
-#: coverage.c:375
+#: coverage.c:383
#, gcc-internal-format
msgid "execution counts estimated"
msgstr ""
-#: coverage.c:376
+#: coverage.c:384
#, gcc-internal-format
msgid "execution counts assumed to be zero"
msgstr ""
-#: coverage.c:379
+#: coverage.c:387
#, gcc-internal-format
msgid "this can result in poorly optimized code"
msgstr ""
-#: coverage.c:387
+#: coverage.c:395
#, gcc-internal-format
msgid ""
"source locations for function %qE have changed, the profile data may be out "
"of date"
msgstr ""
-#: coverage.c:605
+#: coverage.c:613
#, gcc-internal-format
msgid "error writing %qs"
msgstr ""
-#: coverage.c:1113
+#: coverage.c:1126
#, gcc-internal-format, gfc-internal-format
msgid "cannot open %s"
msgstr ""
-#: cppspec.c:92
-#, gcc-internal-format
-msgid "%qs is not a valid option to the preprocessor"
-msgstr ""
-
-#: cppspec.c:111
-#, gcc-internal-format
-msgid "too many input files"
-msgstr ""
-
-#: cprop.c:1740 gcse.c:3645
+#: cprop.c:1739 gcse.c:3635
#, gcc-internal-format, gfc-internal-format
msgid "%s: %d basic blocks and %d edges/basic block"
msgstr ""
-#: cprop.c:1753 gcse.c:3658
+#: cprop.c:1752 gcse.c:3648
#, gcc-internal-format, gfc-internal-format
msgid "%s: %d basic blocks and %d registers"
msgstr ""
@@ -17485,17 +14066,17 @@ msgstr ""
msgid "bytecode stream: found non-null terminated string"
msgstr ""
-#: dbgcnt.c:134
+#: dbgcnt.c:133
#, gcc-internal-format
msgid "cannot find a valid counter:value pair:"
msgstr ""
-#: dbgcnt.c:135
+#: dbgcnt.c:134
#, gcc-internal-format, gfc-internal-format
msgid "-fdbg-cnt=%s"
msgstr ""
-#: dbgcnt.c:136
+#: dbgcnt.c:135
#, gcc-internal-format, gfc-internal-format
msgid " %s"
msgstr ""
@@ -17530,34 +14111,34 @@ msgstr ""
msgid "dominator of %d should be %d, not %d"
msgstr ""
-#: dwarf2out.c:1030
+#: dwarf2out.c:1027
#, gcc-internal-format
msgid ""
"multiple EH personalities are supported only with assemblers supporting ."
"cfi_personality directive"
msgstr ""
-#: dwarf2out.c:10142
+#: dwarf2out.c:10308
#, gcc-internal-format, gfc-internal-format
msgid "non-delegitimized UNSPEC %s (%d) found in variable location"
msgstr ""
-#: emit-rtl.c:2551
+#: emit-rtl.c:2573
#, gcc-internal-format
msgid "invalid rtl sharing found in the insn"
msgstr ""
-#: emit-rtl.c:2553
+#: emit-rtl.c:2575
#, gcc-internal-format
msgid "shared rtx"
msgstr ""
-#: emit-rtl.c:2555
+#: emit-rtl.c:2577
#, gcc-internal-format
msgid "internal consistency failure"
msgstr ""
-#: emit-rtl.c:3686
+#: emit-rtl.c:3702
#, gcc-internal-format
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
@@ -17567,89 +14148,89 @@ msgstr ""
msgid "abort in %s, at %s:%d"
msgstr ""
-#: except.c:2053
+#: except.c:2043
#, gcc-internal-format
msgid "argument of %<__builtin_eh_return_regno%> must be constant"
msgstr ""
-#: except.c:2190
+#: except.c:2180
#, gcc-internal-format
msgid "__builtin_eh_return not supported on this target"
msgstr ""
-#: except.c:3248 except.c:3273
+#: except.c:3243 except.c:3268
#, gcc-internal-format, gfc-internal-format
msgid "region_array is corrupted for region %i"
msgstr ""
-#: except.c:3261 except.c:3292
+#: except.c:3256 except.c:3287
#, gcc-internal-format, gfc-internal-format
msgid "lp_array is corrupted for lp %i"
msgstr ""
-#: except.c:3278
+#: except.c:3273
#, gcc-internal-format, gfc-internal-format
msgid "outer block of region %i is wrong"
msgstr ""
-#: except.c:3283
+#: except.c:3278
#, gcc-internal-format, gfc-internal-format
msgid "negative nesting depth of region %i"
msgstr ""
-#: except.c:3297
+#: except.c:3292
#, gcc-internal-format, gfc-internal-format
msgid "region of lp %i is wrong"
msgstr ""
-#: except.c:3324
+#: except.c:3319
#, gcc-internal-format, gfc-internal-format
msgid "tree list ends on depth %i"
msgstr ""
-#: except.c:3329
+#: except.c:3324
#, gcc-internal-format
msgid "region_array does not match region_tree"
msgstr ""
-#: except.c:3334
+#: except.c:3329
#, gcc-internal-format
msgid "lp_array does not match region_tree"
msgstr ""
-#: except.c:3341
+#: except.c:3336
#, gcc-internal-format
msgid "verify_eh_tree failed"
msgstr ""
-#: explow.c:1451
+#: explow.c:1450
#, gcc-internal-format
msgid "stack limits not supported on this target"
msgstr ""
-#: expmed.c:1806
+#: expmed.c:1855
#, gcc-internal-format
msgid ""
"multiple accesses to volatile structure member because of packed attribute"
msgstr ""
-#: expmed.c:1810
+#: expmed.c:1859
#, gcc-internal-format
msgid ""
"multiple accesses to volatile structure bitfield because of packed attribute"
msgstr ""
-#: expmed.c:1820
+#: expmed.c:1869
#, gcc-internal-format
msgid "mis-aligned access used for structure member"
msgstr ""
-#: expmed.c:1823
+#: expmed.c:1872
#, gcc-internal-format
msgid "mis-aligned access used for structure bitfield"
msgstr ""
-#: expmed.c:1829
+#: expmed.c:1878
#, gcc-internal-format
msgid ""
"when a volatile object spans multiple type-sized locations, the compiler "
@@ -17658,17 +14239,17 @@ msgid ""
"code may fail at runtime if the hardware does not allow this access"
msgstr ""
-#: expr.c:7561
+#: expr.c:7558
#, gcc-internal-format
msgid "local frame unavailable (naked function?)"
msgstr ""
-#: expr.c:10140
+#: expr.c:10131
#, gcc-internal-format
msgid "%Kcall to %qs declared with attribute error: %s"
msgstr ""
-#: expr.c:10147
+#: expr.c:10138
#, gcc-internal-format
msgid "%Kcall to %qs declared with attribute warning: %s"
msgstr ""
@@ -17678,17 +14259,17 @@ msgstr ""
msgid "invalid argument %qs to -fdebug-prefix-map"
msgstr ""
-#: final.c:1575
+#: final.c:1683
#, gcc-internal-format
msgid "the frame size of %wd bytes is larger than %wd bytes"
msgstr ""
-#: final.c:4430 toplev.c:1357 tree-optimize.c:70
+#: final.c:4403 toplev.c:1350 tree-optimize.c:68
#, gcc-internal-format
msgid "could not open final insn dump file %qs: %m"
msgstr ""
-#: final.c:4483 tree-optimize.c:86
+#: final.c:4456 tree-optimize.c:84
#, gcc-internal-format
msgid "could not close final insn dump file %qs: %m"
msgstr ""
@@ -17698,32 +14279,32 @@ msgstr ""
msgid "large fixed-point constant implicitly truncated to fixed-point type"
msgstr ""
-#: fold-const.c:658
+#: fold-const.c:657
#, gcc-internal-format
msgid "assuming signed overflow does not occur when negating a division"
msgstr ""
-#: fold-const.c:3449 fold-const.c:3461
+#: fold-const.c:3455 fold-const.c:3467
#, gcc-internal-format, gfc-internal-format
msgid "comparison is always %d due to width of bit-field"
msgstr ""
-#: fold-const.c:4846 tree-ssa-reassoc.c:1950
+#: fold-const.c:4852 tree-ssa-reassoc.c:1938
#, gcc-internal-format
msgid "assuming signed overflow does not occur when simplifying range test"
msgstr ""
-#: fold-const.c:5282 fold-const.c:5296
+#: fold-const.c:5288 fold-const.c:5302
#, gcc-internal-format, gfc-internal-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:5429
+#: fold-const.c:5435
#, gcc-internal-format
msgid "%<or%> of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:5434
+#: fold-const.c:5440
#, gcc-internal-format
msgid "%<and%> of mutually exclusive equal-tests is always 0"
msgstr ""
@@ -17748,37 +14329,37 @@ msgid ""
"comparison"
msgstr ""
-#: fold-const.c:14351
+#: fold-const.c:14401
#, gcc-internal-format
msgid "fold check: original tree changed by fold"
msgstr ""
-#: function.c:251
+#: function.c:233
#, gcc-internal-format
msgid "total size of local objects too large"
msgstr ""
-#: function.c:1754 gimplify.c:5347
+#: function.c:1744 gimplify.c:5373
#, gcc-internal-format
msgid "impossible constraint in %<asm%>"
msgstr ""
-#: function.c:3981
+#: function.c:3986
#, gcc-internal-format
msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:4002
+#: function.c:4007
#, gcc-internal-format
msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
msgstr ""
-#: function.c:4580
+#: function.c:4585
#, gcc-internal-format
msgid "function returns an aggregate"
msgstr ""
-#: function.c:4944
+#: function.c:4947
#, gcc-internal-format
msgid "unused parameter %q+D"
msgstr ""
@@ -17848,67 +14429,67 @@ msgstr ""
msgid "unrecognized command line option %qs"
msgstr ""
-#: gcc.c:3414
+#: gcc.c:3415
#, gcc-internal-format
msgid "%qs is an unknown -save-temps option"
msgstr ""
-#: gcc.c:3875
+#: gcc.c:3876
#, gcc-internal-format
msgid "-pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3961
+#: gcc.c:3962
#, gcc-internal-format
msgid "%<-x %s%> after last input file has no effect"
msgstr ""
-#: gcc.c:4129
+#: gcc.c:4130
#, gcc-internal-format
msgid "unable to locate default linker script %qs in the library search paths"
msgstr ""
-#: gcc.c:4332
+#: gcc.c:4333
#, gcc-internal-format
msgid "switch %qs does not start with %<-%>"
msgstr ""
-#: gcc.c:4335
+#: gcc.c:4336
#, gcc-internal-format
msgid "spec-generated switch is just %<-%>"
msgstr ""
-#: gcc.c:4426
+#: gcc.c:4427
#, gcc-internal-format, gfc-internal-format
msgid "could not open temporary response file %s"
msgstr ""
-#: gcc.c:4432
+#: gcc.c:4433
#, gcc-internal-format, gfc-internal-format
msgid "could not write to temporary response file %s"
msgstr ""
-#: gcc.c:4438
+#: gcc.c:4439
#, gcc-internal-format, gfc-internal-format
msgid "could not close temporary response file %s"
msgstr ""
-#: gcc.c:4561
+#: gcc.c:4562
#, gcc-internal-format
msgid "spec %qs invalid"
msgstr ""
-#: gcc.c:4710
+#: gcc.c:4711
#, gcc-internal-format
msgid "spec %qs has invalid %<%%0%c%>"
msgstr ""
-#: gcc.c:5020
+#: gcc.c:5021
#, gcc-internal-format
msgid "spec %qs has invalid %<%%W%c%>"
msgstr ""
-#: gcc.c:5042
+#: gcc.c:5043
#, gcc-internal-format
msgid "spec %qs has invalid %<%%x%c%>"
msgstr ""
@@ -17916,217 +14497,217 @@ msgstr ""
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. i.e. there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5242
+#: gcc.c:5243
#, gcc-internal-format
msgid "spec failure: %<%%*%> has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5285
+#: gcc.c:5286
#, gcc-internal-format
msgid "spec failure: unrecognized spec option %qc"
msgstr ""
-#: gcc.c:5347
+#: gcc.c:5348
#, gcc-internal-format
msgid "unknown spec function %qs"
msgstr ""
-#: gcc.c:5377
+#: gcc.c:5378
#, gcc-internal-format
msgid "error in args to spec function %qs"
msgstr ""
-#: gcc.c:5428
+#: gcc.c:5429
#, gcc-internal-format
msgid "malformed spec function name"
msgstr ""
#. )
-#: gcc.c:5431
+#: gcc.c:5432
#, gcc-internal-format
msgid "no arguments for spec function"
msgstr ""
-#: gcc.c:5450
+#: gcc.c:5451
#, gcc-internal-format
msgid "malformed spec function arguments"
msgstr ""
-#: gcc.c:5711
+#: gcc.c:5712
#, gcc-internal-format
msgid "braced spec %qs is invalid at %qc"
msgstr ""
-#: gcc.c:5799
+#: gcc.c:5800
#, gcc-internal-format
msgid "braced spec body %qs is invalid"
msgstr ""
-#: gcc.c:6052
+#: gcc.c:6053
#, gcc-internal-format, gfc-internal-format
msgid "%s: could not determine length of compare-debug file %s"
msgstr ""
-#: gcc.c:6063
+#: gcc.c:6064
#, gcc-internal-format, gfc-internal-format
msgid "%s: -fcompare-debug failure (length)"
msgstr ""
-#: gcc.c:6073 gcc.c:6114
+#: gcc.c:6074 gcc.c:6115
#, gcc-internal-format, gfc-internal-format
msgid "%s: could not open compare-debug file %s"
msgstr ""
-#: gcc.c:6093 gcc.c:6130
+#: gcc.c:6094 gcc.c:6131
#, gcc-internal-format, gfc-internal-format
msgid "%s: -fcompare-debug failure"
msgstr ""
-#: gcc.c:6204
+#: gcc.c:6206
#, gcc-internal-format
msgid "atexit failed"
msgstr ""
-#: gcc.c:6345
+#: gcc.c:6348
#, gcc-internal-format
msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC"
msgstr ""
-#: gcc.c:6368
+#: gcc.c:6372
#, gcc-internal-format
msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC"
msgstr ""
-#: gcc.c:6534
+#: gcc.c:6538
#, gcc-internal-format
msgid "unrecognized command line option %<-%s%>"
msgstr ""
#. The error status indicates that only one set of fixed
#. headers should be built.
-#: gcc.c:6611
+#: gcc.c:6615
#, gcc-internal-format
msgid "not configured with sysroot headers suffix"
msgstr ""
-#: gcc.c:6694
+#: gcc.c:6698
#, gcc-internal-format
msgid "no input files"
msgstr ""
-#: gcc.c:6743
+#: gcc.c:6747
#, gcc-internal-format
msgid "cannot specify -o with -c, -S or -E with multiple files"
msgstr ""
-#: gcc.c:6773
+#: gcc.c:6777
#, gcc-internal-format, gfc-internal-format
msgid "%s: %s compiler not installed on this system"
msgstr ""
-#: gcc.c:6795
+#: gcc.c:6799
#, gcc-internal-format
msgid "recompiling with -fcompare-debug"
msgstr ""
-#: gcc.c:6811
+#: gcc.c:6815
#, gcc-internal-format
msgid "during -fcompare-debug recompilation"
msgstr ""
-#: gcc.c:6820
+#: gcc.c:6824
#, gcc-internal-format
msgid "comparing final insns dumps"
msgstr ""
-#: gcc.c:6926
+#: gcc.c:6930
#, gcc-internal-format, gfc-internal-format
msgid "-fuse-linker-plugin, but %s not found"
msgstr ""
-#: gcc.c:6958
+#: gcc.c:6962
#, gcc-internal-format, gfc-internal-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6999
+#: gcc.c:7003
#, gcc-internal-format, gfc-internal-format
msgid "language %s not recognized"
msgstr ""
-#: gcc.c:7226
+#: gcc.c:7230
#, gcc-internal-format
msgid "multilib spec %qs is invalid"
msgstr ""
-#: gcc.c:7418
+#: gcc.c:7422
#, gcc-internal-format
msgid "multilib exclusions %qs is invalid"
msgstr ""
-#: gcc.c:7476 gcc.c:7617
+#: gcc.c:7480 gcc.c:7621
#, gcc-internal-format
msgid "multilib select %qs is invalid"
msgstr ""
-#: gcc.c:7655
+#: gcc.c:7659
#, gcc-internal-format
msgid "multilib exclusion %qs is invalid"
msgstr ""
-#: gcc.c:7861
+#: gcc.c:7865
#, gcc-internal-format
msgid "environment variable %qs not defined"
msgstr ""
-#: gcc.c:7973 gcc.c:7978
+#: gcc.c:7977 gcc.c:7982
#, gcc-internal-format
msgid "invalid version number %qs"
msgstr ""
-#: gcc.c:8021
+#: gcc.c:8025
#, gcc-internal-format, gfc-internal-format
msgid "too few arguments to %%:version-compare"
msgstr ""
-#: gcc.c:8027
+#: gcc.c:8031
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:version-compare"
msgstr ""
-#: gcc.c:8068
+#: gcc.c:8072
#, gcc-internal-format
msgid "unknown operator %qs in %%:version-compare"
msgstr ""
-#: gcc.c:8191
+#: gcc.c:8195
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:compare-debug-dump-opt"
msgstr ""
-#: gcc.c:8259
+#: gcc.c:8263
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:compare-debug-self-opt"
msgstr ""
-#: gcc.c:8294
+#: gcc.c:8298
#, gcc-internal-format, gfc-internal-format
msgid "too few arguments to %%:compare-debug-auxbase-opt"
msgstr ""
-#: gcc.c:8297
+#: gcc.c:8301
#, gcc-internal-format, gfc-internal-format
msgid "too many arguments to %%:compare-debug-auxbase-opt"
msgstr ""
-#: gcc.c:8304
+#: gcc.c:8308
#, gcc-internal-format, gfc-internal-format
msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk"
msgstr ""
#: ggc-common.c:467 ggc-common.c:475 ggc-common.c:549 ggc-common.c:568
-#: ggc-page.c:2308 ggc-page.c:2339 ggc-page.c:2346 ggc-zone.c:2431
-#: ggc-zone.c:2442 ggc-zone.c:2446
+#: ggc-page.c:2323 ggc-page.c:2354 ggc-page.c:2361 ggc-zone.c:2432
+#: ggc-zone.c:2443 ggc-zone.c:2447
#, gcc-internal-format
msgid "can%'t write PCH file: %m"
msgstr ""
@@ -18142,7 +14723,7 @@ msgid "can%'t write padding to PCH file: %m"
msgstr ""
#: ggc-common.c:626 ggc-common.c:634 ggc-common.c:641 ggc-common.c:644
-#: ggc-common.c:654 ggc-common.c:657 ggc-page.c:2436 ggc-zone.c:2465
+#: ggc-common.c:654 ggc-common.c:657 ggc-page.c:2451 ggc-zone.c:2466
#, gcc-internal-format
msgid "can%'t read PCH file: %m"
msgstr ""
@@ -18152,117 +14733,117 @@ msgstr ""
msgid "had to relocate PCH"
msgstr ""
-#: ggc-page.c:1648
+#: ggc-page.c:1663
#, gcc-internal-format
msgid "open /dev/zero: %m"
msgstr ""
-#: ggc-page.c:2324 ggc-page.c:2330
+#: ggc-page.c:2339 ggc-page.c:2345
#, gcc-internal-format
msgid "can%'t write PCH file"
msgstr ""
-#: ggc-zone.c:2428 ggc-zone.c:2439
+#: ggc-zone.c:2429 ggc-zone.c:2440
#, gcc-internal-format
msgid "can%'t seek PCH file: %m"
msgstr ""
-#: gimple-streamer-in.c:187
+#: gimple-streamer-in.c:186
#, gcc-internal-format
msgid "use of type %<%E%> with two mismatching declarations at field %<%E%>"
msgstr ""
-#: gimple-streamer-in.c:193
+#: gimple-streamer-in.c:192
#, gcc-internal-format
msgid "original type declared here"
msgstr ""
-#: gimple-streamer-in.c:195
+#: gimple-streamer-in.c:194
#, gcc-internal-format
msgid "field in mismatching type declared here"
msgstr ""
-#: gimple-streamer-in.c:201
+#: gimple-streamer-in.c:200
#, gcc-internal-format
msgid "type of field declared here"
msgstr ""
-#: gimple-streamer-in.c:208
+#: gimple-streamer-in.c:207
#, gcc-internal-format
msgid "type of mismatching field declared here"
msgstr ""
-#: gimple-streamer-in.c:241
+#: gimple-streamer-in.c:240
#, gcc-internal-format, gfc-internal-format
msgid "bytecode stream: unknown GIMPLE statement tag %s"
msgstr ""
-#: gimple.c:1188
+#: gimple.c:1159
#, gcc-internal-format, gfc-internal-format
msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
msgstr ""
-#: gimplify.c:2637
+#: gimplify.c:2648
#, gcc-internal-format
msgid "using result of function returning %<void%>"
msgstr ""
-#: gimplify.c:5232
+#: gimplify.c:5258
#, gcc-internal-format, gfc-internal-format
msgid "invalid lvalue in asm output %d"
msgstr ""
-#: gimplify.c:5348
+#: gimplify.c:5374
#, gcc-internal-format, gfc-internal-format
msgid "non-memory input %d must stay in memory"
msgstr ""
-#: gimplify.c:5370
+#: gimplify.c:5396
#, gcc-internal-format, gfc-internal-format
msgid "memory input %d is not directly addressable"
msgstr ""
-#: gimplify.c:5862
+#: gimplify.c:5889
#, gcc-internal-format
msgid "threadprivate variable %qE used in untied task"
msgstr ""
-#: gimplify.c:5864 gimplify.c:5926
+#: gimplify.c:5891 gimplify.c:5953
#, gcc-internal-format
msgid "enclosing task"
msgstr ""
-#: gimplify.c:5923
+#: gimplify.c:5950
#, gcc-internal-format
msgid "%qE not specified in enclosing parallel"
msgstr ""
-#: gimplify.c:5928
+#: gimplify.c:5955
#, gcc-internal-format
msgid "enclosing parallel"
msgstr ""
-#: gimplify.c:6033
+#: gimplify.c:6060
#, gcc-internal-format
msgid "iteration variable %qE should be private"
msgstr ""
-#: gimplify.c:6047
+#: gimplify.c:6074
#, gcc-internal-format
msgid "iteration variable %qE should not be firstprivate"
msgstr ""
-#: gimplify.c:6050
+#: gimplify.c:6077
#, gcc-internal-format
msgid "iteration variable %qE should not be reduction"
msgstr ""
-#: gimplify.c:6213
+#: gimplify.c:6240
#, gcc-internal-format
msgid "%s variable %qE is private in outer context"
msgstr ""
-#: gimplify.c:7963
+#: gimplify.c:7990
#, gcc-internal-format
msgid "gimplification failed"
msgstr ""
@@ -18277,53 +14858,18 @@ msgstr ""
msgid "could not open Go dump file %qs: %m"
msgstr ""
-#: graph.c:410 toplev.c:1462 java/jcf-parse.c:1751 java/jcf-parse.c:1889
+#: graph.c:410 toplev.c:1455 java/jcf-parse.c:1751 java/jcf-parse.c:1889
#: objc/objc-act.c:448
#, gcc-internal-format
msgid "can%'t open %s: %m"
msgstr ""
-#: graphite-clast-to-gimple.c:1338 graphite-poly.c:691 toplev.c:920
-#: toplev.c:1066
+#: graphite-clast-to-gimple.c:1386 toplev.c:913 toplev.c:1059
#, gcc-internal-format
msgid "can%'t open %s for writing: %m"
msgstr ""
-#: graphite-poly.c:593
-#, gcc-internal-format
-msgid "the file is not in OpenScop format"
-msgstr ""
-
-#: graphite-poly.c:604
-#, gcc-internal-format
-msgid "the language is not recognized"
-msgstr ""
-
-#: graphite-poly.c:615
-#, gcc-internal-format
-msgid ""
-"parameters number in the scop file is different from the internal scop "
-"parameter number"
-msgstr ""
-
-#: graphite-poly.c:628
-#, gcc-internal-format
-msgid ""
-"number of statements in the OpenScop file does not match the graphite "
-"internal statements number"
-msgstr ""
-
-#: graphite-poly.c:719
-#, gcc-internal-format
-msgid "can%'t open %s for reading: %m"
-msgstr ""
-
-#: graphite-poly.c:746
-#, gcc-internal-format, gfc-internal-format
-msgid "the graphite file read for scop %d does not contain a legal transform"
-msgstr ""
-
-#: graphite.c:290
+#: graphite.c:307
#, gcc-internal-format
msgid "Graphite loop optimizations cannot be used"
msgstr ""
@@ -18331,7 +14877,7 @@ msgstr ""
#. Fatal error here. We do not want to support compiling ltrans units
#. with different version of compiler or different flags than the WPA
#. unit, so this should never happen.
-#: ipa-inline-analysis.c:3123
+#: ipa-inline-analysis.c:3763
#, gcc-internal-format
msgid "ipa inline summary is missing in input file"
msgstr ""
@@ -18339,57 +14885,52 @@ msgstr ""
#. Fatal error here. We do not want to support compiling ltrans units with
#. different version of compiler or different flags than the WPA unit, so
#. this should never happen.
-#: ipa-reference.c:1216
+#: ipa-reference.c:1171
#, gcc-internal-format
msgid "ipa reference summary is missing in ltrans unit"
msgstr ""
-#: ira.c:1854 ira.c:1867 ira.c:1881
+#: ira.c:1853 ira.c:1866 ira.c:1880
#, gcc-internal-format, gfc-internal-format
msgid "%s cannot be used in asm here"
msgstr ""
-#: lto-cgraph.c:1017
+#: lto-cgraph.c:919
#, gcc-internal-format, gfc-internal-format
msgid "bytecode stream: found multiple instances of cgraph node %d"
msgstr ""
-#: lto-cgraph.c:1151
+#: lto-cgraph.c:1044
#, gcc-internal-format
msgid "bytecode stream: no caller found while reading edge"
msgstr ""
-#: lto-cgraph.c:1157
+#: lto-cgraph.c:1050
#, gcc-internal-format
msgid "bytecode stream: no callee found while reading edge"
msgstr ""
-#: lto-cgraph.c:1221
+#: lto-cgraph.c:1120
#, gcc-internal-format
msgid "bytecode stream: found empty cgraph node"
msgstr ""
-#: lto-cgraph.c:1386
+#: lto-cgraph.c:1233
#, gcc-internal-format, gfc-internal-format
msgid "At most %i profile runs is supported. Perhaps corrupted profile?"
msgstr ""
-#: lto-cgraph.c:1434
+#: lto-cgraph.c:1281
#, gcc-internal-format, gfc-internal-format
msgid "Profile information in %s corrupted"
msgstr ""
-#: lto-cgraph.c:1471
+#: lto-cgraph.c:1317
#, gcc-internal-format, gfc-internal-format
msgid "cannot find LTO cgraph in %s"
msgstr ""
-#: lto-cgraph.c:1481
-#, gcc-internal-format, gfc-internal-format
-msgid "cannot find LTO varpool in %s"
-msgstr ""
-
-#: lto-cgraph.c:1489
+#: lto-cgraph.c:1327
#, gcc-internal-format, gfc-internal-format
msgid "cannot find LTO section refs in %s"
msgstr ""
@@ -18400,18 +14941,18 @@ msgstr ""
msgid "compressed stream: %s"
msgstr ""
-#: lto-section-in.c:422
+#: lto-section-in.c:421
#, gcc-internal-format, gfc-internal-format
msgid ""
"bytecode stream: trying to read %d bytes after the end of the input buffer"
msgstr ""
-#: lto-section-in.c:432
+#: lto-section-in.c:431
#, gcc-internal-format, gfc-internal-format
msgid "%s out of range: Range is %i to %i, value is %i"
msgstr ""
-#: lto-streamer-in.c:76
+#: lto-streamer-in.c:74
#, gcc-internal-format, gfc-internal-format
msgid "bytecode stream: unexpected tag %s"
msgstr ""
@@ -18426,106 +14967,106 @@ msgstr ""
msgid "bytecode stream: unexpected LTO section %s"
msgstr ""
-#: lto-streamer.c:380
+#: lto-streamer.c:375
#, gcc-internal-format, gfc-internal-format
msgid ""
"bytecode stream generated with LTO version %d.%d instead of the expected %d."
"%d"
msgstr ""
-#: lto-symtab.c:466
+#: lto-symtab.c:344
#, gcc-internal-format
msgid "%qD has already been defined"
msgstr ""
-#: lto-symtab.c:468
+#: lto-symtab.c:346
#, gcc-internal-format
msgid "previously defined here"
msgstr ""
-#: lto-symtab.c:563
+#: lto-symtab.c:444
#, gcc-internal-format
msgid "type of %qD does not match original declaration"
msgstr ""
-#: lto-symtab.c:570
+#: lto-symtab.c:452
#, gcc-internal-format
msgid "alignment of %qD is bigger than original declaration"
msgstr ""
-#: lto-symtab.c:576 lto-symtab.c:684
+#: lto-symtab.c:458 lto-symtab.c:565
#, gcc-internal-format
msgid "previously declared here"
msgstr ""
-#: lto-symtab.c:609
+#: lto-symtab.c:500
#, gcc-internal-format
msgid "multiple prevailing defs for %qE"
msgstr ""
-#: lto-symtab.c:667
+#: lto-symtab.c:546
#, gcc-internal-format
msgid "variable %qD redeclared as function"
msgstr ""
-#: lto-symtab.c:673
+#: lto-symtab.c:553
#, gcc-internal-format
msgid "function %qD redeclared as variable"
msgstr ""
-#: omp-low.c:1847
+#: omp-low.c:1846
#, gcc-internal-format
msgid ""
"barrier region may not be closely nested inside of work-sharing, critical, "
"ordered, master or explicit task region"
msgstr ""
-#: omp-low.c:1853
+#: omp-low.c:1852
#, gcc-internal-format
msgid ""
"work-sharing region may not be closely nested inside of work-sharing, "
"critical, ordered, master or explicit task region"
msgstr ""
-#: omp-low.c:1872
+#: omp-low.c:1871
#, gcc-internal-format
msgid ""
"master region may not be closely nested inside of work-sharing or explicit "
"task region"
msgstr ""
-#: omp-low.c:1888
+#: omp-low.c:1887
#, gcc-internal-format
msgid ""
"ordered region may not be closely nested inside of critical or explicit task "
"region"
msgstr ""
-#: omp-low.c:1896
+#: omp-low.c:1895
#, gcc-internal-format
msgid ""
"ordered region must be closely nested inside a loop region with an ordered "
"clause"
msgstr ""
-#: omp-low.c:1914
+#: omp-low.c:1913
#, gcc-internal-format
msgid ""
"critical region may not be nested inside a critical region with the same name"
msgstr ""
-#: omp-low.c:7028 cp/decl.c:2896 cp/parser.c:9837 cp/parser.c:9857
+#: omp-low.c:7002 cp/decl.c:2898 cp/parser.c:9876 cp/parser.c:9896
#, gcc-internal-format
msgid "invalid exit from OpenMP structured block"
msgstr ""
-#: omp-low.c:7030 omp-low.c:7035
+#: omp-low.c:7004 omp-low.c:7009
#, gcc-internal-format
msgid "invalid entry to OpenMP structured block"
msgstr ""
#. Otherwise, be vague and lazy, but efficient.
-#: omp-low.c:7038
+#: omp-low.c:7012
#, gcc-internal-format
msgid "invalid branch to/from an OpenMP structured block"
msgstr ""
@@ -18540,7 +15081,7 @@ msgstr ""
msgid "missing argument to %qs"
msgstr ""
-#: opts-common.c:1013 opts.c:547
+#: opts-common.c:1013 opts.c:557
#, gcc-internal-format
msgid "argument to %qs should be a non-negative integer"
msgstr ""
@@ -18603,136 +15144,136 @@ msgid ""
"femit-struct-debug-detailed=ind:...%>"
msgstr ""
-#: opts.c:661
+#: opts.c:684
#, gcc-internal-format
msgid "section anchors must be disabled when unit-at-a-time is disabled"
msgstr ""
-#: opts.c:665
+#: opts.c:688
#, gcc-internal-format
msgid "toplevel reorder must be disabled when unit-at-a-time is disabled"
msgstr ""
-#: opts.c:671
+#: opts.c:694
#, gcc-internal-format
msgid "transactional memory is not supported with non-call exceptions"
msgstr ""
-#: opts.c:686
+#: opts.c:709
#, gcc-internal-format
msgid "section anchors must be disabled when toplevel reorder is disabled"
msgstr ""
-#: opts.c:721 config/darwin.c:3004 config/sh/sh.c:813
+#: opts.c:744 config/darwin.c:3004 config/sh/sh.c:815
#, gcc-internal-format
msgid ""
"-freorder-blocks-and-partition does not work with exceptions on this "
"architecture"
msgstr ""
-#: opts.c:736 config/sh/sh.c:821
+#: opts.c:759 config/sh/sh.c:823
#, gcc-internal-format
msgid ""
"-freorder-blocks-and-partition does not support unwind info on this "
"architecture"
msgstr ""
-#: opts.c:753 config/pa/pa.c:524
+#: opts.c:776 config/pa/pa.c:524
#, gcc-internal-format
msgid "-freorder-blocks-and-partition does not work on this architecture"
msgstr ""
-#: opts.c:789
+#: opts.c:812
#, gcc-internal-format
msgid "-fno-fat-lto-objects are supported only with linker plugin."
msgstr ""
-#: opts.c:797
+#: opts.c:820
#, gcc-internal-format
msgid "only one -flto-partition value can be specified"
msgstr ""
-#: opts.c:808
+#: opts.c:831
#, gcc-internal-format
msgid "%<-fsplit-stack%> is not supported by this compiler configuration"
msgstr ""
-#: opts.c:1195
+#: opts.c:1218
#, gcc-internal-format
msgid "unrecognized include_flags 0x%x passed to print_specific_help"
msgstr ""
-#: opts.c:1375
+#: opts.c:1398
#, gcc-internal-format
msgid "--help argument %q.*s is ambiguous, please be more specific"
msgstr ""
-#: opts.c:1384
+#: opts.c:1407
#, gcc-internal-format
msgid "unrecognized argument to --help= option: %q.*s"
msgstr ""
-#: opts.c:1541
+#: opts.c:1565
#, gcc-internal-format, gfc-internal-format
msgid "structure alignment must be a small power of two, not %d"
msgstr ""
-#: opts.c:1654
+#: opts.c:1676
#, gcc-internal-format, gfc-internal-format
msgid "unknown stack check parameter \"%s\""
msgstr ""
-#: opts.c:1689
+#: opts.c:1711
#, gcc-internal-format, gfc-internal-format
msgid "dwarf version %d is not supported"
msgstr ""
-#: opts.c:1762
+#: opts.c:1784
#, gcc-internal-format, gfc-internal-format
msgid "%s: --param arguments should be of the form NAME=VALUE"
msgstr ""
-#: opts.c:1768
+#: opts.c:1790
#, gcc-internal-format
msgid "invalid --param value %qs"
msgstr ""
-#: opts.c:1886
+#: opts.c:1908
#, gcc-internal-format
msgid "target system does not support debug output"
msgstr ""
-#: opts.c:1895
+#: opts.c:1917
#, gcc-internal-format, gfc-internal-format
msgid "debug format \"%s\" conflicts with prior selection"
msgstr ""
-#: opts.c:1911
+#: opts.c:1933
#, gcc-internal-format, gfc-internal-format
msgid "unrecognised debug output level \"%s\""
msgstr ""
-#: opts.c:1913
+#: opts.c:1935
#, gcc-internal-format, gfc-internal-format
msgid "debug output level %s is too high"
msgstr ""
-#: opts.c:1933
+#: opts.c:1955
#, gcc-internal-format
msgid "getting core file size maximum limit: %m"
msgstr ""
-#: opts.c:1936
+#: opts.c:1958
#, gcc-internal-format
msgid "setting core file size limit to maximum: %m"
msgstr ""
-#: opts.c:1984
+#: opts.c:2006
#, gcc-internal-format, gfc-internal-format
msgid "unrecognized gcc debugging option: %c"
msgstr ""
-#: opts.c:2010
+#: opts.c:2032
#, gcc-internal-format, gfc-internal-format
msgid "-Werror=%s: no option -%s"
msgstr ""
@@ -18753,82 +15294,82 @@ msgstr ""
msgid "invalid parameter %qs"
msgstr ""
-#: passes.c:778
+#: passes.c:801
#, gcc-internal-format
msgid "unrecognized option -fenable"
msgstr ""
-#: passes.c:780
+#: passes.c:803
#, gcc-internal-format
msgid "unrecognized option -fdisable"
msgstr ""
-#: passes.c:788
+#: passes.c:811
#, gcc-internal-format, gfc-internal-format
msgid "unknown pass %s specified in -fenable"
msgstr ""
-#: passes.c:790
+#: passes.c:813
#, gcc-internal-format, gfc-internal-format
msgid "unknown pass %s specified in -fdisable"
msgstr ""
-#: passes.c:817 passes.c:907
+#: passes.c:840 passes.c:930
#, gcc-internal-format, gfc-internal-format
msgid "enable pass %s for functions in the range of [%u, %u]"
msgstr ""
-#: passes.c:820 passes.c:918
+#: passes.c:843 passes.c:941
#, gcc-internal-format, gfc-internal-format
msgid "disable pass %s for functions in the range of [%u, %u]"
msgstr ""
-#: passes.c:856 passes.c:884
+#: passes.c:879 passes.c:907
#, gcc-internal-format, gfc-internal-format
msgid "Invalid range %s in option %s"
msgstr ""
-#: passes.c:903
+#: passes.c:926
#, gcc-internal-format, gfc-internal-format
msgid "enable pass %s for function %s"
msgstr ""
-#: passes.c:914
+#: passes.c:937
#, gcc-internal-format, gfc-internal-format
msgid "disable pass %s for function %s"
msgstr ""
-#: passes.c:1127
+#: passes.c:1150
#, gcc-internal-format
msgid "invalid pass positioning operation"
msgstr ""
-#: passes.c:1169
+#: passes.c:1192
#, gcc-internal-format
msgid "plugin cannot register a missing pass"
msgstr ""
-#: passes.c:1172
+#: passes.c:1195
#, gcc-internal-format
msgid "plugin cannot register an unnamed pass"
msgstr ""
-#: passes.c:1176
+#: passes.c:1199
#, gcc-internal-format
msgid "plugin cannot register pass %qs without reference pass name"
msgstr ""
-#: passes.c:1196
+#: passes.c:1219
#, gcc-internal-format
msgid "pass %qs not found but is referenced by new pass %qs"
msgstr ""
-#: plugin.c:152
+#: plugin.c:151
#, gcc-internal-format
msgid "inaccessible plugin file %s expanded from short plugin name %s: %m"
msgstr ""
-#: plugin.c:173
+#: plugin.c:172
#, gcc-internal-format, gfc-internal-format
msgid ""
"plugin %s was specified with different paths:\n"
@@ -18836,409 +15377,409 @@ msgid ""
"%s"
msgstr ""
-#: plugin.c:219
+#: plugin.c:218
#, gcc-internal-format, gfc-internal-format
msgid "malformed option -fplugin-arg-%s (multiple '=' signs)"
msgstr ""
-#: plugin.c:235
+#: plugin.c:234
#, gcc-internal-format, gfc-internal-format
msgid "malformed option -fplugin-arg-%s (missing -<key>[=<value>])"
msgstr ""
-#: plugin.c:297
+#: plugin.c:296
#, gcc-internal-format, gfc-internal-format
msgid ""
"plugin %s should be specified before -fplugin-arg-%s in the command line"
msgstr ""
-#: plugin.c:417
+#: plugin.c:416
#, gcc-internal-format, gfc-internal-format
msgid "unknown callback event registered by plugin %s"
msgstr ""
-#: plugin.c:446
+#: plugin.c:445
#, gcc-internal-format, gfc-internal-format
msgid "plugin %s registered a null callback function for event %s"
msgstr ""
-#: plugin.c:567
+#: plugin.c:566
#, gcc-internal-format, gfc-internal-format
msgid ""
"cannot load plugin %s\n"
"%s"
msgstr ""
-#: plugin.c:576
+#: plugin.c:575
#, gcc-internal-format, gfc-internal-format
msgid ""
"plugin %s is not licensed under a GPL-compatible license\n"
"%s"
msgstr ""
-#: plugin.c:585
+#: plugin.c:584
#, gcc-internal-format, gfc-internal-format
msgid ""
"cannot find %s in plugin %s\n"
"%s"
msgstr ""
-#: plugin.c:593
+#: plugin.c:592
#, gcc-internal-format, gfc-internal-format
msgid "fail to initialize plugin %s"
msgstr ""
-#: plugin.c:874
+#: plugin.c:873
#, gcc-internal-format
msgid "-iplugindir <dir> option not passed from the gcc driver"
msgstr ""
-#: profile.c:412
+#: profile.c:536
#, gcc-internal-format
msgid "corrupted profile info: edge count exceeds maximal count"
msgstr ""
-#: profile.c:416
+#: profile.c:540
#, gcc-internal-format, gfc-internal-format
msgid "corrupted profile info: edge from %i to %i exceeds maximal count"
msgstr ""
-#: profile.c:495
+#: profile.c:619
#, gcc-internal-format
msgid "corrupted profile info: run_max * runs < sum_max"
msgstr ""
-#: profile.c:501
+#: profile.c:625
#, gcc-internal-format
msgid "corrupted profile info: sum_all is smaller than sum_max"
msgstr ""
-#: profile.c:673
+#: profile.c:797
#, gcc-internal-format
msgid "correcting inconsistent profile data"
msgstr ""
-#: profile.c:683
+#: profile.c:807
#, gcc-internal-format
msgid "corrupted profile info: profile data is not flow-consistent"
msgstr ""
-#: profile.c:700
+#: profile.c:824
#, gcc-internal-format, gfc-internal-format
msgid ""
"corrupted profile info: number of iterations for basic block %d thought to "
"be %i"
msgstr ""
-#: profile.c:721
+#: profile.c:845
#, gcc-internal-format, gfc-internal-format
msgid ""
"corrupted profile info: number of executions for edge %d-%d thought to be %i"
msgstr ""
-#: reg-stack.c:535
+#: reg-stack.c:534
#, gcc-internal-format, gfc-internal-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:545
+#: reg-stack.c:544
#, gcc-internal-format, gfc-internal-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:568
+#: reg-stack.c:567
#, gcc-internal-format
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:605
+#: reg-stack.c:604
#, gcc-internal-format
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:624
+#: reg-stack.c:623
#, gcc-internal-format
msgid "output operand %d must use %<&%> constraint"
msgstr ""
-#: regcprop.c:1191
+#: regcprop.c:1190
#, gcc-internal-format, gfc-internal-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regcprop.c:1203
+#: regcprop.c:1202
#, gcc-internal-format, gfc-internal-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regcprop.c:1206
+#: regcprop.c:1205
#, gcc-internal-format, gfc-internal-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regcprop.c:1218
+#: regcprop.c:1217
#, gcc-internal-format, gfc-internal-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reginfo.c:711
+#: reginfo.c:710
#, gcc-internal-format
msgid "can%'t use %qs as a call-saved register"
msgstr ""
-#: reginfo.c:715
+#: reginfo.c:714
#, gcc-internal-format
msgid "can%'t use %qs as a call-used register"
msgstr ""
-#: reginfo.c:727
+#: reginfo.c:726
#, gcc-internal-format
msgid "can%'t use %qs as a fixed register"
msgstr ""
-#: reginfo.c:753 config/ia64/ia64.c:5940 config/ia64/ia64.c:5947
-#: config/pa/pa.c:427 config/pa/pa.c:434 config/sh/sh.c:8935
-#: config/sh/sh.c:8942 config/spu/spu.c:5199 config/spu/spu.c:5206
+#: reginfo.c:752 config/ia64/ia64.c:5903 config/ia64/ia64.c:5910
+#: config/pa/pa.c:427 config/pa/pa.c:434 config/sh/sh.c:9197
+#: config/sh/sh.c:9204 config/spu/spu.c:4909 config/spu/spu.c:4916
#, gcc-internal-format, gfc-internal-format
msgid "unknown register name: %s"
msgstr ""
-#: reginfo.c:766
+#: reginfo.c:765
#, gcc-internal-format
msgid "stack register used for global register variable"
msgstr ""
-#: reginfo.c:772
+#: reginfo.c:771
#, gcc-internal-format
msgid "global register variable follows a function definition"
msgstr ""
-#: reginfo.c:777
+#: reginfo.c:776
#, gcc-internal-format
msgid "register of %qD used for multiple global register variables"
msgstr ""
-#: reginfo.c:780
+#: reginfo.c:779
#, gcc-internal-format
msgid "conflicts with %qD"
msgstr ""
-#: reginfo.c:785
+#: reginfo.c:784
#, gcc-internal-format
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: reload.c:1271
+#: reload.c:1324
#, gcc-internal-format
msgid "cannot reload integer constant operand in %<asm%>"
msgstr ""
-#: reload.c:1285
+#: reload.c:1338
#, gcc-internal-format
msgid "impossible register constraint in %<asm%>"
msgstr ""
-#: reload.c:3674
+#: reload.c:3729
#, gcc-internal-format
msgid "%<&%> constraint used with no register class"
msgstr ""
-#: reload.c:3825 reload.c:4080
+#: reload.c:3880 reload.c:4135
#, gcc-internal-format
msgid "inconsistent operand constraints in an %<asm%>"
msgstr ""
-#: reload1.c:1252
+#: reload1.c:1251
#, gcc-internal-format
msgid "%<asm%> operand has impossible constraints"
msgstr ""
-#: reload1.c:1272
+#: reload1.c:1271
#, gcc-internal-format
msgid "frame size too large for reliable stack checking"
msgstr ""
-#: reload1.c:1275
+#: reload1.c:1274
#, gcc-internal-format
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:2112
+#: reload1.c:2111
#, gcc-internal-format
msgid "can%'t find a register in class %qs while reloading %<asm%>"
msgstr ""
-#: reload1.c:2117
+#: reload1.c:2116
#, gcc-internal-format
msgid "unable to find a register to spill in class %qs"
msgstr ""
-#: reload1.c:4697
+#: reload1.c:4687
#, gcc-internal-format
msgid "%<asm%> operand requires impossible reload"
msgstr ""
-#: reload1.c:6114
+#: reload1.c:6104
#, gcc-internal-format
msgid "%<asm%> operand constraint incompatible with operand size"
msgstr ""
-#: reload1.c:7920
+#: reload1.c:7910
#, gcc-internal-format
msgid "output operand is constant in %<asm%>"
msgstr ""
-#: rtl.c:743
+#: rtl.c:741
#, gcc-internal-format, gfc-internal-format
msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:753
+#: rtl.c:751
#, gcc-internal-format, gfc-internal-format
msgid ""
"RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:763
+#: rtl.c:761
#, gcc-internal-format, gfc-internal-format
msgid ""
"RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at "
"%s:%d"
msgstr ""
-#: rtl.c:772
+#: rtl.c:770
#, gcc-internal-format, gfc-internal-format
msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:782
+#: rtl.c:780
#, gcc-internal-format, gfc-internal-format
msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:809
+#: rtl.c:807
#, gcc-internal-format, gfc-internal-format
msgid ""
"RTL check: attempt to treat non-block symbol as a block symbol in %s, at %s:"
"%d"
msgstr ""
-#: rtl.c:819
+#: rtl.c:817
#, gcc-internal-format, gfc-internal-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:830
+#: rtl.c:828
#, gcc-internal-format, gfc-internal-format
msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
msgstr ""
-#: stmt.c:304
+#: stmt.c:299
#, gcc-internal-format
msgid "output operand constraint lacks %<=%>"
msgstr ""
-#: stmt.c:319
+#: stmt.c:314
#, gcc-internal-format
msgid "output constraint %qc for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:342
+#: stmt.c:337
#, gcc-internal-format
msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
msgstr ""
-#: stmt.c:349 stmt.c:448
+#: stmt.c:344 stmt.c:443
#, gcc-internal-format
msgid "%<%%%> constraint used with last operand"
msgstr ""
-#: stmt.c:368
+#: stmt.c:363
#, gcc-internal-format
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:439
+#: stmt.c:434
#, gcc-internal-format
msgid "input operand constraint contains %qc"
msgstr ""
-#: stmt.c:481
+#: stmt.c:476
#, gcc-internal-format
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:519
+#: stmt.c:514
#, gcc-internal-format
msgid "invalid punctuation %qc in constraint"
msgstr ""
-#: stmt.c:543
+#: stmt.c:538
#, gcc-internal-format
msgid "matching constraint does not allow a register"
msgstr ""
-#: stmt.c:597
+#: stmt.c:592
#, gcc-internal-format
msgid "asm-specifier for variable %qE conflicts with asm clobber list"
msgstr ""
-#: stmt.c:689
+#: stmt.c:684
#, gcc-internal-format
msgid "unknown register name %qs in %<asm%>"
msgstr ""
-#: stmt.c:703
+#: stmt.c:698
#, gcc-internal-format
msgid "PIC register clobbered by %qs in %<asm%>"
msgstr ""
-#: stmt.c:751
+#: stmt.c:746
#, gcc-internal-format
msgid "more than %d operands in %<asm%>"
msgstr ""
-#: stmt.c:818
+#: stmt.c:813
#, gcc-internal-format, gfc-internal-format
msgid "output number %d not directly addressable"
msgstr ""
-#: stmt.c:904
+#: stmt.c:899
#, gcc-internal-format
msgid "asm operand %d probably doesn%'t match constraints"
msgstr ""
-#: stmt.c:1052
+#: stmt.c:1047
#, gcc-internal-format
msgid "asm clobber conflict with output operand"
msgstr ""
-#: stmt.c:1059
+#: stmt.c:1054
#, gcc-internal-format
msgid "asm clobber conflict with input operand"
msgstr ""
-#: stmt.c:1186
+#: stmt.c:1181
#, gcc-internal-format
msgid "too many alternatives in %<asm%>"
msgstr ""
-#: stmt.c:1198
+#: stmt.c:1193
#, gcc-internal-format
msgid "operand constraints for %<asm%> differ in number of alternatives"
msgstr ""
-#: stmt.c:1265
+#: stmt.c:1260
#, gcc-internal-format
msgid "duplicate asm operand name %qs"
msgstr ""
-#: stmt.c:1361
+#: stmt.c:1356
#, gcc-internal-format
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:1386
+#: stmt.c:1381
#, gcc-internal-format
msgid "undefined named operand %qs"
msgstr ""
@@ -19298,72 +15839,72 @@ msgstr ""
msgid "packed attribute is unnecessary"
msgstr ""
-#: stor-layout.c:2293
+#: stor-layout.c:2295
#, gcc-internal-format
msgid "alignment of array elements is greater than element size"
msgstr ""
-#: symtab.c:348
+#: symtab.c:369
#, gcc-internal-format
msgid "%D renamed after being referenced in assembly"
msgstr ""
-#: symtab.c:562
+#: symtab.c:586
#, gcc-internal-format
msgid "function symbol is not function"
msgstr ""
-#: symtab.c:570
+#: symtab.c:594
#, gcc-internal-format
msgid "variable symbol is not variable"
msgstr ""
-#: symtab.c:576
+#: symtab.c:600
#, gcc-internal-format
msgid "node has unknown type"
msgstr ""
-#: symtab.c:583
+#: symtab.c:607
#, gcc-internal-format
msgid "node not found in symtab decl hashtable"
msgstr ""
-#: symtab.c:591
+#: symtab.c:615
#, gcc-internal-format
msgid "assembler name hash list corrupted"
msgstr ""
-#: symtab.c:602
+#: symtab.c:627
#, gcc-internal-format
msgid "node not found in symtab assembler name hash"
msgstr ""
-#: symtab.c:609
+#: symtab.c:634
#, gcc-internal-format
msgid "double linked list of assembler names corrupted"
msgstr ""
-#: symtab.c:617
+#: symtab.c:642
#, gcc-internal-format
msgid "non-DECL_ONE_ONLY node in a same_comdat_group list"
msgstr ""
-#: symtab.c:622
+#: symtab.c:647
#, gcc-internal-format
msgid "mixing different types of symbol in same comdat groups is not supported"
msgstr ""
-#: symtab.c:627
+#: symtab.c:652
#, gcc-internal-format
msgid "node is alone in a comdat group"
msgstr ""
-#: symtab.c:634
+#: symtab.c:659
#, gcc-internal-format
msgid "same_comdat_group is not a circular list"
msgstr ""
-#: symtab.c:660
+#: symtab.c:685
#, gcc-internal-format
msgid "verify_symtab_node failed"
msgstr ""
@@ -19383,12 +15924,12 @@ msgstr ""
msgid "nested function trampolines not supported on this target"
msgstr ""
-#: targhooks.c:1160
+#: targhooks.c:1217
#, gcc-internal-format
msgid "target attribute is not supported on this machine"
msgstr ""
-#: targhooks.c:1170
+#: targhooks.c:1227
#, gcc-internal-format
msgid "#pragma GCC target is not supported for this machine"
msgstr ""
@@ -19420,47 +15961,52 @@ msgstr ""
msgid "ld returned %d exit status"
msgstr ""
-#: toplev.c:480
+#: toplev.c:474 c/c-decl.c:9980
+#, gcc-internal-format
+msgid "%q+F used but never defined"
+msgstr ""
+
+#: toplev.c:476
#, gcc-internal-format
msgid "%q+F declared %<static%> but never defined"
msgstr ""
-#: toplev.c:507
+#: toplev.c:503
#, gcc-internal-format
msgid "%q+D defined but not used"
msgstr ""
-#: toplev.c:941
+#: toplev.c:934
#, gcc-internal-format
msgid "-frecord-gcc-switches is not supported by the current target"
msgstr ""
-#: toplev.c:989
+#: toplev.c:982
#, gcc-internal-format
msgid "stack usage computation not supported for this target"
msgstr ""
-#: toplev.c:1043
+#: toplev.c:1036
#, gcc-internal-format
msgid "stack usage might be unbounded"
msgstr ""
-#: toplev.c:1047
+#: toplev.c:1040
#, gcc-internal-format
msgid "stack usage might be %wd bytes"
msgstr ""
-#: toplev.c:1050
+#: toplev.c:1043
#, gcc-internal-format
msgid "stack usage is %wd bytes"
msgstr ""
-#: toplev.c:1231
+#: toplev.c:1224
#, gcc-internal-format
msgid "this target does not support %qs"
msgstr ""
-#: toplev.c:1258
+#: toplev.c:1251
#, gcc-internal-format
msgid ""
"Graphite loop optimizations cannot be used (-fgraphite, -fgraphite-identity, "
@@ -19468,992 +16014,1008 @@ msgid ""
"and -ftree-loop-linear)"
msgstr ""
-#: toplev.c:1265
+#: toplev.c:1258
#, gcc-internal-format
msgid "mudflap cannot be used together with link-time optimization"
msgstr ""
-#: toplev.c:1274
+#: toplev.c:1267
#, gcc-internal-format
msgid ""
"-fstrict-volatile-bitfields disabled; it is incompatible with ABI versions < "
"2"
msgstr ""
-#: toplev.c:1302
+#: toplev.c:1295
#, gcc-internal-format
msgid "instruction scheduling not supported on this target machine"
msgstr ""
-#: toplev.c:1306
+#: toplev.c:1299
#, gcc-internal-format
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:1320
+#: toplev.c:1313
#, gcc-internal-format, gfc-internal-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr ""
-#: toplev.c:1363
+#: toplev.c:1356
#, gcc-internal-format
msgid "could not close zeroed insn dump file %qs: %m"
msgstr ""
-#: toplev.c:1397
+#: toplev.c:1390
#, gcc-internal-format, gfc-internal-format
msgid "target system does not support the \"%s\" debug format"
msgstr ""
-#: toplev.c:1409
+#: toplev.c:1402
#, gcc-internal-format
msgid "variable tracking requested, but useless unless producing debug info"
msgstr ""
-#: toplev.c:1412
+#: toplev.c:1405
#, gcc-internal-format
msgid "variable tracking requested, but not supported by this debug format"
msgstr ""
-#: toplev.c:1446
+#: toplev.c:1439
#, gcc-internal-format
msgid "var-tracking-assignments changes selective scheduling"
msgstr ""
-#: toplev.c:1469
+#: toplev.c:1462
#, gcc-internal-format
msgid "-ffunction-sections not supported for this target"
msgstr ""
-#: toplev.c:1474
+#: toplev.c:1467
#, gcc-internal-format
msgid "-fdata-sections not supported for this target"
msgstr ""
-#: toplev.c:1481
+#: toplev.c:1474
#, gcc-internal-format
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:1488
+#: toplev.c:1481
#, gcc-internal-format
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr ""
-#: toplev.c:1494
+#: toplev.c:1487
#, gcc-internal-format
msgid ""
"-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:1503
+#: toplev.c:1496
#, gcc-internal-format
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr ""
-#: toplev.c:1514
+#: toplev.c:1507
#, gcc-internal-format
msgid "-fassociative-math disabled; other options take precedence"
msgstr ""
-#: toplev.c:1530
+#: toplev.c:1523
#, gcc-internal-format
msgid "-fstack-protector not supported for this target"
msgstr ""
-#: toplev.c:1543
+#: toplev.c:1536
#, gcc-internal-format
msgid "unwind tables currently require a frame pointer for correctness"
msgstr ""
-#: toplev.c:1805
+#: toplev.c:1798
#, gcc-internal-format
msgid "error writing to %s: %m"
msgstr ""
-#: toplev.c:1807 java/jcf-parse.c:1770
+#: toplev.c:1800 java/jcf-parse.c:1770
#, gcc-internal-format
msgid "error closing %s: %m"
msgstr ""
-#: trans-mem.c:571
+#: trans-mem.c:570
#, gcc-internal-format
msgid "invalid volatile use of %qD inside transaction"
msgstr ""
-#: trans-mem.c:597
+#: trans-mem.c:596
#, gcc-internal-format
msgid ""
"%<transaction_may_cancel_outer%> function call not within outer transaction "
"or %<transaction_may_cancel_outer%>"
msgstr ""
-#: trans-mem.c:665 trans-mem.c:4203
+#: trans-mem.c:664 trans-mem.c:4209
#, gcc-internal-format
msgid "unsafe function call %qD within atomic transaction"
msgstr ""
-#: trans-mem.c:671
+#: trans-mem.c:670
#, gcc-internal-format
msgid "unsafe function call %qE within atomic transaction"
msgstr ""
-#: trans-mem.c:675
+#: trans-mem.c:674
#, gcc-internal-format
msgid "unsafe indirect function call within atomic transaction"
msgstr ""
-#: trans-mem.c:683 trans-mem.c:4136
+#: trans-mem.c:682 trans-mem.c:4142
#, gcc-internal-format
msgid "unsafe function call %qD within %<transaction_safe%> function"
msgstr ""
-#: trans-mem.c:689
+#: trans-mem.c:688
#, gcc-internal-format
msgid "unsafe function call %qE within %<transaction_safe%> function"
msgstr ""
-#: trans-mem.c:693
+#: trans-mem.c:692
#, gcc-internal-format
msgid "unsafe indirect function call within %<transaction_safe%> function"
msgstr ""
-#: trans-mem.c:708 trans-mem.c:4175
+#: trans-mem.c:707 trans-mem.c:4181
#, gcc-internal-format
msgid "asm not allowed in atomic transaction"
msgstr ""
-#: trans-mem.c:711
+#: trans-mem.c:710
#, gcc-internal-format
msgid "asm not allowed in %<transaction_safe%> function"
msgstr ""
-#: trans-mem.c:722
+#: trans-mem.c:721
#, gcc-internal-format
msgid "relaxed transaction in atomic transaction"
msgstr ""
-#: trans-mem.c:725
+#: trans-mem.c:724
#, gcc-internal-format
msgid "relaxed transaction in %<transaction_safe%> function"
msgstr ""
-#: trans-mem.c:732
+#: trans-mem.c:731
#, gcc-internal-format
msgid "outer transaction in transaction"
msgstr ""
-#: trans-mem.c:735
+#: trans-mem.c:734
#, gcc-internal-format
msgid "outer transaction in %<transaction_may_cancel_outer%> function"
msgstr ""
-#: trans-mem.c:739
+#: trans-mem.c:738
#, gcc-internal-format
msgid "outer transaction in %<transaction_safe%> function"
msgstr ""
-#: trans-mem.c:3801
+#: trans-mem.c:3807
#, gcc-internal-format
msgid "%Kasm not allowed in %<transaction_safe%> function"
msgstr ""
-#: tree-cfg.c:2634
+#: tree-cfg.c:2613
#, gcc-internal-format
msgid "constant not recomputed when ADDR_EXPR changed"
msgstr ""
-#: tree-cfg.c:2639
+#: tree-cfg.c:2618
#, gcc-internal-format
msgid "side effects not recomputed when ADDR_EXPR changed"
msgstr ""
-#: tree-cfg.c:2650
+#: tree-cfg.c:2629
#, gcc-internal-format
msgid "DECL_GIMPLE_REG_P set on a variable with address taken"
msgstr ""
-#: tree-cfg.c:2679
+#: tree-cfg.c:2658
#, gcc-internal-format
msgid "SSA name in freelist but still referenced"
msgstr ""
-#: tree-cfg.c:2685 tree-cfg.c:3970
+#: tree-cfg.c:2664 tree-cfg.c:3960
#, gcc-internal-format
msgid "INDIRECT_REF in gimple IL"
msgstr ""
-#: tree-cfg.c:2693
+#: tree-cfg.c:2672
#, gcc-internal-format
msgid "invalid first operand of MEM_REF"
msgstr ""
-#: tree-cfg.c:2699
+#: tree-cfg.c:2678
#, gcc-internal-format
msgid "invalid offset operand of MEM_REF"
msgstr ""
-#: tree-cfg.c:2712
+#: tree-cfg.c:2691
#, gcc-internal-format
msgid "ASSERT_EXPR with an always-false condition"
msgstr ""
-#: tree-cfg.c:2718
+#: tree-cfg.c:2697
#, gcc-internal-format
msgid "MODIFY_EXPR not expected while having tuples"
msgstr ""
-#: tree-cfg.c:2745 tree-ssa.c:879
+#: tree-cfg.c:2724 tree-ssa.c:882
#, gcc-internal-format
msgid "address taken, but ADDRESSABLE bit not set"
msgstr ""
-#: tree-cfg.c:2756
+#: tree-cfg.c:2735
#, gcc-internal-format
msgid "non-integral used in condition"
msgstr ""
-#: tree-cfg.c:2761
+#: tree-cfg.c:2740
#, gcc-internal-format
msgid "invalid conditional operand"
msgstr ""
-#: tree-cfg.c:2808
+#: tree-cfg.c:2787
#, gcc-internal-format
msgid "invalid position or size operand to BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:2815
+#: tree-cfg.c:2794
#, gcc-internal-format
msgid ""
"integral result type precision does not match field size of BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:2825
+#: tree-cfg.c:2804
#, gcc-internal-format
msgid ""
"mode precision of non-integral result does not match field size of "
"BIT_FIELD_REF"
msgstr ""
-#: tree-cfg.c:2836
+#: tree-cfg.c:2815
#, gcc-internal-format
msgid "invalid reference prefix"
msgstr ""
-#: tree-cfg.c:2847
+#: tree-cfg.c:2826
#, gcc-internal-format
msgid "invalid operand to plus/minus, type is a pointer"
msgstr ""
-#: tree-cfg.c:2858
+#: tree-cfg.c:2837
#, gcc-internal-format
msgid "invalid operand to pointer plus, first operand is not a pointer"
msgstr ""
-#: tree-cfg.c:2864
+#: tree-cfg.c:2843
#, gcc-internal-format
msgid ""
"invalid operand to pointer plus, second operand is not an integer type of "
"appropriate width"
msgstr ""
-#: tree-cfg.c:2915
+#: tree-cfg.c:2894
#, gcc-internal-format
msgid "invalid CASE_CHAIN"
msgstr ""
-#: tree-cfg.c:2943
+#: tree-cfg.c:2922
#, gcc-internal-format
msgid "invalid expression for min lvalue"
msgstr ""
-#: tree-cfg.c:2954
+#: tree-cfg.c:2933
#, gcc-internal-format
msgid "invalid operand in indirect reference"
msgstr ""
-#: tree-cfg.c:2983
+#: tree-cfg.c:2962
#, gcc-internal-format
msgid "invalid operands to array reference"
msgstr ""
-#: tree-cfg.c:2994
+#: tree-cfg.c:2973
#, gcc-internal-format
msgid "type mismatch in array reference"
msgstr ""
-#: tree-cfg.c:3003
+#: tree-cfg.c:2982
#, gcc-internal-format
msgid "type mismatch in array range reference"
msgstr ""
-#: tree-cfg.c:3014
+#: tree-cfg.c:2993
#, gcc-internal-format
msgid "type mismatch in real/imagpart reference"
msgstr ""
-#: tree-cfg.c:3024
+#: tree-cfg.c:3003
#, gcc-internal-format
msgid "type mismatch in component reference"
msgstr ""
-#: tree-cfg.c:3041
+#: tree-cfg.c:3020
#, gcc-internal-format
msgid "conversion of an SSA_NAME on the left hand side"
msgstr ""
-#: tree-cfg.c:3048
+#: tree-cfg.c:3027
#, gcc-internal-format
msgid "conversion of register to a different size"
msgstr ""
-#: tree-cfg.c:3063
+#: tree-cfg.c:3042
#, gcc-internal-format
msgid "invalid address operand in MEM_REF"
msgstr ""
-#: tree-cfg.c:3070
+#: tree-cfg.c:3049
#, gcc-internal-format
msgid "invalid offset operand in MEM_REF"
msgstr ""
-#: tree-cfg.c:3080
+#: tree-cfg.c:3059
#, gcc-internal-format
msgid "invalid address operand in TARGET_MEM_REF"
msgstr ""
-#: tree-cfg.c:3087
+#: tree-cfg.c:3066
#, gcc-internal-format
msgid "invalid offset operand in TARGET_MEM_REF"
msgstr ""
-#: tree-cfg.c:3141
+#: tree-cfg.c:3120
#, gcc-internal-format
msgid "gimple call has two targets"
msgstr ""
-#: tree-cfg.c:3150
+#: tree-cfg.c:3129
#, gcc-internal-format
msgid "gimple call has no target"
msgstr ""
-#: tree-cfg.c:3157
+#: tree-cfg.c:3136
#, gcc-internal-format
msgid "invalid function in gimple call"
msgstr ""
-#: tree-cfg.c:3167
+#: tree-cfg.c:3146
#, gcc-internal-format
msgid "non-function in gimple call"
msgstr ""
-#: tree-cfg.c:3178
+#: tree-cfg.c:3157
#, gcc-internal-format
msgid "invalid pure const state for function"
msgstr ""
-#: tree-cfg.c:3186
+#: tree-cfg.c:3165
#, gcc-internal-format
msgid "invalid LHS in gimple call"
msgstr ""
-#: tree-cfg.c:3192
+#: tree-cfg.c:3171
#, gcc-internal-format
msgid "LHS in noreturn call"
msgstr ""
-#: tree-cfg.c:3209
+#: tree-cfg.c:3188
#, gcc-internal-format
msgid "invalid conversion in gimple call"
msgstr ""
-#: tree-cfg.c:3218
+#: tree-cfg.c:3197
#, gcc-internal-format
msgid "invalid static chain in gimple call"
msgstr ""
-#: tree-cfg.c:3229
+#: tree-cfg.c:3208
#, gcc-internal-format
msgid "static chain in indirect gimple call"
msgstr ""
-#: tree-cfg.c:3236
+#: tree-cfg.c:3215
#, gcc-internal-format
msgid "static chain with function that doesn%'t use one"
msgstr ""
-#: tree-cfg.c:3254
+#: tree-cfg.c:3233
#, gcc-internal-format
msgid "invalid argument to gimple call"
msgstr ""
-#: tree-cfg.c:3274
+#: tree-cfg.c:3253
#, gcc-internal-format
msgid "invalid operands in gimple comparison"
msgstr ""
-#: tree-cfg.c:3290
+#: tree-cfg.c:3269
#, gcc-internal-format
msgid "mismatching comparison operand types"
msgstr ""
-#: tree-cfg.c:3309
+#: tree-cfg.c:3288
#, gcc-internal-format
msgid "non-vector operands in vector comparison"
msgstr ""
-#: tree-cfg.c:3319
+#: tree-cfg.c:3298
#, gcc-internal-format
msgid "invalid vector comparison resulting type"
msgstr ""
-#: tree-cfg.c:3326
+#: tree-cfg.c:3305
#, gcc-internal-format
msgid "bogus comparison result type"
msgstr ""
-#: tree-cfg.c:3348
+#: tree-cfg.c:3327
#, gcc-internal-format
msgid "non-register as LHS of unary operation"
msgstr ""
-#: tree-cfg.c:3354
+#: tree-cfg.c:3333
#, gcc-internal-format
msgid "invalid operand in unary operation"
msgstr ""
-#: tree-cfg.c:3386
+#: tree-cfg.c:3365
#, gcc-internal-format
msgid "invalid types in nop conversion"
msgstr ""
-#: tree-cfg.c:3401
+#: tree-cfg.c:3380
#, gcc-internal-format
msgid "invalid types in address space conversion"
msgstr ""
-#: tree-cfg.c:3415
+#: tree-cfg.c:3394
#, gcc-internal-format
msgid "invalid types in fixed-point conversion"
msgstr ""
-#: tree-cfg.c:3430
+#: tree-cfg.c:3409
#, gcc-internal-format
msgid "invalid types in conversion to floating point"
msgstr ""
-#: tree-cfg.c:3445
+#: tree-cfg.c:3424
#, gcc-internal-format
msgid "invalid types in conversion to integer"
msgstr ""
-#: tree-cfg.c:3479
+#: tree-cfg.c:3458
#, gcc-internal-format
msgid "non-trivial conversion in unary operation"
msgstr ""
-#: tree-cfg.c:3504
+#: tree-cfg.c:3483
#, gcc-internal-format
msgid "non-register as LHS of binary operation"
msgstr ""
-#: tree-cfg.c:3511
+#: tree-cfg.c:3490
#, gcc-internal-format
msgid "invalid operands in binary operation"
msgstr ""
-#: tree-cfg.c:3526
+#: tree-cfg.c:3505
#, gcc-internal-format
msgid "type mismatch in complex expression"
msgstr ""
-#: tree-cfg.c:3555
+#: tree-cfg.c:3534
#, gcc-internal-format
msgid "type mismatch in shift expression"
msgstr ""
-#: tree-cfg.c:3578
+#: tree-cfg.c:3557
#, gcc-internal-format
msgid "type mismatch in vector shift expression"
msgstr ""
-#: tree-cfg.c:3591
+#: tree-cfg.c:3570
#, gcc-internal-format
msgid "non-element sized vector shift of floating point vector"
msgstr ""
-#: tree-cfg.c:3605 tree-cfg.c:3626
+#: tree-cfg.c:3584 tree-cfg.c:3605
#, gcc-internal-format
msgid "type mismatch in widening vector shift expression"
msgstr ""
-#: tree-cfg.c:3648
+#: tree-cfg.c:3627
#, gcc-internal-format
msgid "invalid non-vector operands to vector valued plus"
msgstr ""
-#: tree-cfg.c:3668
+#: tree-cfg.c:3647
#, gcc-internal-format
msgid "invalid (pointer) operands to plus/minus"
msgstr ""
-#: tree-cfg.c:3683
+#: tree-cfg.c:3662
#, gcc-internal-format
msgid "type mismatch in pointer plus expression"
msgstr ""
-#: tree-cfg.c:3760
+#: tree-cfg.c:3742
#, gcc-internal-format
msgid "type mismatch in binary expression"
msgstr ""
-#: tree-cfg.c:3788
+#: tree-cfg.c:3770
#, gcc-internal-format
msgid "non-register as LHS of ternary operation"
msgstr ""
-#: tree-cfg.c:3797
+#: tree-cfg.c:3779
#, gcc-internal-format
msgid "invalid operands in ternary operation"
msgstr ""
-#: tree-cfg.c:3813
+#: tree-cfg.c:3795
#, gcc-internal-format
msgid "type mismatch in widening multiply-accumulate expression"
msgstr ""
-#: tree-cfg.c:3827
+#: tree-cfg.c:3809
#, gcc-internal-format
msgid "type mismatch in fused multiply-add expression"
msgstr ""
-#: tree-cfg.c:3853
+#: tree-cfg.c:3823 c/c-typeck.c:4302
+#, gcc-internal-format
+msgid "type mismatch in conditional expression"
+msgstr ""
+
+#: tree-cfg.c:3835
#, gcc-internal-format
msgid "type mismatch in vector permute expression"
msgstr ""
-#: tree-cfg.c:3865
+#: tree-cfg.c:3847
#, gcc-internal-format
msgid "vector types expected in vector permute expression"
msgstr ""
-#: tree-cfg.c:3879
+#: tree-cfg.c:3861
#, gcc-internal-format
msgid ""
"vectors with different element number found in vector permute expression"
msgstr ""
-#: tree-cfg.c:3892
+#: tree-cfg.c:3874
#, gcc-internal-format
msgid "invalid mask type in vector permute expression"
msgstr ""
-#: tree-cfg.c:3928
+#: tree-cfg.c:3910
#, gcc-internal-format
msgid "non-trivial conversion at assignment"
msgstr ""
-#: tree-cfg.c:3945
+#: tree-cfg.c:3919
+#, gcc-internal-format
+msgid "non-decl LHS in clobber statement"
+msgstr ""
+
+#: tree-cfg.c:3935
#, gcc-internal-format
msgid "invalid operand in unary expression"
msgstr ""
-#: tree-cfg.c:3959
+#: tree-cfg.c:3949
#, gcc-internal-format
msgid "type mismatch in address expression"
msgstr ""
-#: tree-cfg.c:3985 tree-cfg.c:4011
+#: tree-cfg.c:3975 tree-cfg.c:4001
#, gcc-internal-format
msgid "invalid rhs for gimple memory store"
msgstr ""
-#: tree-cfg.c:4073
+#: tree-cfg.c:4063
#, gcc-internal-format
msgid "invalid operand in return statement"
msgstr ""
-#: tree-cfg.c:4087
+#: tree-cfg.c:4078
#, gcc-internal-format
msgid "invalid conversion in return statement"
msgstr ""
-#: tree-cfg.c:4111
+#: tree-cfg.c:4102
#, gcc-internal-format
msgid "goto destination is neither a label nor a pointer"
msgstr ""
-#: tree-cfg.c:4130
+#: tree-cfg.c:4121
#, gcc-internal-format
msgid "invalid operand to switch statement"
msgstr ""
-#: tree-cfg.c:4138
+#: tree-cfg.c:4129
#, gcc-internal-format
msgid "non-integral type switch statement"
msgstr ""
-#: tree-cfg.c:4146
+#: tree-cfg.c:4137
#, gcc-internal-format
msgid "invalid default case label in switch statement"
msgstr ""
-#: tree-cfg.c:4158
+#: tree-cfg.c:4149
#, gcc-internal-format
msgid "invalid case label in switch statement"
msgstr ""
-#: tree-cfg.c:4165
+#: tree-cfg.c:4156
#, gcc-internal-format
msgid "invalid case range in switch statement"
msgstr ""
-#: tree-cfg.c:4175
+#: tree-cfg.c:4166
#, gcc-internal-format
msgid "type mismatch for case label in switch statement"
msgstr ""
-#: tree-cfg.c:4185
+#: tree-cfg.c:4176
#, gcc-internal-format
msgid "type precision mismatch in switch statement"
msgstr ""
-#: tree-cfg.c:4194
+#: tree-cfg.c:4185
#, gcc-internal-format
msgid "case labels not sorted in switch statement"
msgstr ""
-#: tree-cfg.c:4241
+#: tree-cfg.c:4232
#, gcc-internal-format
msgid "incorrect entry in label_to_block_map"
msgstr ""
-#: tree-cfg.c:4251
+#: tree-cfg.c:4242
#, gcc-internal-format
msgid "incorrect setting of landing pad number"
msgstr ""
-#: tree-cfg.c:4279
+#: tree-cfg.c:4270
#, gcc-internal-format
msgid "invalid comparison code in gimple cond"
msgstr ""
-#: tree-cfg.c:4287
+#: tree-cfg.c:4278
#, gcc-internal-format
msgid "invalid labels in gimple cond"
msgstr ""
-#: tree-cfg.c:4348 tree-cfg.c:4357
+#: tree-cfg.c:4339 tree-cfg.c:4348
#, gcc-internal-format
msgid "invalid PHI result"
msgstr ""
-#: tree-cfg.c:4367
+#: tree-cfg.c:4358
#, gcc-internal-format
msgid "missing PHI def"
msgstr ""
-#: tree-cfg.c:4381
+#: tree-cfg.c:4372
#, gcc-internal-format
msgid "invalid PHI argument"
msgstr ""
-#: tree-cfg.c:4388
+#: tree-cfg.c:4379
#, gcc-internal-format, gfc-internal-format
msgid "incompatible types in PHI argument %u"
msgstr ""
-#: tree-cfg.c:4472 tree-cfg.c:4668
+#: tree-cfg.c:4463 tree-cfg.c:4659
#, gcc-internal-format
msgid "verify_gimple failed"
msgstr ""
-#: tree-cfg.c:4533
+#: tree-cfg.c:4524
#, gcc-internal-format
msgid "dead STMT in EH table"
msgstr ""
-#: tree-cfg.c:4567
+#: tree-cfg.c:4558
#, gcc-internal-format
msgid "gimple_bb (phi) is set to a wrong basic block"
msgstr ""
-#: tree-cfg.c:4579 tree-cfg.c:4613
+#: tree-cfg.c:4570 tree-cfg.c:4604
#, gcc-internal-format
msgid "incorrect sharing of tree nodes"
msgstr ""
-#: tree-cfg.c:4602
+#: tree-cfg.c:4593
#, gcc-internal-format
msgid "gimple_bb (stmt) is set to a wrong basic block"
msgstr ""
-#: tree-cfg.c:4628
+#: tree-cfg.c:4619
#, gcc-internal-format
msgid "in statement"
msgstr ""
-#: tree-cfg.c:4643
+#: tree-cfg.c:4634
#, gcc-internal-format
msgid "statement marked for throw, but doesn%'t"
msgstr ""
-#: tree-cfg.c:4650
+#: tree-cfg.c:4641
#, gcc-internal-format
msgid "statement marked for throw in middle of block"
msgstr ""
-#: tree-cfg.c:4691
+#: tree-cfg.c:4682
#, gcc-internal-format
msgid "ENTRY_BLOCK has IL associated with it"
msgstr ""
-#: tree-cfg.c:4697
+#: tree-cfg.c:4688
#, gcc-internal-format
msgid "EXIT_BLOCK has IL associated with it"
msgstr ""
-#: tree-cfg.c:4704
+#: tree-cfg.c:4695
#, gcc-internal-format, gfc-internal-format
msgid "fallthru to exit from bb %d"
msgstr ""
-#: tree-cfg.c:4728
+#: tree-cfg.c:4719
#, gcc-internal-format
msgid "nonlocal label "
msgstr ""
-#: tree-cfg.c:4737
+#: tree-cfg.c:4728
#, gcc-internal-format
msgid "EH landing pad label "
msgstr ""
-#: tree-cfg.c:4746 tree-cfg.c:4755 tree-cfg.c:4780
+#: tree-cfg.c:4737 tree-cfg.c:4746 tree-cfg.c:4771
#, gcc-internal-format
msgid "label "
msgstr ""
-#: tree-cfg.c:4770
+#: tree-cfg.c:4761
#, gcc-internal-format, gfc-internal-format
msgid "control flow in the middle of basic block %d"
msgstr ""
-#: tree-cfg.c:4803
+#: tree-cfg.c:4794
#, gcc-internal-format, gfc-internal-format
msgid "fallthru edge after a control statement in bb %d"
msgstr ""
-#: tree-cfg.c:4816
+#: tree-cfg.c:4807
#, gcc-internal-format, gfc-internal-format
msgid "true/false edge after a non-GIMPLE_COND in bb %d"
msgstr ""
-#: tree-cfg.c:4839 tree-cfg.c:4861 tree-cfg.c:4878 tree-cfg.c:4947
+#: tree-cfg.c:4830 tree-cfg.c:4852 tree-cfg.c:4869 tree-cfg.c:4938
#, gcc-internal-format, gfc-internal-format
msgid "wrong outgoing edge flags at end of bb %d"
msgstr ""
-#: tree-cfg.c:4849
+#: tree-cfg.c:4840
#, gcc-internal-format, gfc-internal-format
msgid "explicit goto at end of bb %d"
msgstr ""
-#: tree-cfg.c:4883
+#: tree-cfg.c:4874
#, gcc-internal-format, gfc-internal-format
msgid "return edge does not point to exit in bb %d"
msgstr ""
-#: tree-cfg.c:4913
+#: tree-cfg.c:4904
#, gcc-internal-format
msgid "found default case not at the start of case vector"
msgstr ""
-#: tree-cfg.c:4921
+#: tree-cfg.c:4912
#, gcc-internal-format
msgid "case labels not sorted: "
msgstr ""
-#: tree-cfg.c:4938
+#: tree-cfg.c:4929
#, gcc-internal-format, gfc-internal-format
msgid "extra outgoing edge %d->%d"
msgstr ""
-#: tree-cfg.c:4961
+#: tree-cfg.c:4952
#, gcc-internal-format, gfc-internal-format
msgid "missing edge %i->%i"
msgstr ""
-#: tree-cfg.c:7641
+#: tree-cfg.c:7686
#, gcc-internal-format
msgid "%<noreturn%> function does return"
msgstr ""
-#: tree-cfg.c:7661
+#: tree-cfg.c:7706
#, gcc-internal-format
msgid "control reaches end of non-void function"
msgstr ""
-#: tree-cfg.c:7799
+#: tree-cfg.c:7844
#, gcc-internal-format
msgid ""
"ignoring return value of %qD, declared with attribute warn_unused_result"
msgstr ""
-#: tree-cfg.c:7804
+#: tree-cfg.c:7849
#, gcc-internal-format
msgid ""
"ignoring return value of function declared with attribute warn_unused_result"
msgstr ""
-#: tree-dump.c:933
+#: tree-dump.c:932
#, gcc-internal-format
msgid "could not open dump file %qs: %m"
msgstr ""
-#: tree-dump.c:1066
+#: tree-dump.c:1065
#, gcc-internal-format
msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
msgstr ""
-#: tree-eh.c:4334
+#: tree-eh.c:4340
#, gcc-internal-format, gfc-internal-format
msgid "BB %i has multiple EH edges"
msgstr ""
-#: tree-eh.c:4346
+#: tree-eh.c:4352
#, gcc-internal-format, gfc-internal-format
msgid "BB %i can not throw but has an EH edge"
msgstr ""
-#: tree-eh.c:4354
+#: tree-eh.c:4360
#, gcc-internal-format, gfc-internal-format
msgid "BB %i last statement has incorrectly set lp"
msgstr ""
-#: tree-eh.c:4360
+#: tree-eh.c:4366
#, gcc-internal-format, gfc-internal-format
msgid "BB %i is missing an EH edge"
msgstr ""
-#: tree-eh.c:4366
+#: tree-eh.c:4372
#, gcc-internal-format, gfc-internal-format
msgid "Incorrect EH edge %i->%i"
msgstr ""
-#: tree-eh.c:4400 tree-eh.c:4419
+#: tree-eh.c:4406 tree-eh.c:4425
#, gcc-internal-format, gfc-internal-format
msgid "BB %i is missing an edge"
msgstr ""
-#: tree-eh.c:4436
+#: tree-eh.c:4442
#, gcc-internal-format, gfc-internal-format
msgid "BB %i too many fallthru edges"
msgstr ""
-#: tree-eh.c:4445
+#: tree-eh.c:4451
#, gcc-internal-format, gfc-internal-format
msgid "BB %i has incorrect edge"
msgstr ""
-#: tree-eh.c:4451
+#: tree-eh.c:4457
#, gcc-internal-format, gfc-internal-format
msgid "BB %i has incorrect fallthru edge"
msgstr ""
-#: tree-inline.c:3052
+#: tree-inline.c:2980
#, gcc-internal-format
msgid "function %q+F can never be copied because it receives a non-local goto"
msgstr ""
-#: tree-inline.c:3066
+#: tree-inline.c:2994
#, gcc-internal-format
msgid ""
"function %q+F can never be copied because it saves address of local label in "
"a static variable"
msgstr ""
-#: tree-inline.c:3106
+#: tree-inline.c:3034
#, gcc-internal-format
msgid ""
"function %q+F can never be inlined because it uses alloca (override using "
"the always_inline attribute)"
msgstr ""
-#: tree-inline.c:3120
+#: tree-inline.c:3048
#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses setjmp"
msgstr ""
-#: tree-inline.c:3134
+#: tree-inline.c:3062
#, gcc-internal-format
msgid ""
"function %q+F can never be inlined because it uses variable argument lists"
msgstr ""
-#: tree-inline.c:3146
+#: tree-inline.c:3074
#, gcc-internal-format
msgid ""
"function %q+F can never be inlined because it uses setjmp-longjmp exception "
"handling"
msgstr ""
-#: tree-inline.c:3154
+#: tree-inline.c:3082
#, gcc-internal-format
msgid "function %q+F can never be inlined because it uses non-local goto"
msgstr ""
-#: tree-inline.c:3166
+#: tree-inline.c:3094
#, gcc-internal-format
msgid ""
"function %q+F can never be inlined because it uses __builtin_return or "
"__builtin_apply_args"
msgstr ""
-#: tree-inline.c:3186
+#: tree-inline.c:3114
#, gcc-internal-format
msgid "function %q+F can never be inlined because it contains a computed goto"
msgstr ""
-#: tree-inline.c:3289
+#: tree-inline.c:3217
#, gcc-internal-format
msgid ""
"function %q+F can never be inlined because it is suppressed using -fno-inline"
msgstr ""
-#: tree-inline.c:3297
+#: tree-inline.c:3225
#, gcc-internal-format
msgid ""
"function %q+F can never be inlined because it uses attributes conflicting "
"with inlining"
msgstr ""
-#: tree-inline.c:3879
+#: tree-inline.c:3804
#, gcc-internal-format
msgid "inlining failed in call to always_inline %q+F: %s"
msgstr ""
-#: tree-inline.c:3881 tree-inline.c:3896
+#: tree-inline.c:3806 tree-inline.c:3821
#, gcc-internal-format
msgid "called from here"
msgstr ""
-#: tree-inline.c:3894
+#: tree-inline.c:3819
#, gcc-internal-format
msgid "inlining failed in call to %q+F: %s"
msgstr ""
-#: tree-mudflap.c:899
+#: tree-into-ssa.c:3206 tree-outof-ssa.c:781 tree-outof-ssa.c:838
+#: tree-ssa-coalesce.c:935 tree-ssa-live.c:1222
+#, gcc-internal-format
+msgid "SSA corruption"
+msgstr ""
+
+#: tree-mudflap.c:898
#, gcc-internal-format
msgid "mudflap checking not yet implemented for ARRAY_RANGE_REF"
msgstr ""
-#: tree-mudflap.c:1092
+#: tree-mudflap.c:1091
#, gcc-internal-format
msgid "mudflap cannot track %qE in stub function"
msgstr ""
-#: tree-mudflap.c:1336
+#: tree-mudflap.c:1335
#, gcc-internal-format
msgid "mudflap cannot track unknown size extern %qE"
msgstr ""
@@ -20463,218 +17025,212 @@ msgstr ""
msgid "mudflap: this language is not supported"
msgstr ""
-#: tree-outof-ssa.c:784 tree-outof-ssa.c:841 tree-ssa-coalesce.c:951
-#: tree-ssa-coalesce.c:966 tree-ssa-coalesce.c:1188 tree-ssa-live.c:1339
-#, gcc-internal-format
-msgid "SSA corruption"
-msgstr ""
-
-#: tree-profile.c:411
+#: tree-profile.c:409
#, gcc-internal-format
msgid "unimplemented functionality"
msgstr ""
-#: tree-ssa-operands.c:1082
+#: tree-ssa-operands.c:1078
#, gcc-internal-format
msgid "virtual definition of statement not up-to-date"
msgstr ""
-#: tree-ssa-operands.c:1089
+#: tree-ssa-operands.c:1085
#, gcc-internal-format
msgid "virtual def operand missing for stmt"
msgstr ""
-#: tree-ssa-operands.c:1099
+#: tree-ssa-operands.c:1095
#, gcc-internal-format
msgid "virtual use of statement not up-to-date"
msgstr ""
-#: tree-ssa-operands.c:1106
+#: tree-ssa-operands.c:1102
#, gcc-internal-format
msgid "virtual use operand missing for stmt"
msgstr ""
-#: tree-ssa-operands.c:1122
+#: tree-ssa-operands.c:1118
#, gcc-internal-format
msgid "excess use operand for stmt"
msgstr ""
-#: tree-ssa-operands.c:1130
+#: tree-ssa-operands.c:1126
#, gcc-internal-format
msgid "use operand missing for stmt"
msgstr ""
-#: tree-ssa-operands.c:1147
+#: tree-ssa-operands.c:1143
#, gcc-internal-format
msgid "excess def operand for stmt"
msgstr ""
-#: tree-ssa-operands.c:1155
+#: tree-ssa-operands.c:1151
#, gcc-internal-format
msgid "def operand missing for stmt"
msgstr ""
-#: tree-ssa-operands.c:1162
+#: tree-ssa-operands.c:1158
#, gcc-internal-format
msgid "stmt volatile flag not up-to-date"
msgstr ""
-#: tree-ssa-uninit.c:1957 tree-ssa.c:1686
+#: tree-ssa-uninit.c:1954 tree-ssa.c:1670
#, gcc-internal-format
msgid "%qD may be used uninitialized in this function"
msgstr ""
-#: tree-ssa.c:627
+#: tree-ssa.c:628
#, gcc-internal-format
msgid "expected an SSA_NAME object"
msgstr ""
-#: tree-ssa.c:633
+#: tree-ssa.c:635
#, gcc-internal-format
msgid "type mismatch between an SSA_NAME and its symbol"
msgstr ""
-#: tree-ssa.c:639
+#: tree-ssa.c:641
#, gcc-internal-format
msgid "found an SSA_NAME that had been released into the free pool"
msgstr ""
-#: tree-ssa.c:645
+#: tree-ssa.c:647
#, gcc-internal-format
msgid "found a virtual definition for a GIMPLE register"
msgstr ""
-#: tree-ssa.c:651
+#: tree-ssa.c:653
#, gcc-internal-format
msgid "virtual SSA name for non-VOP decl"
msgstr ""
-#: tree-ssa.c:657
+#: tree-ssa.c:659
#, gcc-internal-format
msgid "found a real definition for a non-register"
msgstr ""
-#: tree-ssa.c:664
+#: tree-ssa.c:666
#, gcc-internal-format
msgid "found a default name with a non-empty defining statement"
msgstr ""
-#: tree-ssa.c:693
+#: tree-ssa.c:696
#, gcc-internal-format
msgid "RESULT_DECL should be read only when DECL_BY_REFERENCE is set"
msgstr ""
-#: tree-ssa.c:699
+#: tree-ssa.c:702
#, gcc-internal-format, gfc-internal-format
msgid "SSA_NAME created in two different blocks %i and %i"
msgstr ""
-#: tree-ssa.c:708 tree-ssa.c:1020
+#: tree-ssa.c:711 tree-ssa.c:1023
#, gcc-internal-format
msgid "SSA_NAME_DEF_STMT is wrong"
msgstr ""
-#: tree-ssa.c:760
+#: tree-ssa.c:763
#, gcc-internal-format
msgid "missing definition"
msgstr ""
-#: tree-ssa.c:766
+#: tree-ssa.c:769
#, gcc-internal-format, gfc-internal-format
msgid "definition in block %i does not dominate use in block %i"
msgstr ""
-#: tree-ssa.c:774
+#: tree-ssa.c:777
#, gcc-internal-format, gfc-internal-format
msgid "definition in block %i follows the use"
msgstr ""
-#: tree-ssa.c:781
+#: tree-ssa.c:784
#, gcc-internal-format
msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
msgstr ""
-#: tree-ssa.c:789
+#: tree-ssa.c:792
#, gcc-internal-format
msgid "no immediate_use list"
msgstr ""
-#: tree-ssa.c:801
+#: tree-ssa.c:804
#, gcc-internal-format
msgid "wrong immediate use list"
msgstr ""
-#: tree-ssa.c:835
+#: tree-ssa.c:838
#, gcc-internal-format
msgid "incoming edge count does not match number of PHI arguments"
msgstr ""
-#: tree-ssa.c:849
+#: tree-ssa.c:852
#, gcc-internal-format, gfc-internal-format
msgid "PHI argument is missing for edge %d->%d"
msgstr ""
-#: tree-ssa.c:858
+#: tree-ssa.c:861
#, gcc-internal-format
msgid "PHI argument is not SSA_NAME, or invariant"
msgstr ""
-#: tree-ssa.c:886
+#: tree-ssa.c:889
#, gcc-internal-format, gfc-internal-format
msgid "wrong edge %d->%d for PHI argument"
msgstr ""
-#: tree-ssa.c:967
+#: tree-ssa.c:970
#, gcc-internal-format, gfc-internal-format
msgid "AUX pointer initialized for edge %d->%d"
msgstr ""
-#: tree-ssa.c:992
+#: tree-ssa.c:995
#, gcc-internal-format
msgid "stmt (%p) marked modified after optimization pass: "
msgstr ""
-#: tree-ssa.c:1049
+#: tree-ssa.c:1052
#, gcc-internal-format
msgid "verify_ssa failed"
msgstr ""
-#: tree-ssa.c:1649 varasm.c:322
+#: tree-ssa.c:1633 varasm.c:322
#, gcc-internal-format
msgid "%qD was declared here"
msgstr ""
-#: tree-ssa.c:1681
+#: tree-ssa.c:1665
#, gcc-internal-format
msgid "%qD is used uninitialized in this function"
msgstr ""
-#: tree-ssa.c:1718
+#: tree-ssa.c:1702
#, gcc-internal-format
msgid "%qE is used uninitialized in this function"
msgstr ""
-#: tree-ssa.c:1723
+#: tree-ssa.c:1707
#, gcc-internal-format
msgid "%qE may be used uninitialized in this function"
msgstr ""
-#: tree-streamer-in.c:306 tree-streamer-in.c:1082
+#: tree-streamer-in.c:305 tree-streamer-in.c:1081
#, gcc-internal-format
msgid "machine independent builtin code out of range"
msgstr ""
-#: tree-streamer-in.c:311 tree-streamer-in.c:1090
+#: tree-streamer-in.c:310 tree-streamer-in.c:1089
#, gcc-internal-format
msgid "target specific builtin not available"
msgstr ""
-#: tree-streamer-in.c:910
+#: tree-streamer-in.c:909
#, gcc-internal-format
msgid "cl_target_option size mismatch in LTO reader and writer"
msgstr ""
-#: tree-streamer-in.c:927
+#: tree-streamer-in.c:926
#, gcc-internal-format
msgid "cl_optimization size mismatch in LTO reader and writer"
msgstr ""
@@ -20686,12 +17242,12 @@ msgid ""
"this target"
msgstr ""
-#: tree-vect-generic.c:244
+#: tree-vect-generic.c:245
#, gcc-internal-format
msgid "vector operation will be expanded piecewise"
msgstr ""
-#: tree-vect-generic.c:247
+#: tree-vect-generic.c:248
#, gcc-internal-format
msgid "vector operation will be expanded in parallel"
msgstr ""
@@ -20701,292 +17257,292 @@ msgstr ""
msgid "vector operation will be expanded with a single scalar operation"
msgstr ""
-#: tree-vect-generic.c:646
+#: tree-vect-generic.c:1154
#, gcc-internal-format
msgid "vector shuffling operation will be expanded piecewise"
msgstr ""
-#: tree-vrp.c:5741
+#: tree-vrp.c:5893
#, gcc-internal-format
msgid "array subscript is outside array bounds"
msgstr ""
-#: tree-vrp.c:5753 tree-vrp.c:5840
+#: tree-vrp.c:5905 tree-vrp.c:5988
#, gcc-internal-format
msgid "array subscript is above array bounds"
msgstr ""
-#: tree-vrp.c:5760 tree-vrp.c:5828
+#: tree-vrp.c:5912 tree-vrp.c:5980
#, gcc-internal-format
msgid "array subscript is below array bounds"
msgstr ""
-#: tree-vrp.c:6469
+#: tree-vrp.c:6619
#, gcc-internal-format
msgid ""
"assuming signed overflow does not occur when simplifying conditional to "
"constant"
msgstr ""
-#: tree-vrp.c:6475
+#: tree-vrp.c:6625
#, gcc-internal-format
msgid "assuming signed overflow does not occur when simplifying conditional"
msgstr ""
-#: tree-vrp.c:6519
+#: tree-vrp.c:6669
#, gcc-internal-format
msgid "comparison always false due to limited range of data type"
msgstr ""
-#: tree-vrp.c:6521
+#: tree-vrp.c:6671
#, gcc-internal-format
msgid "comparison always true due to limited range of data type"
msgstr ""
-#: tree-vrp.c:7385
+#: tree-vrp.c:8107
#, gcc-internal-format
msgid ""
"assuming signed overflow does not occur when simplifying %</%> or %<%%%> to "
"%<>>%> or %<&%>"
msgstr ""
-#: tree-vrp.c:7467
+#: tree-vrp.c:8189
#, gcc-internal-format
msgid ""
"assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X"
"%> or %<-X%>"
msgstr ""
-#: tree.c:4293
+#: tree.c:4255
#, gcc-internal-format
msgid "ignoring attributes applied to %qT after definition"
msgstr ""
-#: tree.c:5521
+#: tree.c:5491
#, gcc-internal-format
msgid "%q+D already declared with dllexport attribute: dllimport ignored"
msgstr ""
-#: tree.c:5533
+#: tree.c:5503
#, gcc-internal-format
msgid ""
"%q+D redeclared without dllimport attribute after being referenced with dll "
"linkage"
msgstr ""
-#: tree.c:5548
+#: tree.c:5518
#, gcc-internal-format
msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
msgstr ""
-#: tree.c:5591 tree.c:5603 tree.c:5613 c-family/c-common.c:5999
-#: c-family/c-common.c:6018 c-family/c-common.c:6036 c-family/c-common.c:6064
-#: c-family/c-common.c:6091 c-family/c-common.c:6117 c-family/c-common.c:6136
-#: c-family/c-common.c:6153 c-family/c-common.c:6177 c-family/c-common.c:6200
-#: c-family/c-common.c:6217 c-family/c-common.c:6245 c-family/c-common.c:6266
-#: c-family/c-common.c:6287 c-family/c-common.c:6314 c-family/c-common.c:6345
-#: c-family/c-common.c:6382 c-family/c-common.c:6409 c-family/c-common.c:6467
-#: c-family/c-common.c:6551 c-family/c-common.c:6581 c-family/c-common.c:6635
-#: c-family/c-common.c:6998 c-family/c-common.c:7016 c-family/c-common.c:7078
-#: c-family/c-common.c:7121 c-family/c-common.c:7192 c-family/c-common.c:7320
-#: c-family/c-common.c:7388 c-family/c-common.c:7446 c-family/c-common.c:7494
-#: c-family/c-common.c:7657 c-family/c-common.c:7678 c-family/c-common.c:7790
-#: c-family/c-common.c:7814 c-family/c-common.c:8105 c-family/c-common.c:8128
-#: c-family/c-common.c:8167 c-family/c-common.c:8245 c-family/c-common.c:8394
-#: config/darwin.c:1942 config/arm/arm.c:5018 config/arm/arm.c:5046
-#: config/arm/arm.c:5063 config/avr/avr.c:6729 config/h8300/h8300.c:5458
-#: config/h8300/h8300.c:5482 config/i386/i386.c:5048 config/i386/i386.c:32590
-#: config/ia64/ia64.c:736 config/rs6000/rs6000.c:24587 config/spu/spu.c:4034
-#: ada/gcc-interface/utils.c:6183 lto/lto-lang.c:222
+#: tree.c:5561 tree.c:5573 tree.c:5583 c-family/c-common.c:6236
+#: c-family/c-common.c:6255 c-family/c-common.c:6273 c-family/c-common.c:6301
+#: c-family/c-common.c:6329 c-family/c-common.c:6357 c-family/c-common.c:6376
+#: c-family/c-common.c:6393 c-family/c-common.c:6417 c-family/c-common.c:6440
+#: c-family/c-common.c:6457 c-family/c-common.c:6485 c-family/c-common.c:6506
+#: c-family/c-common.c:6527 c-family/c-common.c:6554 c-family/c-common.c:6585
+#: c-family/c-common.c:6622 c-family/c-common.c:6649 c-family/c-common.c:6707
+#: c-family/c-common.c:6792 c-family/c-common.c:6822 c-family/c-common.c:6876
+#: c-family/c-common.c:7239 c-family/c-common.c:7257 c-family/c-common.c:7319
+#: c-family/c-common.c:7362 c-family/c-common.c:7433 c-family/c-common.c:7561
+#: c-family/c-common.c:7629 c-family/c-common.c:7687 c-family/c-common.c:7735
+#: c-family/c-common.c:7898 c-family/c-common.c:7919 c-family/c-common.c:8031
+#: c-family/c-common.c:8055 c-family/c-common.c:8362 c-family/c-common.c:8385
+#: c-family/c-common.c:8424 c-family/c-common.c:8502 c-family/c-common.c:8651
+#: config/darwin.c:1942 config/arm/arm.c:5022 config/arm/arm.c:5050
+#: config/arm/arm.c:5067 config/avr/avr.c:7570 config/h8300/h8300.c:5464
+#: config/h8300/h8300.c:5488 config/i386/i386.c:5153 config/i386/i386.c:33151
+#: config/ia64/ia64.c:739 config/rs6000/rs6000.c:24659 config/spu/spu.c:3744
+#: ada/gcc-interface/utils.c:6173 lto/lto-lang.c:222
#, gcc-internal-format
msgid "%qE attribute ignored"
msgstr ""
-#: tree.c:5631
+#: tree.c:5601
#, gcc-internal-format
msgid "inline function %q+D declared as dllimport: attribute ignored"
msgstr ""
-#: tree.c:5639
+#: tree.c:5609
#, gcc-internal-format
msgid "function %q+D definition is marked dllimport"
msgstr ""
-#: tree.c:5647
+#: tree.c:5617
#, gcc-internal-format
msgid "variable %q+D definition is marked dllimport"
msgstr ""
-#: tree.c:5675
+#: tree.c:5645
#, gcc-internal-format
msgid "external linkage required for symbol %q+D because of %qE attribute"
msgstr ""
-#: tree.c:5689
+#: tree.c:5659
#, gcc-internal-format
msgid ""
"%qE implies default visibility, but %qD has already been declared with a "
"different visibility"
msgstr ""
-#: tree.c:7456
+#: tree.c:7434
#, gcc-internal-format
msgid "arrays of functions are not meaningful"
msgstr ""
-#: tree.c:7623
+#: tree.c:7601
#, gcc-internal-format
msgid "function return type cannot be function"
msgstr ""
-#: tree.c:8902 tree.c:8987 tree.c:9048
+#: tree.c:8891 tree.c:8976 tree.c:9037
#, gcc-internal-format, gfc-internal-format
msgid "tree check: %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:8939
+#: tree.c:8928
#, gcc-internal-format, gfc-internal-format
msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:8952
+#: tree.c:8941
#, gcc-internal-format
msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
msgstr ""
-#: tree.c:9001
+#: tree.c:8990
#, gcc-internal-format
msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
msgstr ""
-#: tree.c:9014
+#: tree.c:9003
#, gcc-internal-format, gfc-internal-format
msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:9074
+#: tree.c:9063
#, gcc-internal-format
msgid ""
"tree check: expected tree that contains %qs structure, have %qs in %s, at %s:"
"%d"
msgstr ""
-#: tree.c:9088
+#: tree.c:9077
#, gcc-internal-format, gfc-internal-format
msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
msgstr ""
-#: tree.c:9101
+#: tree.c:9090
#, gcc-internal-format, gfc-internal-format
msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
msgstr ""
-#: tree.c:9114
+#: tree.c:9103
#, gcc-internal-format, gfc-internal-format
msgid ""
"tree check: accessed operand %d of omp_clause %s with %d operands in %s, at "
"%s:%d"
msgstr ""
-#: tree.c:11444
+#: tree.c:11437
#, gcc-internal-format
msgid "%qD is deprecated (declared at %s:%d): %s"
msgstr ""
-#: tree.c:11448
+#: tree.c:11441
#, gcc-internal-format
msgid "%qD is deprecated (declared at %s:%d)"
msgstr ""
-#: tree.c:11473
+#: tree.c:11466
#, gcc-internal-format
msgid "%qE is deprecated (declared at %s:%d): %s"
msgstr ""
-#: tree.c:11477
+#: tree.c:11470
#, gcc-internal-format
msgid "%qE is deprecated (declared at %s:%d)"
msgstr ""
-#: tree.c:11484
+#: tree.c:11477
#, gcc-internal-format, gfc-internal-format
msgid "type is deprecated (declared at %s:%d): %s"
msgstr ""
-#: tree.c:11488
+#: tree.c:11481
#, gcc-internal-format, gfc-internal-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: tree.c:11497
+#: tree.c:11490
#, gcc-internal-format
msgid "%qE is deprecated: %s"
msgstr ""
-#: tree.c:11500
+#: tree.c:11493
#, gcc-internal-format
msgid "%qE is deprecated"
msgstr ""
-#: tree.c:11505
+#: tree.c:11498
#, gcc-internal-format, gfc-internal-format
msgid "type is deprecated: %s"
msgstr ""
-#: tree.c:11508
+#: tree.c:11501
#, gcc-internal-format
msgid "type is deprecated"
msgstr ""
-#: value-prof.c:375
+#: value-prof.c:409
#, gcc-internal-format
msgid "dead histogram"
msgstr ""
-#: value-prof.c:406
+#: value-prof.c:440
#, gcc-internal-format
msgid ""
"Histogram value statement does not correspond to the statement it is "
"associated with"
msgstr ""
-#: value-prof.c:419
+#: value-prof.c:453
#, gcc-internal-format
msgid "verify_histograms failed"
msgstr ""
-#: value-prof.c:466
+#: value-prof.c:500
#, gcc-internal-format, gfc-internal-format
msgid ""
"correcting inconsistent value profile: %s profiler overall count (%d) does "
"not match BB count (%d)"
msgstr ""
-#: value-prof.c:476
+#: value-prof.c:510
#, gcc-internal-format, gfc-internal-format
msgid ""
"corrupted value profile: %s profile counter (%d out of %d) inconsistent with "
"basic-block count (%d)"
msgstr ""
-#: value-prof.c:1104 value-prof.c:1106
+#: value-prof.c:1130 value-prof.c:1132
#, gcc-internal-format, gfc-internal-format
msgid "Inconsistent profile: indirect call target (%d) does not exist"
msgstr ""
-#: value-prof.c:1128
+#: value-prof.c:1154
#, gcc-internal-format, gfc-internal-format
msgid "Skipping target %s with mismatching types for icall "
msgstr ""
-#: var-tracking.c:6724
+#: var-tracking.c:6857
#, gcc-internal-format
msgid ""
"variable tracking size limit exceeded with -fvar-tracking-assignments, "
"retrying without"
msgstr ""
-#: var-tracking.c:6728
+#: var-tracking.c:6861
#, gcc-internal-format
msgid "variable tracking size limit exceeded"
msgstr ""
@@ -21055,23 +17611,28 @@ msgstr ""
msgid "register name given for non-register variable %q+D"
msgstr ""
-#: varasm.c:1816
+#: varasm.c:1818
#, gcc-internal-format
msgid "thread-local COMMON data not implemented"
msgstr ""
-#: varasm.c:1845
+#: varasm.c:1847
#, gcc-internal-format
msgid ""
"requested alignment for %q+D is greater than implemented alignment of %wu"
msgstr ""
-#: varasm.c:4546
+#: varasm.c:1934 c/c-decl.c:4351
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t known"
+msgstr ""
+
+#: varasm.c:4547
#, gcc-internal-format
msgid "initializer for integer/fixed-point value is too complicated"
msgstr ""
-#: varasm.c:4551
+#: varasm.c:4552
#, gcc-internal-format
msgid "initializer for floating value is not a floating constant"
msgstr ""
@@ -21121,7 +17682,7 @@ msgstr ""
msgid "alias definitions not supported in this configuration"
msgstr ""
-#: varasm.c:5756 config/sol2.c:156 config/i386/winnt.c:254
+#: varasm.c:5750 config/sol2.c:156 config/i386/winnt.c:254
#, gcc-internal-format
msgid "visibility attribute not supported in this configuration; ignored"
msgstr ""
@@ -21131,7 +17692,7 @@ msgstr ""
msgid "variable %q+D part of alias cycle"
msgstr ""
-#: vec.c:527
+#: vec.c:408
#, gcc-internal-format, gfc-internal-format
msgid "vector %s %s domain error, in %s at %s:%u"
msgstr ""
@@ -21142,1177 +17703,1297 @@ msgstr ""
msgid "no sclass for %s stab (0x%x)"
msgstr ""
-#: lto-streamer.h:962
+#: lto-streamer.h:950
#, gcc-internal-format, gfc-internal-format
msgid "bytecode stream: expected tag %s instead of %s"
msgstr ""
-#: lto-streamer.h:972
+#: lto-streamer.h:960
#, gcc-internal-format, gfc-internal-format
msgid "bytecode stream: tag %s is not in the expected range [%s, %s]"
msgstr ""
-#: c-family/c-common.c:915
+#: c-family/c-common.c:914
#, gcc-internal-format
msgid "%qD is not defined outside of function scope"
msgstr ""
-#: c-family/c-common.c:965
+#: c-family/c-common.c:964
#, gcc-internal-format
msgid ""
"string length %qd is greater than the length %qd ISO C%d compilers are "
"required to support"
msgstr ""
-#: c-family/c-common.c:1493 c-family/c-common.c:1505 cp/semantics.c:6672
-#: cp/semantics.c:8054
+#: c-family/c-common.c:1492 c-family/c-common.c:1504 cp/semantics.c:6697
+#: cp/semantics.c:8127
#, gcc-internal-format
msgid "overflow in constant expression"
msgstr ""
-#: c-family/c-common.c:1528
+#: c-family/c-common.c:1527
#, gcc-internal-format
msgid "integer overflow in expression"
msgstr ""
-#: c-family/c-common.c:1533
+#: c-family/c-common.c:1532
#, gcc-internal-format
msgid "floating point overflow in expression"
msgstr ""
-#: c-family/c-common.c:1537
+#: c-family/c-common.c:1536
#, gcc-internal-format
msgid "fixed-point overflow in expression"
msgstr ""
-#: c-family/c-common.c:1541
+#: c-family/c-common.c:1540
#, gcc-internal-format
msgid "vector overflow in expression"
msgstr ""
-#: c-family/c-common.c:1547
+#: c-family/c-common.c:1546
#, gcc-internal-format
msgid "complex integer overflow in expression"
msgstr ""
-#: c-family/c-common.c:1550
+#: c-family/c-common.c:1549
#, gcc-internal-format
msgid "complex floating point overflow in expression"
msgstr ""
-#: c-family/c-common.c:1593
+#: c-family/c-common.c:1592
#, gcc-internal-format
msgid "logical %<or%> applied to non-boolean constant"
msgstr ""
-#: c-family/c-common.c:1596
+#: c-family/c-common.c:1595
#, gcc-internal-format
msgid "logical %<and%> applied to non-boolean constant"
msgstr ""
-#: c-family/c-common.c:1660
+#: c-family/c-common.c:1659
#, gcc-internal-format
msgid "logical %<or%> of collectively exhaustive tests is always true"
msgstr ""
-#: c-family/c-common.c:1664
+#: c-family/c-common.c:1663
#, gcc-internal-format
msgid "logical %<and%> of mutually exclusive tests is always false"
msgstr ""
-#: c-family/c-common.c:1762 cp/cvt.c:1147 cp/cvt.c:1393
+#: c-family/c-common.c:1761 cp/cvt.c:1150 cp/cvt.c:1396
#, gcc-internal-format
msgid "value computed is not used"
msgstr ""
-#: c-family/c-common.c:1796
+#: c-family/c-common.c:1795
#, gcc-internal-format
msgid "type-punning to incomplete type might break strict-aliasing rules"
msgstr ""
-#: c-family/c-common.c:1811
+#: c-family/c-common.c:1810
#, gcc-internal-format
msgid "dereferencing type-punned pointer will break strict-aliasing rules"
msgstr ""
-#: c-family/c-common.c:1818 c-family/c-common.c:1836
+#: c-family/c-common.c:1817 c-family/c-common.c:1835
#, gcc-internal-format
msgid "dereferencing type-punned pointer might break strict-aliasing rules"
msgstr ""
-#: c-family/c-common.c:1867
+#: c-family/c-common.c:1914
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same expression as the "
+"destination; did you mean to remove the addressof?"
+msgstr ""
+
+#: c-family/c-common.c:1921
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same expression as the "
+"destination; did you mean to provide an explicit length?"
+msgstr ""
+
+#: c-family/c-common.c:1926
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same expression as the "
+"destination; did you mean to dereference it?"
+msgstr ""
+
+#: c-family/c-common.c:1938
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same pointer type %qT as the "
+"destination; expected %qT or an explicit length"
+msgstr ""
+
+#: c-family/c-common.c:1954
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same expression as the source; did "
+"you mean to remove the addressof?"
+msgstr ""
+
+#: c-family/c-common.c:1961
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same expression as the source; did "
+"you mean to provide an explicit length?"
+msgstr ""
+
+#: c-family/c-common.c:1966
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same expression as the source; did "
+"you mean to dereference it?"
+msgstr ""
+
+#: c-family/c-common.c:1978
+#, gcc-internal-format
+msgid ""
+"argument to %<sizeof%> in %qD call is the same pointer type %qT as the "
+"source; expected %qT or an explicit length"
+msgstr ""
+
+#: c-family/c-common.c:2009
#, gcc-internal-format
msgid "first argument of %q+D should be %<int%>"
msgstr ""
-#: c-family/c-common.c:1876
+#: c-family/c-common.c:2018
#, gcc-internal-format
msgid "second argument of %q+D should be %<char **%>"
msgstr ""
-#: c-family/c-common.c:1885
+#: c-family/c-common.c:2027
#, gcc-internal-format
msgid "third argument of %q+D should probably be %<char **%>"
msgstr ""
-#: c-family/c-common.c:1896
+#: c-family/c-common.c:2038
#, gcc-internal-format
msgid "%q+D takes only zero or two arguments"
msgstr ""
-#: c-family/c-common.c:1945
+#: c-family/c-common.c:2087
#, gcc-internal-format
msgid ""
"use -flax-vector-conversions to permit conversions between vectors with "
"differing element types or numbers of subparts"
msgstr ""
-#: c-family/c-common.c:2116
+#: c-family/c-common.c:2126
+#, gcc-internal-format
+msgid "__builtin_shuffle last argument must be an integer vector"
+msgstr ""
+
+#: c-family/c-common.c:2134
+#, gcc-internal-format
+msgid "__builtin_shuffle arguments must be vectors"
+msgstr ""
+
+#: c-family/c-common.c:2140
+#, gcc-internal-format
+msgid "__builtin_shuffle argument vectors must be of the same type"
+msgstr ""
+
+#: c-family/c-common.c:2150
+#, gcc-internal-format
+msgid ""
+"__builtin_shuffle number of elements of the argument vector(s) and the mask "
+"vector should be the same"
+msgstr ""
+
+#: c-family/c-common.c:2159
+#, gcc-internal-format
+msgid ""
+"__builtin_shuffle argument vector(s) inner type must have the same size as "
+"inner type of the mask"
+msgstr ""
+
+#: c-family/c-common.c:2353
#, gcc-internal-format
msgid "negative integer implicitly converted to unsigned type"
msgstr ""
-#: c-family/c-common.c:2122
+#: c-family/c-common.c:2359
#, gcc-internal-format
msgid "conversion of unsigned constant value to negative integer"
msgstr ""
-#: c-family/c-common.c:2216
+#: c-family/c-common.c:2453
#, gcc-internal-format
msgid "conversion to %qT from %qT may change the sign of the result"
msgstr ""
-#: c-family/c-common.c:2285
+#: c-family/c-common.c:2522
#, gcc-internal-format
msgid "conversion to %qT from boolean expression"
msgstr ""
-#: c-family/c-common.c:2292
+#: c-family/c-common.c:2529
#, gcc-internal-format
msgid "conversion to %qT alters %qT constant value"
msgstr ""
-#: c-family/c-common.c:2319
+#: c-family/c-common.c:2556
#, gcc-internal-format
msgid "conversion to %qT from %qT may alter its value"
msgstr ""
-#: c-family/c-common.c:2349
+#: c-family/c-common.c:2586
#, gcc-internal-format
msgid "large integer implicitly truncated to unsigned type"
msgstr ""
-#: c-family/c-common.c:2355 c-family/c-common.c:2362 c-family/c-common.c:2370
+#: c-family/c-common.c:2592 c-family/c-common.c:2599 c-family/c-common.c:2607
#, gcc-internal-format
msgid "overflow in implicit constant conversion"
msgstr ""
-#: c-family/c-common.c:2542
+#: c-family/c-common.c:2779
#, gcc-internal-format
msgid "operation on %qE may be undefined"
msgstr ""
-#: c-family/c-common.c:2853
+#: c-family/c-common.c:3090
#, gcc-internal-format
msgid "case label does not reduce to an integer constant"
msgstr ""
-#: c-family/c-common.c:2893
+#: c-family/c-common.c:3130
#, gcc-internal-format
msgid "case label value is less than minimum value for type"
msgstr ""
-#: c-family/c-common.c:2901
+#: c-family/c-common.c:3138
#, gcc-internal-format
msgid "case label value exceeds maximum value for type"
msgstr ""
-#: c-family/c-common.c:2909
+#: c-family/c-common.c:3146
#, gcc-internal-format
msgid "lower value in case label range less than minimum value for type"
msgstr ""
-#: c-family/c-common.c:2918
+#: c-family/c-common.c:3155
#, gcc-internal-format
msgid "upper value in case label range exceeds maximum value for type"
msgstr ""
-#: c-family/c-common.c:2997
+#: c-family/c-common.c:3234
#, gcc-internal-format
msgid ""
"GCC cannot support operators with integer types and fixed-point types that "
"have too many integral and fractional bits together"
msgstr ""
-#: c-family/c-common.c:3500
+#: c-family/c-common.c:3737
#, gcc-internal-format
msgid "invalid operands to binary %s (have %qT and %qT)"
msgstr ""
-#: c-family/c-common.c:3761
+#: c-family/c-common.c:3998
#, gcc-internal-format
msgid "comparison is always false due to limited range of data type"
msgstr ""
-#: c-family/c-common.c:3764
+#: c-family/c-common.c:4001
#, gcc-internal-format
msgid "comparison is always true due to limited range of data type"
msgstr ""
-#: c-family/c-common.c:3849
+#: c-family/c-common.c:4086
#, gcc-internal-format
msgid "comparison of unsigned expression >= 0 is always true"
msgstr ""
-#: c-family/c-common.c:3856
+#: c-family/c-common.c:4093
#, gcc-internal-format
msgid "comparison of unsigned expression < 0 is always false"
msgstr ""
-#: c-family/c-common.c:3898
+#: c-family/c-common.c:4135
#, gcc-internal-format
msgid "pointer of type %<void *%> used in arithmetic"
msgstr ""
-#: c-family/c-common.c:3904
+#: c-family/c-common.c:4141
#, gcc-internal-format
msgid "pointer to a function used in arithmetic"
msgstr ""
-#: c-family/c-common.c:3910
+#: c-family/c-common.c:4147
#, gcc-internal-format
msgid "pointer to member function used in arithmetic"
msgstr ""
-#: c-family/c-common.c:4122
+#: c-family/c-common.c:4359
#, gcc-internal-format
msgid "the address of %qD will always evaluate as %<true%>"
msgstr ""
-#: c-family/c-common.c:4217 cp/semantics.c:608 cp/typeck.c:7740
+#: c-family/c-common.c:4454 cp/semantics.c:595 cp/typeck.c:7779
#, gcc-internal-format
msgid "suggest parentheses around assignment used as truth value"
msgstr ""
-#: c-family/c-common.c:4489
+#: c-family/c-common.c:4533 c/c-decl.c:3684 c/c-typeck.c:10959
+#, gcc-internal-format
+msgid "invalid use of %<restrict%>"
+msgstr ""
+
+#: c-family/c-common.c:4726
#, gcc-internal-format
msgid "invalid application of %<sizeof%> to a function type"
msgstr ""
-#: c-family/c-common.c:4499
+#: c-family/c-common.c:4736
#, gcc-internal-format
msgid "ISO C++ does not permit %<alignof%> applied to a function type"
msgstr ""
-#: c-family/c-common.c:4502
+#: c-family/c-common.c:4739
#, gcc-internal-format
msgid "ISO C does not permit %<_Alignof%> applied to a function type"
msgstr ""
-#: c-family/c-common.c:4513
+#: c-family/c-common.c:4750
#, gcc-internal-format
msgid "invalid application of %qs to a void type"
msgstr ""
-#: c-family/c-common.c:4522
+#: c-family/c-common.c:4759
#, gcc-internal-format
msgid "invalid application of %qs to incomplete type %qT"
msgstr ""
-#: c-family/c-common.c:4530
+#: c-family/c-common.c:4767
#, gcc-internal-format
msgid "invalid application of %qs to array type %qT of incomplete element type"
msgstr ""
-#: c-family/c-common.c:4570
+#: c-family/c-common.c:4807
#, gcc-internal-format
msgid "%<__alignof%> applied to a bit-field"
msgstr ""
-#: c-family/c-common.c:5283
+#: c-family/c-common.c:5520
#, gcc-internal-format
msgid "cannot disable built-in function %qs"
msgstr ""
-#: c-family/c-common.c:5474
+#: c-family/c-common.c:5711
#, gcc-internal-format
msgid "pointers are not permitted as case values"
msgstr ""
-#: c-family/c-common.c:5481
+#: c-family/c-common.c:5718
#, gcc-internal-format
msgid "range expressions in switch statements are non-standard"
msgstr ""
-#: c-family/c-common.c:5507
+#: c-family/c-common.c:5744
#, gcc-internal-format
msgid "empty range specified"
msgstr ""
-#: c-family/c-common.c:5567
+#: c-family/c-common.c:5804
#, gcc-internal-format
msgid "duplicate (or overlapping) case value"
msgstr ""
-#: c-family/c-common.c:5569
+#: c-family/c-common.c:5806
#, gcc-internal-format
msgid "this is the first entry overlapping that value"
msgstr ""
-#: c-family/c-common.c:5573
+#: c-family/c-common.c:5810
#, gcc-internal-format
msgid "duplicate case value"
msgstr ""
-#: c-family/c-common.c:5574
+#: c-family/c-common.c:5811
#, gcc-internal-format
msgid "previously used here"
msgstr ""
-#: c-family/c-common.c:5578
+#: c-family/c-common.c:5815
#, gcc-internal-format
msgid "multiple default labels in one switch"
msgstr ""
-#: c-family/c-common.c:5580
+#: c-family/c-common.c:5817
#, gcc-internal-format
msgid "this is the first default label"
msgstr ""
-#: c-family/c-common.c:5632
+#: c-family/c-common.c:5869
#, gcc-internal-format
msgid "case value %qs not in enumerated type"
msgstr ""
-#: c-family/c-common.c:5637
+#: c-family/c-common.c:5874
#, gcc-internal-format
msgid "case value %qs not in enumerated type %qT"
msgstr ""
-#: c-family/c-common.c:5696
+#: c-family/c-common.c:5933
#, gcc-internal-format
msgid "switch missing default case"
msgstr ""
-#: c-family/c-common.c:5768
+#: c-family/c-common.c:6005
#, gcc-internal-format
msgid "enumeration value %qE not handled in switch"
msgstr ""
-#: c-family/c-common.c:5794
+#: c-family/c-common.c:6031
#, gcc-internal-format
msgid "taking the address of a label is non-standard"
msgstr ""
-#: c-family/c-common.c:5988
+#: c-family/c-common.c:6225
#, gcc-internal-format
msgid "%qE attribute ignored for field of type %qT"
msgstr ""
-#: c-family/c-common.c:6082 c-family/c-common.c:6108
+#: c-family/c-common.c:6320 c-family/c-common.c:6348
#, gcc-internal-format
msgid "%qE attribute conflicts with attribute %s"
msgstr ""
-#: c-family/c-common.c:6222 lto/lto-lang.c:227
+#: c-family/c-common.c:6462 lto/lto-lang.c:227
#, gcc-internal-format
msgid "%qE attribute has no effect on unit local functions"
msgstr ""
-#: c-family/c-common.c:6376
+#: c-family/c-common.c:6616
#, gcc-internal-format
msgid "%qE attribute have effect only on public objects"
msgstr ""
-#: c-family/c-common.c:6488
+#: c-family/c-common.c:6728
#, gcc-internal-format
msgid "destructor priorities are not supported"
msgstr ""
-#: c-family/c-common.c:6490
+#: c-family/c-common.c:6730
#, gcc-internal-format
msgid "constructor priorities are not supported"
msgstr ""
-#: c-family/c-common.c:6507
+#: c-family/c-common.c:6748
#, gcc-internal-format, gfc-internal-format
msgid "destructor priorities from 0 to %d are reserved for the implementation"
msgstr ""
-#: c-family/c-common.c:6512
+#: c-family/c-common.c:6753
#, gcc-internal-format, gfc-internal-format
msgid "constructor priorities from 0 to %d are reserved for the implementation"
msgstr ""
-#: c-family/c-common.c:6520
+#: c-family/c-common.c:6761
#, gcc-internal-format, gfc-internal-format
msgid "destructor priorities must be integers from 0 to %d inclusive"
msgstr ""
-#: c-family/c-common.c:6523
+#: c-family/c-common.c:6764
#, gcc-internal-format, gfc-internal-format
msgid "constructor priorities must be integers from 0 to %d inclusive"
msgstr ""
-#: c-family/c-common.c:6679
+#: c-family/c-common.c:6920
#, gcc-internal-format
msgid "unknown machine mode %qE"
msgstr ""
-#: c-family/c-common.c:6708
+#: c-family/c-common.c:6949
#, gcc-internal-format
msgid "specifying vector types with __attribute__ ((mode)) is deprecated"
msgstr ""
-#: c-family/c-common.c:6711
+#: c-family/c-common.c:6952
#, gcc-internal-format
msgid "use __attribute__ ((vector_size)) instead"
msgstr ""
-#: c-family/c-common.c:6720
+#: c-family/c-common.c:6961
#, gcc-internal-format
msgid "unable to emulate %qs"
msgstr ""
-#: c-family/c-common.c:6731
+#: c-family/c-common.c:6972
#, gcc-internal-format
msgid "invalid pointer mode %qs"
msgstr ""
-#: c-family/c-common.c:6748
+#: c-family/c-common.c:6989
#, gcc-internal-format
msgid "signedness of type and machine mode %qs don%'t match"
msgstr ""
-#: c-family/c-common.c:6759
+#: c-family/c-common.c:7000
#, gcc-internal-format
msgid "no data type for mode %qs"
msgstr ""
-#: c-family/c-common.c:6769
+#: c-family/c-common.c:7010
#, gcc-internal-format
msgid "cannot use mode %qs for enumeral types"
msgstr ""
-#: c-family/c-common.c:6796
+#: c-family/c-common.c:7037
#, gcc-internal-format
msgid "mode %qs applied to inappropriate type"
msgstr ""
-#: c-family/c-common.c:6828
+#: c-family/c-common.c:7069
#, gcc-internal-format
msgid "section attribute cannot be specified for local variables"
msgstr ""
-#: c-family/c-common.c:6839 config/bfin/bfin.c:4735 config/bfin/bfin.c:4786
-#: config/bfin/bfin.c:4813 config/bfin/bfin.c:4826
+#: c-family/c-common.c:7080 config/bfin/bfin.c:4738 config/bfin/bfin.c:4789
+#: config/bfin/bfin.c:4816 config/bfin/bfin.c:4829
#, gcc-internal-format
msgid "section of %q+D conflicts with previous declaration"
msgstr ""
-#: c-family/c-common.c:6847
+#: c-family/c-common.c:7088
#, gcc-internal-format
msgid "section of %q+D cannot be overridden"
msgstr ""
-#: c-family/c-common.c:6855
+#: c-family/c-common.c:7096
#, gcc-internal-format
msgid "section attribute not allowed for %q+D"
msgstr ""
-#: c-family/c-common.c:6862
+#: c-family/c-common.c:7103
#, gcc-internal-format
msgid "section attributes are not supported for this target"
msgstr ""
-#: c-family/c-common.c:6881
+#: c-family/c-common.c:7122
#, gcc-internal-format
msgid "requested alignment is not an integer constant"
msgstr ""
-#: c-family/c-common.c:6888
+#: c-family/c-common.c:7129
#, gcc-internal-format
msgid "requested alignment is not a power of 2"
msgstr ""
-#: c-family/c-common.c:6893
+#: c-family/c-common.c:7134
#, gcc-internal-format
msgid "requested alignment is too large"
msgstr ""
-#: c-family/c-common.c:6949
+#: c-family/c-common.c:7190
#, gcc-internal-format
msgid "alignment may not be specified for %q+D"
msgstr ""
-#: c-family/c-common.c:6956
+#: c-family/c-common.c:7197
#, gcc-internal-format
msgid ""
"alignment for %q+D was previously specified as %d and may not be decreased"
msgstr ""
-#: c-family/c-common.c:6960
+#: c-family/c-common.c:7201
#, gcc-internal-format
msgid "alignment for %q+D must be at least %d"
msgstr ""
-#: c-family/c-common.c:6985
+#: c-family/c-common.c:7226
#, gcc-internal-format
msgid "inline function %q+D declared weak"
msgstr ""
-#: c-family/c-common.c:6990
+#: c-family/c-common.c:7231
#, gcc-internal-format
msgid "indirect function %q+D cannot be declared weak"
msgstr ""
-#: c-family/c-common.c:7027
+#: c-family/c-common.c:7268
#, gcc-internal-format
msgid "%q+D defined both normally and as %qE attribute"
msgstr ""
-#: c-family/c-common.c:7035
+#: c-family/c-common.c:7276
#, gcc-internal-format
msgid "weak %q+D cannot be defined %qE"
msgstr ""
-#: c-family/c-common.c:7052
+#: c-family/c-common.c:7293
#, gcc-internal-format
msgid "attribute %qE argument not a string"
msgstr ""
-#: c-family/c-common.c:7128
+#: c-family/c-common.c:7369
#, gcc-internal-format
msgid "indirect function %q+D cannot be declared weakref"
msgstr ""
-#: c-family/c-common.c:7150
+#: c-family/c-common.c:7391
#, gcc-internal-format
msgid "weakref attribute must appear before alias attribute"
msgstr ""
-#: c-family/c-common.c:7179
+#: c-family/c-common.c:7420
#, gcc-internal-format
msgid "%qE attribute ignored on non-class types"
msgstr ""
-#: c-family/c-common.c:7185
+#: c-family/c-common.c:7426
#, gcc-internal-format
msgid "%qE attribute ignored because %qT is already defined"
msgstr ""
-#: c-family/c-common.c:7198
+#: c-family/c-common.c:7439
#, gcc-internal-format
msgid "visibility argument not a string"
msgstr ""
-#: c-family/c-common.c:7210
+#: c-family/c-common.c:7451
#, gcc-internal-format
msgid "%qE attribute ignored on types"
msgstr ""
-#: c-family/c-common.c:7226
+#: c-family/c-common.c:7467
#, gcc-internal-format
msgid ""
"visibility argument must be one of \"default\", \"hidden\", \"protected\" or "
"\"internal\""
msgstr ""
-#: c-family/c-common.c:7237
+#: c-family/c-common.c:7478
#, gcc-internal-format
msgid "%qD redeclared with different visibility"
msgstr ""
-#: c-family/c-common.c:7240 c-family/c-common.c:7244
+#: c-family/c-common.c:7481 c-family/c-common.c:7485
#, gcc-internal-format
msgid "%qD was declared %qs which implies default visibility"
msgstr ""
-#: c-family/c-common.c:7328
+#: c-family/c-common.c:7569
#, gcc-internal-format
msgid "tls_model argument not a string"
msgstr ""
-#: c-family/c-common.c:7341
+#: c-family/c-common.c:7582
#, gcc-internal-format
msgid ""
"tls_model argument must be one of \"local-exec\", \"initial-exec\", \"local-"
"dynamic\" or \"global-dynamic\""
msgstr ""
-#: c-family/c-common.c:7361 c-family/c-common.c:7467 c-family/c-common.c:8436
-#: config/m32c/m32c.c:3162
+#: c-family/c-common.c:7602 c-family/c-common.c:7708 c-family/c-common.c:8693
+#: config/m32c/m32c.c:2927
#, gcc-internal-format
msgid "%qE attribute applies only to functions"
msgstr ""
-#: c-family/c-common.c:7367 c-family/c-common.c:7473 c-family/c-common.c:8442
+#: c-family/c-common.c:7608 c-family/c-common.c:7714 c-family/c-common.c:8699
#, gcc-internal-format
msgid "can%'t set %qE attribute after definition"
msgstr ""
-#: c-family/c-common.c:7413
+#: c-family/c-common.c:7654
#, gcc-internal-format
msgid "alloc_size parameter outside range"
msgstr ""
-#: c-family/c-common.c:7531
+#: c-family/c-common.c:7772
#, gcc-internal-format
msgid "%qE attribute duplicated"
msgstr ""
-#: c-family/c-common.c:7533
+#: c-family/c-common.c:7774
#, gcc-internal-format
msgid "%qE attribute follows %qE"
msgstr ""
-#: c-family/c-common.c:7632
+#: c-family/c-common.c:7873
#, gcc-internal-format
msgid "type was previously declared %qE"
msgstr ""
-#: c-family/c-common.c:7685
+#: c-family/c-common.c:7926
#, gcc-internal-format
msgid "%qE argument not an identifier"
msgstr ""
-#: c-family/c-common.c:7696
+#: c-family/c-common.c:7937
#, gcc-internal-format
msgid "%qD is not compatible with %qD"
msgstr ""
-#: c-family/c-common.c:7699
+#: c-family/c-common.c:7940
#, gcc-internal-format
msgid "transaction_wrap argument is not a function"
msgstr ""
-#: c-family/c-common.c:7747
+#: c-family/c-common.c:7988
#, gcc-internal-format
msgid "deprecated message is not a string"
msgstr ""
-#: c-family/c-common.c:7788
+#: c-family/c-common.c:8029
#, gcc-internal-format
msgid "%qE attribute ignored for %qE"
msgstr ""
-#: c-family/c-common.c:7848
+#: c-family/c-common.c:8089
#, gcc-internal-format
msgid "invalid vector type for attribute %qE"
msgstr ""
-#: c-family/c-common.c:7854 ada/gcc-interface/utils.c:6301
-#: ada/gcc-interface/utils.c:6395
+#: c-family/c-common.c:8095 ada/gcc-interface/utils.c:6291
+#: ada/gcc-interface/utils.c:6385
#, gcc-internal-format
msgid "vector size not an integral multiple of component size"
msgstr ""
-#: c-family/c-common.c:7860 ada/gcc-interface/utils.c:6307
-#: ada/gcc-interface/utils.c:6401
+#: c-family/c-common.c:8101 ada/gcc-interface/utils.c:6297
+#: ada/gcc-interface/utils.c:6391
#, gcc-internal-format
msgid "zero vector size"
msgstr ""
-#: c-family/c-common.c:7868 ada/gcc-interface/utils.c:6315
-#: ada/gcc-interface/utils.c:6408
+#: c-family/c-common.c:8109 ada/gcc-interface/utils.c:6305
+#: ada/gcc-interface/utils.c:6398
#, gcc-internal-format
msgid "number of components of the vector not a power of two"
msgstr ""
-#: c-family/c-common.c:7896 ada/gcc-interface/utils.c:6042
+#: c-family/c-common.c:8137 ada/gcc-interface/utils.c:6032
#, gcc-internal-format
msgid "nonnull attribute without arguments on a non-prototype"
msgstr ""
-#: c-family/c-common.c:7910 ada/gcc-interface/utils.c:6056
+#: c-family/c-common.c:8151 ada/gcc-interface/utils.c:6046
#, gcc-internal-format, gfc-internal-format
msgid "nonnull argument has invalid operand number (argument %lu)"
msgstr ""
-#: c-family/c-common.c:7932 ada/gcc-interface/utils.c:6078
+#: c-family/c-common.c:8173 ada/gcc-interface/utils.c:6068
#, gcc-internal-format, gfc-internal-format
msgid ""
"nonnull argument with out-of-range operand number (argument %lu, operand %lu)"
msgstr ""
-#: c-family/c-common.c:7940 ada/gcc-interface/utils.c:6087
+#: c-family/c-common.c:8181 ada/gcc-interface/utils.c:6077
#, gcc-internal-format, gfc-internal-format
msgid ""
"nonnull argument references non-pointer operand (argument %lu, operand %lu)"
msgstr ""
-#: c-family/c-common.c:8019
+#: c-family/c-common.c:8276
#, gcc-internal-format
msgid "not enough variable arguments to fit a sentinel"
msgstr ""
-#: c-family/c-common.c:8033
+#: c-family/c-common.c:8290
#, gcc-internal-format
msgid "missing sentinel in function call"
msgstr ""
-#: c-family/c-common.c:8074
+#: c-family/c-common.c:8331
#, gcc-internal-format, gfc-internal-format
msgid "null argument where non-null required (argument %lu)"
msgstr ""
-#: c-family/c-common.c:8139
+#: c-family/c-common.c:8396
#, gcc-internal-format
msgid "cleanup argument not an identifier"
msgstr ""
-#: c-family/c-common.c:8146
+#: c-family/c-common.c:8403
#, gcc-internal-format
msgid "cleanup argument not a function"
msgstr ""
-#: c-family/c-common.c:8183
+#: c-family/c-common.c:8440
#, gcc-internal-format
msgid "%qE attribute requires prototypes with named arguments"
msgstr ""
-#: c-family/c-common.c:8191
+#: c-family/c-common.c:8448
#, gcc-internal-format
msgid "%qE attribute only applies to variadic functions"
msgstr ""
-#: c-family/c-common.c:8203 ada/gcc-interface/utils.c:6129
+#: c-family/c-common.c:8460 ada/gcc-interface/utils.c:6119
#, gcc-internal-format
msgid "requested position is not an integer constant"
msgstr ""
-#: c-family/c-common.c:8211 ada/gcc-interface/utils.c:6136
+#: c-family/c-common.c:8468 ada/gcc-interface/utils.c:6126
#, gcc-internal-format
msgid "requested position is less than zero"
msgstr ""
-#: c-family/c-common.c:8331
+#: c-family/c-common.c:8588
#, gcc-internal-format, gfc-internal-format
msgid "bad option %s to optimize attribute"
msgstr ""
-#: c-family/c-common.c:8334
+#: c-family/c-common.c:8591
#, gcc-internal-format, gfc-internal-format
msgid "bad option %s to pragma attribute"
msgstr ""
-#: c-family/c-common.c:8561
+#: c-family/c-common.c:8818
#, gcc-internal-format
msgid "not enough arguments to function %qE"
msgstr ""
-#: c-family/c-common.c:8597 c-family/c-common.c:8643
+#: c-family/c-common.c:8824 c-family/c-common.c:9753 c/c-typeck.c:2963
+#, gcc-internal-format
+msgid "too many arguments to function %qE"
+msgstr ""
+
+#: c-family/c-common.c:8854 c-family/c-common.c:8900
#, gcc-internal-format
msgid "non-floating-point argument in call to function %qE"
msgstr ""
-#: c-family/c-common.c:8620
+#: c-family/c-common.c:8877
#, gcc-internal-format
msgid "non-floating-point arguments in call to function %qE"
msgstr ""
-#: c-family/c-common.c:8636
+#: c-family/c-common.c:8893
#, gcc-internal-format
msgid "non-const integer argument %u in call to function %qE"
msgstr ""
-#: c-family/c-common.c:8656
+#: c-family/c-common.c:8913
#, gcc-internal-format
msgid "non-integer argument 3 in call to function %qE"
msgstr ""
-#: c-family/c-common.c:8982
+#: c-family/c-common.c:9239
#, gcc-internal-format
msgid "cannot apply %<offsetof%> to static data member %qD"
msgstr ""
-#: c-family/c-common.c:8987
+#: c-family/c-common.c:9244
#, gcc-internal-format
msgid "cannot apply %<offsetof%> when %<operator[]%> is overloaded"
msgstr ""
-#: c-family/c-common.c:8994
+#: c-family/c-common.c:9251
#, gcc-internal-format
msgid "cannot apply %<offsetof%> to a non constant address"
msgstr ""
-#: c-family/c-common.c:9007 cp/typeck.c:5121
+#: c-family/c-common.c:9264 cp/typeck.c:5163
#, gcc-internal-format
msgid "attempt to take address of bit-field structure member %qD"
msgstr ""
-#: c-family/c-common.c:9059
+#: c-family/c-common.c:9316
#, gcc-internal-format
msgid "index %E denotes an offset greater than size of %qT"
msgstr ""
-#: c-family/c-common.c:9099
+#: c-family/c-common.c:9356
#, gcc-internal-format
msgid ""
"the omitted middle operand in ?: will always be %<true%>, suggest explicit "
"middle operand"
msgstr ""
-#: c-family/c-common.c:9120
+#: c-family/c-common.c:9377
#, gcc-internal-format
msgid "assignment of member %qD in read-only object"
msgstr ""
-#: c-family/c-common.c:9122
+#: c-family/c-common.c:9379
#, gcc-internal-format
msgid "increment of member %qD in read-only object"
msgstr ""
-#: c-family/c-common.c:9124
+#: c-family/c-common.c:9381
#, gcc-internal-format
msgid "decrement of member %qD in read-only object"
msgstr ""
-#: c-family/c-common.c:9126
+#: c-family/c-common.c:9383
#, gcc-internal-format
msgid "member %qD in read-only object used as %<asm%> output"
msgstr ""
-#: c-family/c-common.c:9130
+#: c-family/c-common.c:9387
#, gcc-internal-format
msgid "assignment of read-only member %qD"
msgstr ""
-#: c-family/c-common.c:9131
+#: c-family/c-common.c:9388
#, gcc-internal-format
msgid "increment of read-only member %qD"
msgstr ""
-#: c-family/c-common.c:9132
+#: c-family/c-common.c:9389
#, gcc-internal-format
msgid "decrement of read-only member %qD"
msgstr ""
-#: c-family/c-common.c:9133
+#: c-family/c-common.c:9390
#, gcc-internal-format
msgid "read-only member %qD used as %<asm%> output"
msgstr ""
-#: c-family/c-common.c:9137
+#: c-family/c-common.c:9394
#, gcc-internal-format
msgid "assignment of read-only variable %qD"
msgstr ""
-#: c-family/c-common.c:9138
+#: c-family/c-common.c:9395
#, gcc-internal-format
msgid "increment of read-only variable %qD"
msgstr ""
-#: c-family/c-common.c:9139
+#: c-family/c-common.c:9396
#, gcc-internal-format
msgid "decrement of read-only variable %qD"
msgstr ""
-#: c-family/c-common.c:9140
+#: c-family/c-common.c:9397
#, gcc-internal-format
msgid "read-only variable %qD used as %<asm%> output"
msgstr ""
-#: c-family/c-common.c:9143
+#: c-family/c-common.c:9400
#, gcc-internal-format
msgid "assignment of read-only parameter %qD"
msgstr ""
-#: c-family/c-common.c:9144
+#: c-family/c-common.c:9401
#, gcc-internal-format
msgid "increment of read-only parameter %qD"
msgstr ""
-#: c-family/c-common.c:9145
+#: c-family/c-common.c:9402
#, gcc-internal-format
msgid "decrement of read-only parameter %qD"
msgstr ""
-#: c-family/c-common.c:9146
+#: c-family/c-common.c:9403
#, gcc-internal-format
msgid "read-only parameter %qD use as %<asm%> output"
msgstr ""
-#: c-family/c-common.c:9151
+#: c-family/c-common.c:9408
#, gcc-internal-format
msgid "assignment of read-only named return value %qD"
msgstr ""
-#: c-family/c-common.c:9153
+#: c-family/c-common.c:9410
#, gcc-internal-format
msgid "increment of read-only named return value %qD"
msgstr ""
-#: c-family/c-common.c:9155
+#: c-family/c-common.c:9412
#, gcc-internal-format
msgid "decrement of read-only named return value %qD"
msgstr ""
-#: c-family/c-common.c:9157
+#: c-family/c-common.c:9414
#, gcc-internal-format
msgid "read-only named return value %qD used as %<asm%>output"
msgstr ""
-#: c-family/c-common.c:9162
+#: c-family/c-common.c:9419
#, gcc-internal-format
msgid "assignment of function %qD"
msgstr ""
-#: c-family/c-common.c:9163
+#: c-family/c-common.c:9420
#, gcc-internal-format
msgid "increment of function %qD"
msgstr ""
-#: c-family/c-common.c:9164
+#: c-family/c-common.c:9421
#, gcc-internal-format
msgid "decrement of function %qD"
msgstr ""
-#: c-family/c-common.c:9165
+#: c-family/c-common.c:9422
#, gcc-internal-format
msgid "function %qD used as %<asm%> output"
msgstr ""
-#: c-family/c-common.c:9171
+#: c-family/c-common.c:9425 c/c-typeck.c:3912
+#, gcc-internal-format
+msgid "assignment of read-only location %qE"
+msgstr ""
+
+#: c-family/c-common.c:9426 c/c-typeck.c:3915
+#, gcc-internal-format
+msgid "increment of read-only location %qE"
+msgstr ""
+
+#: c-family/c-common.c:9427 c/c-typeck.c:3918
+#, gcc-internal-format
+msgid "decrement of read-only location %qE"
+msgstr ""
+
+#: c-family/c-common.c:9428
#, gcc-internal-format
msgid "read-only location %qE used as %<asm%> output"
msgstr ""
-#: c-family/c-common.c:9185
+#: c-family/c-common.c:9442
#, gcc-internal-format
msgid "lvalue required as left operand of assignment"
msgstr ""
-#: c-family/c-common.c:9188
+#: c-family/c-common.c:9445
#, gcc-internal-format
msgid "lvalue required as increment operand"
msgstr ""
-#: c-family/c-common.c:9191
+#: c-family/c-common.c:9448
#, gcc-internal-format
msgid "lvalue required as decrement operand"
msgstr ""
-#: c-family/c-common.c:9194
+#: c-family/c-common.c:9451
#, gcc-internal-format
msgid "lvalue required as unary %<&%> operand"
msgstr ""
-#: c-family/c-common.c:9197
+#: c-family/c-common.c:9454
#, gcc-internal-format
msgid "lvalue required in asm statement"
msgstr ""
-#: c-family/c-common.c:9214
+#: c-family/c-common.c:9471
#, gcc-internal-format
msgid "invalid type argument (have %qT)"
msgstr ""
-#: c-family/c-common.c:9218
+#: c-family/c-common.c:9475
#, gcc-internal-format
msgid "invalid type argument of array indexing (have %qT)"
msgstr ""
-#: c-family/c-common.c:9223
+#: c-family/c-common.c:9480
#, gcc-internal-format
msgid "invalid type argument of unary %<*%> (have %qT)"
msgstr ""
-#: c-family/c-common.c:9228
+#: c-family/c-common.c:9485
#, gcc-internal-format
msgid "invalid type argument of %<->%> (have %qT)"
msgstr ""
-#: c-family/c-common.c:9233
+#: c-family/c-common.c:9490
#, gcc-internal-format
msgid "invalid type argument of implicit conversion (have %qT)"
msgstr ""
-#: c-family/c-common.c:9366
+#: c-family/c-common.c:9623 cp/init.c:2370
#, gcc-internal-format
msgid "size of array is too large"
msgstr ""
-#: c-family/c-common.c:9562
+#: c-family/c-common.c:9671 c-family/c-common.c:9727 c/c-typeck.c:3196
+#, gcc-internal-format
+msgid "too few arguments to function %qE"
+msgstr ""
+
+#: c-family/c-common.c:9688 config/mep/mep.c:6177 c/c-typeck.c:5695
+#, gcc-internal-format
+msgid "incompatible type for argument %d of %qE"
+msgstr ""
+
+#: c-family/c-common.c:9819
#, gcc-internal-format
msgid "incorrect number of arguments to function %qE"
msgstr ""
-#: c-family/c-common.c:9570
+#: c-family/c-common.c:9827
#, gcc-internal-format
msgid "argument 1 of %qE must be a non-void pointer type"
msgstr ""
-#: c-family/c-common.c:9579
+#: c-family/c-common.c:9836
#, gcc-internal-format
msgid "argument 1 of %qE must be a pointer to a constant size type"
msgstr ""
-#: c-family/c-common.c:9590
+#: c-family/c-common.c:9847
#, gcc-internal-format
msgid "argument 1 of %qE must be a pointer to a nonzero size object"
msgstr ""
-#: c-family/c-common.c:9605
+#: c-family/c-common.c:9862
#, gcc-internal-format
msgid "argument %d of %qE must be a pointer type"
msgstr ""
-#: c-family/c-common.c:9612
+#: c-family/c-common.c:9869
#, gcc-internal-format
msgid "size mismatch in argument %d of %qE"
msgstr ""
-#: c-family/c-common.c:9628
+#: c-family/c-common.c:9885
#, gcc-internal-format
msgid "invalid memory model argument %d of %qE"
msgstr ""
-#: c-family/c-common.c:9635
+#: c-family/c-common.c:9892
#, gcc-internal-format
msgid "non-integer memory model argument %d of %qE"
msgstr ""
-#: c-family/c-common.c:10161
+#: c-family/c-common.c:10418
#, gcc-internal-format
msgid "array subscript has type %<char%>"
msgstr ""
-#: c-family/c-common.c:10196
+#: c-family/c-common.c:10453
#, gcc-internal-format
msgid "suggest parentheses around %<+%> inside %<<<%>"
msgstr ""
-#: c-family/c-common.c:10199
+#: c-family/c-common.c:10456
#, gcc-internal-format
msgid "suggest parentheses around %<-%> inside %<<<%>"
msgstr ""
-#: c-family/c-common.c:10205
+#: c-family/c-common.c:10462
#, gcc-internal-format
msgid "suggest parentheses around %<+%> inside %<>>%>"
msgstr ""
-#: c-family/c-common.c:10208
+#: c-family/c-common.c:10465
#, gcc-internal-format
msgid "suggest parentheses around %<-%> inside %<>>%>"
msgstr ""
-#: c-family/c-common.c:10214
+#: c-family/c-common.c:10471
#, gcc-internal-format
msgid "suggest parentheses around %<&&%> within %<||%>"
msgstr ""
-#: c-family/c-common.c:10223
+#: c-family/c-common.c:10480
#, gcc-internal-format
msgid "suggest parentheses around arithmetic in operand of %<|%>"
msgstr ""
-#: c-family/c-common.c:10228
+#: c-family/c-common.c:10485
#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<|%>"
msgstr ""
-#: c-family/c-common.c:10232
+#: c-family/c-common.c:10489
#, gcc-internal-format
msgid ""
"suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!"
"%> to %<~%>"
msgstr ""
-#: c-family/c-common.c:10242
+#: c-family/c-common.c:10499
#, gcc-internal-format
msgid "suggest parentheses around arithmetic in operand of %<^%>"
msgstr ""
-#: c-family/c-common.c:10247
+#: c-family/c-common.c:10504
#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<^%>"
msgstr ""
-#: c-family/c-common.c:10253
+#: c-family/c-common.c:10510
#, gcc-internal-format
msgid "suggest parentheses around %<+%> in operand of %<&%>"
msgstr ""
-#: c-family/c-common.c:10256
+#: c-family/c-common.c:10513
#, gcc-internal-format
msgid "suggest parentheses around %<-%> in operand of %<&%>"
msgstr ""
-#: c-family/c-common.c:10261
+#: c-family/c-common.c:10518
#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<&%>"
msgstr ""
-#: c-family/c-common.c:10265
+#: c-family/c-common.c:10522
#, gcc-internal-format
msgid ""
"suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!"
"%> to %<~%>"
msgstr ""
-#: c-family/c-common.c:10273
+#: c-family/c-common.c:10530
#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<==%>"
msgstr ""
-#: c-family/c-common.c:10279
+#: c-family/c-common.c:10536
#, gcc-internal-format
msgid "suggest parentheses around comparison in operand of %<!=%>"
msgstr ""
-#: c-family/c-common.c:10290
+#: c-family/c-common.c:10547
#, gcc-internal-format
msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning"
msgstr ""
-#: c-family/c-common.c:10305
+#: c-family/c-common.c:10562
#, gcc-internal-format
msgid "label %q+D defined but not used"
msgstr ""
-#: c-family/c-common.c:10307
+#: c-family/c-common.c:10564
#, gcc-internal-format
msgid "label %q+D declared but not defined"
msgstr ""
-#: c-family/c-common.c:10323
+#: c-family/c-common.c:10580
#, gcc-internal-format
msgid "division by zero"
msgstr ""
-#: c-family/c-common.c:10355
+#: c-family/c-common.c:10612
#, gcc-internal-format
msgid "comparison between types %qT and %qT"
msgstr ""
-#: c-family/c-common.c:10406
+#: c-family/c-common.c:10663
#, gcc-internal-format
msgid "comparison between signed and unsigned integer expressions"
msgstr ""
-#: c-family/c-common.c:10457
+#: c-family/c-common.c:10714
#, gcc-internal-format
msgid "promoted ~unsigned is always non-zero"
msgstr ""
-#: c-family/c-common.c:10460
+#: c-family/c-common.c:10717
#, gcc-internal-format
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-family/c-common.c:10470
+#: c-family/c-common.c:10727
#, gcc-internal-format
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: c-family/c-common.c:10648
+#: c-family/c-common.c:10905
#, gcc-internal-format
msgid "typedef %qD locally defined but not used"
msgstr ""
-#: c-family/c-common.c:10889
+#: c-family/c-common.c:11146
#, gcc-internal-format
msgid "index value is out of bound"
msgstr ""
@@ -22665,93 +19346,93 @@ msgstr ""
msgid "strftime formats cannot format arguments"
msgstr ""
-#: c-family/c-lex.c:228
+#: c-family/c-lex.c:225
#, gcc-internal-format
msgid "badly nested C headers from preprocessor"
msgstr ""
-#: c-family/c-lex.c:263
+#: c-family/c-lex.c:260
#, gcc-internal-format, gfc-internal-format
msgid "ignoring #pragma %s %s"
msgstr ""
#. ... or not.
-#: c-family/c-lex.c:405 c-family/c-lex.c:1038
+#: c-family/c-lex.c:402 c-family/c-lex.c:1035
#, gcc-internal-format
msgid "stray %<@%> in program"
msgstr ""
-#: c-family/c-lex.c:420
+#: c-family/c-lex.c:417
#, gcc-internal-format
msgid "stray %qs in program"
msgstr ""
-#: c-family/c-lex.c:430
+#: c-family/c-lex.c:427
#, gcc-internal-format, gfc-internal-format
msgid "missing terminating %c character"
msgstr ""
-#: c-family/c-lex.c:432
+#: c-family/c-lex.c:429
#, gcc-internal-format
msgid "stray %qc in program"
msgstr ""
-#: c-family/c-lex.c:434
+#: c-family/c-lex.c:431
#, gcc-internal-format
msgid "stray %<\\%o%> in program"
msgstr ""
-#: c-family/c-lex.c:638
+#: c-family/c-lex.c:635
#, gcc-internal-format
msgid "this decimal constant is unsigned only in ISO C90"
msgstr ""
-#: c-family/c-lex.c:642
+#: c-family/c-lex.c:639
#, gcc-internal-format
msgid "this decimal constant would be unsigned in ISO C90"
msgstr ""
-#: c-family/c-lex.c:662
+#: c-family/c-lex.c:659
#, gcc-internal-format
msgid "integer constant is too large for %<unsigned long%> type"
msgstr ""
-#: c-family/c-lex.c:700
+#: c-family/c-lex.c:697
#, gcc-internal-format
msgid "unsuffixed float constant"
msgstr ""
-#: c-family/c-lex.c:732
+#: c-family/c-lex.c:729
#, gcc-internal-format
msgid "unsupported non-standard suffix on floating constant"
msgstr ""
-#: c-family/c-lex.c:737
+#: c-family/c-lex.c:734
#, gcc-internal-format
msgid "non-standard suffix on floating constant"
msgstr ""
-#: c-family/c-lex.c:793 c-family/c-lex.c:795
+#: c-family/c-lex.c:790 c-family/c-lex.c:792
#, gcc-internal-format
msgid "floating constant exceeds range of %qT"
msgstr ""
-#: c-family/c-lex.c:804
+#: c-family/c-lex.c:801
#, gcc-internal-format
msgid "floating constant truncated to zero"
msgstr ""
-#: c-family/c-lex.c:1000
+#: c-family/c-lex.c:997
#, gcc-internal-format
msgid "repeated %<@%> before Objective-C string"
msgstr ""
-#: c-family/c-lex.c:1019 cp/parser.c:3435
+#: c-family/c-lex.c:1016 cp/parser.c:3438
#, gcc-internal-format
msgid "unsupported non-standard concatenation of string literals"
msgstr ""
-#: c-family/c-lex.c:1047
+#: c-family/c-lex.c:1044
#, gcc-internal-format
msgid "traditional C rejects string constant concatenation"
msgstr ""
@@ -22771,7 +19452,7 @@ msgstr ""
msgid "%<#pragma omp atomic capture%> uses two different variables for memory"
msgstr ""
-#: c-family/c-omp.c:368 cp/semantics.c:4814
+#: c-family/c-omp.c:368 cp/semantics.c:4802
#, gcc-internal-format
msgid "invalid type for iteration variable %qE"
msgstr ""
@@ -22781,22 +19462,22 @@ msgstr ""
msgid "%qE is not initialized"
msgstr ""
-#: c-family/c-omp.c:398 cp/semantics.c:4729
+#: c-family/c-omp.c:398 cp/semantics.c:4717
#, gcc-internal-format
msgid "missing controlling predicate"
msgstr ""
-#: c-family/c-omp.c:480 cp/semantics.c:4475
+#: c-family/c-omp.c:480 cp/semantics.c:4463
#, gcc-internal-format
msgid "invalid controlling predicate"
msgstr ""
-#: c-family/c-omp.c:487 cp/semantics.c:4735
+#: c-family/c-omp.c:487 cp/semantics.c:4723
#, gcc-internal-format
msgid "missing increment expression"
msgstr ""
-#: c-family/c-omp.c:556 cp/semantics.c:4585
+#: c-family/c-omp.c:556 cp/semantics.c:4573
#, gcc-internal-format
msgid "invalid increment expression"
msgstr ""
@@ -22811,163 +19492,152 @@ msgstr ""
msgid "obsolete option -I- used, please use -iquote instead"
msgstr ""
-#: c-family/c-opts.c:494
+#: c-family/c-opts.c:495
#, gcc-internal-format
msgid "-Werror=normalized=: set -Wnormalized=nfc"
msgstr ""
-#: c-family/c-opts.c:508
+#: c-family/c-opts.c:509
#, gcc-internal-format
msgid "argument %qs to %<-Wnormalized%> not recognized"
msgstr ""
-#: c-family/c-opts.c:730 fortran/cpp.c:347
+#: c-family/c-opts.c:731 fortran/cpp.c:347
#, gcc-internal-format
msgid "output filename specified twice"
msgstr ""
-#: c-family/c-opts.c:908
+#: c-family/c-opts.c:909
#, gcc-internal-format
msgid "-fexcess-precision=standard for C++"
msgstr ""
-#: c-family/c-opts.c:921
+#: c-family/c-opts.c:922
#, gcc-internal-format
msgid "-fno-gnu89-inline is only supported in GNU99 or C99 mode"
msgstr ""
-#: c-family/c-opts.c:984
+#: c-family/c-opts.c:985
#, gcc-internal-format
msgid "-Wformat-y2k ignored without -Wformat"
msgstr ""
-#: c-family/c-opts.c:986
+#: c-family/c-opts.c:987
#, gcc-internal-format
msgid "-Wformat-extra-args ignored without -Wformat"
msgstr ""
-#: c-family/c-opts.c:988
+#: c-family/c-opts.c:989
#, gcc-internal-format
msgid "-Wformat-zero-length ignored without -Wformat"
msgstr ""
-#: c-family/c-opts.c:990
+#: c-family/c-opts.c:991
#, gcc-internal-format
msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr ""
-#: c-family/c-opts.c:992
+#: c-family/c-opts.c:993
#, gcc-internal-format
msgid "-Wformat-contains-nul ignored without -Wformat"
msgstr ""
-#: c-family/c-opts.c:994
+#: c-family/c-opts.c:995
#, gcc-internal-format
msgid "-Wformat-security ignored without -Wformat"
msgstr ""
-#: c-family/c-opts.c:1031
+#: c-family/c-opts.c:1032
#, gcc-internal-format
msgid "opening output file %s: %m"
msgstr ""
-#: c-family/c-opts.c:1036
+#: c-family/c-opts.c:1037
#, gcc-internal-format, gfc-internal-format
msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-family/c-opts.c:1166
+#: c-family/c-opts.c:1173
#, gcc-internal-format
msgid "opening dependency file %s: %m"
msgstr ""
-#: c-family/c-opts.c:1176
+#: c-family/c-opts.c:1183
#, gcc-internal-format
msgid "closing dependency file %s: %m"
msgstr ""
-#: c-family/c-opts.c:1179
+#: c-family/c-opts.c:1186
#, gcc-internal-format
msgid "when writing output to %s: %m"
msgstr ""
-#: c-family/c-opts.c:1259
+#: c-family/c-opts.c:1266
#, gcc-internal-format
msgid "to generate dependencies you must specify either -M or -MM"
msgstr ""
-#: c-family/c-opts.c:1282
+#: c-family/c-opts.c:1289
#, gcc-internal-format
msgid "-MG may only be used with -M or -MM"
msgstr ""
-#: c-family/c-opts.c:1312
+#: c-family/c-opts.c:1319
#, gcc-internal-format
msgid "-fdirectives-only is incompatible with -Wunused_macros"
msgstr ""
-#: c-family/c-opts.c:1314
+#: c-family/c-opts.c:1321
#, gcc-internal-format
msgid "-fdirectives-only is incompatible with -traditional"
msgstr ""
-#: c-family/c-opts.c:1470
+#: c-family/c-opts.c:1477
#, gcc-internal-format
msgid "too late for # directive to set debug directory"
msgstr ""
-#: c-family/c-pch.c:132
+#: c-family/c-pch.c:112
#, gcc-internal-format
msgid "can%'t create precompiled header %s: %m"
msgstr ""
-#: c-family/c-pch.c:154
+#: c-family/c-pch.c:134
#, gcc-internal-format
msgid "can%'t write to %s: %m"
msgstr ""
-#: c-family/c-pch.c:160
-#, gcc-internal-format
-msgid "%qs is not a valid output file"
-msgstr ""
-
-#: c-family/c-pch.c:193 c-family/c-pch.c:208 c-family/c-pch.c:225
+#: c-family/c-pch.c:164
#, gcc-internal-format
msgid "can%'t write %s: %m"
msgstr ""
-#: c-family/c-pch.c:198 c-family/c-pch.c:215
-#, gcc-internal-format
-msgid "can%'t seek in %s: %m"
-msgstr ""
-
-#: c-family/c-pch.c:206 c-family/c-pch.c:253 c-family/c-pch.c:294
-#: c-family/c-pch.c:345
+#: c-family/c-pch.c:192 c-family/c-pch.c:233 c-family/c-pch.c:284
#, gcc-internal-format
msgid "can%'t read %s: %m"
msgstr ""
-#: c-family/c-pch.c:483
+#: c-family/c-pch.c:389
#, gcc-internal-format
msgid "pch_preprocess pragma should only be used with -fpreprocessed"
msgstr ""
-#: c-family/c-pch.c:484
+#: c-family/c-pch.c:390
#, gcc-internal-format
msgid "use #include instead"
msgstr ""
-#: c-family/c-pch.c:490
+#: c-family/c-pch.c:396
#, gcc-internal-format
msgid "%s: couldn%'t open PCH file: %m"
msgstr ""
-#: c-family/c-pch.c:495
+#: c-family/c-pch.c:401
#, gcc-internal-format
msgid "use -Winvalid-pch for more information"
msgstr ""
-#: c-family/c-pch.c:496
+#: c-family/c-pch.c:402
#, gcc-internal-format, gfc-internal-format
msgid "%s: PCH file was invalid"
msgstr ""
@@ -23044,202 +19714,202 @@ msgstr ""
msgid "junk at end of %<#pragma weak%>"
msgstr ""
-#: c-family/c-pragma.c:435 c-family/c-pragma.c:437
+#: c-family/c-pragma.c:433 c-family/c-pragma.c:435
#, gcc-internal-format
msgid "malformed #pragma redefine_extname, ignored"
msgstr ""
-#: c-family/c-pragma.c:440
+#: c-family/c-pragma.c:438
#, gcc-internal-format
msgid "junk at end of %<#pragma redefine_extname%>"
msgstr ""
-#: c-family/c-pragma.c:469 c-family/c-pragma.c:543
+#: c-family/c-pragma.c:467 c-family/c-pragma.c:540
#, gcc-internal-format
msgid "#pragma redefine_extname ignored due to conflict with previous rename"
msgstr ""
-#: c-family/c-pragma.c:497
+#: c-family/c-pragma.c:495
#, gcc-internal-format
msgid ""
"#pragma redefine_extname ignored due to conflict with previous #pragma "
"redefine_extname"
msgstr ""
-#: c-family/c-pragma.c:534
+#: c-family/c-pragma.c:531
#, gcc-internal-format
msgid "asm declaration ignored due to conflict with previous rename"
msgstr ""
-#: c-family/c-pragma.c:567
+#: c-family/c-pragma.c:564
#, gcc-internal-format
msgid ""
"#pragma redefine_extname ignored due to conflict with __asm__ declaration"
msgstr ""
-#: c-family/c-pragma.c:629
+#: c-family/c-pragma.c:626
#, gcc-internal-format
msgid ""
"#pragma GCC visibility push() must specify default, internal, hidden or "
"protected"
msgstr ""
-#: c-family/c-pragma.c:671
+#: c-family/c-pragma.c:668
#, gcc-internal-format
msgid "#pragma GCC visibility must be followed by push or pop"
msgstr ""
-#: c-family/c-pragma.c:677
+#: c-family/c-pragma.c:674
#, gcc-internal-format
msgid "no matching push for %<#pragma GCC visibility pop%>"
msgstr ""
-#: c-family/c-pragma.c:682 c-family/c-pragma.c:689
+#: c-family/c-pragma.c:679 c-family/c-pragma.c:686
#, gcc-internal-format
msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
msgstr ""
-#: c-family/c-pragma.c:685
+#: c-family/c-pragma.c:682
#, gcc-internal-format
msgid "malformed #pragma GCC visibility push"
msgstr ""
-#: c-family/c-pragma.c:693
+#: c-family/c-pragma.c:690
#, gcc-internal-format
msgid "junk at end of %<#pragma GCC visibility%>"
msgstr ""
-#: c-family/c-pragma.c:708
+#: c-family/c-pragma.c:705
#, gcc-internal-format
msgid "missing [error|warning|ignored] after %<#pragma GCC diagnostic%>"
msgstr ""
-#: c-family/c-pragma.c:727
+#: c-family/c-pragma.c:724
#, gcc-internal-format
msgid ""
"expected [error|warning|ignored|push|pop] after %<#pragma GCC diagnostic%>"
msgstr ""
-#: c-family/c-pragma.c:731
+#: c-family/c-pragma.c:728
#, gcc-internal-format
msgid "missing option after %<#pragma GCC diagnostic%> kind"
msgstr ""
-#: c-family/c-pragma.c:743
+#: c-family/c-pragma.c:740
#, gcc-internal-format
msgid "unknown option after %<#pragma GCC diagnostic%> kind"
msgstr ""
-#: c-family/c-pragma.c:756
+#: c-family/c-pragma.c:753
#, gcc-internal-format
msgid "#pragma GCC option is not allowed inside functions"
msgstr ""
-#: c-family/c-pragma.c:769
+#: c-family/c-pragma.c:766
#, gcc-internal-format
msgid "%<#pragma GCC option%> is not a string"
msgstr ""
-#: c-family/c-pragma.c:796
+#: c-family/c-pragma.c:793
#, gcc-internal-format
msgid ""
"%<#pragma GCC target (string [,string]...)%> does not have a final %<)%>"
msgstr ""
-#: c-family/c-pragma.c:802
+#: c-family/c-pragma.c:799
#, gcc-internal-format
msgid "#pragma GCC target string... is badly formed"
msgstr ""
-#: c-family/c-pragma.c:825
+#: c-family/c-pragma.c:822
#, gcc-internal-format
msgid "#pragma GCC optimize is not allowed inside functions"
msgstr ""
-#: c-family/c-pragma.c:838
+#: c-family/c-pragma.c:835
#, gcc-internal-format
msgid "%<#pragma GCC optimize%> is not a string or number"
msgstr ""
-#: c-family/c-pragma.c:864
+#: c-family/c-pragma.c:861
#, gcc-internal-format
msgid ""
"%<#pragma GCC optimize (string [,string]...)%> does not have a final %<)%>"
msgstr ""
-#: c-family/c-pragma.c:870
+#: c-family/c-pragma.c:867
#, gcc-internal-format
msgid "#pragma GCC optimize string... is badly formed"
msgstr ""
-#: c-family/c-pragma.c:912
+#: c-family/c-pragma.c:909
#, gcc-internal-format
msgid "junk at end of %<#pragma push_options%>"
msgstr ""
-#: c-family/c-pragma.c:942
+#: c-family/c-pragma.c:939
#, gcc-internal-format
msgid "junk at end of %<#pragma pop_options%>"
msgstr ""
-#: c-family/c-pragma.c:949
+#: c-family/c-pragma.c:946
#, gcc-internal-format
msgid ""
"%<#pragma GCC pop_options%> without a corresponding %<#pragma GCC "
"push_options%>"
msgstr ""
-#: c-family/c-pragma.c:991
+#: c-family/c-pragma.c:988
#, gcc-internal-format
msgid "junk at end of %<#pragma reset_options%>"
msgstr ""
-#: c-family/c-pragma.c:1029 c-family/c-pragma.c:1036
+#: c-family/c-pragma.c:1026 c-family/c-pragma.c:1033
#, gcc-internal-format
msgid "expected a string after %<#pragma message%>"
msgstr ""
-#: c-family/c-pragma.c:1031
+#: c-family/c-pragma.c:1028
#, gcc-internal-format
msgid "malformed %<#pragma message%>, ignored"
msgstr ""
-#: c-family/c-pragma.c:1041
+#: c-family/c-pragma.c:1038
#, gcc-internal-format
msgid "junk at end of %<#pragma message%>"
msgstr ""
-#: c-family/c-pragma.c:1044
+#: c-family/c-pragma.c:1041
#, gcc-internal-format, gfc-internal-format
msgid "#pragma message: %s"
msgstr ""
-#: c-family/c-pragma.c:1081
+#: c-family/c-pragma.c:1078
#, gcc-internal-format
msgid "invalid location for %<pragma %s%>, ignored"
msgstr ""
-#: c-family/c-pragma.c:1088 c-family/c-pragma.c:1102
+#: c-family/c-pragma.c:1085 c-family/c-pragma.c:1099
#, gcc-internal-format
msgid "malformed %<#pragma %s%>, ignored"
msgstr ""
-#: c-family/c-pragma.c:1108
+#: c-family/c-pragma.c:1105
#, gcc-internal-format
msgid "junk at end of %<#pragma %s%>"
msgstr ""
-#: c-family/c-pragma.c:1126
+#: c-family/c-pragma.c:1123
#, gcc-internal-format
msgid "%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported for C++"
msgstr ""
-#: c-family/c-pragma.c:1135
+#: c-family/c-pragma.c:1132
#, gcc-internal-format
msgid "%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported on this target"
msgstr ""
-#: c-family/c-pragma.c:1141
+#: c-family/c-pragma.c:1138
#, gcc-internal-format
msgid "ISO C does not support %<#pragma STDC FLOAT_CONST_DECIMAL64%>"
msgstr ""
@@ -23249,6 +19919,16 @@ msgstr ""
msgid "wrong type argument to %s"
msgstr ""
+#: c-family/cppspec.c:92
+#, gcc-internal-format
+msgid "%qs is not a valid option to the preprocessor"
+msgstr ""
+
+#: c-family/cppspec.c:111
+#, gcc-internal-format
+msgid "too many input files"
+msgstr ""
+
#: common/config/alpha/alpha-common.c:78
#, gcc-internal-format
msgid "bad value %qs for -mtls-size switch"
@@ -23269,47 +19949,47 @@ msgstr ""
msgid "-mcpu=%s has invalid silicon revision"
msgstr ""
-#: common/config/i386/i386-common.c:575
+#: common/config/i386/i386-common.c:620
#, gcc-internal-format
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: common/config/i386/i386-common.c:577
+#: common/config/i386/i386-common.c:622
#, gcc-internal-format, gfc-internal-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: common/config/i386/i386-common.c:584
+#: common/config/i386/i386-common.c:629
#, gcc-internal-format
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: common/config/i386/i386-common.c:586
+#: common/config/i386/i386-common.c:631
#, gcc-internal-format, gfc-internal-format
msgid "-malign-jumps=%d is not between 0 and %d"
msgstr ""
-#: common/config/i386/i386-common.c:594
+#: common/config/i386/i386-common.c:639
#, gcc-internal-format
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: common/config/i386/i386-common.c:596
+#: common/config/i386/i386-common.c:641
#, gcc-internal-format, gfc-internal-format
msgid "-malign-functions=%d is not between 0 and %d"
msgstr ""
-#: common/config/i386/i386-common.c:605
+#: common/config/i386/i386-common.c:650
#, gcc-internal-format, gfc-internal-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr ""
-#: common/config/i386/i386-common.c:655
+#: common/config/i386/i386-common.c:700
#, gcc-internal-format
msgid "%<-fsplit-stack%> currently only supported on GNU/Linux"
msgstr ""
-#: common/config/i386/i386-common.c:661
+#: common/config/i386/i386-common.c:706
#, gcc-internal-format
msgid "%<-fsplit-stack%> requires assembler support for CFI directives"
msgstr ""
@@ -23319,22 +19999,22 @@ msgstr ""
msgid "bad value %<%s%> for -mtls-size= switch"
msgstr ""
-#: common/config/rs6000/rs6000-common.c:208 config/sparc/sparc.c:982
+#: common/config/rs6000/rs6000-common.c:171 config/sparc/sparc.c:980
#, gcc-internal-format, gfc-internal-format
msgid "unknown -mdebug-%s switch"
msgstr ""
-#: common/config/rs6000/rs6000-common.c:254
+#: common/config/rs6000/rs6000-common.c:217
#, gcc-internal-format, gfc-internal-format
msgid "unknown switch -mlong-double-%s"
msgstr ""
-#: common/config/rs6000/rs6000-common.c:264
+#: common/config/rs6000/rs6000-common.c:227
#, gcc-internal-format
msgid "-msingle-float option equivalent to -mhard-float"
msgstr ""
-#: common/config/rs6000/rs6000-common.c:280
+#: common/config/rs6000/rs6000-common.c:243
#, gcc-internal-format
msgid "-msimple-fpu option ignored"
msgstr ""
@@ -23359,63 +20039,63 @@ msgstr ""
msgid "value passed in %qs is too large"
msgstr ""
-#: config/darwin-c.c:85
+#: config/darwin-c.c:87
#, gcc-internal-format
msgid "too many #pragma options align=reset"
msgstr ""
-#: config/darwin-c.c:105 config/darwin-c.c:108 config/darwin-c.c:110
-#: config/darwin-c.c:112
+#: config/darwin-c.c:107 config/darwin-c.c:110 config/darwin-c.c:112
+#: config/darwin-c.c:114
#, gcc-internal-format
msgid "malformed '#pragma options', ignoring"
msgstr ""
-#: config/darwin-c.c:115
+#: config/darwin-c.c:117
#, gcc-internal-format
msgid "junk at end of '#pragma options'"
msgstr ""
-#: config/darwin-c.c:125
+#: config/darwin-c.c:127
#, gcc-internal-format
msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
msgstr ""
-#: config/darwin-c.c:137
+#: config/darwin-c.c:139
#, gcc-internal-format
msgid "missing '(' after '#pragma unused', ignoring"
msgstr ""
-#: config/darwin-c.c:158
+#: config/darwin-c.c:160
#, gcc-internal-format
msgid "missing ')' after '#pragma unused', ignoring"
msgstr ""
-#: config/darwin-c.c:161
+#: config/darwin-c.c:163
#, gcc-internal-format
msgid "junk at end of '#pragma unused'"
msgstr ""
-#: config/darwin-c.c:172
+#: config/darwin-c.c:174
#, gcc-internal-format
msgid "malformed '#pragma ms_struct', ignoring"
msgstr ""
-#: config/darwin-c.c:180
+#: config/darwin-c.c:182
#, gcc-internal-format
msgid "malformed '#pragma ms_struct {on|off|reset}', ignoring"
msgstr ""
-#: config/darwin-c.c:183
+#: config/darwin-c.c:185
#, gcc-internal-format
msgid "junk at end of '#pragma ms_struct'"
msgstr ""
-#: config/darwin-c.c:409
+#: config/darwin-c.c:411
#, gcc-internal-format, gfc-internal-format
msgid "subframework include %s conflicts with framework include"
msgstr ""
-#: config/darwin-c.c:592
+#: config/darwin-c.c:594
#, gcc-internal-format
msgid "unknown value %qs of -mmacosx-version-min"
msgstr ""
@@ -23479,33 +20159,33 @@ msgid ""
"fnext-runtime%>"
msgstr ""
-#: config/darwin.c:3040
+#: config/darwin.c:3052
#, gcc-internal-format
msgid ""
"%<-mdynamic-no-pic%> overrides %<-fpic%>, %<-fPIC%>, %<-fpie%> or %<-fPIE%>"
msgstr ""
-#: config/darwin.c:3225
+#: config/darwin.c:3237
#, gcc-internal-format
msgid "built-in function %qD requires the %<-mconstant-cfstrings%> flag"
msgstr ""
-#: config/darwin.c:3232
+#: config/darwin.c:3244
#, gcc-internal-format
msgid "built-in function %qD takes one argument only"
msgstr ""
-#: config/darwin.c:3306
+#: config/darwin.c:3318
#, gcc-internal-format
msgid "CFString literal is missing"
msgstr ""
-#: config/darwin.c:3317
+#: config/darwin.c:3329
#, gcc-internal-format
msgid "CFString literal expression is not a string constant"
msgstr ""
-#: config/darwin.c:3340
+#: config/darwin.c:3352
#, gcc-internal-format, gfc-internal-format
msgid "%s in CFString literal"
msgstr ""
@@ -23585,7 +20265,7 @@ msgstr ""
#. coalesced sections. Weak aliases (or any other kind of aliases) are
#. not supported. Weak symbols that aren't visible outside the .s file
#. are not supported.
-#: config/darwin.h:445
+#: config/darwin.h:442
#, gcc-internal-format
msgid "alias definitions not supported in Mach-O; ignored"
msgstr ""
@@ -23596,667 +20276,657 @@ msgstr ""
msgid "profiler support for VxWorks"
msgstr ""
-#: config/alpha/alpha.c:281
+#: config/alpha/alpha.c:297
#, gcc-internal-format
msgid "bad value %qs for -mtrap-precision switch"
msgstr ""
-#: config/alpha/alpha.c:295
+#: config/alpha/alpha.c:311
#, gcc-internal-format
msgid "bad value %qs for -mfp-rounding-mode switch"
msgstr ""
-#: config/alpha/alpha.c:310
+#: config/alpha/alpha.c:326
#, gcc-internal-format
msgid "bad value %qs for -mfp-trap-mode switch"
msgstr ""
-#: config/alpha/alpha.c:324
+#: config/alpha/alpha.c:343
#, gcc-internal-format
msgid "bad value %qs for -mcpu switch"
msgstr ""
-#: config/alpha/alpha.c:336
+#: config/alpha/alpha.c:358
#, gcc-internal-format
msgid "bad value %qs for -mtune switch"
msgstr ""
-#: config/alpha/alpha.c:344
+#: config/alpha/alpha.c:379
#, gcc-internal-format
msgid "fp software completion requires -mtrap-precision=i"
msgstr ""
-#: config/alpha/alpha.c:360
+#: config/alpha/alpha.c:395
#, gcc-internal-format
msgid "rounding mode not supported for VAX floats"
msgstr ""
-#: config/alpha/alpha.c:365
+#: config/alpha/alpha.c:400
#, gcc-internal-format
msgid "trap mode not supported for VAX floats"
msgstr ""
-#: config/alpha/alpha.c:369
+#: config/alpha/alpha.c:404
#, gcc-internal-format
msgid "128-bit long double not supported for VAX floats"
msgstr ""
-#: config/alpha/alpha.c:397
+#: config/alpha/alpha.c:432
#, gcc-internal-format, gfc-internal-format
msgid "L%d cache latency unknown for %s"
msgstr ""
-#: config/alpha/alpha.c:412
+#: config/alpha/alpha.c:447
#, gcc-internal-format
msgid "bad value %qs for -mmemory-latency"
msgstr ""
-#: config/alpha/alpha.c:6584 config/alpha/alpha.c:6587 config/s390/s390.c:9172
-#: config/s390/s390.c:9175 config/tilegx/tilegx.c:3395
+#: config/alpha/alpha.c:6596 config/alpha/alpha.c:6599 config/s390/s390.c:9313
+#: config/s390/s390.c:9316 config/tilegx/tilegx.c:3449
#: config/tilepro/tilepro.c:3099
#, gcc-internal-format
msgid "bad builtin fcode"
msgstr ""
-#: config/arm/arm.c:1519
+#: config/arm/arm.c:1548
#, gcc-internal-format, gfc-internal-format
msgid "switch -mcpu=%s conflicts with -march=%s switch"
msgstr ""
-#: config/arm/arm.c:1636
+#: config/arm/arm.c:1666
#, gcc-internal-format
msgid "target CPU does not support ARM mode"
msgstr ""
-#: config/arm/arm.c:1642
+#: config/arm/arm.c:1672
#, gcc-internal-format
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:1648
+#: config/arm/arm.c:1678
#, gcc-internal-format
msgid "target CPU does not support THUMB instructions"
msgstr ""
-#: config/arm/arm.c:1666
+#: config/arm/arm.c:1696
#, gcc-internal-format
msgid ""
"enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:1669
+#: config/arm/arm.c:1699
#, gcc-internal-format
msgid ""
"enabling callee interworking support is only meaningful when compiling for "
"the Thumb"
msgstr ""
-#: config/arm/arm.c:1673
+#: config/arm/arm.c:1703
#, gcc-internal-format
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr ""
-#: config/arm/arm.c:1681
+#: config/arm/arm.c:1711
#, gcc-internal-format
msgid "-fpic and -mapcs-reent are incompatible"
msgstr ""
-#: config/arm/arm.c:1684
+#: config/arm/arm.c:1714
#, gcc-internal-format
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:1692
+#: config/arm/arm.c:1722
#, gcc-internal-format
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:1695
+#: config/arm/arm.c:1725
#, gcc-internal-format
msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:1698
+#: config/arm/arm.c:1728
#, gcc-internal-format
msgid ""
"%<mwords-little-endian%> is deprecated and will be removed in a future "
"release"
msgstr ""
-#: config/arm/arm.c:1761
+#: config/arm/arm.c:1790
#, gcc-internal-format
msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
msgstr ""
-#: config/arm/arm.c:1764
+#: config/arm/arm.c:1793
#, gcc-internal-format
msgid "iwmmxt abi requires an iwmmxt capable cpu"
msgstr ""
-#: config/arm/arm.c:1812
-#, gcc-internal-format
-msgid "FPA is unsupported in the AAPCS"
-msgstr ""
-
-#: config/arm/arm.c:1817
+#: config/arm/arm.c:1826
#, gcc-internal-format
msgid "AAPCS does not support -mcaller-super-interworking"
msgstr ""
-#: config/arm/arm.c:1820
+#: config/arm/arm.c:1829
#, gcc-internal-format
msgid "AAPCS does not support -mcallee-super-interworking"
msgstr ""
-#: config/arm/arm.c:1826
-#, gcc-internal-format
-msgid "iWMMXt and non-VFP floating point unit are incompatible"
-msgstr ""
-
-#: config/arm/arm.c:1830
+#: config/arm/arm.c:1834
#, gcc-internal-format
msgid "iWMMXt and NEON are incompatible"
msgstr ""
-#: config/arm/arm.c:1834
+#: config/arm/arm.c:1838
#, gcc-internal-format
msgid "iWMMXt unsupported under Thumb mode"
msgstr ""
-#: config/arm/arm.c:1838
+#: config/arm/arm.c:1842
#, gcc-internal-format
msgid "__fp16 and no ldrh"
msgstr ""
-#: config/arm/arm.c:1858
+#: config/arm/arm.c:1862
#, gcc-internal-format
msgid "-mfloat-abi=hard and VFP"
msgstr ""
-#: config/arm/arm.c:1883
+#: config/arm/arm.c:1885
#, gcc-internal-format
msgid "can not use -mtp=cp15 with 16-bit Thumb"
msgstr ""
-#: config/arm/arm.c:1899
+#: config/arm/arm.c:1901
#, gcc-internal-format
msgid "structure size boundary can only be set to 8, 32 or 64"
msgstr ""
-#: config/arm/arm.c:1901
+#: config/arm/arm.c:1903
#, gcc-internal-format
msgid "structure size boundary can only be set to 8 or 32"
msgstr ""
-#: config/arm/arm.c:1909
+#: config/arm/arm.c:1911
#, gcc-internal-format
msgid "RTP PIC is incompatible with Thumb"
msgstr ""
-#: config/arm/arm.c:1918
+#: config/arm/arm.c:1920
#, gcc-internal-format
msgid "RTP PIC is incompatible with -msingle-pic-base"
msgstr ""
-#: config/arm/arm.c:1930
+#: config/arm/arm.c:1932
#, gcc-internal-format
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:1939
+#: config/arm/arm.c:1941
#, gcc-internal-format, gfc-internal-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:1971
+#: config/arm/arm.c:1973
#, gcc-internal-format
msgid "target CPU does not support unaligned accesses"
msgstr ""
-#: config/arm/arm.c:1995
+#: config/arm/arm.c:1997
#, gcc-internal-format
msgid "-freorder-blocks-and-partition not supported on this architecture"
msgstr ""
-#: config/arm/arm.c:4047
+#: config/arm/arm.c:4051
#, gcc-internal-format
msgid "non-AAPCS derived PCS variant"
msgstr ""
-#: config/arm/arm.c:4049
+#: config/arm/arm.c:4053
#, gcc-internal-format
msgid "variadic functions must use the base AAPCS variant"
msgstr ""
-#: config/arm/arm.c:4068
+#: config/arm/arm.c:4072
#, gcc-internal-format
msgid "PCS variant"
msgstr ""
-#: config/arm/arm.c:4263
+#: config/arm/arm.c:4267
#, gcc-internal-format
msgid "Thumb-1 hard-float VFP ABI"
msgstr ""
-#: config/arm/arm.c:4986 config/arm/arm.c:5004 config/avr/avr.c:6749
-#: config/avr/avr.c:6765 config/bfin/bfin.c:4634 config/bfin/bfin.c:4695
-#: config/bfin/bfin.c:4724 config/h8300/h8300.c:5434 config/i386/i386.c:5003
-#: config/i386/i386.c:32492 config/i386/i386.c:32543 config/i386/i386.c:32615
-#: config/m68k/m68k.c:725 config/mcore/mcore.c:3079 config/mep/mep.c:4014
-#: config/mep/mep.c:4028 config/mep/mep.c:4102 config/rl78/rl78.c:478
-#: config/rs6000/rs6000.c:24513 config/rx/rx.c:2505 config/sh/sh.c:9076
-#: config/sh/sh.c:9094 config/sh/sh.c:9123 config/sh/sh.c:9205
-#: config/sh/sh.c:9228 config/spu/spu.c:3976 config/stormy16/stormy16.c:2202
-#: config/v850/v850.c:2060
+#: config/arm/arm.c:4990 config/arm/arm.c:5008 config/avr/avr.c:7590
+#: config/avr/avr.c:7606 config/bfin/bfin.c:4637 config/bfin/bfin.c:4698
+#: config/bfin/bfin.c:4727 config/h8300/h8300.c:5440 config/i386/i386.c:5108
+#: config/i386/i386.c:33053 config/i386/i386.c:33104 config/i386/i386.c:33176
+#: config/m68k/m68k.c:731 config/mcore/mcore.c:3047 config/mep/mep.c:3889
+#: config/mep/mep.c:3903 config/mep/mep.c:3977 config/rl78/rl78.c:479
+#: config/rs6000/rs6000.c:24585 config/rx/rx.c:2506 config/sh/sh.c:9338
+#: config/sh/sh.c:9356 config/sh/sh.c:9385 config/sh/sh.c:9467
+#: config/sh/sh.c:9490 config/spu/spu.c:3686 config/stormy16/stormy16.c:2207
+#: config/v850/v850.c:2039
#, gcc-internal-format
msgid "%qE attribute only applies to functions"
msgstr ""
-#: config/arm/arm.c:19299
+#: config/arm/arm.c:18568
#, gcc-internal-format
msgid "unable to compute real location of stacked parameter"
msgstr ""
-#: config/arm/arm.c:21245
+#: config/arm/arm.c:20518
#, gcc-internal-format
msgid "argument must be a constant"
msgstr ""
#. @@@ better error message
-#: config/arm/arm.c:21618 config/arm/arm.c:21722
+#: config/arm/arm.c:20892 config/arm/arm.c:20996
#, gcc-internal-format
msgid "selector must be an immediate"
msgstr ""
-#: config/arm/arm.c:21626 config/arm/arm.c:21671 config/arm/arm.c:21729
-#: config/arm/arm.c:21738
+#: config/arm/arm.c:20900 config/arm/arm.c:20945 config/arm/arm.c:21003
+#: config/arm/arm.c:21012
#, gcc-internal-format
msgid "the range of selector should be in 0 to 7"
msgstr ""
-#: config/arm/arm.c:21631 config/arm/arm.c:21740
+#: config/arm/arm.c:20905 config/arm/arm.c:21014
#, gcc-internal-format
msgid "the range of selector should be in 0 to 3"
msgstr ""
-#: config/arm/arm.c:21636 config/arm/arm.c:21742
+#: config/arm/arm.c:20910 config/arm/arm.c:21016
#, gcc-internal-format
msgid "the range of selector should be in 0 to 1"
msgstr ""
-#: config/arm/arm.c:21808
+#: config/arm/arm.c:21082
#, gcc-internal-format
msgid "mask must be an immediate"
msgstr ""
-#: config/arm/arm.c:21813
+#: config/arm/arm.c:21087
#, gcc-internal-format
msgid "the range of mask should be in 0 to 255"
msgstr ""
-#: config/arm/arm.c:22001
+#: config/arm/arm.c:21275
#, gcc-internal-format
msgid ""
"the range of count should be in 0 to 32. please check the intrinsic "
"_mm_rori_pi16 in code."
msgstr ""
-#: config/arm/arm.c:22003
+#: config/arm/arm.c:21277
#, gcc-internal-format
msgid ""
"the range of count should be in 0 to 32. please check the intrinsic "
"_mm_rori_pi32 in code."
msgstr ""
-#: config/arm/arm.c:22005
+#: config/arm/arm.c:21279
#, gcc-internal-format
msgid ""
"the range of count should be in 0 to 32. please check the intrinsic "
"_mm_ror_pi16 in code."
msgstr ""
-#: config/arm/arm.c:22007
+#: config/arm/arm.c:21281
#, gcc-internal-format
msgid ""
"the range of count should be in 0 to 32. please check the intrinsic "
"_mm_ror_pi32 in code."
msgstr ""
-#: config/arm/arm.c:22013
+#: config/arm/arm.c:21287
#, gcc-internal-format
msgid ""
"the range of count should be in 0 to 64. please check the intrinsic "
"_mm_rori_si64 in code."
msgstr ""
-#: config/arm/arm.c:22015
+#: config/arm/arm.c:21289
#, gcc-internal-format
msgid ""
"the range of count should be in 0 to 64. please check the intrinsic "
"_mm_ror_si64 in code."
msgstr ""
-#: config/arm/arm.c:22020
+#: config/arm/arm.c:21294
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_srli_pi16 in code."
msgstr ""
-#: config/arm/arm.c:22022
+#: config/arm/arm.c:21296
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_srli_pi32 in code."
msgstr ""
-#: config/arm/arm.c:22024
+#: config/arm/arm.c:21298
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_srli_si64 in code."
msgstr ""
-#: config/arm/arm.c:22026
+#: config/arm/arm.c:21300
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_slli_pi16 in code."
msgstr ""
-#: config/arm/arm.c:22028
+#: config/arm/arm.c:21302
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_slli_pi32 in code."
msgstr ""
-#: config/arm/arm.c:22030
+#: config/arm/arm.c:21304
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_slli_si64 in code."
msgstr ""
-#: config/arm/arm.c:22032
+#: config/arm/arm.c:21306
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_srai_pi16 in code."
msgstr ""
-#: config/arm/arm.c:22034
+#: config/arm/arm.c:21308
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_srai_pi32 in code."
msgstr ""
-#: config/arm/arm.c:22036
+#: config/arm/arm.c:21310
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic "
"_mm_srai_si64 in code."
msgstr ""
-#: config/arm/arm.c:22038
+#: config/arm/arm.c:21312
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_srl_pi16 "
"in code."
msgstr ""
-#: config/arm/arm.c:22040
+#: config/arm/arm.c:21314
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_srl_pi32 "
"in code."
msgstr ""
-#: config/arm/arm.c:22042
+#: config/arm/arm.c:21316
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_srl_si64 "
"in code."
msgstr ""
-#: config/arm/arm.c:22044
+#: config/arm/arm.c:21318
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_sll_pi16 "
"in code."
msgstr ""
-#: config/arm/arm.c:22046
+#: config/arm/arm.c:21320
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_sll_pi32 "
"in code."
msgstr ""
-#: config/arm/arm.c:22048
+#: config/arm/arm.c:21322
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_sll_si64 "
"in code."
msgstr ""
-#: config/arm/arm.c:22050
+#: config/arm/arm.c:21324
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_sra_pi16 "
"in code."
msgstr ""
-#: config/arm/arm.c:22052
+#: config/arm/arm.c:21326
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_sra_pi32 "
"in code."
msgstr ""
-#: config/arm/arm.c:22054
+#: config/arm/arm.c:21328
#, gcc-internal-format
msgid ""
"the count should be no less than 0. please check the intrinsic _mm_sra_si64 "
"in code."
msgstr ""
-#: config/arm/arm.c:22770
+#: config/arm/arm.c:22044
#, gcc-internal-format
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:22995
+#: config/arm/arm.c:22269
#, gcc-internal-format
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/arm.c:25374
+#: config/arm/arm.c:25081
#, gcc-internal-format
msgid "the mangling of %<va_list%> has changed in GCC 4.4"
msgstr ""
-#: config/avr/avr.c:548
+#: config/avr/avr.c:570
#, gcc-internal-format
msgid "function attributes %qs, %qs and %qs are mutually exclusive"
msgstr ""
-#: config/avr/avr.c:555
+#: config/avr/avr.c:577
#, gcc-internal-format
msgid "function attributes %qs and %qs have no effect on %qs function"
msgstr ""
-#: config/avr/avr.c:573
+#: config/avr/avr.c:595
#, gcc-internal-format
msgid "%qs function cannot have arguments"
msgstr ""
-#: config/avr/avr.c:576
+#: config/avr/avr.c:598
#, gcc-internal-format
msgid "%qs function cannot return a value"
msgstr ""
-#: config/avr/avr.c:583
+#: config/avr/avr.c:605
#, gcc-internal-format
msgid "%qs appears to be a misspelled %s handler"
msgstr ""
-#: config/avr/avr.c:733
+#: config/avr/avr.c:831
#, gcc-internal-format
msgid "'builtin_return_address' contains only 2 bytes of address"
msgstr ""
-#: config/avr/avr.c:1892
+#: config/avr/avr.c:1990
#, gcc-internal-format
msgid "pointer offset from symbol maybe incorrect"
msgstr ""
-#: config/avr/avr.c:2015
+#: config/avr/avr.c:2115
#, gcc-internal-format
msgid "accessing data memory with program memory address"
msgstr ""
-#: config/avr/avr.c:2064
+#: config/avr/avr.c:2164
#, gcc-internal-format
msgid "accessing program memory with data memory address"
msgstr ""
-#: config/avr/avr.c:2470
+#: config/avr/avr.c:2572
#, gcc-internal-format, gfc-internal-format
msgid "fixed register %s used to pass parameter to function"
msgstr ""
-#: config/avr/avr.c:2592
+#: config/avr/avr.c:2694
#, gcc-internal-format
msgid "writing to address space %qs not supported"
msgstr ""
-#: config/avr/avr.c:6943
+#: config/avr/avr.c:7784
#, gcc-internal-format
msgid "%qT uses address space %qs beyond flash of %qs"
msgstr ""
-#: config/avr/avr.c:6946
+#: config/avr/avr.c:7787
#, gcc-internal-format
msgid "%s %q+D uses address space %qs beyond flash of %qs"
msgstr ""
-#: config/avr/avr.c:6953
+#: config/avr/avr.c:7794
#, gcc-internal-format
msgid "pointer targeting address space %qs must be const in %qT"
msgstr ""
-#: config/avr/avr.c:6956
+#: config/avr/avr.c:7797
#, gcc-internal-format
msgid "pointer targeting address space %qs must be const in %s %q+D"
msgstr ""
-#: config/avr/avr.c:6994
+#: config/avr/avr.c:7835
#, gcc-internal-format
msgid "variable %q+D located in address space %qs beyond flash of %qs"
msgstr ""
-#: config/avr/avr.c:7010
+#: config/avr/avr.c:7851
#, gcc-internal-format
msgid ""
"variable %q+D must be const in order to be put into read-only section by "
"means of %qs"
msgstr ""
-#: config/avr/avr.c:7224
+#: config/avr/avr.c:8065
#, gcc-internal-format
msgid "only uninitialized variables can be placed in the .noinit section"
msgstr ""
-#: config/avr/avr.c:7265
+#: config/avr/avr.c:8106
#, gcc-internal-format
msgid "uninitialized variable %q+D put into program memory area"
msgstr ""
-#: config/avr/avr.c:7332
+#: config/avr/avr.c:8173
#, gcc-internal-format
msgid "MCU %qs supported for assembler only"
msgstr ""
-#: config/avr/avr.c:10602
+#: config/avr/avr.c:11373
#, gcc-internal-format, gfc-internal-format
msgid "%s expects a compile time integer constant"
msgstr ""
-#: config/avr/avr.c:10616
+#: config/avr/avr.c:11387
#, gcc-internal-format, gfc-internal-format
msgid "%s expects a compile time long integer constant as first argument"
msgstr ""
-#: config/bfin/bfin.c:2349
+#: config/bfin/bfin.c:2352
#, gcc-internal-format
msgid "-mfdpic is not supported, please use a bfin-linux-uclibc target"
msgstr ""
-#: config/bfin/bfin.c:2354
+#: config/bfin/bfin.c:2357
#, gcc-internal-format
msgid "-mshared-library-id= specified without -mid-shared-library"
msgstr ""
-#: config/bfin/bfin.c:2358
+#: config/bfin/bfin.c:2361
#, gcc-internal-format
msgid "-fstack-limit- options are ignored with -mfdpic; use -mstack-check-l1"
msgstr ""
-#: config/bfin/bfin.c:2363
+#: config/bfin/bfin.c:2366
#, gcc-internal-format
msgid "can%'t use multiple stack checking methods together"
msgstr ""
-#: config/bfin/bfin.c:2366
+#: config/bfin/bfin.c:2369
#, gcc-internal-format
msgid "ID shared libraries and FD-PIC mode can%'t be used together"
msgstr ""
-#: config/bfin/bfin.c:2371 config/m68k/m68k.c:537
+#: config/bfin/bfin.c:2374 config/m68k/m68k.c:537
#, gcc-internal-format
msgid "cannot specify both -msep-data and -mid-shared-library"
msgstr ""
-#: config/bfin/bfin.c:2391
+#: config/bfin/bfin.c:2394
#, gcc-internal-format
msgid "-mmulticore can only be used with BF561"
msgstr ""
-#: config/bfin/bfin.c:2394
+#: config/bfin/bfin.c:2397
#, gcc-internal-format
msgid "-mcorea should be used with -mmulticore"
msgstr ""
-#: config/bfin/bfin.c:2397
+#: config/bfin/bfin.c:2400
#, gcc-internal-format
msgid "-mcoreb should be used with -mmulticore"
msgstr ""
-#: config/bfin/bfin.c:2400
+#: config/bfin/bfin.c:2403
#, gcc-internal-format
msgid "-mcorea and -mcoreb can%'t be used together"
msgstr ""
-#: config/bfin/bfin.c:4639
+#: config/bfin/bfin.c:4642
#, gcc-internal-format
msgid "multiple function type attributes specified"
msgstr ""
-#: config/bfin/bfin.c:4706
+#: config/bfin/bfin.c:4709
#, gcc-internal-format
msgid ""
"can%'t apply both longcall and shortcall attributes to the same function"
msgstr ""
-#: config/bfin/bfin.c:4756 config/i386/winnt.c:61 config/mep/mep.c:3918
-#: config/mep/mep.c:4056
+#: config/bfin/bfin.c:4759 config/i386/winnt.c:61 config/mep/mep.c:3793
+#: config/mep/mep.c:3931
#, gcc-internal-format
msgid "%qE attribute only applies to variables"
msgstr ""
-#: config/bfin/bfin.c:4763
+#: config/bfin/bfin.c:4766
#, gcc-internal-format
msgid "%qE attribute cannot be specified for local variables"
msgstr ""
@@ -24290,83 +20960,78 @@ msgstr ""
#. an operator, for immediate output. If that ever happens for
#. MULT, we need to apply TARGET_MUL_BUG in the caller. Make sure
#. we notice.
-#: config/cris/cris.c:522
+#: config/cris/cris.c:524
#, gcc-internal-format
msgid "MULT case in cris_op_str"
msgstr ""
-#: config/cris/cris.c:860
+#: config/cris/cris.c:862
#, gcc-internal-format
msgid "invalid use of ':' modifier"
msgstr ""
-#: config/cris/cris.c:1047 config/moxie/moxie.c:189
+#: config/cris/cris.c:1096 config/moxie/moxie.c:189
#, gcc-internal-format, gfc-internal-format
msgid "internal error: bad register: %d"
msgstr ""
-#: config/cris/cris.c:1778
+#: config/cris/cris.c:1828
#, gcc-internal-format
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
-#: config/cris/cris.c:1875
+#: config/cris/cris.c:1925
#, gcc-internal-format
msgid "unknown cc_attr value"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2299
+#: config/cris/cris.c:2351
#, gcc-internal-format
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2539
+#: config/cris/cris.c:2590
#, gcc-internal-format, gfc-internal-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr ""
-#: config/cris/cris.c:2567
+#: config/cris/cris.c:2618
#, gcc-internal-format, gfc-internal-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2603
+#: config/cris/cris.c:2654
#, gcc-internal-format, gfc-internal-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2624
+#: config/cris/cris.c:2675
#, gcc-internal-format
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr ""
-#: config/cris/cris.c:2639
-#, gcc-internal-format
-msgid "that particular -g option is invalid with -maout and -melinux"
-msgstr ""
-
-#: config/cris/cris.c:2865
+#: config/cris/cris.c:2928
#, gcc-internal-format
msgid "unknown src"
msgstr ""
-#: config/cris/cris.c:2926
+#: config/cris/cris.c:2989
#, gcc-internal-format
msgid "unknown dest"
msgstr ""
-#: config/cris/cris.c:3215
+#: config/cris/cris.c:3278
#, gcc-internal-format, gfc-internal-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:3710 config/cris/cris.c:3738
+#: config/cris/cris.c:3773 config/cris/cris.c:3801
#, gcc-internal-format
msgid "expand_binop failed in movsi got"
msgstr ""
-#: config/cris/cris.c:3820
+#: config/cris/cris.c:3883
#, gcc-internal-format
msgid "emitting PIC operand, but PIC register isn%'t set up"
msgstr ""
@@ -24404,9 +21069,9 @@ msgstr ""
#. <subchapter>' comment. If no macros are defined for a section, only
#. the section-comment is present.
#. Note that other header files (e.g. config/elfos.h, config/linux.h,
-#. config/cris/linux.h and config/cris/aout.h) are responsible for lots of
-#. settings not repeated below. This file contains general CRIS
-#. definitions and definitions for the cris-*-elf subtarget.
+#. and config/cris/linux.h) are responsible for lots of settings not
+#. repeated below. This file contains general CRIS definitions
+#. and definitions for the cris-*-elf subtarget.
#. We don't want to use gcc_assert for everything, as that can be
#. compiled out.
#: config/cris/cris.h:43
@@ -24420,7 +21085,7 @@ msgstr ""
#. See cris.c for TARGET_ASM_FUNCTION_PROLOGUE and
#. TARGET_ASM_FUNCTION_EPILOGUE.
#. Node: Profiling
-#: config/cris/cris.h:760
+#: config/cris/cris.h:757
#, gcc-internal-format
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
@@ -24438,72 +21103,72 @@ msgid ""
"\"wand\" or \"swi\""
msgstr ""
-#: config/epiphany/epiphany.c:1430
+#: config/epiphany/epiphany.c:1431
#, gcc-internal-format
msgid "stack_offset must be at least 4"
msgstr ""
-#: config/epiphany/epiphany.c:1432
+#: config/epiphany/epiphany.c:1433
#, gcc-internal-format
msgid "stack_offset must be a multiple of 4"
msgstr ""
-#: config/frv/frv.c:8682
+#: config/frv/frv.c:8685
#, gcc-internal-format
msgid "accumulator is not a constant integer"
msgstr ""
-#: config/frv/frv.c:8687
+#: config/frv/frv.c:8690
#, gcc-internal-format
msgid "accumulator number is out of bounds"
msgstr ""
-#: config/frv/frv.c:8698
+#: config/frv/frv.c:8701
#, gcc-internal-format
msgid "inappropriate accumulator for %qs"
msgstr ""
-#: config/frv/frv.c:8774
+#: config/frv/frv.c:8777
#, gcc-internal-format
msgid "invalid IACC argument"
msgstr ""
-#: config/frv/frv.c:8797
+#: config/frv/frv.c:8800
#, gcc-internal-format
msgid "%qs expects a constant argument"
msgstr ""
-#: config/frv/frv.c:8802
+#: config/frv/frv.c:8805
#, gcc-internal-format
msgid "constant argument out of range for %qs"
msgstr ""
-#: config/frv/frv.c:9283
+#: config/frv/frv.c:9286
#, gcc-internal-format
msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/frv/frv.c:9295
+#: config/frv/frv.c:9298
#, gcc-internal-format
msgid "this media function is only available on the fr500"
msgstr ""
-#: config/frv/frv.c:9323
+#: config/frv/frv.c:9326
#, gcc-internal-format
msgid "this media function is only available on the fr400 and fr550"
msgstr ""
-#: config/frv/frv.c:9342
+#: config/frv/frv.c:9345
#, gcc-internal-format
msgid "this builtin function is only available on the fr405 and fr450"
msgstr ""
-#: config/frv/frv.c:9351
+#: config/frv/frv.c:9354
#, gcc-internal-format
msgid "this builtin function is only available on the fr500 and fr550"
msgstr ""
-#: config/frv/frv.c:9363
+#: config/frv/frv.c:9366
#, gcc-internal-format
msgid "this builtin function is only available on the fr450"
msgstr ""
@@ -24554,12 +21219,12 @@ msgstr ""
msgid "can%'t set position in PCH file: %m"
msgstr ""
-#: config/i386/i386.c:3196 config/i386/i386.c:3517
+#: config/i386/i386.c:3293 config/i386/i386.c:3623
#, gcc-internal-format, gfc-internal-format
msgid "bad value (%s) for %stune=%s %s"
msgstr ""
-#: config/i386/i386.c:3199
+#: config/i386/i386.c:3296
#, gcc-internal-format, gfc-internal-format
msgid ""
"%stune=x86-64%s is deprecated; use %stune=k8%s or %stune=generic%s instead "
@@ -24567,295 +21232,295 @@ msgid ""
msgstr ""
#. rep; movq isn't available in 32-bit code.
-#: config/i386/i386.c:3229
+#: config/i386/i386.c:3326
#, gcc-internal-format
msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
msgstr ""
-#: config/i386/i386.c:3242
+#: config/i386/i386.c:3339
#, gcc-internal-format
msgid "address mode %qs not supported in the %s bit mode"
msgstr ""
-#: config/i386/i386.c:3261 config/i386/i386.c:3270 config/i386/i386.c:3282
-#: config/i386/i386.c:3293 config/i386/i386.c:3304
+#: config/i386/i386.c:3358 config/i386/i386.c:3367 config/i386/i386.c:3379
+#: config/i386/i386.c:3390 config/i386/i386.c:3401
#, gcc-internal-format
msgid "code model %qs not supported in the %s bit mode"
msgstr ""
-#: config/i386/i386.c:3273 config/i386/i386.c:3285
+#: config/i386/i386.c:3370 config/i386/i386.c:3382
#, gcc-internal-format
msgid "code model %qs not supported in x32 mode"
msgstr ""
-#: config/i386/i386.c:3291 config/i386/i386.c:3300
+#: config/i386/i386.c:3388 config/i386/i386.c:3397
#, gcc-internal-format, gfc-internal-format
msgid "code model %s does not support PIC mode"
msgstr ""
-#: config/i386/i386.c:3327
+#: config/i386/i386.c:3424
#, gcc-internal-format
msgid "-masm=intel not supported in this configuration"
msgstr ""
-#: config/i386/i386.c:3331
+#: config/i386/i386.c:3428
#, gcc-internal-format, gfc-internal-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:3343 config/i386/i386.c:3479
+#: config/i386/i386.c:3440 config/i386/i386.c:3585
#, gcc-internal-format
msgid "CPU you selected does not support x86-64 instruction set"
msgstr ""
-#: config/i386/i386.c:3449
+#: config/i386/i386.c:3555
#, gcc-internal-format, gfc-internal-format
msgid "generic CPU can be used only for %stune=%s %s"
msgstr ""
-#: config/i386/i386.c:3452
+#: config/i386/i386.c:3558
#, gcc-internal-format, gfc-internal-format
msgid "bad value (%s) for %sarch=%s %s"
msgstr ""
-#: config/i386/i386.c:3566
+#: config/i386/i386.c:3672
#, gcc-internal-format
msgid "-mregparm is ignored in 64-bit mode"
msgstr ""
-#: config/i386/i386.c:3569
+#: config/i386/i386.c:3675
#, gcc-internal-format, gfc-internal-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:3610
+#: config/i386/i386.c:3716
#, gcc-internal-format, gfc-internal-format
msgid "%srtd%s is ignored in 64bit mode"
msgstr ""
-#: config/i386/i386.c:3674
+#: config/i386/i386.c:3781
#, gcc-internal-format
msgid "-mpreferred-stack-boundary is not supported for this target"
msgstr ""
-#: config/i386/i386.c:3677
+#: config/i386/i386.c:3784
#, gcc-internal-format, gfc-internal-format
msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
msgstr ""
-#: config/i386/i386.c:3698
+#: config/i386/i386.c:3805
#, gcc-internal-format, gfc-internal-format
msgid "-mincoming-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/i386.c:3712
+#: config/i386/i386.c:3819
#, gcc-internal-format, gfc-internal-format
msgid "%ssseregparm%s used without SSE enabled"
msgstr ""
-#: config/i386/i386.c:3720
+#: config/i386/i386.c:3827
#, gcc-internal-format
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr ""
-#: config/i386/i386.c:3725
+#: config/i386/i386.c:3832
#, gcc-internal-format
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr ""
-#: config/i386/i386.c:3769
+#: config/i386/i386.c:3876
#, gcc-internal-format, gfc-internal-format
msgid ""
"unwind tables currently require either a frame pointer or %saccumulate-"
"outgoing-args%s for correctness"
msgstr ""
-#: config/i386/i386.c:3782
+#: config/i386/i386.c:3889
#, gcc-internal-format, gfc-internal-format
msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
msgstr ""
-#: config/i386/i386.c:3886
+#: config/i386/i386.c:3993
#, gcc-internal-format
msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic"
msgstr ""
-#: config/i386/i386.c:3893
+#: config/i386/i386.c:4000
#, gcc-internal-format
msgid "-mno-fentry isn%'t compatible with SEH"
msgstr ""
-#: config/i386/i386.c:3963 config/rs6000/rs6000.c:3195
+#: config/i386/i386.c:4070 config/rs6000/rs6000.c:3149
#, gcc-internal-format, gfc-internal-format
msgid "unknown option for -mrecip=%s"
msgstr ""
-#: config/i386/i386.c:4380 config/i386/i386.c:4427
+#: config/i386/i386.c:4485 config/i386/i386.c:4532
#, gcc-internal-format, gfc-internal-format
msgid "attribute(target(\"%s\")) is unknown"
msgstr ""
-#: config/i386/i386.c:4408
+#: config/i386/i386.c:4513
#, gcc-internal-format, gfc-internal-format
msgid "option(\"%s\") was already specified"
msgstr ""
-#: config/i386/i386.c:5016 config/i386/i386.c:5067
+#: config/i386/i386.c:5121 config/i386/i386.c:5172
#, gcc-internal-format
msgid "fastcall and regparm attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5021
+#: config/i386/i386.c:5126
#, gcc-internal-format
msgid "regparam and thiscall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5028 config/i386/i386.c:32512
+#: config/i386/i386.c:5133 config/i386/i386.c:33073
#, gcc-internal-format
msgid "%qE attribute requires an integer constant argument"
msgstr ""
-#: config/i386/i386.c:5034
+#: config/i386/i386.c:5139
#, gcc-internal-format
msgid "argument to %qE attribute larger than %d"
msgstr ""
-#: config/i386/i386.c:5059 config/i386/i386.c:5102
+#: config/i386/i386.c:5164 config/i386/i386.c:5207
#, gcc-internal-format
msgid "fastcall and cdecl attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5063
+#: config/i386/i386.c:5168
#, gcc-internal-format
msgid "fastcall and stdcall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5071 config/i386/i386.c:5120
+#: config/i386/i386.c:5176 config/i386/i386.c:5225
#, gcc-internal-format
msgid "fastcall and thiscall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5081 config/i386/i386.c:5098
+#: config/i386/i386.c:5186 config/i386/i386.c:5203
#, gcc-internal-format
msgid "stdcall and cdecl attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5085
+#: config/i386/i386.c:5190
#, gcc-internal-format
msgid "stdcall and fastcall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5089 config/i386/i386.c:5116
+#: config/i386/i386.c:5194 config/i386/i386.c:5221
#, gcc-internal-format
msgid "stdcall and thiscall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5106 config/i386/i386.c:5124
+#: config/i386/i386.c:5211 config/i386/i386.c:5229
#, gcc-internal-format
msgid "cdecl and thiscall attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:5112
+#: config/i386/i386.c:5217
#, gcc-internal-format
msgid "%qE attribute is used for none class-method"
msgstr ""
-#: config/i386/i386.c:5338
+#: config/i386/i386.c:5443
#, gcc-internal-format
msgid "calling %qD with attribute sseregparm without SSE/SSE2 enabled"
msgstr ""
-#: config/i386/i386.c:5341
+#: config/i386/i386.c:5446
#, gcc-internal-format
msgid "calling %qT with attribute sseregparm without SSE/SSE2 enabled"
msgstr ""
-#: config/i386/i386.c:5556
+#: config/i386/i386.c:5733
#, gcc-internal-format
msgid "ms_hook_prologue is not compatible with nested function"
msgstr ""
-#: config/i386/i386.c:5708
+#: config/i386/i386.c:5885
#, gcc-internal-format
msgid ""
"ms_abi attribute requires -maccumulate-outgoing-args or subtarget "
"optimization implying it"
msgstr ""
-#: config/i386/i386.c:5832
+#: config/i386/i386.c:6009
#, gcc-internal-format
msgid "AVX vector argument without AVX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:5846 config/i386/i386.c:6821
+#: config/i386/i386.c:6023 config/i386/i386.c:6998
#, gcc-internal-format
msgid "SSE vector argument without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:6030
+#: config/i386/i386.c:6207
#, gcc-internal-format
msgid ""
"the ABI of passing struct with a flexible array member has changed in GCC 4.4"
msgstr ""
-#: config/i386/i386.c:6147
+#: config/i386/i386.c:6324
#, gcc-internal-format
msgid "the ABI of passing union with long double has changed in GCC 4.4"
msgstr ""
-#: config/i386/i386.c:6262
+#: config/i386/i386.c:6439
#, gcc-internal-format
msgid ""
"the ABI of passing structure with complex float member has changed in GCC 4.4"
msgstr ""
-#: config/i386/i386.c:6408
+#: config/i386/i386.c:6585
#, gcc-internal-format
msgid "SSE register return with SSE disabled"
msgstr ""
-#: config/i386/i386.c:6414
+#: config/i386/i386.c:6591
#, gcc-internal-format
msgid "SSE register argument with SSE disabled"
msgstr ""
-#: config/i386/i386.c:6430
+#: config/i386/i386.c:6607
#, gcc-internal-format
msgid "x87 register return with x87 disabled"
msgstr ""
-#: config/i386/i386.c:6859
+#: config/i386/i386.c:7036
#, gcc-internal-format
msgid "MMX vector argument without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:7234
+#: config/i386/i386.c:7411
#, gcc-internal-format, gfc-internal-format
msgid ""
"The ABI for passing parameters with %d-byte alignment has changed in GCC 4.6"
msgstr ""
-#: config/i386/i386.c:7571
+#: config/i386/i386.c:7760
#, gcc-internal-format
msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:7581
+#: config/i386/i386.c:7770
#, gcc-internal-format
msgid "MMX vector return without MMX enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:10178
+#: config/i386/i386.c:10381
#, gcc-internal-format
msgid "ms_hook_prologue attribute isn%'t compatible with -mfentry for 32-bit"
msgstr ""
-#: config/i386/i386.c:11184
+#: config/i386/i386.c:11425
#, gcc-internal-format
msgid "-fsplit-stack does not support fastcall with nested function"
msgstr ""
-#: config/i386/i386.c:11198
+#: config/i386/i386.c:11439
#, gcc-internal-format
msgid ""
"-fsplit-stack does not support 2 register parameters for a nested function"
@@ -24863,147 +21528,147 @@ msgstr ""
#. FIXME: We could make this work by pushing a register
#. around the addition and comparison.
-#: config/i386/i386.c:11209
+#: config/i386/i386.c:11450
#, gcc-internal-format
msgid "-fsplit-stack does not support 3 register parameters"
msgstr ""
-#: config/i386/i386.c:13827
+#: config/i386/i386.c:14101
#, gcc-internal-format
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:13842
+#: config/i386/i386.c:14116
#, gcc-internal-format
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:14111
+#: config/i386/i386.c:14385
#, gcc-internal-format
msgid "non-integer operand used with operand code 'z'"
msgstr ""
-#: config/i386/i386.c:27923
+#: config/i386/i386.c:28293
#, gcc-internal-format
msgid "Parameter to builtin must be a string constant or literal"
msgstr ""
-#: config/i386/i386.c:27946 config/i386/i386.c:27993
+#: config/i386/i386.c:28316 config/i386/i386.c:28363
#, gcc-internal-format, gfc-internal-format
msgid "Parameter to builtin not valid: %s"
msgstr ""
-#: config/i386/i386.c:28389 config/i386/i386.c:29326
+#: config/i386/i386.c:28763 config/i386/i386.c:29706
#, gcc-internal-format
msgid "the last argument must be a 2-bit immediate"
msgstr ""
-#: config/i386/i386.c:28795
+#: config/i386/i386.c:29169
#, gcc-internal-format
msgid "the fifth argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:28890
+#: config/i386/i386.c:29264
#, gcc-internal-format
msgid "the third argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:29298
+#: config/i386/i386.c:29678
#, gcc-internal-format
msgid "the last argument must be an 1-bit immediate"
msgstr ""
-#: config/i386/i386.c:29317
+#: config/i386/i386.c:29697
#, gcc-internal-format
msgid "the last argument must be a 4-bit immediate"
msgstr ""
-#: config/i386/i386.c:29335
+#: config/i386/i386.c:29715
#, gcc-internal-format
msgid "the last argument must be a 1-bit immediate"
msgstr ""
-#: config/i386/i386.c:29344
+#: config/i386/i386.c:29724
#, gcc-internal-format
msgid "the last argument must be a 5-bit immediate"
msgstr ""
-#: config/i386/i386.c:29353
+#: config/i386/i386.c:29733
#, gcc-internal-format
msgid "the next to last argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:29357 config/i386/i386.c:29583
+#: config/i386/i386.c:29737 config/i386/i386.c:29963
#, gcc-internal-format
msgid "the last argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:29581
+#: config/i386/i386.c:29961
#, gcc-internal-format
msgid "the last argument must be a 32-bit immediate"
msgstr ""
-#: config/i386/i386.c:29649 config/rs6000/rs6000.c:10425
+#: config/i386/i386.c:30029 config/rs6000/rs6000.c:10499
#, gcc-internal-format
msgid "selector must be an integer constant in the range 0..%wi"
msgstr ""
-#: config/i386/i386.c:29814
+#: config/i386/i386.c:30194
#, gcc-internal-format
msgid "%qE needs unknown isa option"
msgstr ""
-#: config/i386/i386.c:29818
+#: config/i386/i386.c:30198
#, gcc-internal-format
msgid "%qE needs isa option %s"
msgstr ""
-#: config/i386/i386.c:29989
+#: config/i386/i386.c:30369
#, gcc-internal-format
msgid "last argument must be an immediate"
msgstr ""
-#: config/i386/i386.c:30183
+#: config/i386/i386.c:30658
#, gcc-internal-format
msgid "last argument must be scale 1, 2, 4, 8"
msgstr ""
-#: config/i386/i386.c:30278
+#: config/i386/i386.c:30753
#, gcc-internal-format
msgid "the xabort's argument must be an 8-bit immediate"
msgstr ""
-#: config/i386/i386.c:32499
+#: config/i386/i386.c:33060
#, gcc-internal-format
msgid "%qE attribute only available for 32-bit"
msgstr ""
-#: config/i386/i386.c:32520
+#: config/i386/i386.c:33081
#, gcc-internal-format
msgid "argument to %qE attribute is neither zero, nor one"
msgstr ""
-#: config/i386/i386.c:32554 config/i386/i386.c:32563
+#: config/i386/i386.c:33115 config/i386/i386.c:33124
#, gcc-internal-format
msgid "ms_abi and sysv_abi attributes are not compatible"
msgstr ""
-#: config/i386/i386.c:32600 config/rs6000/rs6000.c:24596
+#: config/i386/i386.c:33161 config/rs6000/rs6000.c:24668
#, gcc-internal-format
msgid "%qE incompatible attribute ignored"
msgstr ""
-#: config/i386/i386.c:39512
+#: config/i386/i386.c:40558
#, gcc-internal-format
msgid "Unknown architecture specific memory model"
msgstr ""
-#: config/i386/i386.c:39519
+#: config/i386/i386.c:40565
#, gcc-internal-format
msgid "HLE_ACQUIRE not used with ACQUIRE or stronger memory model"
msgstr ""
-#: config/i386/i386.c:39525
+#: config/i386/i386.c:40571
#, gcc-internal-format
msgid "HLE_RELEASE not used with RELEASE or stronger memory model"
msgstr ""
@@ -25024,22 +21689,22 @@ msgstr ""
msgid "%q+D:'selectany' attribute applies only to initialized objects"
msgstr ""
-#: config/i386/winnt.c:484
+#: config/i386/winnt.c:492
#, gcc-internal-format
msgid "%q+D causes a section type conflict"
msgstr ""
-#: config/i386/cygming.h:197
+#: config/i386/cygming.h:201
#, gcc-internal-format
msgid "-fPIC ignored for target (all code is position independent)"
msgstr ""
-#: config/i386/cygming.h:203
+#: config/i386/cygming.h:207
#, gcc-internal-format, gfc-internal-format
msgid "-f%s ignored for target (all code is position independent)"
msgstr ""
-#: config/i386/djgpp.h:162
+#: config/i386/djgpp.h:158
#, gcc-internal-format
msgid "-mbnu210 is ignored (option is obsolete)"
msgstr ""
@@ -25049,125 +21714,125 @@ msgstr ""
msgid "malformed #pragma builtin"
msgstr ""
-#: config/ia64/ia64.c:702
+#: config/ia64/ia64.c:705
#, gcc-internal-format
msgid "invalid argument of %qE attribute"
msgstr ""
-#: config/ia64/ia64.c:715
+#: config/ia64/ia64.c:718
#, gcc-internal-format
msgid "an address area attribute cannot be specified for local variables"
msgstr ""
-#: config/ia64/ia64.c:722
+#: config/ia64/ia64.c:725
#, gcc-internal-format
msgid "address area of %q+D conflicts with previous declaration"
msgstr ""
-#: config/ia64/ia64.c:730
+#: config/ia64/ia64.c:733
#, gcc-internal-format
msgid "address area attribute cannot be specified for functions"
msgstr ""
-#: config/ia64/ia64.c:763
+#: config/ia64/ia64.c:766
#, gcc-internal-format
msgid "%qE attribute requires a string constant argument"
msgstr ""
-#: config/ia64/ia64.c:5928 config/pa/pa.c:415 config/sh/sh.c:8924
-#: config/spu/spu.c:5188
+#: config/ia64/ia64.c:5891 config/pa/pa.c:415 config/sh/sh.c:9186
+#: config/spu/spu.c:4898
#, gcc-internal-format
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:5955 config/pa/pa.c:442 config/sh/sh.c:8950
-#: config/spu/spu.c:5214
+#: config/ia64/ia64.c:5918 config/pa/pa.c:442 config/sh/sh.c:9212
+#: config/spu/spu.c:4924
#, gcc-internal-format, gfc-internal-format
msgid "%s-%s is an empty range"
msgstr ""
-#: config/ia64/ia64.c:11141
+#: config/ia64/ia64.c:11104
#, gcc-internal-format
msgid "version attribute is not a string"
msgstr ""
-#: config/iq2000/iq2000.c:1833
+#: config/iq2000/iq2000.c:1835
#, gcc-internal-format, gfc-internal-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/iq2000/iq2000.c:2595
+#: config/iq2000/iq2000.c:2597
#, gcc-internal-format
msgid "argument %qd is not a constant"
msgstr ""
-#: config/iq2000/iq2000.c:2898 config/xtensa/xtensa.c:2432
+#: config/iq2000/iq2000.c:2900 config/xtensa/xtensa.c:2438
#, gcc-internal-format
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/iq2000/iq2000.c:3053
+#: config/iq2000/iq2000.c:3055
#, gcc-internal-format, gfc-internal-format
msgid "PRINT_OPERAND: Unknown punctuation '%c'"
msgstr ""
-#: config/iq2000/iq2000.c:3062 config/xtensa/xtensa.c:2286
+#: config/iq2000/iq2000.c:3064 config/xtensa/xtensa.c:2292
#, gcc-internal-format
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/m32c/m32c-pragma.c:61
+#: config/m32c/m32c-pragma.c:55
#, gcc-internal-format
msgid "junk at end of #pragma GCC memregs [0..16]"
msgstr ""
-#: config/m32c/m32c-pragma.c:68
+#: config/m32c/m32c-pragma.c:62
#, gcc-internal-format
msgid "#pragma GCC memregs must precede any function decls"
msgstr ""
-#: config/m32c/m32c-pragma.c:76 config/m32c/m32c-pragma.c:83
+#: config/m32c/m32c-pragma.c:70 config/m32c/m32c-pragma.c:77
#, gcc-internal-format
msgid "#pragma GCC memregs takes a number [0..16]"
msgstr ""
-#: config/m32c/m32c-pragma.c:111
+#: config/m32c/m32c-pragma.c:105
#, gcc-internal-format
msgid "junk at end of #pragma ADDRESS"
msgstr ""
-#: config/m32c/m32c-pragma.c:116
+#: config/m32c/m32c-pragma.c:110
#, gcc-internal-format
msgid "malformed #pragma ADDRESS variable address"
msgstr ""
-#: config/m32c/m32c.c:411
+#: config/m32c/m32c.c:412
#, gcc-internal-format, gfc-internal-format
msgid "invalid target memregs value '%d'"
msgstr ""
-#: config/m32c/m32c.c:3154
+#: config/m32c/m32c.c:2919
#, gcc-internal-format
msgid "%qE attribute is not supported for R8C target"
msgstr ""
#. The argument must be a constant integer.
-#: config/m32c/m32c.c:3170 config/sh/sh.c:9131 config/sh/sh.c:9237
+#: config/m32c/m32c.c:2935 config/sh/sh.c:9393 config/sh/sh.c:9499
#, gcc-internal-format
msgid "%qE attribute argument not an integer constant"
msgstr ""
-#: config/m32c/m32c.c:3179
+#: config/m32c/m32c.c:2944
#, gcc-internal-format
msgid "%qE attribute argument should be between 18 to 255"
msgstr ""
-#: config/m32c/m32c.c:4355
+#: config/m32c/m32c.c:4120
#, gcc-internal-format
msgid "%<bank_switch%> has no effect on non-interrupt functions"
msgstr ""
-#: config/m32c/m32c.c:4459
+#: config/m32c/m32c.c:4224
#, gcc-internal-format
msgid "%<fast_interrupt%> attribute directive ignored"
msgstr ""
@@ -25197,22 +21862,27 @@ msgstr ""
msgid "-falign-loops=%d is not supported"
msgstr ""
-#: config/m68k/m68k.c:732
+#: config/m68k/m68k.c:623
+#, gcc-internal-format
+msgid "-fstack-limit- options are not supported on this cpu"
+msgstr ""
+
+#: config/m68k/m68k.c:738
#, gcc-internal-format
msgid "multiple interrupt attributes not allowed"
msgstr ""
-#: config/m68k/m68k.c:739
+#: config/m68k/m68k.c:745
#, gcc-internal-format
msgid "interrupt_thread is available only on fido"
msgstr ""
-#: config/m68k/m68k.c:1073 config/rs6000/rs6000.c:18557
+#: config/m68k/m68k.c:1079 config/rs6000/rs6000.c:18643
#, gcc-internal-format
msgid "stack limit expression is not supported"
msgstr ""
-#: config/mcore/mcore.c:2954
+#: config/mcore/mcore.c:2940
#, gcc-internal-format
msgid "initialized variable %q+D is marked dllimport"
msgstr ""
@@ -25292,325 +21962,325 @@ msgstr ""
msgid "malformed #pragma call"
msgstr ""
-#: config/mep/mep.c:352
+#: config/mep/mep.c:353
#, gcc-internal-format
msgid "-fpic is not supported"
msgstr ""
-#: config/mep/mep.c:354
+#: config/mep/mep.c:355
#, gcc-internal-format
msgid "-fPIC is not supported"
msgstr ""
-#: config/mep/mep.c:356
+#: config/mep/mep.c:357
#, gcc-internal-format
msgid "only one of -ms and -mm may be given"
msgstr ""
-#: config/mep/mep.c:358
+#: config/mep/mep.c:359
#, gcc-internal-format
msgid "only one of -ms and -ml may be given"
msgstr ""
-#: config/mep/mep.c:360
+#: config/mep/mep.c:361
#, gcc-internal-format
msgid "only one of -mm and -ml may be given"
msgstr ""
-#: config/mep/mep.c:362
+#: config/mep/mep.c:363
#, gcc-internal-format
msgid "only one of -ms and -mtiny= may be given"
msgstr ""
-#: config/mep/mep.c:364
+#: config/mep/mep.c:365
#, gcc-internal-format
msgid "only one of -mm and -mtiny= may be given"
msgstr ""
-#: config/mep/mep.c:366
+#: config/mep/mep.c:367
#, gcc-internal-format
msgid "-mclip currently has no effect without -mminmax"
msgstr ""
-#: config/mep/mep.c:373
+#: config/mep/mep.c:374
#, gcc-internal-format
msgid "-mc= must be -mc=tiny, -mc=near, or -mc=far"
msgstr ""
-#: config/mep/mep.c:1501
+#: config/mep/mep.c:1376
#, gcc-internal-format
msgid "unusual TP-relative address"
msgstr ""
-#: config/mep/mep.c:3477
+#: config/mep/mep.c:3352
#, gcc-internal-format
msgid "unconvertible operand %c %qs"
msgstr ""
-#: config/mep/mep.c:3925 config/mep/mep.c:3988
+#: config/mep/mep.c:3800 config/mep/mep.c:3863
#, gcc-internal-format
msgid "address region attributes not allowed with auto storage class"
msgstr ""
-#: config/mep/mep.c:3931 config/mep/mep.c:3994
+#: config/mep/mep.c:3806 config/mep/mep.c:3869
#, gcc-internal-format
msgid "address region attributes on pointed-to types ignored"
msgstr ""
-#: config/mep/mep.c:3980
+#: config/mep/mep.c:3855
#, gcc-internal-format
msgid "%qE attribute only applies to variables and functions"
msgstr ""
-#: config/mep/mep.c:4000 config/mep/mep.c:4316
+#: config/mep/mep.c:3875 config/mep/mep.c:4191
#, gcc-internal-format
msgid "duplicate address region attribute %qE in declaration of %qE on line %d"
msgstr ""
-#: config/mep/mep.c:4034
+#: config/mep/mep.c:3909
#, gcc-internal-format
msgid "cannot inline interrupt function %qE"
msgstr ""
-#: config/mep/mep.c:4040
+#: config/mep/mep.c:3915
#, gcc-internal-format
msgid "interrupt function must have return type of void"
msgstr ""
-#: config/mep/mep.c:4045
+#: config/mep/mep.c:3920
#, gcc-internal-format
msgid "interrupt function must have no arguments"
msgstr ""
-#: config/mep/mep.c:4066
+#: config/mep/mep.c:3941
#, gcc-internal-format
msgid "%qE attribute allows only an integer constant argument"
msgstr ""
-#: config/mep/mep.c:4099
+#: config/mep/mep.c:3974
#, gcc-internal-format
msgid "%qE attribute only applies to functions, not %s"
msgstr ""
-#: config/mep/mep.c:4110
+#: config/mep/mep.c:3985
#, gcc-internal-format, gfc-internal-format
msgid ""
"to describe a pointer to a VLIW function, use syntax like this:\n"
"%s"
msgstr ""
-#: config/mep/mep.c:4119
+#: config/mep/mep.c:3994
#, gcc-internal-format, gfc-internal-format
msgid ""
"to describe an array of VLIW function pointers, use syntax like this:\n"
"%s"
msgstr ""
-#: config/mep/mep.c:4125
+#: config/mep/mep.c:4000
#, gcc-internal-format
msgid "VLIW functions are not allowed without a VLIW configuration"
msgstr ""
-#: config/mep/mep.c:4275
+#: config/mep/mep.c:4150
#, gcc-internal-format, gfc-internal-format
msgid "\"#pragma disinterrupt %s\" not used"
msgstr ""
-#: config/mep/mep.c:4441
+#: config/mep/mep.c:4316
#, gcc-internal-format
msgid "__io address 0x%x is the same for %qE and %qE"
msgstr ""
-#: config/mep/mep.c:4589
+#: config/mep/mep.c:4464
#, gcc-internal-format, gfc-internal-format
msgid "variable %s (%ld bytes) is too large for the %s section (%d bytes)"
msgstr ""
-#: config/mep/mep.c:4687
+#: config/mep/mep.c:4562
#, gcc-internal-format
msgid "variable %D of type %<io%> must be uninitialized"
msgstr ""
-#: config/mep/mep.c:4692
+#: config/mep/mep.c:4567
#, gcc-internal-format
msgid "variable %D of type %<cb%> must be uninitialized"
msgstr ""
-#: config/mep/mep.c:6126
+#: config/mep/mep.c:6001
#, gcc-internal-format
msgid "coprocessor intrinsic %qs is not available in this configuration"
msgstr ""
-#: config/mep/mep.c:6129
+#: config/mep/mep.c:6004
#, gcc-internal-format
msgid "%qs is not available in VLIW functions"
msgstr ""
-#: config/mep/mep.c:6132
+#: config/mep/mep.c:6007
#, gcc-internal-format
msgid "%qs is not available in non-VLIW functions"
msgstr ""
-#: config/mep/mep.c:6294 config/mep/mep.c:6411
+#: config/mep/mep.c:6169 config/mep/mep.c:6286
#, gcc-internal-format
msgid "argument %d of %qE must be in the range %d...%d"
msgstr ""
-#: config/mep/mep.c:6297
+#: config/mep/mep.c:6172
#, gcc-internal-format
msgid "argument %d of %qE must be a multiple of %d"
msgstr ""
-#: config/mep/mep.c:6350
+#: config/mep/mep.c:6225
#, gcc-internal-format
msgid "too few arguments to %qE"
msgstr ""
-#: config/mep/mep.c:6355
+#: config/mep/mep.c:6230
#, gcc-internal-format
msgid "too many arguments to %qE"
msgstr ""
-#: config/mep/mep.c:6373
+#: config/mep/mep.c:6248
#, gcc-internal-format
msgid "argument %d of %qE must be an address"
msgstr ""
-#: config/mep/mep.c:7169
+#: config/mep/mep.c:7044
#, gcc-internal-format
msgid "2 byte cop instructions are not allowed in 64-bit VLIW mode"
msgstr ""
-#: config/mep/mep.c:7175
+#: config/mep/mep.c:7050
#, gcc-internal-format, gfc-internal-format
msgid "unexpected %d byte cop instruction"
msgstr ""
-#: config/microblaze/microblaze.c:1305
+#: config/microblaze/microblaze.c:1308
#, gcc-internal-format
msgid "%qs is an invalid argument to -mcpu="
msgstr ""
-#: config/microblaze/microblaze.c:1354
+#: config/microblaze/microblaze.c:1357
#, gcc-internal-format
msgid "-mxl-multiply-high can be used only with -mcpu=v6.00.a or greater"
msgstr ""
-#: config/microblaze/microblaze.c:1358
+#: config/microblaze/microblaze.c:1361
#, gcc-internal-format
msgid "-mxl-multiply-high requires -mno-xl-soft-mul"
msgstr ""
-#: config/mips/mips.c:1289 config/mips/mips.c:1291
+#: config/mips/mips.c:1292 config/mips/mips.c:1294
#, gcc-internal-format
msgid "%qs attribute only applies to functions"
msgstr ""
-#: config/mips/mips.c:1301
+#: config/mips/mips.c:1304
#, gcc-internal-format
msgid "%qE cannot have both %<mips16%> and %<nomips16%> attributes"
msgstr ""
-#: config/mips/mips.c:1323 config/mips/mips.c:1326
+#: config/mips/mips.c:1326 config/mips/mips.c:1329
#, gcc-internal-format
msgid "%qE redeclared with conflicting %qs attributes"
msgstr ""
-#: config/mips/mips.c:6615
+#: config/mips/mips.c:6687
#, gcc-internal-format
msgid "cannot handle inconsistent calls to %qs"
msgstr ""
-#: config/mips/mips.c:9559
+#: config/mips/mips.c:9689
#, gcc-internal-format
msgid "the %<interrupt%> attribute requires a MIPS32r2 processor"
msgstr ""
-#: config/mips/mips.c:9561
+#: config/mips/mips.c:9691
#, gcc-internal-format
msgid "the %<interrupt%> attribute requires %<-msoft-float%>"
msgstr ""
-#: config/mips/mips.c:9563
+#: config/mips/mips.c:9693
#, gcc-internal-format
msgid "interrupt handlers cannot be MIPS16 functions"
msgstr ""
-#: config/mips/mips.c:13624
+#: config/mips/mips.c:13773
#, gcc-internal-format
msgid "invalid argument to built-in function"
msgstr ""
-#: config/mips/mips.c:13824
+#: config/mips/mips.c:13974
#, gcc-internal-format
msgid "built-in function %qE not supported for MIPS16"
msgstr ""
-#: config/mips/mips.c:14416
+#: config/mips/mips.c:14571
#, gcc-internal-format
msgid "%qs does not support MIPS16 code"
msgstr ""
-#: config/mips/mips.c:15658
+#: config/mips/mips.c:15946
#, gcc-internal-format
msgid "MIPS16 PIC for ABIs other than o32 and o64"
msgstr ""
-#: config/mips/mips.c:15661
+#: config/mips/mips.c:15949
#, gcc-internal-format
msgid "MIPS16 -mxgot code"
msgstr ""
-#: config/mips/mips.c:15664
+#: config/mips/mips.c:15952
#, gcc-internal-format
msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
msgstr ""
-#: config/mips/mips.c:15853
+#: config/mips/mips.c:16141
#, gcc-internal-format
msgid ""
"%<-%s%> conflicts with the other architecture options, which specify a %s "
"processor"
msgstr ""
-#: config/mips/mips.c:15863
+#: config/mips/mips.c:16151
#, gcc-internal-format
msgid "%<-march=%s%> is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:15878
+#: config/mips/mips.c:16166
#, gcc-internal-format
msgid "%<-mgp64%> used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:15880
+#: config/mips/mips.c:16168
#, gcc-internal-format
msgid "%<-mgp32%> used with a 64-bit ABI"
msgstr ""
-#: config/mips/mips.c:15882
+#: config/mips/mips.c:16170
#, gcc-internal-format
msgid "%<-mgp64%> used with a 32-bit ABI"
msgstr ""
-#: config/mips/mips.c:15898 config/mips/mips.c:15900 config/mips/mips.c:15991
+#: config/mips/mips.c:16186 config/mips/mips.c:16188 config/mips/mips.c:16279
#, gcc-internal-format, gfc-internal-format
msgid "unsupported combination: %s"
msgstr ""
-#: config/mips/mips.c:15904
+#: config/mips/mips.c:16192
#, gcc-internal-format
msgid ""
"%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the "
"mfhc1 and mthc1 instructions"
msgstr ""
-#: config/mips/mips.c:15907
+#: config/mips/mips.c:16195
#, gcc-internal-format
msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
msgstr ""
-#: config/mips/mips.c:15930 config/mips/mips.c:15932 config/mips/mips.c:15945
+#: config/mips/mips.c:16218 config/mips/mips.c:16220 config/mips/mips.c:16233
#, gcc-internal-format
msgid "%qs is incompatible with %qs"
msgstr ""
@@ -25620,57 +22290,67 @@ msgstr ""
#. effort to support the combination of 32-bit GOT entries
#. and 64-bit pointers, so we treat the abicalls case as
#. an error.
-#: config/mips/mips.c:15939
+#: config/mips/mips.c:16227
#, gcc-internal-format
msgid "the combination of %qs and %qs is incompatible with %qs"
msgstr ""
-#: config/mips/mips.c:15985
+#: config/mips/mips.c:16273
#, gcc-internal-format
msgid "the %qs architecture does not support branch-likely instructions"
msgstr ""
-#: config/mips/mips.c:16025
+#: config/mips/mips.c:16287
+#, gcc-internal-format
+msgid "cannot generate position-independent code for %qs"
+msgstr ""
+
+#: config/mips/mips.c:16290
+#, gcc-internal-format
+msgid "position-independent code requires %qs"
+msgstr ""
+
+#: config/mips/mips.c:16323
#, gcc-internal-format
msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
msgstr ""
-#: config/mips/mips.c:16033 config/mips/mips.c:16036
+#: config/mips/mips.c:16331 config/mips/mips.c:16334
#, gcc-internal-format
msgid "cannot use small-data accesses for %qs"
msgstr ""
-#: config/mips/mips.c:16046
+#: config/mips/mips.c:16344
#, gcc-internal-format
msgid "%<-mips3d%> requires %<-mpaired-single%>"
msgstr ""
-#: config/mips/mips.c:16055
+#: config/mips/mips.c:16353
#, gcc-internal-format
msgid "%qs must be used with %qs"
msgstr ""
-#: config/mips/mips.c:16062
+#: config/mips/mips.c:16360
#, gcc-internal-format
msgid "the %qs architecture does not support paired-single instructions"
msgstr ""
-#: config/mips/mips.c:16068
+#: config/mips/mips.c:16366
#, gcc-internal-format
msgid "%qs requires a target that provides the %qs instruction"
msgstr ""
-#: config/mips/mips.c:16173
+#: config/mips/mips.c:16471
#, gcc-internal-format
msgid "%qs requires branch-likely instructions"
msgstr ""
-#: config/mips/mips.c:16177
+#: config/mips/mips.c:16475
#, gcc-internal-format
msgid "the %qs architecture does not support the synci instruction"
msgstr ""
-#: config/mips/mips.c:16627
+#: config/mips/mips.c:16925
#, gcc-internal-format
msgid "mips16 function profiling"
msgstr ""
@@ -25680,55 +22360,55 @@ msgstr ""
msgid "-f%s not supported: ignored"
msgstr ""
-#: config/mmix/mmix.c:790
+#: config/mmix/mmix.c:709
#, gcc-internal-format
msgid "support for mode %qs"
msgstr ""
-#: config/mmix/mmix.c:804
+#: config/mmix/mmix.c:723
#, gcc-internal-format, gfc-internal-format
msgid ""
"too large function value type, needs %d registers, have only %d registers "
"for this"
msgstr ""
-#: config/mmix/mmix.c:983
+#: config/mmix/mmix.c:902
#, gcc-internal-format
msgid "function_profiler support for MMIX"
msgstr ""
-#: config/mmix/mmix.c:1007
+#: config/mmix/mmix.c:926
#, gcc-internal-format
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mmix/mmix.c:1620 config/mmix/mmix.c:1644 config/mmix/mmix.c:1760
+#: config/mmix/mmix.c:1538 config/mmix/mmix.c:1562 config/mmix/mmix.c:1678
#, gcc-internal-format, gfc-internal-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:1752
+#: config/mmix/mmix.c:1670
#, gcc-internal-format
msgid "MMIX Internal: Missing %qc case in mmix_print_operand"
msgstr ""
-#: config/mmix/mmix.c:2038
+#: config/mmix/mmix.c:1955
#, gcc-internal-format
msgid "stack frame not a multiple of 8 bytes: %wd"
msgstr ""
-#: config/mmix/mmix.c:2277
+#: config/mmix/mmix.c:2194
#, gcc-internal-format
msgid "stack frame not a multiple of octabyte: %wd"
msgstr ""
-#: config/mmix/mmix.c:2561 config/mmix/mmix.c:2625
+#: config/mmix/mmix.c:2478 config/mmix/mmix.c:2542
#, gcc-internal-format, gfc-internal-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mn10300/mn10300.c:111
+#: config/mn10300/mn10300.c:100
#, gcc-internal-format
msgid "-mtune= expects mn10300, am33, am33-2, or am34"
msgstr ""
@@ -25753,7 +22433,7 @@ msgstr ""
msgid "-g option disabled"
msgstr ""
-#: config/pa/pa.c:8627
+#: config/pa/pa.c:8652
#, gcc-internal-format, gfc-internal-format
msgid ""
"alignment (%u) for %s exceeds maximum alignment for global common data. "
@@ -25765,98 +22445,98 @@ msgstr ""
msgid "-munix=98 option required for C89 Amendment 1 features.\n"
msgstr ""
-#: config/picochip/picochip.c:421
+#: config/picochip/picochip.c:419
#, gcc-internal-format, gfc-internal-format
msgid "invalid AE type specified (%s)"
msgstr ""
-#: config/picochip/picochip.c:444
+#: config/picochip/picochip.c:442
#, gcc-internal-format, gfc-internal-format
msgid "invalid mul type specified (%s) - expected mac, mul or none"
msgstr ""
-#: config/picochip/picochip.c:738
+#: config/picochip/picochip.c:736
#, gcc-internal-format, gfc-internal-format
msgid "unexpected mode %s encountered in picochip_emit_save_register"
msgstr ""
-#: config/picochip/picochip.c:906
+#: config/picochip/picochip.c:904
#, gcc-internal-format, gfc-internal-format
msgid "defaulting to stack for %s register creation"
msgstr ""
-#: config/picochip/picochip.c:1591
+#: config/picochip/picochip.c:1589
#, gcc-internal-format
msgid "LCFI labels have already been deferred"
msgstr ""
-#: config/picochip/picochip.c:1654
+#: config/picochip/picochip.c:1652
#, gcc-internal-format
msgid "LM label has already been deferred"
msgstr ""
-#: config/picochip/picochip.c:1664
+#: config/picochip/picochip.c:1662
#, gcc-internal-format
msgid "LCFI labels have already been deferred."
msgstr ""
-#: config/picochip/picochip.c:1939
+#: config/picochip/picochip.c:1937
#, gcc-internal-format, gfc-internal-format
msgid "picochip_asm_output_opcode - Found multiple lines in VLIW packet %s"
msgstr ""
-#: config/picochip/picochip.c:2042
+#: config/picochip/picochip.c:2040
#, gcc-internal-format
msgid "picochip_asm_output_opcode - can%'t output unknown operator %c"
msgstr ""
-#: config/picochip/picochip.c:2293 config/picochip/picochip.c:2353
+#: config/picochip/picochip.c:2291 config/picochip/picochip.c:2351
#, gcc-internal-format
msgid "%s: at least one operand can%'t be handled"
msgstr ""
-#: config/picochip/picochip.c:2434
+#: config/picochip/picochip.c:2432
#, gcc-internal-format, gfc-internal-format
msgid "unknown short branch in %s (type %d)"
msgstr ""
-#: config/picochip/picochip.c:2471
+#: config/picochip/picochip.c:2469
#, gcc-internal-format, gfc-internal-format
msgid "unknown long branch in %s (type %d)"
msgstr ""
-#: config/picochip/picochip.c:2511 config/picochip/picochip.c:2579
+#: config/picochip/picochip.c:2509 config/picochip/picochip.c:2577
#, gcc-internal-format, gfc-internal-format
msgid "PUT uses port array index %d, which is out of range [%d..%d)"
msgstr ""
-#: config/picochip/picochip.c:2545
+#: config/picochip/picochip.c:2543
#, gcc-internal-format, gfc-internal-format
msgid "GET uses port array index %d, which is out of range [%d..%d)"
msgstr ""
-#: config/picochip/picochip.c:3424
+#: config/picochip/picochip.c:3422
#, gcc-internal-format, gfc-internal-format
msgid "too many ALU instructions emitted (%d)"
msgstr ""
-#: config/picochip/picochip.c:4057 config/picochip/picochip.c:4150
+#: config/picochip/picochip.c:4055 config/picochip/picochip.c:4148
#, gcc-internal-format, gfc-internal-format
msgid "%s: Second source operand is not a constant"
msgstr ""
-#: config/picochip/picochip.c:4060 config/picochip/picochip.c:4111
-#: config/picochip/picochip.c:4153
+#: config/picochip/picochip.c:4058 config/picochip/picochip.c:4109
+#: config/picochip/picochip.c:4151
#, gcc-internal-format, gfc-internal-format
msgid "%s: Third source operand is not a constant"
msgstr ""
-#: config/picochip/picochip.c:4114
+#: config/picochip/picochip.c:4112
#, gcc-internal-format, gfc-internal-format
msgid "%s: Fourth source operand is not a constant"
msgstr ""
-#: config/picochip/picochip.c:4412
+#: config/picochip/picochip.c:4410
#, gcc-internal-format, gfc-internal-format
msgid "%s (disable warning using -mno-inefficient-warnings)"
msgstr ""
@@ -25890,416 +22570,520 @@ msgstr ""
#. rs6000_default_long_calls is set to the value of TOGGLE, changing
#. whether or not new function declarations receive a longcall
#. attribute by default.
-#: config/rs6000/rs6000-c.c:51
+#: config/rs6000/rs6000-c.c:50
#, gcc-internal-format
msgid "ignoring malformed #pragma longcall"
msgstr ""
-#: config/rs6000/rs6000-c.c:64
+#: config/rs6000/rs6000-c.c:63
#, gcc-internal-format
msgid "missing open paren"
msgstr ""
-#: config/rs6000/rs6000-c.c:66
+#: config/rs6000/rs6000-c.c:65
#, gcc-internal-format
msgid "missing number"
msgstr ""
-#: config/rs6000/rs6000-c.c:68
+#: config/rs6000/rs6000-c.c:67
#, gcc-internal-format
msgid "missing close paren"
msgstr ""
-#: config/rs6000/rs6000-c.c:71
+#: config/rs6000/rs6000-c.c:70
#, gcc-internal-format
msgid "number must be 0 or 1"
msgstr ""
-#: config/rs6000/rs6000-c.c:74
+#: config/rs6000/rs6000-c.c:73
#, gcc-internal-format
msgid "junk at end of #pragma longcall"
msgstr ""
-#: config/rs6000/rs6000-c.c:3544
+#: config/rs6000/rs6000-c.c:3534
#, gcc-internal-format, gfc-internal-format
msgid "%s only accepts %d arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:3549
+#: config/rs6000/rs6000-c.c:3539
#, gcc-internal-format, gfc-internal-format
msgid "%s only accepts 1 argument"
msgstr ""
-#: config/rs6000/rs6000-c.c:3554
+#: config/rs6000/rs6000-c.c:3544
#, gcc-internal-format, gfc-internal-format
msgid "%s only accepts 2 arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:3619
+#: config/rs6000/rs6000-c.c:3606
#, gcc-internal-format
msgid "vec_extract only accepts 2 arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:3695
+#: config/rs6000/rs6000-c.c:3682
#, gcc-internal-format
msgid "vec_insert only accepts 3 arguments"
msgstr ""
-#: config/rs6000/rs6000-c.c:3798
+#: config/rs6000/rs6000-c.c:3785
#, gcc-internal-format
msgid "passing arg %d of %qE discards qualifiers frompointer target type"
msgstr ""
-#: config/rs6000/rs6000-c.c:3841
+#: config/rs6000/rs6000-c.c:3828
#, gcc-internal-format
msgid "invalid parameter combination for AltiVec intrinsic"
msgstr ""
-#: config/rs6000/rs6000.c:2253
+#: config/rs6000/rs6000.c:2216
#, gcc-internal-format
msgid "-mrecip requires -ffinite-math or -ffast-math"
msgstr ""
-#: config/rs6000/rs6000.c:2255
+#: config/rs6000/rs6000.c:2218
#, gcc-internal-format
msgid "-mrecip requires -fno-trapping-math or -ffast-math"
msgstr ""
-#: config/rs6000/rs6000.c:2257
+#: config/rs6000/rs6000.c:2220
#, gcc-internal-format
msgid "-mrecip requires -freciprocal-math or -ffast-math"
msgstr ""
-#: config/rs6000/rs6000.c:2352
+#: config/rs6000/rs6000.c:2315
#, gcc-internal-format
msgid "-m64 requires PowerPC64 architecture, enabling"
msgstr ""
-#: config/rs6000/rs6000.c:2436
+#: config/rs6000/rs6000.c:2398
#, gcc-internal-format
msgid ""
"-malign-power is not supported for 64-bit Darwin; it is incompatible with "
"the installed C and C++ libraries"
msgstr ""
-#: config/rs6000/rs6000.c:2547
+#: config/rs6000/rs6000.c:2509
#, gcc-internal-format
msgid "not configured for SPE ABI"
msgstr ""
-#: config/rs6000/rs6000.c:2552
+#: config/rs6000/rs6000.c:2514
#, gcc-internal-format
msgid "not configured for SPE instruction set"
msgstr ""
-#: config/rs6000/rs6000.c:2558
+#: config/rs6000/rs6000.c:2520
#, gcc-internal-format
msgid "target attribute or pragma changes SPE ABI"
msgstr ""
-#: config/rs6000/rs6000.c:2565
+#: config/rs6000/rs6000.c:2527
#, gcc-internal-format
msgid "AltiVec not supported in this target"
msgstr ""
-#: config/rs6000/rs6000.c:2567 config/rs6000/rs6000.c:2572
+#: config/rs6000/rs6000.c:2529 config/rs6000/rs6000.c:2534
#, gcc-internal-format
msgid "SPE not supported in this target"
msgstr ""
-#: config/rs6000/rs6000.c:2599
+#: config/rs6000/rs6000.c:2561
#, gcc-internal-format
msgid "-mmultiple is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:2606
+#: config/rs6000/rs6000.c:2568
#, gcc-internal-format
msgid "-mstring is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:2714
+#: config/rs6000/rs6000.c:2676
#, gcc-internal-format, gfc-internal-format
msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch"
msgstr ""
-#: config/rs6000/rs6000.c:2726
+#: config/rs6000/rs6000.c:2688
#, gcc-internal-format
msgid "target attribute or pragma changes long double size"
msgstr ""
-#: config/rs6000/rs6000.c:2747 config/rs6000/rs6000.c:2762
+#: config/rs6000/rs6000.c:2709 config/rs6000/rs6000.c:2724
#, gcc-internal-format
msgid "target attribute or pragma changes AltiVec ABI"
msgstr ""
-#: config/rs6000/rs6000.c:2779
+#: config/rs6000/rs6000.c:2741
#, gcc-internal-format
msgid "target attribute or pragma changes darwin64 ABI"
msgstr ""
-#: config/rs6000/rs6000.c:2838
+#: config/rs6000/rs6000.c:2800
#, gcc-internal-format
msgid "target attribute or pragma changes single precision floating point"
msgstr ""
-#: config/rs6000/rs6000.c:2841
+#: config/rs6000/rs6000.c:2803
#, gcc-internal-format
msgid "target attribute or pragma changes double precision floating point"
msgstr ""
-#: config/rs6000/rs6000.c:7297
+#: config/rs6000/rs6000.c:7371
#, gcc-internal-format
msgid ""
"GCC vector returned by reference: non-standard ABI extension with no "
"compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:7435
+#: config/rs6000/rs6000.c:7509
#, gcc-internal-format
msgid ""
"cannot return value in vector register because altivec instructions are "
"disabled, use -maltivec to enable them"
msgstr ""
-#: config/rs6000/rs6000.c:7778
+#: config/rs6000/rs6000.c:7852
#, gcc-internal-format
msgid ""
"cannot pass argument in vector register because altivec instructions are "
"disabled, use -maltivec to enable them"
msgstr ""
-#: config/rs6000/rs6000.c:8704
+#: config/rs6000/rs6000.c:8778
#, gcc-internal-format
msgid ""
"GCC vector passed by reference: non-standard ABI extension with no "
"compatibility guarantee"
msgstr ""
-#: config/rs6000/rs6000.c:9333
+#: config/rs6000/rs6000.c:9407
#, gcc-internal-format, gfc-internal-format
msgid "internal error: builtin function %s already processed"
msgstr ""
-#: config/rs6000/rs6000.c:9706
+#: config/rs6000/rs6000.c:9780
#, gcc-internal-format
msgid "argument 1 must be a 5-bit signed literal"
msgstr ""
-#: config/rs6000/rs6000.c:9809 config/rs6000/rs6000.c:10826
+#: config/rs6000/rs6000.c:9883 config/rs6000/rs6000.c:10900
#, gcc-internal-format
msgid "argument 2 must be a 5-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:9848
+#: config/rs6000/rs6000.c:9922
#, gcc-internal-format
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:9900
+#: config/rs6000/rs6000.c:9974
#, gcc-internal-format
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:10157
+#: config/rs6000/rs6000.c:10231
#, gcc-internal-format
msgid "argument 3 must be a 4-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:10175
+#: config/rs6000/rs6000.c:10249
#, gcc-internal-format
msgid "argument 3 must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:10187
+#: config/rs6000/rs6000.c:10261
#, gcc-internal-format
msgid "argument 3 must be a 1-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:10370
+#: config/rs6000/rs6000.c:10444
#, gcc-internal-format
msgid "argument to %qs must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:10511
+#: config/rs6000/rs6000.c:10585
#, gcc-internal-format
msgid "unresolved overload for Altivec builtin %qF"
msgstr ""
-#: config/rs6000/rs6000.c:10617
+#: config/rs6000/rs6000.c:10691
#, gcc-internal-format
msgid "argument to dss must be a 2-bit unsigned literal"
msgstr ""
-#: config/rs6000/rs6000.c:10946
+#: config/rs6000/rs6000.c:11020
#, gcc-internal-format
msgid "argument 1 of __builtin_paired_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:10993
+#: config/rs6000/rs6000.c:11067
#, gcc-internal-format
msgid "argument 1 of __builtin_paired_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:11018
+#: config/rs6000/rs6000.c:11092
#, gcc-internal-format
msgid "argument 1 of __builtin_spe_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:11090
+#: config/rs6000/rs6000.c:11164
#, gcc-internal-format
msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:11172
+#: config/rs6000/rs6000.c:11246
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s is only valid for the cell processor"
msgstr ""
-#: config/rs6000/rs6000.c:11174
+#: config/rs6000/rs6000.c:11248
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mvsx option"
msgstr ""
-#: config/rs6000/rs6000.c:11176
+#: config/rs6000/rs6000.c:11250
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -maltivec option"
msgstr ""
-#: config/rs6000/rs6000.c:11178
+#: config/rs6000/rs6000.c:11252
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mpaired option"
msgstr ""
-#: config/rs6000/rs6000.c:11180
+#: config/rs6000/rs6000.c:11254
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s requires the -mspe option"
msgstr ""
-#: config/rs6000/rs6000.c:11182
+#: config/rs6000/rs6000.c:11256
#, gcc-internal-format, gfc-internal-format
msgid "Builtin function %s is not supported with the current options"
msgstr ""
-#: config/rs6000/rs6000.c:12384
+#: config/rs6000/rs6000.c:12458
#, gcc-internal-format, gfc-internal-format
msgid "internal error: builtin function %s had no type"
msgstr ""
-#: config/rs6000/rs6000.c:12391
+#: config/rs6000/rs6000.c:12465
#, gcc-internal-format, gfc-internal-format
msgid "internal error: builtin function %s had an unexpected return type %s"
msgstr ""
-#: config/rs6000/rs6000.c:12407
+#: config/rs6000/rs6000.c:12481
#, gcc-internal-format, gfc-internal-format
msgid ""
"internal error: builtin function %s, argument %d had unexpected argument "
"type %s"
msgstr ""
-#: config/rs6000/rs6000.c:18527
+#: config/rs6000/rs6000.c:18613
#, gcc-internal-format
msgid "stack frame too large"
msgstr ""
-#: config/rs6000/rs6000.c:22282
+#: config/rs6000/rs6000.c:22356
#, gcc-internal-format
msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:24302
+#: config/rs6000/rs6000.c:24374
#, gcc-internal-format
msgid ""
"You cannot take the address of a nested function if you use the -mno-"
"pointers-to-nested-functions option."
msgstr ""
-#: config/rs6000/rs6000.c:24383
+#: config/rs6000/rs6000.c:24455
#, gcc-internal-format
msgid "use of %<long double%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:24385
+#: config/rs6000/rs6000.c:24457
#, gcc-internal-format
msgid "use of boolean types in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:24387
+#: config/rs6000/rs6000.c:24459
#, gcc-internal-format
msgid "use of %<complex%> in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:24389
+#: config/rs6000/rs6000.c:24461
#, gcc-internal-format
msgid "use of decimal floating point types in AltiVec types is invalid"
msgstr ""
-#: config/rs6000/rs6000.c:24395
+#: config/rs6000/rs6000.c:24467
#, gcc-internal-format
msgid ""
"use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:24398
+#: config/rs6000/rs6000.c:24470
#, gcc-internal-format
msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
msgstr ""
-#: config/rs6000/rs6000.c:24403
+#: config/rs6000/rs6000.c:24475
#, gcc-internal-format
msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:24406
+#: config/rs6000/rs6000.c:24478
#, gcc-internal-format
msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
msgstr ""
-#: config/rs6000/rs6000.c:27249
+#: config/rs6000/rs6000.c:27319
#, gcc-internal-format, gfc-internal-format
msgid "emitting microcode insn %s\t[%s] #%d"
msgstr ""
-#: config/rs6000/rs6000.c:27253
+#: config/rs6000/rs6000.c:27323
#, gcc-internal-format, gfc-internal-format
msgid "emitting conditional microcode insn %s\t[%s] #%d"
msgstr ""
-#: config/rs6000/rs6000.c:27477
+#: config/rs6000/rs6000.c:27543
#, gcc-internal-format, gfc-internal-format
msgid "invalid cpu \"%s\" for %s\"%s\"%s"
msgstr ""
-#: config/rs6000/rs6000.c:27480
+#: config/rs6000/rs6000.c:27546
#, gcc-internal-format, gfc-internal-format
msgid "%s\"%s\"%s is not allowed"
msgstr ""
-#: config/rs6000/rs6000.c:27482
+#: config/rs6000/rs6000.c:27548
#, gcc-internal-format, gfc-internal-format
msgid "%s\"%s\"%s is invalid"
msgstr ""
-#: config/rs6000/aix43.h:32 config/rs6000/aix51.h:32 config/rs6000/aix52.h:32
-#: config/rs6000/aix53.h:32 config/rs6000/aix61.h:32
-#, gcc-internal-format
-msgid "-maix64 and POWER architecture are incompatible"
-msgstr ""
-
-#: config/rs6000/aix43.h:37 config/rs6000/aix51.h:37 config/rs6000/aix52.h:37
-#: config/rs6000/aix53.h:37 config/rs6000/aix61.h:37
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX version 4.3.
+#. Copyright (C) 1998-2012 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3. If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX V5.
+#. Copyright (C) 2001-2012 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3. If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX V5.2.
+#. Copyright (C) 2002-2012 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3. If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX V5.3.
+#. Copyright (C) 2002-2012 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3. If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX V6.1.
+#. Copyright (C) 2002-2012 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3. If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+#: config/rs6000/aix53.h:30 config/rs6000/aix61.h:30
#, gcc-internal-format
msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr ""
-#: config/rs6000/aix43.h:43 config/rs6000/aix52.h:43 config/rs6000/aix53.h:43
-#: config/rs6000/aix61.h:43
+#: config/rs6000/aix43.h:36 config/rs6000/aix52.h:36 config/rs6000/aix53.h:36
+#: config/rs6000/aix61.h:36
#, gcc-internal-format
msgid "soft-float and long-double-128 are incompatible"
msgstr ""
-#: config/rs6000/aix43.h:47 config/rs6000/aix51.h:41 config/rs6000/aix52.h:47
-#: config/rs6000/aix53.h:47 config/rs6000/aix61.h:47
+#: config/rs6000/aix43.h:40 config/rs6000/aix51.h:34 config/rs6000/aix52.h:40
+#: config/rs6000/aix53.h:40 config/rs6000/aix61.h:40
#, gcc-internal-format
msgid ""
"-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
@@ -26347,153 +23131,153 @@ msgstr ""
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1655
+#: config/rs6000/rs6000.h:1615
#, gcc-internal-format
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
#. get control in TARGET_OPTION_OVERRIDE.
-#: config/rs6000/sysv4.h:114
+#: config/rs6000/sysv4.h:112
#, gcc-internal-format, gfc-internal-format
msgid "bad value for -mcall-%s"
msgstr ""
-#: config/rs6000/sysv4.h:130
+#: config/rs6000/sysv4.h:128
#, gcc-internal-format, gfc-internal-format
msgid "bad value for -msdata=%s"
msgstr ""
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:145
#, gcc-internal-format, gfc-internal-format
msgid "-mrelocatable and -msdata=%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:156
+#: config/rs6000/sysv4.h:154
#, gcc-internal-format, gfc-internal-format
msgid "-f%s and -msdata=%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:165
+#: config/rs6000/sysv4.h:163
#, gcc-internal-format, gfc-internal-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:174
+#: config/rs6000/sysv4.h:172
#, gcc-internal-format
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:180
+#: config/rs6000/sysv4.h:178
#, gcc-internal-format, gfc-internal-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:187
+#: config/rs6000/sysv4.h:185
#, gcc-internal-format, gfc-internal-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:194
+#: config/rs6000/sysv4.h:192
#, gcc-internal-format
msgid "-mcall-aixdesc must be big endian"
msgstr ""
-#: config/rs6000/sysv4.h:199
+#: config/rs6000/sysv4.h:197
#, gcc-internal-format
msgid "-msecure-plt not supported by your assembler"
msgstr ""
-#: config/rs6000/sysv4.h:218
+#: config/rs6000/sysv4.h:216
#, gcc-internal-format, gfc-internal-format
msgid "-m%s not supported in this configuration"
msgstr ""
-#: config/rx/rx.c:641
+#: config/rx/rx.c:642
#, gcc-internal-format, gfc-internal-format
msgid "unrecognized control register number: %d - using 'psw'"
msgstr ""
-#: config/rx/rx.c:2386
+#: config/rx/rx.c:2387
#, gcc-internal-format, gfc-internal-format
msgid "__builtin_rx_%s takes 'C', 'Z', 'S', 'O', 'I', or 'U'"
msgstr ""
-#: config/rx/rx.c:2388
+#: config/rx/rx.c:2389
#, gcc-internal-format
msgid "use __builtin_rx_mvtc (0, ... ) to write arbitrary values to PSW"
msgstr ""
-#: config/rx/rx.c:2443 config/xtensa/xtensa.c:3124 config/xtensa/xtensa.c:3164
+#: config/rx/rx.c:2444 config/xtensa/xtensa.c:3142 config/xtensa/xtensa.c:3182
#, gcc-internal-format
msgid "bad builtin code"
msgstr ""
-#: config/rx/rx.c:2554
+#: config/rx/rx.c:2555
#, gcc-internal-format
msgid "RX FPU instructions do not support NaNs and infinities"
msgstr ""
-#: config/s390/s390.c:1538
+#: config/s390/s390.c:1540
#, gcc-internal-format, gfc-internal-format
msgid "z/Architecture mode not supported on %s"
msgstr ""
-#: config/s390/s390.c:1540
+#: config/s390/s390.c:1542
#, gcc-internal-format
msgid "64-bit ABI not supported in ESA/390 mode"
msgstr ""
-#: config/s390/s390.c:1552
+#: config/s390/s390.c:1554
#, gcc-internal-format, gfc-internal-format
msgid "hardware decimal floating point instructions not available on %s"
msgstr ""
-#: config/s390/s390.c:1555
+#: config/s390/s390.c:1557
#, gcc-internal-format
msgid ""
"hardware decimal floating point instructions not available in ESA/390 mode"
msgstr ""
-#: config/s390/s390.c:1565
+#: config/s390/s390.c:1567
#, gcc-internal-format
msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
msgstr ""
-#: config/s390/s390.c:1589
+#: config/s390/s390.c:1591
#, gcc-internal-format
msgid ""
"-mbackchain -mpacked-stack -mhard-float are not supported in combination"
msgstr ""
-#: config/s390/s390.c:1595
+#: config/s390/s390.c:1597
#, gcc-internal-format
msgid "stack size must be greater than the stack guard value"
msgstr ""
-#: config/s390/s390.c:1597
+#: config/s390/s390.c:1599
#, gcc-internal-format
msgid "stack size must not be greater than 64k"
msgstr ""
-#: config/s390/s390.c:1600
+#: config/s390/s390.c:1602
#, gcc-internal-format
msgid "-mstack-guard implies use of -mstack-size"
msgstr ""
-#: config/s390/s390.c:7377
+#: config/s390/s390.c:7519
#, gcc-internal-format
msgid "total size of local variables exceeds architecture limit"
msgstr ""
-#: config/s390/s390.c:8085
+#: config/s390/s390.c:8227
#, gcc-internal-format
msgid ""
"frame size of function %qs is %wd bytes exceeding user provided stack limit "
"of %d bytes. An unconditional trap is added."
msgstr ""
-#: config/s390/s390.c:8100
+#: config/s390/s390.c:8242
#, gcc-internal-format
msgid ""
"frame size of function %qs is %wd bytes which is more than half the stack "
@@ -26501,80 +23285,80 @@ msgid ""
"function."
msgstr ""
-#: config/s390/s390.c:8128
+#: config/s390/s390.c:8270
#, gcc-internal-format
msgid "frame size of %qs is %wd bytes"
msgstr ""
-#: config/s390/s390.c:8132
+#: config/s390/s390.c:8274
#, gcc-internal-format
msgid "%qs uses dynamic stack allocation"
msgstr ""
-#: config/sh/sh.c:779
+#: config/sh/sh.c:786
#, gcc-internal-format
msgid "ignoring -fschedule-insns because of exception handling bug"
msgstr ""
-#: config/sh/sh.c:800
+#: config/sh/sh.c:802
#, gcc-internal-format
msgid ""
"unwind tables currently require either a frame pointer or -maccumulate-"
"outgoing-args for correctness"
msgstr ""
-#: config/sh/sh.c:906
+#: config/sh/sh.c:913
#, gcc-internal-format
msgid "-msoft-atomic and -mhard-atomic cannot be used at the same time"
msgstr ""
-#: config/sh/sh.c:7847
+#: config/sh/sh.c:8109
#, gcc-internal-format
msgid "__builtin_saveregs not supported by this subtarget"
msgstr ""
-#: config/sh/sh.c:9012
+#: config/sh/sh.c:9274
#, gcc-internal-format
msgid "%qE attribute only applies to interrupt functions"
msgstr ""
-#: config/sh/sh.c:9070
+#: config/sh/sh.c:9332
#, gcc-internal-format
msgid "%qE attribute is supported only for SH2A"
msgstr ""
-#: config/sh/sh.c:9100
+#: config/sh/sh.c:9362
#, gcc-internal-format
msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
-#: config/sh/sh.c:9117
+#: config/sh/sh.c:9379
#, gcc-internal-format
msgid "%qE attribute only applies to SH2A"
msgstr ""
-#: config/sh/sh.c:9139
+#: config/sh/sh.c:9401
#, gcc-internal-format
msgid "%qE attribute argument should be between 0 to 255"
msgstr ""
#. The argument must be a constant string.
-#: config/sh/sh.c:9212
+#: config/sh/sh.c:9474
#, gcc-internal-format
msgid "%qE attribute argument not a string constant"
msgstr ""
-#: config/sh/sh.c:11803
+#: config/sh/sh.c:12099
#, gcc-internal-format
msgid "r0 needs to be available as a call-clobbered register"
msgstr ""
-#: config/sh/sh.c:11824
+#: config/sh/sh.c:12120
#, gcc-internal-format
msgid "need a second call-clobbered general purpose register"
msgstr ""
-#: config/sh/sh.c:11832
+#: config/sh/sh.c:12128
#, gcc-internal-format
msgid "need a call-clobbered target register"
msgstr ""
@@ -26591,27 +23375,27 @@ msgstr ""
msgid "-mrelax is only supported for RTP PIC"
msgstr ""
-#: config/sparc/sparc.c:1004
+#: config/sparc/sparc.c:1002
#, gcc-internal-format, gfc-internal-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:1011
+#: config/sparc/sparc.c:1009
#, gcc-internal-format
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:1031
+#: config/sparc/sparc.c:1029
#, gcc-internal-format, gfc-internal-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/sparc/sparc.c:1036
+#: config/sparc/sparc.c:1034
#, gcc-internal-format
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:1043
+#: config/sparc/sparc.c:1041
#, gcc-internal-format
msgid "-fcall-saved-REG is not supported for out registers"
msgstr ""
@@ -26631,77 +23415,77 @@ msgstr ""
msgid "parameter list does not match a valid signature for %s()"
msgstr ""
-#: config/spu/spu.c:547
+#: config/spu/spu.c:252
#, gcc-internal-format, gfc-internal-format
msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/spu/spu.c:558
+#: config/spu/spu.c:263
#, gcc-internal-format, gfc-internal-format
msgid "bad value (%s) for -mtune= switch"
msgstr ""
-#: config/spu/spu.c:5468 config/spu/spu.c:5471
+#: config/spu/spu.c:5178 config/spu/spu.c:5181
#, gcc-internal-format
msgid "creating run-time relocation for %qD"
msgstr ""
-#: config/spu/spu.c:5476 config/spu/spu.c:5478
+#: config/spu/spu.c:5186 config/spu/spu.c:5188
#, gcc-internal-format
msgid "creating run-time relocation"
msgstr ""
-#: config/spu/spu.c:6605
+#: config/spu/spu.c:6323
#, gcc-internal-format, gfc-internal-format
msgid "%s expects an integer literal in the range [%d, %d]"
msgstr ""
-#: config/spu/spu.c:6625
+#: config/spu/spu.c:6343
#, gcc-internal-format
msgid "%s expects an integer literal in the range [%d, %d]. (%wd)"
msgstr ""
-#: config/spu/spu.c:6654
+#: config/spu/spu.c:6372
#, gcc-internal-format, gfc-internal-format
msgid "%d least significant bits of %s are ignored"
msgstr ""
-#: config/stormy16/stormy16.c:1036
+#: config/stormy16/stormy16.c:1038
#, gcc-internal-format
msgid "local variable memory requirements exceed capacity"
msgstr ""
-#: config/stormy16/stormy16.c:1192
+#: config/stormy16/stormy16.c:1197
#, gcc-internal-format
msgid "function_profiler support"
msgstr ""
-#: config/stormy16/stormy16.c:1286
+#: config/stormy16/stormy16.c:1291
#, gcc-internal-format
msgid "cannot use va_start in interrupt function"
msgstr ""
-#: config/stormy16/stormy16.c:1853
+#: config/stormy16/stormy16.c:1858
#, gcc-internal-format, gfc-internal-format
msgid "switch statement of size %lu entries too large"
msgstr ""
-#: config/stormy16/stormy16.c:2225
+#: config/stormy16/stormy16.c:2230
#, gcc-internal-format
msgid "%<__BELOW100__%> attribute only applies to variables"
msgstr ""
-#: config/stormy16/stormy16.c:2232
+#: config/stormy16/stormy16.c:2237
#, gcc-internal-format
msgid "__BELOW100__ attribute not allowed with auto storage class"
msgstr ""
-#: config/tilegx/tilegx.c:3398 config/tilepro/tilepro.c:3102
+#: config/tilegx/tilegx.c:3452 config/tilepro/tilepro.c:3102
#, gcc-internal-format
msgid "bad builtin icode"
msgstr ""
-#: config/tilegx/tilegx.c:3439 config/tilepro/tilepro.c:3128
+#: config/tilegx/tilegx.c:3493 config/tilepro/tilepro.c:3128
#, gcc-internal-format
msgid "operand must be an immediate of the right size"
msgstr ""
@@ -26776,47 +23560,47 @@ msgstr ""
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:2097
+#: config/v850/v850.c:2076
#, gcc-internal-format
msgid "data area attributes cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2108
+#: config/v850/v850.c:2087
#, gcc-internal-format
msgid "data area of %q+D conflicts with previous declaration"
msgstr ""
-#: config/v850/v850.c:2239
+#: config/v850/v850.c:2218
#, gcc-internal-format, gfc-internal-format
msgid "bogus JR construction: %d"
msgstr ""
-#: config/v850/v850.c:2257 config/v850/v850.c:2364
+#: config/v850/v850.c:2236 config/v850/v850.c:2343
#, gcc-internal-format, gfc-internal-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2344
+#: config/v850/v850.c:2323
#, gcc-internal-format, gfc-internal-format
msgid "bogus JARL construction: %d"
msgstr ""
-#: config/v850/v850.c:2641
+#: config/v850/v850.c:2617
#, gcc-internal-format, gfc-internal-format
msgid "bogus DISPOSE construction: %d"
msgstr ""
-#: config/v850/v850.c:2660
+#: config/v850/v850.c:2636
#, gcc-internal-format, gfc-internal-format
msgid "too much stack space to dispose of: %d"
msgstr ""
-#: config/v850/v850.c:2762
+#: config/v850/v850.c:2738
#, gcc-internal-format, gfc-internal-format
msgid "bogus PREPEARE construction: %d"
msgstr ""
-#: config/v850/v850.c:2779
+#: config/v850/v850.c:2755
#, gcc-internal-format, gfc-internal-format
msgid "too much stack space to prepare: %d"
msgstr ""
@@ -26896,22 +23680,22 @@ msgstr ""
msgid "invalid constant in %<#pragma %s%>"
msgstr ""
-#: config/xtensa/xtensa.c:2172
+#: config/xtensa/xtensa.c:2178
#, gcc-internal-format
msgid "boolean registers required for the floating-point option"
msgstr ""
-#: config/xtensa/xtensa.c:2207
+#: config/xtensa/xtensa.c:2213
#, gcc-internal-format, gfc-internal-format
msgid "-f%s is not supported with CONST16 instructions"
msgstr ""
-#: config/xtensa/xtensa.c:2214
+#: config/xtensa/xtensa.c:2220
#, gcc-internal-format
msgid "PIC is required but not supported with CONST16 instructions"
msgstr ""
-#: config/xtensa/xtensa.c:3294
+#: config/xtensa/xtensa.c:3312
#, gcc-internal-format
msgid "only uninitialized variables can be placed in a .bss section"
msgstr ""
@@ -26921,277 +23705,3704 @@ msgstr ""
msgid "%<-gnat%> misspelled as %<-gant%>"
msgstr ""
-#: ada/gcc-interface/misc.c:236
+#: ada/gcc-interface/misc.c:239
#, gcc-internal-format
msgid "-fexcess-precision=standard for Ada"
msgstr ""
-#: ada/gcc-interface/utils.c:5990 ada/gcc-interface/utils.c:6165
-#: ada/gcc-interface/utils.c:6207 ada/gcc-interface/utils.c:6261
+#: ada/gcc-interface/utils.c:5980 ada/gcc-interface/utils.c:6155
+#: ada/gcc-interface/utils.c:6197 ada/gcc-interface/utils.c:6251
#, gcc-internal-format
msgid "%qs attribute ignored"
msgstr ""
-#: ada/gcc-interface/utils.c:6108
+#: ada/gcc-interface/utils.c:6098
#, gcc-internal-format
msgid "%qs attribute requires prototypes with named arguments"
msgstr ""
-#: ada/gcc-interface/utils.c:6117
+#: ada/gcc-interface/utils.c:6107
#, gcc-internal-format
msgid "%qs attribute only applies to variadic functions"
msgstr ""
-#: ada/gcc-interface/utils.c:6188
+#: ada/gcc-interface/utils.c:6178
#, gcc-internal-format
msgid "%qE attribute has no effect"
msgstr ""
-#: ada/gcc-interface/utils.c:6294
+#: ada/gcc-interface/utils.c:6284
#, gcc-internal-format
msgid "invalid vector type for attribute %qs"
msgstr ""
-#: ada/gcc-interface/utils.c:6357
+#: ada/gcc-interface/utils.c:6347
#, gcc-internal-format
msgid "attribute %qs applies to array types only"
msgstr ""
-#: ada/gcc-interface/utils.c:6384
+#: ada/gcc-interface/utils.c:6374
#, gcc-internal-format
msgid "invalid element type for attribute %qs"
msgstr ""
+#. Except for passing an argument to an unprototyped function,
+#. this is a constraint violation. When passing an argument to
+#. an unprototyped function, it is compile-time undefined;
+#. making it a constraint in that case was rejected in
+#. DR#252.
+#: c/c-convert.c:103 c/c-typeck.c:1995 c/c-typeck.c:5252 c/c-typeck.c:10528
+#: cp/typeck.c:1849 cp/typeck.c:6929 cp/typeck.c:7624
+#, gcc-internal-format
+msgid "void value not ignored as it ought to be"
+msgstr ""
+
+#: c/c-convert.c:182 java/typeck.c:150
+#, gcc-internal-format
+msgid "conversion to non-scalar type requested"
+msgstr ""
+
+#: c/c-decl.c:737
+#, gcc-internal-format
+msgid "array %q+D assumed to have one element"
+msgstr ""
+
+#: c/c-decl.c:778
+#, gcc-internal-format
+msgid "%qD is static but used in inline function %qD which is not static"
+msgstr ""
+
+#: c/c-decl.c:783
+#, gcc-internal-format
+msgid "%q+D is static but declared in inline function %qD which is not static"
+msgstr ""
+
+#: c/c-decl.c:968
+#, gcc-internal-format, gfc-internal-format
+msgid "GCC supports only %u nested scopes"
+msgstr ""
+
+#: c/c-decl.c:1120 cp/decl.c:372
+#, gcc-internal-format
+msgid "label %q+D used but not defined"
+msgstr ""
+
+#: c/c-decl.c:1165
+#, gcc-internal-format
+msgid "nested function %q+D declared but never defined"
+msgstr ""
+
+#: c/c-decl.c:1177
+#, gcc-internal-format
+msgid "inline function %q+D declared but never defined"
+msgstr ""
+
+#: c/c-decl.c:1194 cp/decl.c:630
+#, gcc-internal-format
+msgid "unused variable %q+D"
+msgstr ""
+
+#: c/c-decl.c:1198
+#, gcc-internal-format
+msgid "variable %qD set but not used"
+msgstr ""
+
+#: c/c-decl.c:1203
+#, gcc-internal-format
+msgid "type of array %q+D completed incompatibly with implicit initialization"
+msgstr ""
+
+#: c/c-decl.c:1482 c/c-decl.c:5867 c/c-decl.c:6697 c/c-decl.c:7407
+#, gcc-internal-format
+msgid "originally defined here"
+msgstr ""
+
+#: c/c-decl.c:1552
+#, gcc-internal-format
+msgid ""
+"a parameter list with an ellipsis can%'t match an empty parameter name list "
+"declaration"
+msgstr ""
+
+#: c/c-decl.c:1559
+#, gcc-internal-format
+msgid ""
+"an argument type that has a default promotion can%'t match an empty "
+"parameter name list declaration"
+msgstr ""
+
+#: c/c-decl.c:1600
+#, gcc-internal-format
+msgid ""
+"prototype for %q+D declares more arguments than previous old-style definition"
+msgstr ""
+
+#: c/c-decl.c:1606
+#, gcc-internal-format
+msgid ""
+"prototype for %q+D declares fewer arguments than previous old-style "
+"definition"
+msgstr ""
+
+#: c/c-decl.c:1615
+#, gcc-internal-format
+msgid "prototype for %q+D declares argument %d with incompatible type"
+msgstr ""
+
+#. If we get here, no errors were found, but do issue a warning
+#. for this poor-style construct.
+#: c/c-decl.c:1628
+#, gcc-internal-format
+msgid "prototype for %q+D follows non-prototype definition"
+msgstr ""
+
+#: c/c-decl.c:1643
+#, gcc-internal-format
+msgid "previous definition of %q+D was here"
+msgstr ""
+
+#: c/c-decl.c:1645
+#, gcc-internal-format
+msgid "previous implicit declaration of %q+D was here"
+msgstr ""
+
+#: c/c-decl.c:1647
+#, gcc-internal-format
+msgid "previous declaration of %q+D was here"
+msgstr ""
+
+#: c/c-decl.c:1687
+#, gcc-internal-format
+msgid "%q+D redeclared as different kind of symbol"
+msgstr ""
+
+#: c/c-decl.c:1691
+#, gcc-internal-format
+msgid "built-in function %q+D declared as non-function"
+msgstr ""
+
+#: c/c-decl.c:1694 c/c-decl.c:1867 c/c-decl.c:2569
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a built-in function"
+msgstr ""
+
+#: c/c-decl.c:1703
+#, gcc-internal-format
+msgid "redeclaration of enumerator %q+D"
+msgstr ""
+
+#. If types don't match for a built-in, throw away the
+#. built-in. No point in calling locate_old_decl here, it
+#. won't print anything.
+#: c/c-decl.c:1724
+#, gcc-internal-format
+msgid "conflicting types for built-in function %q+D"
+msgstr ""
+
+#: c/c-decl.c:1749 c/c-decl.c:1762 c/c-decl.c:1798
+#, gcc-internal-format
+msgid "conflicting types for %q+D"
+msgstr ""
+
+#: c/c-decl.c:1778
+#, gcc-internal-format
+msgid "conflicting named address spaces (generic vs %s) for %q+D"
+msgstr ""
+
+#: c/c-decl.c:1782
+#, gcc-internal-format
+msgid "conflicting named address spaces (%s vs generic) for %q+D"
+msgstr ""
+
+#: c/c-decl.c:1786
+#, gcc-internal-format
+msgid "conflicting named address spaces (%s vs %s) for %q+D"
+msgstr ""
+
+#: c/c-decl.c:1795
+#, gcc-internal-format
+msgid "conflicting type qualifiers for %q+D"
+msgstr ""
+
+#: c/c-decl.c:1820
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D with different type"
+msgstr ""
+
+#: c/c-decl.c:1833
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D with variably modified type"
+msgstr ""
+
+#: c/c-decl.c:1840
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D"
+msgstr ""
+
+#: c/c-decl.c:1893 c/c-decl.c:1996
+#, gcc-internal-format
+msgid "redefinition of %q+D"
+msgstr ""
+
+#: c/c-decl.c:1928 c/c-decl.c:2034
+#, gcc-internal-format
+msgid "static declaration of %q+D follows non-static declaration"
+msgstr ""
+
+#: c/c-decl.c:1938 c/c-decl.c:1946 c/c-decl.c:2024 c/c-decl.c:2031
+#, gcc-internal-format
+msgid "non-static declaration of %q+D follows static declaration"
+msgstr ""
+
+#: c/c-decl.c:1962
+#, gcc-internal-format
+msgid "%<gnu_inline%> attribute present on %q+D"
+msgstr ""
+
+#: c/c-decl.c:1965
+#, gcc-internal-format
+msgid "but not here"
+msgstr ""
+
+#: c/c-decl.c:1983
+#, gcc-internal-format
+msgid "thread-local declaration of %q+D follows non-thread-local declaration"
+msgstr ""
+
+#: c/c-decl.c:1986
+#, gcc-internal-format
+msgid "non-thread-local declaration of %q+D follows thread-local declaration"
+msgstr ""
+
+#: c/c-decl.c:2016
+#, gcc-internal-format
+msgid "extern declaration of %q+D follows declaration with no linkage"
+msgstr ""
+
+#: c/c-decl.c:2052
+#, gcc-internal-format
+msgid "declaration of %q+D with no linkage follows extern declaration"
+msgstr ""
+
+#: c/c-decl.c:2058
+#, gcc-internal-format
+msgid "redeclaration of %q+D with no linkage"
+msgstr ""
+
+#: c/c-decl.c:2084
+#, gcc-internal-format
+msgid ""
+"redeclaration of %q+D with different visibility (old visibility preserved)"
+msgstr ""
+
+#: c/c-decl.c:2095
+#, gcc-internal-format
+msgid "inline declaration of %qD follows declaration with attribute noinline"
+msgstr ""
+
+#: c/c-decl.c:2102
+#, gcc-internal-format
+msgid "declaration of %q+D with attribute noinline follows inline declaration "
+msgstr ""
+
+#: c/c-decl.c:2120
+#, gcc-internal-format
+msgid "redefinition of parameter %q+D"
+msgstr ""
+
+#: c/c-decl.c:2147
+#, gcc-internal-format
+msgid "redundant redeclaration of %q+D"
+msgstr ""
+
+#: c/c-decl.c:2556
+#, gcc-internal-format
+msgid "declaration of %q+D shadows previous non-variable"
+msgstr ""
+
+#: c/c-decl.c:2561
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a parameter"
+msgstr ""
+
+#: c/c-decl.c:2564
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a global declaration"
+msgstr ""
+
+#: c/c-decl.c:2574
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a previous local"
+msgstr ""
+
+#: c/c-decl.c:2578 cp/name-lookup.c:1150 cp/name-lookup.c:1193
+#, gcc-internal-format
+msgid "shadowed declaration is here"
+msgstr ""
+
+#: c/c-decl.c:2705
+#, gcc-internal-format
+msgid "nested extern declaration of %qD"
+msgstr ""
+
+#: c/c-decl.c:2881 c/c-decl.c:2884
+#, gcc-internal-format
+msgid "implicit declaration of function %qE"
+msgstr ""
+
+#: c/c-decl.c:2947
+#, gcc-internal-format
+msgid "incompatible implicit declaration of built-in function %qD"
+msgstr ""
+
+#: c/c-decl.c:2956
+#, gcc-internal-format
+msgid "incompatible implicit declaration of function %qD"
+msgstr ""
+
+#: c/c-decl.c:3009
+#, gcc-internal-format
+msgid "%qE undeclared here (not in a function)"
+msgstr ""
+
+#: c/c-decl.c:3015
+#, gcc-internal-format
+msgid "%qE undeclared (first use in this function)"
+msgstr ""
+
+#: c/c-decl.c:3018
+#, gcc-internal-format
+msgid ""
+"each undeclared identifier is reported only once for each function it "
+"appears in"
+msgstr ""
+
+#: c/c-decl.c:3068 cp/decl.c:2611
+#, gcc-internal-format
+msgid "label %qE referenced outside of any function"
+msgstr ""
+
+#: c/c-decl.c:3104
+#, gcc-internal-format
+msgid "jump into scope of identifier with variably modified type"
+msgstr ""
+
+#: c/c-decl.c:3107
+#, gcc-internal-format
+msgid "jump skips variable initialization"
+msgstr ""
+
+#: c/c-decl.c:3108 c/c-decl.c:3164 c/c-decl.c:3253
+#, gcc-internal-format
+msgid "label %qD defined here"
+msgstr ""
+
+#: c/c-decl.c:3109 c/c-decl.c:3381 c/c-typeck.c:6988
+#, gcc-internal-format
+msgid "%qD declared here"
+msgstr ""
+
+#: c/c-decl.c:3163 c/c-decl.c:3252
+#, gcc-internal-format
+msgid "jump into statement expression"
+msgstr ""
+
+#: c/c-decl.c:3185
+#, gcc-internal-format
+msgid "duplicate label declaration %qE"
+msgstr ""
+
+#: c/c-decl.c:3283 cp/decl.c:2934
+#, gcc-internal-format
+msgid "duplicate label %qD"
+msgstr ""
+
+#: c/c-decl.c:3314
+#, gcc-internal-format
+msgid ""
+"traditional C lacks a separate namespace for labels, identifier %qE conflicts"
+msgstr ""
+
+#: c/c-decl.c:3379
+#, gcc-internal-format
+msgid "switch jumps over variable initialization"
+msgstr ""
+
+#: c/c-decl.c:3380 c/c-decl.c:3391
+#, gcc-internal-format
+msgid "switch starts here"
+msgstr ""
+
+#: c/c-decl.c:3390
+#, gcc-internal-format
+msgid "switch jumps into statement expression"
+msgstr ""
+
+#: c/c-decl.c:3461
+#, gcc-internal-format
+msgid "%qE defined as wrong kind of tag"
+msgstr ""
+
+#: c/c-decl.c:3694
+#, gcc-internal-format
+msgid "unnamed struct/union that defines no instances"
+msgstr ""
+
+#: c/c-decl.c:3704
+#, gcc-internal-format
+msgid "empty declaration with storage class specifier does not redeclare tag"
+msgstr ""
+
+#: c/c-decl.c:3718
+#, gcc-internal-format
+msgid "empty declaration with type qualifier does not redeclare tag"
+msgstr ""
+
+#: c/c-decl.c:3729
+#, gcc-internal-format
+msgid "empty declaration with %<_Alignas%> does not redeclare tag"
+msgstr ""
+
+#: c/c-decl.c:3751 c/c-decl.c:3758
+#, gcc-internal-format
+msgid "useless type name in empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3766
+#, gcc-internal-format
+msgid "%<inline%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3772
+#, gcc-internal-format
+msgid "%<_Noreturn%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3778
+#, gcc-internal-format
+msgid "%<auto%> in file-scope empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3784
+#, gcc-internal-format
+msgid "%<register%> in file-scope empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3790
+#, gcc-internal-format
+msgid "useless storage class specifier in empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3796
+#, gcc-internal-format
+msgid "useless %<__thread%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3805
+#, gcc-internal-format
+msgid "useless type qualifier in empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3811
+#, gcc-internal-format
+msgid "useless %<_Alignas%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3818 c/c-parser.c:1504
+#, gcc-internal-format
+msgid "empty declaration"
+msgstr ""
+
+#: c/c-decl.c:3890
+#, gcc-internal-format
+msgid ""
+"ISO C90 does not support %<static%> or type qualifiers in parameter array "
+"declarators"
+msgstr ""
+
+#: c/c-decl.c:3894
+#, gcc-internal-format
+msgid "ISO C90 does not support %<[*]%> array declarators"
+msgstr ""
+
+#. C99 6.7.5.2p4
+#. A function definition isn't function prototype scope C99 6.2.1p4.
+#. C99 6.7.5.2p4
+#: c/c-decl.c:3901 c/c-decl.c:6265
+#, gcc-internal-format
+msgid "%<[*]%> not allowed in other than function prototype scope"
+msgstr ""
+
+#: c/c-decl.c:4014
+#, gcc-internal-format
+msgid "%q+D is usually a function"
+msgstr ""
+
+#: c/c-decl.c:4023
+#, gcc-internal-format
+msgid "typedef %qD is initialized (use __typeof__ instead)"
+msgstr ""
+
+#: c/c-decl.c:4028
+#, gcc-internal-format
+msgid "function %qD is initialized like a variable"
+msgstr ""
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c/c-decl.c:4034
+#, gcc-internal-format
+msgid "parameter %qD is initialized"
+msgstr ""
+
+#. Although C99 is unclear about whether incomplete arrays
+#. of VLAs themselves count as VLAs, it does not make
+#. sense to permit them to be initialized given that
+#. ordinary VLAs may not be initialized.
+#: c/c-decl.c:4053 c/c-decl.c:4068 c/c-typeck.c:6311
+#, gcc-internal-format
+msgid "variable-sized object may not be initialized"
+msgstr ""
+
+#: c/c-decl.c:4059
+#, gcc-internal-format
+msgid "variable %qD has initializer but incomplete type"
+msgstr ""
+
+#: c/c-decl.c:4148 cp/decl.c:4446 cp/decl.c:12712
+#, gcc-internal-format
+msgid "inline function %q+D given attribute noinline"
+msgstr ""
+
+#: c/c-decl.c:4199
+#, gcc-internal-format
+msgid "uninitialized const member in %qT is invalid in C++"
+msgstr ""
+
+#: c/c-decl.c:4201 cp/init.c:2125 cp/init.c:2140
+#, gcc-internal-format
+msgid "%qD should be initialized"
+msgstr ""
+
+#: c/c-decl.c:4279
+#, gcc-internal-format
+msgid "initializer fails to determine size of %q+D"
+msgstr ""
+
+#: c/c-decl.c:4284
+#, gcc-internal-format
+msgid "array size missing in %q+D"
+msgstr ""
+
+#: c/c-decl.c:4296
+#, gcc-internal-format
+msgid "zero or negative size array %q+D"
+msgstr ""
+
+#: c/c-decl.c:4362
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t constant"
+msgstr ""
+
+#: c/c-decl.c:4412
+#, gcc-internal-format
+msgid "ignoring asm-specifier for non-static local variable %q+D"
+msgstr ""
+
+#: c/c-decl.c:4442
+#, gcc-internal-format
+msgid "cannot put object with volatile field into register"
+msgstr ""
+
+#: c/c-decl.c:4529
+#, gcc-internal-format
+msgid "uninitialized const %qD is invalid in C++"
+msgstr ""
+
+#: c/c-decl.c:4587
+#, gcc-internal-format
+msgid "ISO C forbids forward parameter declarations"
+msgstr ""
+
+#: c/c-decl.c:4682
+#, gcc-internal-format
+msgid "defining a type in a compound literal is invalid in C++"
+msgstr ""
+
+#: c/c-decl.c:4734 c/c-decl.c:4749
+#, gcc-internal-format
+msgid "bit-field %qs width not an integer constant"
+msgstr ""
+
+#: c/c-decl.c:4744
+#, gcc-internal-format
+msgid "bit-field %qs width not an integer constant expression"
+msgstr ""
+
+#: c/c-decl.c:4755
+#, gcc-internal-format
+msgid "negative width in bit-field %qs"
+msgstr ""
+
+#: c/c-decl.c:4760
+#, gcc-internal-format
+msgid "zero width for bit-field %qs"
+msgstr ""
+
+#: c/c-decl.c:4770
+#, gcc-internal-format
+msgid "bit-field %qs has invalid type"
+msgstr ""
+
+#: c/c-decl.c:4780
+#, gcc-internal-format
+msgid "type of bit-field %qs is a GCC extension"
+msgstr ""
+
+#: c/c-decl.c:4786
+#, gcc-internal-format
+msgid "width of %qs exceeds its type"
+msgstr ""
+
+#: c/c-decl.c:4799
+#, gcc-internal-format
+msgid "%qs is narrower than values of its type"
+msgstr ""
+
+#: c/c-decl.c:4818
+#, gcc-internal-format
+msgid "ISO C90 forbids array %qE whose size can%'t be evaluated"
+msgstr ""
+
+#: c/c-decl.c:4822
+#, gcc-internal-format
+msgid "ISO C90 forbids array whose size can%'t be evaluated"
+msgstr ""
+
+#: c/c-decl.c:4829
+#, gcc-internal-format
+msgid "ISO C90 forbids variable length array %qE"
+msgstr ""
+
+#: c/c-decl.c:4832
+#, gcc-internal-format
+msgid "ISO C90 forbids variable length array"
+msgstr ""
+
+#: c/c-decl.c:4841
+#, gcc-internal-format
+msgid "the size of array %qE can%'t be evaluated"
+msgstr ""
+
+#: c/c-decl.c:4845
+#, gcc-internal-format
+msgid "the size of array can %'t be evaluated"
+msgstr ""
+
+#: c/c-decl.c:4851
+#, gcc-internal-format
+msgid "variable length array %qE is used"
+msgstr ""
+
+#: c/c-decl.c:4855 cp/decl.c:8093
+#, gcc-internal-format
+msgid "variable length array is used"
+msgstr ""
+
+#: c/c-decl.c:5014 c/c-decl.c:5362 c/c-decl.c:5372
+#, gcc-internal-format
+msgid "variably modified %qE at file scope"
+msgstr ""
+
+#: c/c-decl.c:5016
+#, gcc-internal-format
+msgid "variably modified field at file scope"
+msgstr ""
+
+#: c/c-decl.c:5036
+#, gcc-internal-format
+msgid "type defaults to %<int%> in declaration of %qE"
+msgstr ""
+
+#: c/c-decl.c:5040
+#, gcc-internal-format
+msgid "type defaults to %<int%> in type name"
+msgstr ""
+
+#: c/c-decl.c:5073
+#, gcc-internal-format
+msgid "duplicate %<const%>"
+msgstr ""
+
+#: c/c-decl.c:5075
+#, gcc-internal-format
+msgid "duplicate %<restrict%>"
+msgstr ""
+
+#: c/c-decl.c:5077
+#, gcc-internal-format
+msgid "duplicate %<volatile%>"
+msgstr ""
+
+#: c/c-decl.c:5081
+#, gcc-internal-format, gfc-internal-format
+msgid "conflicting named address spaces (%s vs %s)"
+msgstr ""
+
+#: c/c-decl.c:5105
+#, gcc-internal-format
+msgid "function definition declared %<auto%>"
+msgstr ""
+
+#: c/c-decl.c:5107
+#, gcc-internal-format
+msgid "function definition declared %<register%>"
+msgstr ""
+
+#: c/c-decl.c:5109
+#, gcc-internal-format
+msgid "function definition declared %<typedef%>"
+msgstr ""
+
+#: c/c-decl.c:5111
+#, gcc-internal-format
+msgid "function definition declared %<__thread%>"
+msgstr ""
+
+#: c/c-decl.c:5128
+#, gcc-internal-format
+msgid "storage class specified for structure field %qE"
+msgstr ""
+
+#: c/c-decl.c:5131
+#, gcc-internal-format
+msgid "storage class specified for structure field"
+msgstr ""
+
+#: c/c-decl.c:5135
+#, gcc-internal-format
+msgid "storage class specified for parameter %qE"
+msgstr ""
+
+#: c/c-decl.c:5138
+#, gcc-internal-format
+msgid "storage class specified for unnamed parameter"
+msgstr ""
+
+#: c/c-decl.c:5141 cp/decl.c:9072
+#, gcc-internal-format
+msgid "storage class specified for typename"
+msgstr ""
+
+#: c/c-decl.c:5158
+#, gcc-internal-format
+msgid "%qE initialized and declared %<extern%>"
+msgstr ""
+
+#: c/c-decl.c:5162
+#, gcc-internal-format
+msgid "%qE has both %<extern%> and initializer"
+msgstr ""
+
+#: c/c-decl.c:5167
+#, gcc-internal-format
+msgid "file-scope declaration of %qE specifies %<auto%>"
+msgstr ""
+
+#: c/c-decl.c:5171
+#, gcc-internal-format
+msgid "file-scope declaration of %qE specifies %<register%>"
+msgstr ""
+
+#: c/c-decl.c:5176
+#, gcc-internal-format
+msgid "nested function %qE declared %<extern%>"
+msgstr ""
+
+#: c/c-decl.c:5179
+#, gcc-internal-format
+msgid "function-scope %qE implicitly auto and declared %<__thread%>"
+msgstr ""
+
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c/c-decl.c:5226 c/c-decl.c:5556
+#, gcc-internal-format
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr ""
+
+#: c/c-decl.c:5274
+#, gcc-internal-format
+msgid "declaration of %qE as array of voids"
+msgstr ""
+
+#: c/c-decl.c:5276
+#, gcc-internal-format
+msgid "declaration of type name as array of voids"
+msgstr ""
+
+#: c/c-decl.c:5283
+#, gcc-internal-format
+msgid "declaration of %qE as array of functions"
+msgstr ""
+
+#: c/c-decl.c:5286
+#, gcc-internal-format
+msgid "declaration of type name as array of functions"
+msgstr ""
+
+#: c/c-decl.c:5293 c/c-decl.c:7193
+#, gcc-internal-format
+msgid "invalid use of structure with flexible array member"
+msgstr ""
+
+#: c/c-decl.c:5319
+#, gcc-internal-format
+msgid "size of array %qE has non-integer type"
+msgstr ""
+
+#: c/c-decl.c:5323
+#, gcc-internal-format
+msgid "size of unnamed array has non-integer type"
+msgstr ""
+
+#: c/c-decl.c:5333
+#, gcc-internal-format
+msgid "ISO C forbids zero-size array %qE"
+msgstr ""
+
+#: c/c-decl.c:5336
+#, gcc-internal-format
+msgid "ISO C forbids zero-size array"
+msgstr ""
+
+#: c/c-decl.c:5345
+#, gcc-internal-format
+msgid "size of array %qE is negative"
+msgstr ""
+
+#: c/c-decl.c:5347
+#, gcc-internal-format
+msgid "size of unnamed array is negative"
+msgstr ""
+
+#: c/c-decl.c:5421 c/c-decl.c:5824
+#, gcc-internal-format
+msgid "size of array %qE is too large"
+msgstr ""
+
+#: c/c-decl.c:5424 c/c-decl.c:5826
+#, gcc-internal-format
+msgid "size of unnamed array is too large"
+msgstr ""
+
+#: c/c-decl.c:5461
+#, gcc-internal-format
+msgid "ISO C90 does not support flexible array members"
+msgstr ""
+
+#. C99 6.7.5.2p4
+#: c/c-decl.c:5482
+#, gcc-internal-format
+msgid "%<[*]%> not in a declaration"
+msgstr ""
+
+#: c/c-decl.c:5495
+#, gcc-internal-format
+msgid "array type has incomplete element type"
+msgstr ""
+
+#: c/c-decl.c:5589
+#, gcc-internal-format
+msgid "%qE declared as function returning a function"
+msgstr ""
+
+#: c/c-decl.c:5592
+#, gcc-internal-format
+msgid "type name declared as function returning a function"
+msgstr ""
+
+#: c/c-decl.c:5599
+#, gcc-internal-format
+msgid "%qE declared as function returning an array"
+msgstr ""
+
+#: c/c-decl.c:5602
+#, gcc-internal-format
+msgid "type name declared as function returning an array"
+msgstr ""
+
+#: c/c-decl.c:5630
+#, gcc-internal-format
+msgid "function definition has qualified void return type"
+msgstr ""
+
+#: c/c-decl.c:5633 cp/decl.c:9178
+#, gcc-internal-format
+msgid "type qualifiers ignored on function return type"
+msgstr ""
+
+#: c/c-decl.c:5662 c/c-decl.c:5840 c/c-decl.c:5952 c/c-decl.c:6047
+#, gcc-internal-format
+msgid "ISO C forbids qualified function types"
+msgstr ""
+
+#: c/c-decl.c:5729
+#, gcc-internal-format
+msgid "%qs combined with %<auto%> qualifier for %qE"
+msgstr ""
+
+#: c/c-decl.c:5733
+#, gcc-internal-format
+msgid "%qs combined with %<register%> qualifier for %qE"
+msgstr ""
+
+#: c/c-decl.c:5739
+#, gcc-internal-format
+msgid "%qs specified for auto variable %qE"
+msgstr ""
+
+#: c/c-decl.c:5755
+#, gcc-internal-format
+msgid "%qs specified for parameter %qE"
+msgstr ""
+
+#: c/c-decl.c:5758
+#, gcc-internal-format
+msgid "%qs specified for unnamed parameter"
+msgstr ""
+
+#: c/c-decl.c:5764
+#, gcc-internal-format
+msgid "%qs specified for structure field %qE"
+msgstr ""
+
+#: c/c-decl.c:5767
+#, gcc-internal-format
+msgid "%qs specified for structure field"
+msgstr ""
+
+#: c/c-decl.c:5780
+#, gcc-internal-format
+msgid "alignment specified for typedef %qE"
+msgstr ""
+
+#: c/c-decl.c:5782
+#, gcc-internal-format
+msgid "alignment specified for %<register%> object %qE"
+msgstr ""
+
+#: c/c-decl.c:5787
+#, gcc-internal-format
+msgid "alignment specified for parameter %qE"
+msgstr ""
+
+#: c/c-decl.c:5789
+#, gcc-internal-format
+msgid "alignment specified for unnamed parameter"
+msgstr ""
+
+#: c/c-decl.c:5794
+#, gcc-internal-format
+msgid "alignment specified for bit-field %qE"
+msgstr ""
+
+#: c/c-decl.c:5796
+#, gcc-internal-format
+msgid "alignment specified for unnamed bit-field"
+msgstr ""
+
+#: c/c-decl.c:5799
+#, gcc-internal-format
+msgid "alignment specified for function %qE"
+msgstr ""
+
+#: c/c-decl.c:5806
+#, gcc-internal-format
+msgid "%<_Alignas%> specifiers cannot reduce alignment of %qE"
+msgstr ""
+
+#: c/c-decl.c:5809
+#, gcc-internal-format
+msgid "%<_Alignas%> specifiers cannot reduce alignment of unnamed field"
+msgstr ""
+
+#: c/c-decl.c:5848
+#, gcc-internal-format
+msgid "typedef %q+D declared %<inline%>"
+msgstr ""
+
+#: c/c-decl.c:5850
+#, gcc-internal-format
+msgid "typedef %q+D declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.c:5886
+#, gcc-internal-format
+msgid "ISO C forbids const or volatile function types"
+msgstr ""
+
+#. C99 6.7.2.1p8
+#: c/c-decl.c:5896
+#, gcc-internal-format
+msgid "a member of a structure or union cannot have a variably modified type"
+msgstr ""
+
+#: c/c-decl.c:5913 cp/decl.c:8322
+#, gcc-internal-format
+msgid "variable or field %qE declared void"
+msgstr ""
+
+#: c/c-decl.c:5944
+#, gcc-internal-format
+msgid "attributes in parameter array declarator ignored"
+msgstr ""
+
+#: c/c-decl.c:5978
+#, gcc-internal-format
+msgid "parameter %q+D declared %<inline%>"
+msgstr ""
+
+#: c/c-decl.c:5980
+#, gcc-internal-format
+msgid "parameter %q+D declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.c:5993
+#, gcc-internal-format
+msgid "field %qE declared as a function"
+msgstr ""
+
+#: c/c-decl.c:6000
+#, gcc-internal-format
+msgid "field %qE has incomplete type"
+msgstr ""
+
+#: c/c-decl.c:6002
+#, gcc-internal-format
+msgid "unnamed field has incomplete type"
+msgstr ""
+
+#: c/c-decl.c:6019 c/c-decl.c:6030 c/c-decl.c:6033
+#, gcc-internal-format
+msgid "invalid storage class for function %qE"
+msgstr ""
+
+#: c/c-decl.c:6084
+#, gcc-internal-format
+msgid "cannot inline function %<main%>"
+msgstr ""
+
+#: c/c-decl.c:6086
+#, gcc-internal-format
+msgid "%<main%> declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.c:6099
+#, gcc-internal-format
+msgid "ISO C99 does not support %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.c:6102
+#, gcc-internal-format
+msgid "ISO C90 does not support %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.c:6131
+#, gcc-internal-format
+msgid "variable previously declared %<static%> redeclared %<extern%>"
+msgstr ""
+
+#: c/c-decl.c:6141
+#, gcc-internal-format
+msgid "variable %q+D declared %<inline%>"
+msgstr ""
+
+#: c/c-decl.c:6143
+#, gcc-internal-format
+msgid "variable %q+D declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.c:6178
+#, gcc-internal-format
+msgid "non-nested function with variably modified type"
+msgstr ""
+
+#: c/c-decl.c:6180
+#, gcc-internal-format
+msgid "object with variably modified type must have no linkage"
+msgstr ""
+
+#: c/c-decl.c:6270 c/c-decl.c:7828
+#, gcc-internal-format
+msgid "function declaration isn%'t a prototype"
+msgstr ""
+
+#: c/c-decl.c:6279
+#, gcc-internal-format
+msgid "parameter names (without types) in function declaration"
+msgstr ""
+
+#: c/c-decl.c:6317
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has incomplete type"
+msgstr ""
+
+#: c/c-decl.c:6321
+#, gcc-internal-format, gfc-internal-format
+msgid "parameter %u has incomplete type"
+msgstr ""
+
+#: c/c-decl.c:6332
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has void type"
+msgstr ""
+
+#: c/c-decl.c:6336
+#, gcc-internal-format, gfc-internal-format
+msgid "parameter %u has void type"
+msgstr ""
+
+#: c/c-decl.c:6421
+#, gcc-internal-format
+msgid "%<void%> as only parameter may not be qualified"
+msgstr ""
+
+#: c/c-decl.c:6425 c/c-decl.c:6460
+#, gcc-internal-format
+msgid "%<void%> must be the only parameter"
+msgstr ""
+
+#: c/c-decl.c:6454
+#, gcc-internal-format
+msgid "parameter %q+D has just a forward declaration"
+msgstr ""
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c/c-decl.c:6499
+#, gcc-internal-format
+msgid "%<%s %E%> declared inside parameter list"
+msgstr ""
+
+#. The %s will be one of 'struct', 'union', or 'enum'.
+#: c/c-decl.c:6503
+#, gcc-internal-format, gfc-internal-format
+msgid "anonymous %s declared inside parameter list"
+msgstr ""
+
+#: c/c-decl.c:6508
+#, gcc-internal-format
+msgid ""
+"its scope is only this definition or declaration, which is probably not what "
+"you want"
+msgstr ""
+
+#: c/c-decl.c:6608
+#, gcc-internal-format
+msgid "enum type defined here"
+msgstr ""
+
+#: c/c-decl.c:6614
+#, gcc-internal-format
+msgid "struct defined here"
+msgstr ""
+
+#: c/c-decl.c:6620
+#, gcc-internal-format
+msgid "union defined here"
+msgstr ""
+
+#: c/c-decl.c:6693
+#, gcc-internal-format
+msgid "redefinition of %<union %E%>"
+msgstr ""
+
+#: c/c-decl.c:6695
+#, gcc-internal-format
+msgid "redefinition of %<struct %E%>"
+msgstr ""
+
+#: c/c-decl.c:6704
+#, gcc-internal-format
+msgid "nested redefinition of %<union %E%>"
+msgstr ""
+
+#: c/c-decl.c:6706
+#, gcc-internal-format
+msgid "nested redefinition of %<struct %E%>"
+msgstr ""
+
+#: c/c-decl.c:6738 c/c-decl.c:7425
+#, gcc-internal-format
+msgid "defining type in %qs expression is invalid in C++"
+msgstr ""
+
+#: c/c-decl.c:6807 cp/decl.c:4165
+#, gcc-internal-format
+msgid "declaration does not declare anything"
+msgstr ""
+
+#: c/c-decl.c:6814
+#, gcc-internal-format
+msgid "ISO C99 doesn%'t support unnamed structs/unions"
+msgstr ""
+
+#: c/c-decl.c:6817
+#, gcc-internal-format
+msgid "ISO C90 doesn%'t support unnamed structs/unions"
+msgstr ""
+
+#: c/c-decl.c:6909 c/c-decl.c:6928 c/c-decl.c:6991
+#, gcc-internal-format
+msgid "duplicate member %q+D"
+msgstr ""
+
+#: c/c-decl.c:7101
+#, gcc-internal-format
+msgid "union has no named members"
+msgstr ""
+
+#: c/c-decl.c:7103
+#, gcc-internal-format
+msgid "union has no members"
+msgstr ""
+
+#: c/c-decl.c:7108
+#, gcc-internal-format
+msgid "struct has no named members"
+msgstr ""
+
+#: c/c-decl.c:7110
+#, gcc-internal-format
+msgid "struct has no members"
+msgstr ""
+
+#: c/c-decl.c:7173
+#, gcc-internal-format
+msgid "flexible array member in union"
+msgstr ""
+
+#: c/c-decl.c:7179
+#, gcc-internal-format
+msgid "flexible array member not at end of struct"
+msgstr ""
+
+#: c/c-decl.c:7185
+#, gcc-internal-format
+msgid "flexible array member in otherwise empty struct"
+msgstr ""
+
+#: c/c-decl.c:7304
+#, gcc-internal-format
+msgid "union cannot be made transparent"
+msgstr ""
+
+#: c/c-decl.c:7398
+#, gcc-internal-format
+msgid "nested redefinition of %<enum %E%>"
+msgstr ""
+
+#. This enum is a named one that has been declared already.
+#: c/c-decl.c:7405
+#, gcc-internal-format
+msgid "redeclaration of %<enum %E%>"
+msgstr ""
+
+#: c/c-decl.c:7480
+#, gcc-internal-format
+msgid "enumeration values exceed range of largest integer"
+msgstr ""
+
+#: c/c-decl.c:7497
+#, gcc-internal-format
+msgid "specified mode too small for enumeral values"
+msgstr ""
+
+#: c/c-decl.c:7602 c/c-decl.c:7618
+#, gcc-internal-format
+msgid "enumerator value for %qE is not an integer constant"
+msgstr ""
+
+#: c/c-decl.c:7613
+#, gcc-internal-format
+msgid "enumerator value for %qE is not an integer constant expression"
+msgstr ""
+
+#: c/c-decl.c:7637
+#, gcc-internal-format
+msgid "overflow in enumeration values"
+msgstr ""
+
+#: c/c-decl.c:7645
+#, gcc-internal-format
+msgid "ISO C restricts enumerator values to range of %<int%>"
+msgstr ""
+
+#: c/c-decl.c:7730
+#, gcc-internal-format
+msgid "inline function %qD given attribute noinline"
+msgstr ""
+
+#: c/c-decl.c:7748
+#, gcc-internal-format
+msgid "return type is an incomplete type"
+msgstr ""
+
+#: c/c-decl.c:7758
+#, gcc-internal-format
+msgid "return type defaults to %<int%>"
+msgstr ""
+
+#: c/c-decl.c:7836
+#, gcc-internal-format
+msgid "no previous prototype for %qD"
+msgstr ""
+
+#: c/c-decl.c:7845
+#, gcc-internal-format
+msgid "%qD was used with no prototype before its definition"
+msgstr ""
+
+#: c/c-decl.c:7852
+#, gcc-internal-format
+msgid "no previous declaration for %qD"
+msgstr ""
+
+#: c/c-decl.c:7862
+#, gcc-internal-format
+msgid "%qD was used with no declaration before its definition"
+msgstr ""
+
+#: c/c-decl.c:7881
+#, gcc-internal-format
+msgid "return type of %qD is not %<int%>"
+msgstr ""
+
+#: c/c-decl.c:7887
+#, gcc-internal-format
+msgid "%qD is normally a non-static function"
+msgstr ""
+
+#: c/c-decl.c:7924
+#, gcc-internal-format
+msgid "old-style parameter declarations in prototyped function definition"
+msgstr ""
+
+#: c/c-decl.c:7938
+#, gcc-internal-format
+msgid "traditional C rejects ISO C style function definitions"
+msgstr ""
+
+#: c/c-decl.c:7954
+#, gcc-internal-format
+msgid "parameter name omitted"
+msgstr ""
+
+#: c/c-decl.c:7991
+#, gcc-internal-format
+msgid "old-style function definition"
+msgstr ""
+
+#: c/c-decl.c:8000
+#, gcc-internal-format
+msgid "parameter name missing from parameter list"
+msgstr ""
+
+#: c/c-decl.c:8015
+#, gcc-internal-format
+msgid "%qD declared as a non-parameter"
+msgstr ""
+
+#: c/c-decl.c:8021
+#, gcc-internal-format
+msgid "multiple parameters named %qD"
+msgstr ""
+
+#: c/c-decl.c:8030
+#, gcc-internal-format
+msgid "parameter %qD declared with void type"
+msgstr ""
+
+#: c/c-decl.c:8059 c/c-decl.c:8063
+#, gcc-internal-format
+msgid "type of %qD defaults to %<int%>"
+msgstr ""
+
+#: c/c-decl.c:8083
+#, gcc-internal-format
+msgid "parameter %qD has incomplete type"
+msgstr ""
+
+#: c/c-decl.c:8090
+#, gcc-internal-format
+msgid "declaration for parameter %qD but no such parameter"
+msgstr ""
+
+#: c/c-decl.c:8142
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match built-in prototype"
+msgstr ""
+
+#: c/c-decl.c:8153
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match prototype"
+msgstr ""
+
+#: c/c-decl.c:8156 c/c-decl.c:8198 c/c-decl.c:8212
+#, gcc-internal-format
+msgid "prototype declaration"
+msgstr ""
+
+#: c/c-decl.c:8190
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match built-in prototype"
+msgstr ""
+
+#: c/c-decl.c:8195
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match prototype"
+msgstr ""
+
+#: c/c-decl.c:8205
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match built-in prototype"
+msgstr ""
+
+#: c/c-decl.c:8210
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match prototype"
+msgstr ""
+
+#: c/c-decl.c:8393 cp/decl.c:13590
+#, gcc-internal-format
+msgid "no return statement in function returning non-void"
+msgstr ""
+
+#: c/c-decl.c:8413
+#, gcc-internal-format
+msgid "parameter %qD set but not used"
+msgstr ""
+
+#. If we get here, declarations have been used in a for loop without
+#. the C99 for loop scope. This doesn't make much sense, so don't
+#. allow it.
+#: c/c-decl.c:8502
+#, gcc-internal-format
+msgid "%<for%> loop initial declarations are only allowed in C99 mode"
+msgstr ""
+
+#: c/c-decl.c:8507
+#, gcc-internal-format
+msgid "use option -std=c99 or -std=gnu99 to compile your code"
+msgstr ""
+
+#: c/c-decl.c:8541
+#, gcc-internal-format
+msgid "declaration of static variable %qD in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.c:8545
+#, gcc-internal-format
+msgid ""
+"declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.c:8552
+#, gcc-internal-format
+msgid "%<struct %E%> declared in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.c:8557
+#, gcc-internal-format
+msgid "%<union %E%> declared in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.c:8561
+#, gcc-internal-format
+msgid "%<enum %E%> declared in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.c:8565
+#, gcc-internal-format
+msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.c:8838
+#, gcc-internal-format
+msgid "incompatible address space qualifiers %qs and %qs"
+msgstr ""
+
+#: c/c-decl.c:8884 c/c-decl.c:9214 c/c-decl.c:9643
+#, gcc-internal-format
+msgid "duplicate %qE"
+msgstr ""
+
+#: c/c-decl.c:8910 c/c-decl.c:9225 c/c-decl.c:9505
+#, gcc-internal-format
+msgid "two or more data types in declaration specifiers"
+msgstr ""
+
+#: c/c-decl.c:8922 cp/parser.c:22187
+#, gcc-internal-format
+msgid "%<long long long%> is too long for GCC"
+msgstr ""
+
+#: c/c-decl.c:8935
+#, gcc-internal-format
+msgid "ISO C90 does not support %<long long%>"
+msgstr ""
+
+#: c/c-decl.c:9114 c/c-parser.c:6654
+#, gcc-internal-format
+msgid "ISO C90 does not support complex types"
+msgstr ""
+
+#: c/c-decl.c:9156
+#, gcc-internal-format
+msgid "ISO C does not support saturating types"
+msgstr ""
+
+#: c/c-decl.c:9233
+#, gcc-internal-format
+msgid "%<__int128%> is not supported for this target"
+msgstr ""
+
+#: c/c-decl.c:9238
+#, gcc-internal-format
+msgid "ISO C does not support %<__int128%> type"
+msgstr ""
+
+#: c/c-decl.c:9463
+#, gcc-internal-format
+msgid "ISO C does not support decimal floating point"
+msgstr ""
+
+#: c/c-decl.c:9486 c/c-decl.c:9730 c/c-parser.c:6247
+#, gcc-internal-format
+msgid "fixed-point types not supported for this target"
+msgstr ""
+
+#: c/c-decl.c:9488
+#, gcc-internal-format
+msgid "ISO C does not support fixed-point types"
+msgstr ""
+
+#: c/c-decl.c:9523
+#, gcc-internal-format
+msgid "C++ lookup of %qD would return a field, not a type"
+msgstr ""
+
+#: c/c-decl.c:9536
+#, gcc-internal-format
+msgid "%qE fails to be a typedef or built in type"
+msgstr ""
+
+#: c/c-decl.c:9584
+#, gcc-internal-format
+msgid "%qE is not at beginning of declaration"
+msgstr ""
+
+#: c/c-decl.c:9605
+#, gcc-internal-format
+msgid "%<__thread%> used with %<auto%>"
+msgstr ""
+
+#: c/c-decl.c:9607
+#, gcc-internal-format
+msgid "%<__thread%> used with %<register%>"
+msgstr ""
+
+#: c/c-decl.c:9609
+#, gcc-internal-format
+msgid "%<__thread%> used with %<typedef%>"
+msgstr ""
+
+#: c/c-decl.c:9623
+#, gcc-internal-format
+msgid "%<__thread%> before %<extern%>"
+msgstr ""
+
+#: c/c-decl.c:9632
+#, gcc-internal-format
+msgid "%<__thread%> before %<static%>"
+msgstr ""
+
+#: c/c-decl.c:9648
+#, gcc-internal-format
+msgid "multiple storage classes in declaration specifiers"
+msgstr ""
+
+#: c/c-decl.c:9656
+#, gcc-internal-format
+msgid "%<__thread%> used with %qE"
+msgstr ""
+
+#: c/c-decl.c:9727
+#, gcc-internal-format
+msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
+msgstr ""
+
+#: c/c-decl.c:9742
+#, gcc-internal-format
+msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
+msgstr ""
+
+#: c/c-decl.c:9787 c/c-decl.c:9800 c/c-decl.c:9826
+#, gcc-internal-format
+msgid "ISO C does not support complex integer types"
+msgstr ""
+
+#: c/c-parser.c:243
+#, gcc-internal-format
+msgid "identifier %qE conflicts with C++ keyword"
+msgstr ""
+
+#: c/c-parser.c:1248
+#, gcc-internal-format
+msgid "ISO C forbids an empty translation unit"
+msgstr ""
+
+#: c/c-parser.c:1346 c/c-parser.c:7594
+#, gcc-internal-format
+msgid "ISO C does not allow extra %<;%> outside of a function"
+msgstr ""
+
+#: c/c-parser.c:1472 c/c-parser.c:2054 c/c-parser.c:3329
+#, gcc-internal-format
+msgid "unknown type name %qE"
+msgstr ""
+
+#: c/c-parser.c:1492 c/c-parser.c:8626 cp/parser.c:27502
+#, gcc-internal-format
+msgid "expected declaration specifiers"
+msgstr ""
+
+#: c/c-parser.c:1517 c/c-parser.c:2640
+#, gcc-internal-format
+msgid "expected %<;%>, identifier or %<(%>"
+msgstr ""
+
+#: c/c-parser.c:1535 cp/parser.c:23928 cp/parser.c:24002
+#, gcc-internal-format
+msgid "prefix attributes are ignored for methods"
+msgstr ""
+
+#: c/c-parser.c:1570
+#, gcc-internal-format
+msgid "prefix attributes are ignored for implementations"
+msgstr ""
+
+#: c/c-parser.c:1591
+#, gcc-internal-format
+msgid "unexpected attribute"
+msgstr ""
+
+#: c/c-parser.c:1634
+#, gcc-internal-format
+msgid "data definition has no type or storage class"
+msgstr ""
+
+#: c/c-parser.c:1709 cp/parser.c:10489
+#, gcc-internal-format
+msgid "expected %<,%> or %<;%>"
+msgstr ""
+
+#. This can appear in many cases looking nothing like a
+#. function definition, so we don't give a more specific
+#. error suggesting there was one.
+#: c/c-parser.c:1716 c/c-parser.c:1732
+#, gcc-internal-format
+msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
+msgstr ""
+
+#: c/c-parser.c:1724
+#, gcc-internal-format
+msgid "ISO C forbids nested functions"
+msgstr ""
+
+#: c/c-parser.c:1840
+#, gcc-internal-format
+msgid "ISO C99 does not support %<_Static_assert%>"
+msgstr ""
+
+#: c/c-parser.c:1843
+#, gcc-internal-format
+msgid "ISO C90 does not support %<_Static_assert%>"
+msgstr ""
+
+#: c/c-parser.c:1868 c/c-parser.c:3396 c/c-parser.c:8681 cp/parser.c:27373
+#, gcc-internal-format
+msgid "expected string literal"
+msgstr ""
+
+#: c/c-parser.c:1876
+#, gcc-internal-format
+msgid "expression in static assertion is not an integer"
+msgstr ""
+
+#: c/c-parser.c:1883
+#, gcc-internal-format
+msgid "expression in static assertion is not an integer constant expression"
+msgstr ""
+
+#: c/c-parser.c:1888
+#, gcc-internal-format
+msgid "expression in static assertion is not constant"
+msgstr ""
+
+#: c/c-parser.c:1893
+#, gcc-internal-format
+msgid "static assertion failed: %E"
+msgstr ""
+
+#: c/c-parser.c:2270 c/c-parser.c:3169 c/c-parser.c:3844 c/c-parser.c:4118
+#: c/c-parser.c:5234 c/c-parser.c:5325 c/c-parser.c:5947 c/c-parser.c:6301
+#: c/c-parser.c:6490 c/c-parser.c:6512 c/c-parser.c:6725 c/c-parser.c:6940
+#: c/c-parser.c:6969 c/c-parser.c:7178 c/c-parser.c:7227 c/c-parser.c:7387
+#: c/c-parser.c:7417 c/c-parser.c:7425 c/c-parser.c:7454 c/c-parser.c:7467
+#: c/c-parser.c:7772 c/c-parser.c:7896 c/c-parser.c:8324 c/c-parser.c:8359
+#: c/c-parser.c:8412 c/c-parser.c:8465 c/c-parser.c:8481 c/c-parser.c:8527
+#: c/c-parser.c:8806 c/c-parser.c:9881 c/c-parser.c:10684 cp/parser.c:22389
+#: cp/parser.c:24772 cp/parser.c:24802 cp/parser.c:24872 cp/parser.c:27093
+#, gcc-internal-format
+msgid "expected identifier"
+msgstr ""
+
+#: c/c-parser.c:2303 cp/parser.c:14654
+#, gcc-internal-format
+msgid "comma at end of enumerator list"
+msgstr ""
+
+#: c/c-parser.c:2309
+#, gcc-internal-format
+msgid "expected %<,%> or %<}%>"
+msgstr ""
+
+#: c/c-parser.c:2340
+#, gcc-internal-format
+msgid "ISO C forbids forward references to %<enum%> types"
+msgstr ""
+
+#: c/c-parser.c:2456
+#, gcc-internal-format
+msgid "expected class name"
+msgstr ""
+
+#: c/c-parser.c:2475
+#, gcc-internal-format
+msgid "extra semicolon in struct or union specified"
+msgstr ""
+
+#: c/c-parser.c:2504
+#, gcc-internal-format
+msgid "no semicolon at end of struct or union"
+msgstr ""
+
+#: c/c-parser.c:2602 c/c-parser.c:3658
+#, gcc-internal-format
+msgid "expected specifier-qualifier-list"
+msgstr ""
+
+#: c/c-parser.c:2613
+#, gcc-internal-format
+msgid "ISO C forbids member declarations with no members"
+msgstr ""
+
+#: c/c-parser.c:2703
+#, gcc-internal-format
+msgid "expected %<,%>, %<;%> or %<}%>"
+msgstr ""
+
+#: c/c-parser.c:2710
+#, gcc-internal-format
+msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
+msgstr ""
+
+#: c/c-parser.c:2763
+#, gcc-internal-format
+msgid "%<typeof%> applied to a bit-field"
+msgstr ""
+
+#: c/c-parser.c:2797
+#, gcc-internal-format
+msgid "ISO C99 does not support %<_Alignas%>"
+msgstr ""
+
+#: c/c-parser.c:2800
+#, gcc-internal-format
+msgid "ISO C90 does not support %<_Alignas%>"
+msgstr ""
+
+#: c/c-parser.c:3028
+#, gcc-internal-format
+msgid "expected identifier or %<(%>"
+msgstr ""
+
+#: c/c-parser.c:3235
+#, gcc-internal-format
+msgid "ISO C requires a named argument before %<...%>"
+msgstr ""
+
+#: c/c-parser.c:3336
+#, gcc-internal-format
+msgid "expected declaration specifiers or %<...%>"
+msgstr ""
+
+#: c/c-parser.c:3390
+#, gcc-internal-format
+msgid "wide string literal in %<asm%>"
+msgstr ""
+
+#: c/c-parser.c:3758
+#, gcc-internal-format
+msgid "ISO C forbids empty initializer braces"
+msgstr ""
+
+#: c/c-parser.c:3809
+#, gcc-internal-format
+msgid "obsolete use of designated initializer with %<:%>"
+msgstr ""
+
+#: c/c-parser.c:3949
+#, gcc-internal-format
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr ""
+
+#: c/c-parser.c:3962
+#, gcc-internal-format
+msgid "ISO C90 forbids specifying subobject to initialize"
+msgstr ""
+
+#: c/c-parser.c:3969
+#, gcc-internal-format
+msgid "obsolete use of designated initializer without %<=%>"
+msgstr ""
+
+#: c/c-parser.c:4133
+#, gcc-internal-format
+msgid "ISO C forbids label declarations"
+msgstr ""
+
+#: c/c-parser.c:4139 c/c-parser.c:4220
+#, gcc-internal-format
+msgid "expected declaration or statement"
+msgstr ""
+
+#: c/c-parser.c:4171 c/c-parser.c:4201
+#, gcc-internal-format
+msgid "ISO C90 forbids mixed declarations and code"
+msgstr ""
+
+#: c/c-parser.c:4228
+#, gcc-internal-format
+msgid "expected %<}%> before %<else%>"
+msgstr ""
+
+#: c/c-parser.c:4233 cp/parser.c:9008
+#, gcc-internal-format
+msgid "%<else%> without a previous %<if%>"
+msgstr ""
+
+#: c/c-parser.c:4250
+#, gcc-internal-format
+msgid "label at end of compound statement"
+msgstr ""
+
+#: c/c-parser.c:4295
+#, gcc-internal-format
+msgid "expected %<:%> or %<...%>"
+msgstr ""
+
+#: c/c-parser.c:4326
+#, gcc-internal-format
+msgid ""
+"a label can only be part of a statement and a declaration is not a statement"
+msgstr ""
+
+#: c/c-parser.c:4501
+#, gcc-internal-format
+msgid "expected identifier or %<*%>"
+msgstr ""
+
+#. Avoid infinite loop in error recovery:
+#. c_parser_skip_until_found stops at a closing nesting
+#. delimiter without consuming it, but here we need to consume
+#. it to proceed further.
+#: c/c-parser.c:4574 cp/parser.c:8736
+#, gcc-internal-format
+msgid "expected statement"
+msgstr ""
+
+#: c/c-parser.c:4672 cp/parser.c:9090
+#, gcc-internal-format
+msgid "suggest braces around empty body in an %<if%> statement"
+msgstr ""
+
+#: c/c-parser.c:4700 cp/parser.c:9113
+#, gcc-internal-format
+msgid "suggest braces around empty body in an %<else%> statement"
+msgstr ""
+
+#: c/c-parser.c:4831
+#, gcc-internal-format
+msgid "suggest braces around empty body in %<do%> statement"
+msgstr ""
+
+#: c/c-parser.c:4947 c/c-parser.c:4977
+#, gcc-internal-format
+msgid "multiple iterating variables in fast enumeration"
+msgstr ""
+
+#: c/c-parser.c:4997
+#, gcc-internal-format
+msgid "invalid iterating variable in fast enumeration"
+msgstr ""
+
+#: c/c-parser.c:5030
+#, gcc-internal-format
+msgid "missing collection in fast enumeration"
+msgstr ""
+
+#: c/c-parser.c:5101
+#, gcc-internal-format
+msgid "%E qualifier ignored on asm"
+msgstr ""
+
+#: c/c-parser.c:5455
+#, gcc-internal-format
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr ""
+
+#: c/c-parser.c:5912
+#, gcc-internal-format
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: c/c-parser.c:6041
+#, gcc-internal-format
+msgid "%<sizeof%> applied to a bit-field"
+msgstr ""
+
+#: c/c-parser.c:6062
+#, gcc-internal-format
+msgid "ISO C99 does not support %qE"
+msgstr ""
+
+#: c/c-parser.c:6065
+#, gcc-internal-format
+msgid "ISO C90 does not support %qE"
+msgstr ""
+
+#: c/c-parser.c:6116
+#, gcc-internal-format
+msgid "ISO C does not allow %<%E (expression)%>"
+msgstr ""
+
+#: c/c-parser.c:6141
+#, gcc-internal-format
+msgid "cannot take address of %qs"
+msgstr ""
+
+#: c/c-parser.c:6312 c/c-parser.c:6762 c/c-parser.c:6781
+#, gcc-internal-format
+msgid "expected expression"
+msgstr ""
+
+#: c/c-parser.c:6330
+#, gcc-internal-format
+msgid "braced-group within expression allowed only inside a function"
+msgstr ""
+
+#: c/c-parser.c:6343
+#, gcc-internal-format
+msgid "ISO C forbids braced-groups within expressions"
+msgstr ""
+
+#: c/c-parser.c:6535
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_choose_expr%>"
+msgstr ""
+
+#: c/c-parser.c:6551
+#, gcc-internal-format
+msgid "first argument to %<__builtin_choose_expr%> not a constant"
+msgstr ""
+
+#: c/c-parser.c:6617
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_complex%>"
+msgstr ""
+
+#: c/c-parser.c:6639
+#, gcc-internal-format
+msgid "%<__builtin_complex%> operand not of real binary floating-point type"
+msgstr ""
+
+#: c/c-parser.c:6648
+#, gcc-internal-format
+msgid "%<__builtin_complex%> operands of different types"
+msgstr ""
+
+#: c/c-parser.c:6694 cp/parser.c:5489
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_shuffle%>"
+msgstr ""
+
+#: c/c-parser.c:6816
+#, gcc-internal-format
+msgid "compound literal has variable size"
+msgstr ""
+
+#: c/c-parser.c:6827
+#, gcc-internal-format
+msgid "compound literal qualified by address-space qualifier"
+msgstr ""
+
+#: c/c-parser.c:6832
+#, gcc-internal-format
+msgid "ISO C90 forbids compound literals"
+msgstr ""
+
+#: c/c-parser.c:7198
+#, gcc-internal-format
+msgid "expected identifier or %<)%>"
+msgstr ""
+
+#: c/c-parser.c:7294
+#, gcc-internal-format
+msgid "extra semicolon"
+msgstr ""
+
+#: c/c-parser.c:7542
+#, gcc-internal-format
+msgid "extra semicolon in method definition specified"
+msgstr ""
+
+#: c/c-parser.c:7674
+#, gcc-internal-format
+msgid "method attributes must be specified at the end only"
+msgstr ""
+
+#: c/c-parser.c:7694
+#, gcc-internal-format
+msgid "expected %<;%> or %<{%> after method attribute definition"
+msgstr ""
+
+#: c/c-parser.c:7815
+#, gcc-internal-format
+msgid "objective-c method declaration is expected"
+msgstr ""
+
+#: c/c-parser.c:8238
+#, gcc-internal-format
+msgid "no type or storage class may be specified here,"
+msgstr ""
+
+#: c/c-parser.c:8328 c/c-parser.c:8385 cp/parser.c:24832
+#, gcc-internal-format
+msgid "unknown property attribute"
+msgstr ""
+
+#: c/c-parser.c:8349 cp/parser.c:24792
+#, gcc-internal-format
+msgid "missing %<=%> (after %<getter%> attribute)"
+msgstr ""
+
+#: c/c-parser.c:8352 cp/parser.c:24795
+#, gcc-internal-format
+msgid "missing %<=%> (after %<setter%> attribute)"
+msgstr ""
+
+#: c/c-parser.c:8366 cp/parser.c:24810
+#, gcc-internal-format
+msgid "the %<setter%> attribute may only be specified once"
+msgstr ""
+
+#: c/c-parser.c:8371 cp/parser.c:24816
+#, gcc-internal-format
+msgid "setter name must terminate with %<:%>"
+msgstr ""
+
+#: c/c-parser.c:8378 cp/parser.c:24824
+#, gcc-internal-format
+msgid "the %<getter%> attribute may only be specified once"
+msgstr ""
+
+#: c/c-parser.c:8564 cp/parser.c:27417
+#, gcc-internal-format
+msgid "%<#pragma omp barrier%> may only be used in compound statements"
+msgstr ""
+
+#: c/c-parser.c:8575 cp/parser.c:27432
+#, gcc-internal-format
+msgid "%<#pragma omp flush%> may only be used in compound statements"
+msgstr ""
+
+#: c/c-parser.c:8586 cp/parser.c:27448
+#, gcc-internal-format
+msgid "%<#pragma omp taskwait%> may only be used in compound statements"
+msgstr ""
+
+#: c/c-parser.c:8597 cp/parser.c:27464
+#, gcc-internal-format
+msgid "%<#pragma omp taskyield%> may only be used in compound statements"
+msgstr ""
+
+#: c/c-parser.c:8610 cp/parser.c:27492
+#, gcc-internal-format
+msgid ""
+"%<#pragma omp section%> may only be used in %<#pragma omp sections%> "
+"construct"
+msgstr ""
+
+#: c/c-parser.c:8616 cp/parser.c:27407
+#, gcc-internal-format
+msgid "%<#pragma GCC pch_preprocess%> must be first"
+msgstr ""
+
+#: c/c-parser.c:8781 cp/parser.c:25080
+#, gcc-internal-format
+msgid "too many %qs clauses"
+msgstr ""
+
+#: c/c-parser.c:8883 cp/parser.c:25195
+#, gcc-internal-format
+msgid "collapse argument needs positive constant integer expression"
+msgstr ""
+
+#: c/c-parser.c:8949 cp/parser.c:25246
+#, gcc-internal-format
+msgid "expected %<none%> or %<shared%>"
+msgstr ""
+
+#: c/c-parser.c:9084 c/c-parser.c:9298
+#, gcc-internal-format
+msgid "expected integer expression"
+msgstr ""
+
+#: c/c-parser.c:9096
+#, gcc-internal-format
+msgid "%<num_threads%> value must be positive"
+msgstr ""
+
+#: c/c-parser.c:9200 cp/parser.c:25465
+#, gcc-internal-format
+msgid ""
+"expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> "
+"or %<max%>"
+msgstr ""
+
+#: c/c-parser.c:9289 cp/parser.c:25550
+#, gcc-internal-format
+msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
+msgstr ""
+
+#: c/c-parser.c:9293 cp/parser.c:25553
+#, gcc-internal-format
+msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
+msgstr ""
+
+#: c/c-parser.c:9311 cp/parser.c:25569
+#, gcc-internal-format
+msgid "invalid schedule kind"
+msgstr ""
+
+#: c/c-parser.c:9439 cp/parser.c:25701
+#, gcc-internal-format
+msgid "expected %<#pragma omp%> clause"
+msgstr ""
+
+#: c/c-parser.c:9448 cp/parser.c:25710
+#, gcc-internal-format
+msgid "%qs is not valid for %qs"
+msgstr ""
+
+#: c/c-parser.c:9740 cp/parser.c:25994
+#, gcc-internal-format
+msgid "invalid form of %<#pragma omp atomic%>"
+msgstr ""
+
+#: c/c-parser.c:9780 c/c-parser.c:9798 cp/parser.c:26025 cp/parser.c:26042
+#, gcc-internal-format
+msgid "invalid operator for %<#pragma omp atomic%>"
+msgstr ""
+
+#: c/c-parser.c:9884 c/c-parser.c:9905
+#, gcc-internal-format
+msgid "expected %<(%> or end of line"
+msgstr ""
+
+#: c/c-parser.c:9940 cp/parser.c:26314
+#, gcc-internal-format
+msgid "for statement expected"
+msgstr ""
+
+#: c/c-parser.c:9993 cp/semantics.c:4707 cp/semantics.c:4777
+#, gcc-internal-format
+msgid "expected iteration declaration or initialization"
+msgstr ""
+
+#: c/c-parser.c:10074
+#, gcc-internal-format
+msgid "not enough perfectly nested loops"
+msgstr ""
+
+#: c/c-parser.c:10127 cp/parser.c:26659
+#, gcc-internal-format
+msgid "collapsed loops not perfectly nested"
+msgstr ""
+
+#: c/c-parser.c:10165 cp/parser.c:26500 cp/parser.c:26538 cp/pt.c:12503
+#, gcc-internal-format
+msgid "iteration variable %qD should not be firstprivate"
+msgstr ""
+
+#: c/c-parser.c:10626
+#, gcc-internal-format
+msgid "%qD is not a variable"
+msgstr ""
+
+#: c/c-parser.c:10628 cp/semantics.c:4319
+#, gcc-internal-format
+msgid "%qE declared %<threadprivate%> after first use"
+msgstr ""
+
+#: c/c-parser.c:10630 cp/semantics.c:4321
+#, gcc-internal-format
+msgid "automatic variable %qE cannot be %<threadprivate%>"
+msgstr ""
+
+#: c/c-parser.c:10634 cp/semantics.c:4323
+#, gcc-internal-format
+msgid "%<threadprivate%> %qE has incomplete type"
+msgstr ""
+
+#: c/c-parser.c:10831 cp/parser.c:27303
+#, gcc-internal-format
+msgid "%<__transaction_cancel%> without transactional memory support enabled"
+msgstr ""
+
+#: c/c-parser.c:10837 cp/parser.c:27309
+#, gcc-internal-format
+msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
+msgstr ""
+
+#: c/c-parser.c:10846 cp/parser.c:27318
+#, gcc-internal-format
+msgid ""
+"outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
+msgstr ""
+
+#: c/c-parser.c:10848 cp/parser.c:27321
+#, gcc-internal-format
+msgid " or a %<transaction_may_cancel_outer%> function"
+msgstr ""
+
+#: c/c-parser.c:10854 cp/parser.c:27327
+#, gcc-internal-format
+msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
+msgstr ""
+
+#: c/c-typeck.c:217
+#, gcc-internal-format
+msgid "%qD has an incomplete type"
+msgstr ""
+
+#: c/c-typeck.c:238 c/c-typeck.c:8547 c/c-typeck.c:8579 cp/call.c:3749
+#, gcc-internal-format
+msgid "invalid use of void expression"
+msgstr ""
+
+#: c/c-typeck.c:246
+#, gcc-internal-format
+msgid "invalid use of flexible array member"
+msgstr ""
+
+#: c/c-typeck.c:252 cp/typeck2.c:427
+#, gcc-internal-format
+msgid "invalid use of array with unspecified bounds"
+msgstr ""
+
+#: c/c-typeck.c:260
+#, gcc-internal-format
+msgid "invalid use of undefined type %<%s %E%>"
+msgstr ""
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c/c-typeck.c:264
+#, gcc-internal-format
+msgid "invalid use of incomplete typedef %qD"
+msgstr ""
+
+#: c/c-typeck.c:330
+#, gcc-internal-format
+msgid "%qT and %qT are in disjoint named address spaces"
+msgstr ""
+
+#: c/c-typeck.c:569 c/c-typeck.c:594
+#, gcc-internal-format
+msgid "function types not truly compatible in ISO C"
+msgstr ""
+
+#: c/c-typeck.c:737
+#, gcc-internal-format
+msgid "can%'t mix operands of decimal float and vector types"
+msgstr ""
+
+#: c/c-typeck.c:742
+#, gcc-internal-format
+msgid "can%'t mix operands of decimal float and complex types"
+msgstr ""
+
+#: c/c-typeck.c:747
+#, gcc-internal-format
+msgid "can%'t mix operands of decimal float and other float types"
+msgstr ""
+
+#: c/c-typeck.c:1223
+#, gcc-internal-format
+msgid "types are not quite compatible"
+msgstr ""
+
+#: c/c-typeck.c:1227
+#, gcc-internal-format
+msgid "pointer target types incompatible in C++"
+msgstr ""
+
+#: c/c-typeck.c:1559
+#, gcc-internal-format
+msgid "function return types not compatible due to %<volatile%>"
+msgstr ""
+
+#: c/c-typeck.c:1735 c/c-typeck.c:3406
+#, gcc-internal-format
+msgid "arithmetic on pointer to an incomplete type"
+msgstr ""
+
+#: c/c-typeck.c:1799
+#, gcc-internal-format
+msgid "converting an array compound literal to a pointer is ill-formed in C++"
+msgstr ""
+
+#: c/c-typeck.c:2163
+#, gcc-internal-format
+msgid "%qT has no member named %qE"
+msgstr ""
+
+#: c/c-typeck.c:2217
+#, gcc-internal-format
+msgid "request for member %qE in something not a structure or union"
+msgstr ""
+
+#: c/c-typeck.c:2266
+#, gcc-internal-format
+msgid "dereferencing pointer to incomplete type"
+msgstr ""
+
+#: c/c-typeck.c:2270
+#, gcc-internal-format
+msgid "dereferencing %<void *%> pointer"
+msgstr ""
+
+#: c/c-typeck.c:2326
+#, gcc-internal-format
+msgid "subscripted value is neither array nor pointer nor vector"
+msgstr ""
+
+#: c/c-typeck.c:2338 cp/typeck.c:2942 cp/typeck.c:3036
+#, gcc-internal-format
+msgid "array subscript is not an integer"
+msgstr ""
+
+#: c/c-typeck.c:2344
+#, gcc-internal-format
+msgid "subscripted value is pointer to function"
+msgstr ""
+
+#: c/c-typeck.c:2394
+#, gcc-internal-format
+msgid "ISO C forbids subscripting %<register%> array"
+msgstr ""
+
+#: c/c-typeck.c:2397
+#, gcc-internal-format
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr ""
+
+#: c/c-typeck.c:2505
+#, gcc-internal-format
+msgid "enum constant defined here"
+msgstr ""
+
+#: c/c-typeck.c:2688 cp/decl2.c:4229 cp/typeck.c:3415
+#, gcc-internal-format
+msgid "declared here"
+msgstr ""
+
+#: c/c-typeck.c:2755
+#, gcc-internal-format
+msgid "called object %qE is not a function or function pointer"
+msgstr ""
+
+#: c/c-typeck.c:2760
+#, gcc-internal-format
+msgid "called object %qD is not a function or function pointer"
+msgstr ""
+
+#: c/c-typeck.c:2766
+#, gcc-internal-format
+msgid "called object is not a function or function pointer"
+msgstr ""
+
+#. This situation leads to run-time undefined behavior. We can't,
+#. therefore, simply error unless we can prove that all possible
+#. executions of the program must execute the code.
+#: c/c-typeck.c:2803
+#, gcc-internal-format
+msgid "function called through a non-compatible type"
+msgstr ""
+
+#: c/c-typeck.c:2817 c/c-typeck.c:2870
+#, gcc-internal-format
+msgid "function with qualified void return type called"
+msgstr ""
+
+#: c/c-typeck.c:2960
+#, gcc-internal-format
+msgid "too many arguments to method %qE"
+msgstr ""
+
+#: c/c-typeck.c:2999
+#, gcc-internal-format, gfc-internal-format
+msgid "type of formal parameter %d is incomplete"
+msgstr ""
+
+#: c/c-typeck.c:3014
+#, gcc-internal-format
+msgid ""
+"passing argument %d of %qE as integer rather than floating due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3019
+#, gcc-internal-format
+msgid ""
+"passing argument %d of %qE as integer rather than complex due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3024
+#, gcc-internal-format
+msgid ""
+"passing argument %d of %qE as complex rather than floating due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3029
+#, gcc-internal-format
+msgid ""
+"passing argument %d of %qE as floating rather than integer due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3034
+#, gcc-internal-format
+msgid ""
+"passing argument %d of %qE as complex rather than integer due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3039
+#, gcc-internal-format
+msgid ""
+"passing argument %d of %qE as floating rather than complex due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3052
+#, gcc-internal-format
+msgid ""
+"passing argument %d of %qE as %<float%> rather than %<double%> due to "
+"prototype"
+msgstr ""
+
+#: c/c-typeck.c:3077
+#, gcc-internal-format
+msgid "passing argument %d of %qE as %qT rather than %qT due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3099
+#, gcc-internal-format
+msgid "passing argument %d of %qE with different width due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3123
+#, gcc-internal-format
+msgid "passing argument %d of %qE as unsigned due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3128
+#, gcc-internal-format
+msgid "passing argument %d of %qE as signed due to prototype"
+msgstr ""
+
+#: c/c-typeck.c:3163 cp/call.c:6111
+#, gcc-internal-format
+msgid "implicit conversion from %qT to %qT when passing argument to function"
+msgstr ""
+
+#: c/c-typeck.c:3277 c/c-typeck.c:3282
+#, gcc-internal-format
+msgid "comparison with string literal results in unspecified behavior"
+msgstr ""
+
+#: c/c-typeck.c:3296
+#, gcc-internal-format
+msgid "comparison between %qT and %qT"
+msgstr ""
+
+#: c/c-typeck.c:3347
+#, gcc-internal-format
+msgid "pointer of type %<void *%> used in subtraction"
+msgstr ""
+
+#: c/c-typeck.c:3350
+#, gcc-internal-format
+msgid "pointer to a function used in subtraction"
+msgstr ""
+
+#: c/c-typeck.c:3514
+#, gcc-internal-format
+msgid "ISO C does not support %<~%> for complex conjugation"
+msgstr ""
+
+#: c/c-typeck.c:3553
+#, gcc-internal-format
+msgid "wrong type argument to unary exclamation mark"
+msgstr ""
+
+#: c/c-typeck.c:3610
+#, gcc-internal-format
+msgid "increment of enumeration value is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.c:3613
+#, gcc-internal-format
+msgid "decrement of enumeration value is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.c:3626
+#, gcc-internal-format
+msgid "ISO C does not support %<++%> and %<--%> on complex types"
+msgstr ""
+
+#: c/c-typeck.c:3645 c/c-typeck.c:3677
+#, gcc-internal-format
+msgid "wrong type argument to increment"
+msgstr ""
+
+#: c/c-typeck.c:3647 c/c-typeck.c:3680
+#, gcc-internal-format
+msgid "wrong type argument to decrement"
+msgstr ""
+
+#: c/c-typeck.c:3667
+#, gcc-internal-format
+msgid "increment of pointer to unknown structure"
+msgstr ""
+
+#: c/c-typeck.c:3670
+#, gcc-internal-format
+msgid "decrement of pointer to unknown structure"
+msgstr ""
+
+#: c/c-typeck.c:3754
+#, gcc-internal-format
+msgid "taking address of expression of type %<void%>"
+msgstr ""
+
+#: c/c-typeck.c:3959
+#, gcc-internal-format
+msgid "cannot take address of bit-field %qD"
+msgstr ""
+
+#: c/c-typeck.c:3987
+#, gcc-internal-format
+msgid "global register variable %qD used in nested function"
+msgstr ""
+
+#: c/c-typeck.c:3990
+#, gcc-internal-format
+msgid "register variable %qD used in nested function"
+msgstr ""
+
+#: c/c-typeck.c:3995
+#, gcc-internal-format
+msgid "address of global register variable %qD requested"
+msgstr ""
+
+#: c/c-typeck.c:3997
+#, gcc-internal-format
+msgid "address of register variable %qD requested"
+msgstr ""
+
+#: c/c-typeck.c:4091
+#, gcc-internal-format
+msgid "non-lvalue array in conditional expression"
+msgstr ""
+
+#: c/c-typeck.c:4147 cp/call.c:4689
+#, gcc-internal-format
+msgid ""
+"implicit conversion from %qT to %qT to match other result of conditional"
+msgstr ""
+
+#: c/c-typeck.c:4221
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr ""
+
+#: c/c-typeck.c:4238
+#, gcc-internal-format
+msgid "pointers to disjoint address spaces used in conditional expression"
+msgstr ""
+
+#: c/c-typeck.c:4246 c/c-typeck.c:4255
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
+msgstr ""
+
+#: c/c-typeck.c:4268
+#, gcc-internal-format
+msgid "pointer type mismatch in conditional expression"
+msgstr ""
+
+#: c/c-typeck.c:4277 c/c-typeck.c:4288
+#, gcc-internal-format
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr ""
+
+#: c/c-typeck.c:4401
+#, gcc-internal-format
+msgid "left-hand operand of comma expression has no effect"
+msgstr ""
+
+#: c/c-typeck.c:4471
+msgid "cast adds %q#v qualifier to function type"
+msgstr ""
+
+#: c/c-typeck.c:4477
+msgid "cast discards %q#v qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.c:4512
+#, gcc-internal-format
+msgid ""
+"to be safe all intermediate pointers in cast from %qT to %qT must be %<const"
+"%> qualified"
+msgstr ""
+
+#: c/c-typeck.c:4549
+#, gcc-internal-format
+msgid "cast specifies array type"
+msgstr ""
+
+#: c/c-typeck.c:4555
+#, gcc-internal-format
+msgid "cast specifies function type"
+msgstr ""
+
+#: c/c-typeck.c:4571
+#, gcc-internal-format
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr ""
+
+#: c/c-typeck.c:4588
+#, gcc-internal-format
+msgid "ISO C forbids casts to union type"
+msgstr ""
+
+#: c/c-typeck.c:4598
+#, gcc-internal-format
+msgid "cast to union type from type not present in union"
+msgstr ""
+
+#: c/c-typeck.c:4633
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"cast to %s address space pointer from disjoint generic address space pointer"
+msgstr ""
+
+#: c/c-typeck.c:4638
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"cast to generic address space pointer from disjoint %s address space pointer"
+msgstr ""
+
+#: c/c-typeck.c:4643
+#, gcc-internal-format, gfc-internal-format
+msgid "cast to %s address space pointer from disjoint %s address space pointer"
+msgstr ""
+
+#: c/c-typeck.c:4663
+#, gcc-internal-format
+msgid "cast increases required alignment of target type"
+msgstr ""
+
+#: c/c-typeck.c:4674
+#, gcc-internal-format
+msgid "cast from pointer to integer of different size"
+msgstr ""
+
+#: c/c-typeck.c:4679
+#, gcc-internal-format
+msgid "cast from function call of type %qT to non-matching type %qT"
+msgstr ""
+
+#: c/c-typeck.c:4688 cp/typeck.c:6778
+#, gcc-internal-format
+msgid "cast to pointer from integer of different size"
+msgstr ""
+
+#: c/c-typeck.c:4702
+#, gcc-internal-format
+msgid "ISO C forbids conversion of function pointer to object pointer type"
+msgstr ""
+
+#: c/c-typeck.c:4711
+#, gcc-internal-format
+msgid "ISO C forbids conversion of object pointer to function pointer type"
+msgstr ""
+
+#: c/c-typeck.c:4797
+#, gcc-internal-format
+msgid "defining a type in a cast is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.c:4936 c/c-typeck.c:5233
+#, gcc-internal-format
+msgid "enum conversion in assignment is invalid in C++"
+msgstr ""
+
+#. This macro is used to emit diagnostics to ensure that all format
+#. strings are complete sentences, visible to gettext and checked at
+#. compile time.
+#. This macro is used to emit diagnostics to ensure that all format
+#. strings are complete sentences, visible to gettext and checked at
+#. compile time. It is the same as WARN_FOR_ASSIGNMENT but with an
+#. extra parameter to enumerate qualifiers.
+#: c/c-typeck.c:5141 c/c-typeck.c:5171 c/c-typeck.c:5698
+#, gcc-internal-format
+msgid "expected %qT but argument is of type %qT"
+msgstr ""
+
+#: c/c-typeck.c:5231
+#, gcc-internal-format
+msgid "enum conversion when passing argument %d of %qE is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.c:5235 c/c-typeck.c:7801
+#, gcc-internal-format
+msgid "enum conversion in initialization is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.c:5237
+#, gcc-internal-format
+msgid "enum conversion in return is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.c:5266
+#, gcc-internal-format
+msgid "cannot pass rvalue to reference parameter"
+msgstr ""
+
+#: c/c-typeck.c:5396 c/c-typeck.c:5619
+msgid ""
+"passing argument %d of %qE makes %q#v qualified function pointer from "
+"unqualified"
+msgstr ""
+
+#: c/c-typeck.c:5399 c/c-typeck.c:5622
+msgid "assignment makes %q#v qualified function pointer from unqualified"
+msgstr ""
+
+#: c/c-typeck.c:5402 c/c-typeck.c:5624
+msgid "initialization makes %q#v qualified function pointer from unqualified"
+msgstr ""
+
+#: c/c-typeck.c:5405 c/c-typeck.c:5626
+msgid "return makes %q#v qualified function pointer from unqualified"
+msgstr ""
+
+#: c/c-typeck.c:5412 c/c-typeck.c:5582
+msgid ""
+"passing argument %d of %qE discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.c:5414 c/c-typeck.c:5584
+msgid "assignment discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.c:5416 c/c-typeck.c:5586
+msgid "initialization discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.c:5418 c/c-typeck.c:5588
+msgid "return discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.c:5427
+#, gcc-internal-format
+msgid "ISO C prohibits argument conversion to union type"
+msgstr ""
+
+#: c/c-typeck.c:5482
+#, gcc-internal-format
+msgid "request for implicit conversion from %qT to %qT not permitted in C++"
+msgstr ""
+
+#: c/c-typeck.c:5494
+#, gcc-internal-format
+msgid "passing argument %d of %qE from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.c:5498
+#, gcc-internal-format
+msgid "assignment from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.c:5502
+#, gcc-internal-format
+msgid "initialization from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.c:5506
+#, gcc-internal-format
+msgid "return from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.c:5524
+#, gcc-internal-format
+msgid "argument %d of %qE might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.c:5530
+#, gcc-internal-format
+msgid "assignment left-hand side might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.c:5535
+#, gcc-internal-format
+msgid ""
+"initialization left-hand side might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.c:5540 cp/typeck.c:7754
+#, gcc-internal-format
+msgid "return type might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.c:5564
+#, gcc-internal-format
+msgid ""
+"ISO C forbids passing argument %d of %qE between function pointer and %<void "
+"*%>"
+msgstr ""
+
+#: c/c-typeck.c:5567
+#, gcc-internal-format
+msgid "ISO C forbids assignment between function pointer and %<void *%>"
+msgstr ""
+
+#: c/c-typeck.c:5569
+#, gcc-internal-format
+msgid "ISO C forbids initialization between function pointer and %<void *%>"
+msgstr ""
+
+#: c/c-typeck.c:5571
+#, gcc-internal-format
+msgid "ISO C forbids return between function pointer and %<void *%>"
+msgstr ""
+
+#: c/c-typeck.c:5600
+#, gcc-internal-format
+msgid "pointer targets in passing argument %d of %qE differ in signedness"
+msgstr ""
+
+#: c/c-typeck.c:5602
+#, gcc-internal-format
+msgid "pointer targets in assignment differ in signedness"
+msgstr ""
+
+#: c/c-typeck.c:5604
+#, gcc-internal-format
+msgid "pointer targets in initialization differ in signedness"
+msgstr ""
+
+#: c/c-typeck.c:5606
+#, gcc-internal-format
+msgid "pointer targets in return differ in signedness"
+msgstr ""
+
+#: c/c-typeck.c:5635
+#, gcc-internal-format
+msgid "passing argument %d of %qE from incompatible pointer type"
+msgstr ""
+
+#: c/c-typeck.c:5637
+#, gcc-internal-format
+msgid "assignment from incompatible pointer type"
+msgstr ""
+
+#: c/c-typeck.c:5638
+#, gcc-internal-format
+msgid "initialization from incompatible pointer type"
+msgstr ""
+
+#: c/c-typeck.c:5640
+#, gcc-internal-format
+msgid "return from incompatible pointer type"
+msgstr ""
+
+#. ??? This should not be an error when inlining calls to
+#. unprototyped functions.
+#: c/c-typeck.c:5648 c/c-typeck.c:6200 cp/typeck.c:1878
+#, gcc-internal-format
+msgid "invalid use of non-lvalue array"
+msgstr ""
+
+#: c/c-typeck.c:5658
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5660
+#, gcc-internal-format
+msgid "assignment makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5662
+#, gcc-internal-format
+msgid "initialization makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5664
+#, gcc-internal-format
+msgid "return makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5672
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5674
+#, gcc-internal-format
+msgid "assignment makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5676
+#, gcc-internal-format
+msgid "initialization makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5678
+#, gcc-internal-format
+msgid "return makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.c:5701
+#, gcc-internal-format
+msgid "incompatible types when assigning to type %qT from type %qT"
+msgstr ""
+
+#: c/c-typeck.c:5706
+#, gcc-internal-format
+msgid "incompatible types when initializing type %qT using type %qT"
+msgstr ""
+
+#: c/c-typeck.c:5711
+#, gcc-internal-format
+msgid "incompatible types when returning type %qT but %qT was expected"
+msgstr ""
+
+#: c/c-typeck.c:5775
+#, gcc-internal-format
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr ""
+
+#: c/c-typeck.c:5951 c/c-typeck.c:5968 c/c-typeck.c:5986
+#, gcc-internal-format
+msgid "(near initialization for %qs)"
+msgstr ""
+
+#: c/c-typeck.c:6001
+#, gcc-internal-format
+msgid "array initialized from parenthesized string constant"
+msgstr ""
+
+#: c/c-typeck.c:6074 c/c-typeck.c:6949
+#, gcc-internal-format
+msgid "initialization of a flexible array member"
+msgstr ""
+
+#: c/c-typeck.c:6084 cp/typeck2.c:894
+#, gcc-internal-format
+msgid "char-array initialized from wide string"
+msgstr ""
+
+#: c/c-typeck.c:6092
+#, gcc-internal-format
+msgid "wide character array initialized from non-wide string"
+msgstr ""
+
+#: c/c-typeck.c:6098
+#, gcc-internal-format
+msgid "wide character array initialized from incompatible wide string"
+msgstr ""
+
+#: c/c-typeck.c:6132
+#, gcc-internal-format
+msgid "array of inappropriate type initialized from string constant"
+msgstr ""
+
+#: c/c-typeck.c:6226
+#, gcc-internal-format
+msgid "array initialized from non-constant array expression"
+msgstr ""
+
+#: c/c-typeck.c:6240 c/c-typeck.c:6243 c/c-typeck.c:6251 c/c-typeck.c:6290
+#: c/c-typeck.c:7774
+#, gcc-internal-format
+msgid "initializer element is not constant"
+msgstr ""
+
+#: c/c-typeck.c:6256 c/c-typeck.c:6302 c/c-typeck.c:7784
+#, gcc-internal-format
+msgid "initializer element is not a constant expression"
+msgstr ""
+
+#: c/c-typeck.c:6297 c/c-typeck.c:7779
+#, gcc-internal-format
+msgid "initializer element is not computable at load time"
+msgstr ""
+
+#: c/c-typeck.c:6315
+#, gcc-internal-format
+msgid "invalid initializer"
+msgstr ""
+
+#: c/c-typeck.c:6589 cp/decl.c:5552
+#, gcc-internal-format
+msgid "opaque vector types cannot be initialized"
+msgstr ""
+
+#: c/c-typeck.c:6804
+#, gcc-internal-format
+msgid "extra brace group at end of initializer"
+msgstr ""
+
+#: c/c-typeck.c:6825
+#, gcc-internal-format
+msgid "missing braces around initializer"
+msgstr ""
+
+#: c/c-typeck.c:6886
+#, gcc-internal-format
+msgid "braces around scalar initializer"
+msgstr ""
+
+#: c/c-typeck.c:6946
+#, gcc-internal-format
+msgid "initialization of flexible array member in a nested context"
+msgstr ""
+
+#: c/c-typeck.c:6984
+#, gcc-internal-format
+msgid "missing initializer for field %qD of %qT"
+msgstr ""
+
+#: c/c-typeck.c:7009
+#, gcc-internal-format
+msgid "empty scalar initializer"
+msgstr ""
+
+#: c/c-typeck.c:7014
+#, gcc-internal-format
+msgid "extra elements in scalar initializer"
+msgstr ""
+
+#: c/c-typeck.c:7125 c/c-typeck.c:7206
+#, gcc-internal-format
+msgid "array index in non-array initializer"
+msgstr ""
+
+#: c/c-typeck.c:7130 c/c-typeck.c:7262
+#, gcc-internal-format
+msgid "field name not in record or union initializer"
+msgstr ""
+
+#: c/c-typeck.c:7179
+#, gcc-internal-format
+msgid "array index in initializer not of integer type"
+msgstr ""
+
+#: c/c-typeck.c:7188 c/c-typeck.c:7197
+#, gcc-internal-format
+msgid "array index in initializer is not an integer constant expression"
+msgstr ""
+
+#: c/c-typeck.c:7202 c/c-typeck.c:7204
+#, gcc-internal-format
+msgid "nonconstant array index in initializer"
+msgstr ""
+
+#: c/c-typeck.c:7208 c/c-typeck.c:7211
+#, gcc-internal-format
+msgid "array index in initializer exceeds array bounds"
+msgstr ""
+
+#: c/c-typeck.c:7225
+#, gcc-internal-format
+msgid "empty index range in initializer"
+msgstr ""
+
+#: c/c-typeck.c:7234
+#, gcc-internal-format
+msgid "array index range in initializer exceeds array bounds"
+msgstr ""
+
+#: c/c-typeck.c:7269
+#, gcc-internal-format
+msgid "unknown field %qE specified in initializer"
+msgstr ""
+
+#: c/c-typeck.c:7321 c/c-typeck.c:7348 c/c-typeck.c:7875
+#, gcc-internal-format
+msgid "initialized field with side-effects overwritten"
+msgstr ""
+
+#: c/c-typeck.c:7323 c/c-typeck.c:7350 c/c-typeck.c:7877
+#, gcc-internal-format
+msgid "initialized field overwritten"
+msgstr ""
+
+#: c/c-typeck.c:8093
+#, gcc-internal-format
+msgid "excess elements in char array initializer"
+msgstr ""
+
+#: c/c-typeck.c:8100 c/c-typeck.c:8161
+#, gcc-internal-format
+msgid "excess elements in struct initializer"
+msgstr ""
+
+#: c/c-typeck.c:8176
+#, gcc-internal-format
+msgid "non-static initialization of a flexible array member"
+msgstr ""
+
+#: c/c-typeck.c:8247
+#, gcc-internal-format
+msgid "excess elements in union initializer"
+msgstr ""
+
+#: c/c-typeck.c:8269
+#, gcc-internal-format
+msgid "traditional C rejects initialization of unions"
+msgstr ""
+
+#: c/c-typeck.c:8337
+#, gcc-internal-format
+msgid "excess elements in array initializer"
+msgstr ""
+
+#: c/c-typeck.c:8371
+#, gcc-internal-format
+msgid "excess elements in vector initializer"
+msgstr ""
+
+#: c/c-typeck.c:8403
+#, gcc-internal-format
+msgid "excess elements in scalar initializer"
+msgstr ""
+
+#: c/c-typeck.c:8627
+#, gcc-internal-format
+msgid "ISO C forbids %<goto *expr;%>"
+msgstr ""
+
+#: c/c-typeck.c:8649 cp/typeck.c:7966
+#, gcc-internal-format
+msgid "function declared %<noreturn%> has a %<return%> statement"
+msgstr ""
+
+#: c/c-typeck.c:8672
+#, gcc-internal-format
+msgid "%<return%> with no value, in function returning non-void"
+msgstr ""
+
+#: c/c-typeck.c:8682
+#, gcc-internal-format
+msgid "%<return%> with a value, in function returning void"
+msgstr ""
+
+#: c/c-typeck.c:8684
+#, gcc-internal-format
+msgid "ISO C forbids %<return%> with expression, in function returning void"
+msgstr ""
+
+#: c/c-typeck.c:8751
+#, gcc-internal-format
+msgid "function returns address of local variable"
+msgstr ""
+
+#: c/c-typeck.c:8824 cp/semantics.c:1035
+#, gcc-internal-format
+msgid "switch quantity not an integer"
+msgstr ""
+
+#: c/c-typeck.c:8837
+#, gcc-internal-format
+msgid "%<long%> switch expression not converted to %<int%> in ISO C"
+msgstr ""
+
+#: c/c-typeck.c:8873 c/c-typeck.c:8881
+#, gcc-internal-format
+msgid "case label is not an integer constant expression"
+msgstr ""
+
+#: c/c-typeck.c:8887 cp/parser.c:8839
+#, gcc-internal-format
+msgid "case label not within a switch statement"
+msgstr ""
+
+#: c/c-typeck.c:8889
+#, gcc-internal-format
+msgid "%<default%> label not within a switch statement"
+msgstr ""
+
+#: c/c-typeck.c:8972 cp/parser.c:9139
+#, gcc-internal-format
+msgid "suggest explicit braces to avoid ambiguous %<else%>"
+msgstr ""
+
+#: c/c-typeck.c:9081 cp/parser.c:9868
+#, gcc-internal-format
+msgid "break statement not within loop or switch"
+msgstr ""
+
+#: c/c-typeck.c:9083 cp/parser.c:9889
+#, gcc-internal-format
+msgid "continue statement not within a loop"
+msgstr ""
+
+#: c/c-typeck.c:9088 cp/parser.c:9879
+#, gcc-internal-format
+msgid "break statement used with OpenMP for loop"
+msgstr ""
+
+#: c/c-typeck.c:9114 cp/cp-gimplify.c:429
+#, gcc-internal-format
+msgid "statement with no effect"
+msgstr ""
+
+#: c/c-typeck.c:9140
+#, gcc-internal-format
+msgid "expression statement has incomplete type"
+msgstr ""
+
+#: c/c-typeck.c:9399 c/c-typeck.c:9434 c/c-typeck.c:9448
+#, gcc-internal-format
+msgid "conversion of scalar to vector involves truncation"
+msgstr ""
+
+#: c/c-typeck.c:9888 cp/typeck.c:4005
+#, gcc-internal-format
+msgid "right shift count is negative"
+msgstr ""
+
+#: c/c-typeck.c:9899 cp/typeck.c:4012
+#, gcc-internal-format
+msgid "right shift count >= width of type"
+msgstr ""
+
+#: c/c-typeck.c:9940 cp/typeck.c:4042
+#, gcc-internal-format
+msgid "left shift count is negative"
+msgstr ""
+
+#: c/c-typeck.c:9947 cp/typeck.c:4048
+#, gcc-internal-format
+msgid "left shift count >= width of type"
+msgstr ""
+
+#: c/c-typeck.c:9970 c/c-typeck.c:10107 cp/typeck.c:4342
+#, gcc-internal-format
+msgid "comparing vectors with different element types"
+msgstr ""
+
+#: c/c-typeck.c:9977 c/c-typeck.c:10114 cp/typeck.c:4350
+#, gcc-internal-format
+msgid "comparing vectors with different number of elements"
+msgstr ""
+
+#: c/c-typeck.c:9993 cp/typeck.c:4096
+#, gcc-internal-format
+msgid "comparing floating point with == or != is unsafe"
+msgstr ""
+
+#: c/c-typeck.c:10010 c/c-typeck.c:10030
+#, gcc-internal-format
+msgid ""
+"the comparison will always evaluate as %<false%> for the address of %qD will "
+"never be NULL"
+msgstr ""
+
+#: c/c-typeck.c:10016 c/c-typeck.c:10036
+#, gcc-internal-format
+msgid ""
+"the comparison will always evaluate as %<true%> for the address of %qD will "
+"never be NULL"
+msgstr ""
+
+#: c/c-typeck.c:10057 c/c-typeck.c:10157
+#, gcc-internal-format
+msgid "comparison of pointers to disjoint address spaces"
+msgstr ""
+
+#: c/c-typeck.c:10064 c/c-typeck.c:10070
+#, gcc-internal-format
+msgid "ISO C forbids comparison of %<void *%> with function pointer"
+msgstr ""
+
+#: c/c-typeck.c:10077 c/c-typeck.c:10167
+#, gcc-internal-format
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr ""
+
+#: c/c-typeck.c:10089 c/c-typeck.c:10094 c/c-typeck.c:10193 c/c-typeck.c:10198
+#, gcc-internal-format
+msgid "comparison between pointer and integer"
+msgstr ""
+
+#: c/c-typeck.c:10145
+#, gcc-internal-format
+msgid "comparison of complete and incomplete pointers"
+msgstr ""
+
+#: c/c-typeck.c:10147
+#, gcc-internal-format
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr ""
+
+#: c/c-typeck.c:10152
+#, gcc-internal-format
+msgid "ordered comparison of pointer with null pointer"
+msgstr ""
+
+#: c/c-typeck.c:10175 c/c-typeck.c:10178 c/c-typeck.c:10185 c/c-typeck.c:10188
+#: cp/typeck.c:4378 cp/typeck.c:4385
+#, gcc-internal-format
+msgid "ordered comparison of pointer with integer zero"
+msgstr ""
+
+#: c/c-typeck.c:10232 cp/typeck.c:4457
+#, gcc-internal-format
+msgid ""
+"implicit conversion from %qT to %qT to match other operand of binary "
+"expression"
+msgstr ""
+
+#: c/c-typeck.c:10516
+#, gcc-internal-format
+msgid "used array that cannot be converted to pointer where scalar is required"
+msgstr ""
+
+#: c/c-typeck.c:10520
+#, gcc-internal-format
+msgid "used struct type value where scalar is required"
+msgstr ""
+
+#: c/c-typeck.c:10524
+#, gcc-internal-format
+msgid "used union type value where scalar is required"
+msgstr ""
+
+#: c/c-typeck.c:10535
+#, gcc-internal-format
+msgid "used vector type where scalar is required"
+msgstr ""
+
+#: c/c-typeck.c:10694 cp/semantics.c:4194
+#, gcc-internal-format
+msgid "%qE has invalid type for %<reduction%>"
+msgstr ""
+
+#: c/c-typeck.c:10731 cp/semantics.c:4209
+#, gcc-internal-format
+msgid "%qE has invalid type for %<reduction(%s)%>"
+msgstr ""
+
+#: c/c-typeck.c:10748 cp/semantics.c:4219
+#, gcc-internal-format
+msgid "%qE must be %<threadprivate%> for %<copyin%>"
+msgstr ""
+
+#: c/c-typeck.c:10758 cp/semantics.c:3987
+#, gcc-internal-format
+msgid "%qE is not a variable in clause %qs"
+msgstr ""
+
+#: c/c-typeck.c:10766 c/c-typeck.c:10788 c/c-typeck.c:10810
+#, gcc-internal-format
+msgid "%qE appears more than once in data clauses"
+msgstr ""
+
+#: c/c-typeck.c:10781 cp/semantics.c:4010
+#, gcc-internal-format
+msgid "%qE is not a variable in clause %<firstprivate%>"
+msgstr ""
+
+#: c/c-typeck.c:10803 cp/semantics.c:4032
+#, gcc-internal-format
+msgid "%qE is not a variable in clause %<lastprivate%>"
+msgstr ""
+
+#: c/c-typeck.c:10871 cp/semantics.c:4265
+#, gcc-internal-format
+msgid "%qE is predetermined %qs for %qs"
+msgstr ""
+
+#: c/c-typeck.c:10973
+#, gcc-internal-format
+msgid "C++ requires promoted type, not enum type, in %<va_arg%>"
+msgstr ""
+
#. Conversion of implicit `this' argument failed.
-#: cp/call.c:3139
+#: cp/call.c:3121
#, gcc-internal-format
msgid " no known conversion for implicit %<this%> parameter from %qT to %qT"
msgstr ""
-#: cp/call.c:3143
+#: cp/call.c:3125
#, gcc-internal-format
msgid " no known conversion for argument %d from %qT to %qT"
msgstr ""
-#: cp/call.c:3154 cp/pt.c:5565
+#: cp/call.c:3136 cp/pt.c:5313
#, gcc-internal-format, gfc-internal-format
msgid " candidate expects %d argument, %d provided"
msgid_plural " candidate expects %d arguments, %d provided"
msgstr[0] ""
msgstr[1] ""
-#: cp/call.c:3179
+#: cp/call.c:3161
#, gcc-internal-format
msgid "%s%D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:3184
+#: cp/call.c:3166
#, gcc-internal-format
msgid "%s%D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:3188
+#: cp/call.c:3170
#, gcc-internal-format
msgid "%s%D(%T) <built-in>"
msgstr ""
-#: cp/call.c:3192
+#: cp/call.c:3174
#, gcc-internal-format
msgid "%s%T <conversion>"
msgstr ""
-#: cp/call.c:3194
+#: cp/call.c:3176
#, gcc-internal-format
msgid "%s%#D <near match>"
msgstr ""
-#: cp/call.c:3196
+#: cp/call.c:3178
#, gcc-internal-format
msgid "%s%#D <deleted>"
msgstr ""
-#: cp/call.c:3198
+#: cp/call.c:3180
#, gcc-internal-format
msgid "%s%#D"
msgstr ""
-#: cp/call.c:3217
+#: cp/call.c:3199
#, gcc-internal-format
msgid ""
" return type %qT of explicit conversion function cannot be converted to %qT "
"with a qualification conversion"
msgstr ""
-#: cp/call.c:3223
+#: cp/call.c:3205
#, gcc-internal-format
msgid ""
" conversion from return type %qT of template conversion function "
"specialization to %qT is not an exact match"
msgstr ""
-#: cp/call.c:3234
+#: cp/call.c:3216
#, gcc-internal-format
msgid ""
" substitution of deduced template arguments resulted in errors seen above"
msgstr ""
#. Re-run template unification with diagnostics.
-#: cp/call.c:3239
+#: cp/call.c:3221
#, gcc-internal-format
msgid " template argument deduction/substitution failed:"
msgstr ""
-#: cp/call.c:3258
+#: cp/call.c:3235
#, gcc-internal-format
msgid ""
" a constructor taking a single argument of its own class type is invalid"
msgstr ""
-#: cp/call.c:3619
+#: cp/call.c:3596
#, gcc-internal-format
msgid "conversion from %qT to %qT is ambiguous"
msgstr ""
-#: cp/call.c:3737
+#: cp/call.c:3714
#, gcc-internal-format
msgid ""
"conversion from %qT to %qT not considered for non-type template argument"
msgstr ""
-#: cp/call.c:3855
+#: cp/call.c:3832
#, gcc-internal-format
msgid "no matching function for call to %<%D(%A)%>"
msgstr ""
-#: cp/call.c:3858
+#: cp/call.c:3835
#, gcc-internal-format
msgid "call of overloaded %<%D(%A)%> is ambiguous"
msgstr ""
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:4063
+#: cp/call.c:4052
#, gcc-internal-format
msgid ""
"pointer-to-member function %E cannot be called without an object; consider "
"using .* or ->*"
msgstr ""
-#: cp/call.c:4135
+#: cp/call.c:4124
#, gcc-internal-format
msgid "no match for call to %<(%T) (%A)%>"
msgstr ""
-#: cp/call.c:4148
+#: cp/call.c:4137
#, gcc-internal-format
msgid "call of %<(%T) (%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:4196
+#: cp/call.c:4185
#, gcc-internal-format
msgid "ambiguous overload for "
msgstr ""
-#: cp/call.c:4197
+#: cp/call.c:4186
#, gcc-internal-format
msgid "no match for "
msgstr ""
-#: cp/call.c:4200
+#: cp/call.c:4189
#, gcc-internal-format
msgid " (operand types are %qT, %qT, and %qT)"
msgstr ""
-#: cp/call.c:4202
+#: cp/call.c:4191
#, gcc-internal-format
msgid " (operand types are %qT and %qT)"
msgstr ""
-#: cp/call.c:4204
+#: cp/call.c:4193
#, gcc-internal-format
msgid " (operand type is %qT)"
msgstr ""
-#: cp/call.c:4224
+#: cp/call.c:4213
#, gcc-internal-format
msgid "ternary %<operator?:%>"
msgstr ""
-#: cp/call.c:4228
+#: cp/call.c:4217
#, gcc-internal-format
msgid "ternary %<operator?:%> in %<%E ? %E : %E%>"
msgstr ""
-#: cp/call.c:4237 cp/call.c:4268 cp/call.c:4277
+#: cp/call.c:4226 cp/call.c:4257 cp/call.c:4266
#, gcc-internal-format
msgid "%<operator%s%>"
msgstr ""
-#: cp/call.c:4240
+#: cp/call.c:4229
#, gcc-internal-format
msgid "%<operator%s%> in %<%E%s%>"
msgstr ""
-#: cp/call.c:4247
+#: cp/call.c:4236
#, gcc-internal-format
msgid "%<operator[]%>"
msgstr ""
-#: cp/call.c:4250
+#: cp/call.c:4239
#, gcc-internal-format
msgid "%<operator[]%> in %<%E[%E]%>"
msgstr ""
-#: cp/call.c:4258
+#: cp/call.c:4247
#, gcc-internal-format
msgid "%qs"
msgstr ""
-#: cp/call.c:4261
+#: cp/call.c:4250
#, gcc-internal-format
msgid "%qs in %<%s %E%>"
msgstr ""
-#: cp/call.c:4271
+#: cp/call.c:4260
#, gcc-internal-format
msgid "%<operator%s%> in %<%E %s %E%>"
msgstr ""
-#: cp/call.c:4280
+#: cp/call.c:4269
#, gcc-internal-format
msgid "%<operator%s%> in %<%s%E%>"
msgstr ""
-#: cp/call.c:4377
+#: cp/call.c:4367
#, gcc-internal-format
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr ""
-#: cp/call.c:4466
+#: cp/call.c:4458
#, gcc-internal-format
msgid ""
"second operand to the conditional operator is of type %<void%>, but the "
"third operand is neither a throw-expression nor of type %<void%>"
msgstr ""
-#: cp/call.c:4471
+#: cp/call.c:4463
#, gcc-internal-format
msgid ""
"third operand to the conditional operator is of type %<void%>, but the "
"second operand is neither a throw-expression nor of type %<void%>"
msgstr ""
-#: cp/call.c:4513 cp/call.c:4759
+#: cp/call.c:4505 cp/call.c:4756
#, gcc-internal-format
msgid "operands to ?: have different types %qT and %qT"
msgstr ""
-#: cp/call.c:4706
+#: cp/call.c:4703
#, gcc-internal-format
msgid "enumeral mismatch in conditional expression: %qT vs %qT"
msgstr ""
-#: cp/call.c:4717
+#: cp/call.c:4714
#, gcc-internal-format
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
@@ -27211,722 +27422,722 @@ msgstr ""
msgid "comparison between %q#T and %q#T"
msgstr ""
-#: cp/call.c:5463
+#: cp/call.c:5467
#, gcc-internal-format
msgid "non-placement deallocation function %q+D"
msgstr ""
-#: cp/call.c:5464
+#: cp/call.c:5468
#, gcc-internal-format
msgid "selected for placement delete"
msgstr ""
-#: cp/call.c:5547
+#: cp/call.c:5552
#, gcc-internal-format
msgid "no corresponding deallocation function for %qD"
msgstr ""
-#: cp/call.c:5553
+#: cp/call.c:5558
#, gcc-internal-format
msgid "no suitable %<operator %s%> for %qT"
msgstr ""
-#: cp/call.c:5571
+#: cp/call.c:5579
#, gcc-internal-format
msgid "%q+#D is private"
msgstr ""
-#: cp/call.c:5573
+#: cp/call.c:5581
#, gcc-internal-format
msgid "%q+#D is protected"
msgstr ""
-#: cp/call.c:5575
+#: cp/call.c:5583
#, gcc-internal-format
msgid "%q+#D is inaccessible"
msgstr ""
-#: cp/call.c:5576
+#: cp/call.c:5584
#, gcc-internal-format
msgid "within this context"
msgstr ""
-#: cp/call.c:5626
+#: cp/call.c:5635
#, gcc-internal-format
msgid "passing NULL to non-pointer argument %P of %qD"
msgstr ""
-#: cp/call.c:5630
+#: cp/call.c:5639
#, gcc-internal-format
msgid "converting to non-pointer type %qT from NULL"
msgstr ""
-#: cp/call.c:5639
+#: cp/call.c:5648
#, gcc-internal-format
msgid "converting %<false%> to pointer type for argument %P of %qD"
msgstr ""
-#: cp/call.c:5643
+#: cp/call.c:5652
#, gcc-internal-format
msgid "converting %<false%> to pointer type %qT"
msgstr ""
-#: cp/call.c:5686
+#: cp/call.c:5695
#, gcc-internal-format
msgid "too many braces around initializer for %qT"
msgstr ""
-#: cp/call.c:5692
+#: cp/call.c:5701
#, gcc-internal-format
msgid "invalid user-defined conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:5723 cp/cvt.c:230
+#: cp/call.c:5732 cp/cvt.c:232
#, gcc-internal-format
msgid "invalid conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:5727 cp/call.c:5948
+#: cp/call.c:5736 cp/call.c:5957
#, gcc-internal-format
msgid " initializing argument %P of %qD"
msgstr ""
-#: cp/call.c:5771
+#: cp/call.c:5780
#, gcc-internal-format
msgid ""
"converting to %qT from initializer list would use explicit constructor %qD"
msgstr ""
-#: cp/call.c:5833 cp/call.c:5963
+#: cp/call.c:5842 cp/call.c:5972
#, gcc-internal-format
msgid " initializing argument %P of %q+D"
msgstr ""
-#: cp/call.c:5960
+#: cp/call.c:5969
#, gcc-internal-format
msgid "cannot bind %qT lvalue to %qT"
msgstr ""
-#: cp/call.c:5992
+#: cp/call.c:6001
#, gcc-internal-format
msgid "cannot bind bitfield %qE to %qT"
msgstr ""
-#: cp/call.c:5995 cp/call.c:6012
+#: cp/call.c:6004 cp/call.c:6021
#, gcc-internal-format
msgid "cannot bind packed field %qE to %qT"
msgstr ""
-#: cp/call.c:5998
+#: cp/call.c:6007
#, gcc-internal-format
msgid "cannot bind rvalue %qE to %qT"
msgstr ""
-#: cp/call.c:6114 cp/cvt.c:1696
+#: cp/call.c:6123 cp/cvt.c:1699
#, gcc-internal-format
msgid ""
"scoped enum %qT will not promote to an integral type in a future version of "
"GCC"
msgstr ""
-#: cp/call.c:6151
+#: cp/call.c:6160
#, gcc-internal-format
msgid "cannot pass objects of non-trivially-copyable type %q#T through %<...%>"
msgstr ""
#. conditionally-supported behavior [expr.call] 5.2.2/7.
-#: cp/call.c:6183
+#: cp/call.c:6192
#, gcc-internal-format
msgid ""
"cannot receive objects of non-trivially-copyable type %q#T through %<...%>; "
msgstr ""
-#: cp/call.c:6241
+#: cp/call.c:6250
#, gcc-internal-format
msgid "recursive evaluation of default argument for %q#D"
msgstr ""
-#: cp/call.c:6250
+#: cp/call.c:6259
#, gcc-internal-format
msgid ""
"call to %qD uses the default argument for parameter %P, which is not yet "
"defined"
msgstr ""
-#: cp/call.c:6364
+#: cp/call.c:6373
#, gcc-internal-format
msgid "argument of function call might be a candidate for a format attribute"
msgstr ""
-#: cp/call.c:6575
+#: cp/call.c:6579
#, gcc-internal-format
msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
msgstr ""
-#: cp/call.c:6603
+#: cp/call.c:6607
#, gcc-internal-format
msgid "%qT is not an accessible base of %qT"
msgstr ""
-#: cp/call.c:6681
+#: cp/call.c:6686
#, gcc-internal-format
msgid "deducing %qT as %qT"
msgstr ""
-#: cp/call.c:6684
+#: cp/call.c:6689
#, gcc-internal-format
msgid " in call to %q+D"
msgstr ""
-#: cp/call.c:6686
+#: cp/call.c:6691
#, gcc-internal-format
msgid " (you can disable this with -fno-deduce-init-list)"
msgstr ""
-#: cp/call.c:6957
+#: cp/call.c:6971
#, gcc-internal-format
msgid "could not find class$ field in java interface type %qT"
msgstr ""
-#: cp/call.c:7218
+#: cp/call.c:7232
#, gcc-internal-format
msgid "call to non-function %qD"
msgstr ""
-#: cp/call.c:7263 cp/typeck.c:2633
+#: cp/call.c:7277 cp/typeck.c:2627
#, gcc-internal-format
msgid "cannot call constructor %<%T::%D%> directly"
msgstr ""
-#: cp/call.c:7265
+#: cp/call.c:7279
#, gcc-internal-format
msgid " for a function-style cast, remove the redundant %<::%D%>"
msgstr ""
-#: cp/call.c:7379
+#: cp/call.c:7393
#, gcc-internal-format
msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
msgstr ""
-#: cp/call.c:7392
+#: cp/call.c:7406
#, gcc-internal-format
msgid "no matching function for call to %<%T::%s(%A)%#V%>"
msgstr ""
-#: cp/call.c:7417
+#: cp/call.c:7431
#, gcc-internal-format
msgid "call of overloaded %<%s(%A)%> is ambiguous"
msgstr ""
-#: cp/call.c:7446
+#: cp/call.c:7460
#, gcc-internal-format
msgid "cannot call member function %qD without object"
msgstr ""
-#: cp/call.c:8188
+#: cp/call.c:8203
#, gcc-internal-format
msgid "passing %qT chooses %qT over %qT"
msgstr ""
-#: cp/call.c:8190 cp/name-lookup.c:5532
+#: cp/call.c:8205 cp/name-lookup.c:5542
#, gcc-internal-format
msgid " in call to %qD"
msgstr ""
-#: cp/call.c:8248
+#: cp/call.c:8263
#, gcc-internal-format
msgid "choosing %qD over %qD"
msgstr ""
-#: cp/call.c:8249
+#: cp/call.c:8264
#, gcc-internal-format
msgid " for conversion from %qT to %qT"
msgstr ""
-#: cp/call.c:8252
+#: cp/call.c:8267
#, gcc-internal-format
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:8374
+#: cp/call.c:8389
#, gcc-internal-format
msgid "default argument mismatch in overload resolution"
msgstr ""
-#: cp/call.c:8377
+#: cp/call.c:8392
#, gcc-internal-format
msgid " candidate 1: %q+#F"
msgstr ""
-#: cp/call.c:8379
+#: cp/call.c:8394
#, gcc-internal-format
msgid " candidate 2: %q+#F"
msgstr ""
-#: cp/call.c:8423
+#: cp/call.c:8438
#, gcc-internal-format
msgid ""
"ISO C++ says that these are ambiguous, even though the worst conversion for "
"the first is better than the worst conversion for the second:"
msgstr ""
-#: cp/call.c:8580
+#: cp/call.c:8595
#, gcc-internal-format
msgid "could not convert %qE from %qT to %qT"
msgstr ""
-#: cp/call.c:8771
+#: cp/call.c:8786
#, gcc-internal-format
msgid "a temporary bound to %qD only persists until the constructor exits"
msgstr ""
-#: cp/call.c:8878
+#: cp/call.c:8893
#, gcc-internal-format
msgid ""
"invalid initialization of non-const reference of type %qT from an rvalue of "
"type %qT"
msgstr ""
-#: cp/call.c:8882
+#: cp/call.c:8897
#, gcc-internal-format
msgid ""
"invalid initialization of reference of type %qT from expression of type %qT"
msgstr ""
-#: cp/class.c:297
+#: cp/class.c:295
#, gcc-internal-format
msgid "cannot convert from base %qT to derived type %qT via virtual base %qT"
msgstr ""
-#: cp/class.c:999
+#: cp/class.c:992
#, gcc-internal-format
msgid "Java class %qT cannot have a destructor"
msgstr ""
-#: cp/class.c:1001
+#: cp/class.c:994
#, gcc-internal-format
msgid "Java class %qT cannot have an implicit non-trivial destructor"
msgstr ""
-#: cp/class.c:1104
+#: cp/class.c:1097
#, gcc-internal-format
msgid "%q+#D cannot be overloaded"
msgstr ""
-#: cp/class.c:1105
+#: cp/class.c:1098
#, gcc-internal-format
msgid "with %q+#D"
msgstr ""
-#: cp/class.c:1178
+#: cp/class.c:1171
#, gcc-internal-format
msgid "conflicting access specifications for method %q+D, ignored"
msgstr ""
-#: cp/class.c:1181
+#: cp/class.c:1174
#, gcc-internal-format
msgid "conflicting access specifications for field %qE, ignored"
msgstr ""
-#: cp/class.c:1243 cp/class.c:1251
+#: cp/class.c:1237 cp/class.c:1245
#, gcc-internal-format
msgid "%q+D invalid in %q#T"
msgstr ""
-#: cp/class.c:1244
+#: cp/class.c:1238
#, gcc-internal-format
msgid " because of local method %q+#D with same name"
msgstr ""
-#: cp/class.c:1252
+#: cp/class.c:1246
#, gcc-internal-format
msgid " because of local member %q+#D with same name"
msgstr ""
-#: cp/class.c:1296
+#: cp/class.c:1290
#, gcc-internal-format
msgid "cannot derive from %<final%> base %qT in derived type %qT"
msgstr ""
-#: cp/class.c:1308
+#: cp/class.c:1302
#, gcc-internal-format
msgid "base class %q#T has a non-virtual destructor"
msgstr ""
-#: cp/class.c:1712
+#: cp/class.c:1706
#, gcc-internal-format
msgid "all member functions in class %qT are private"
msgstr ""
-#: cp/class.c:1724
+#: cp/class.c:1718
#, gcc-internal-format
msgid "%q#T only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:1769
+#: cp/class.c:1763
#, gcc-internal-format
msgid "%q#T only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:2162
+#: cp/class.c:2156
#, gcc-internal-format
msgid "no unique final overrider for %qD in %qT"
msgstr ""
-#: cp/class.c:2529
+#: cp/class.c:2523
#, gcc-internal-format
msgid "%q+#D marked final, but is not virtual"
msgstr ""
-#: cp/class.c:2531
+#: cp/class.c:2525
#, gcc-internal-format
msgid "%q+#D marked override, but does not override"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2600
+#: cp/class.c:2594
#, gcc-internal-format
msgid "%q+D was hidden"
msgstr ""
-#: cp/class.c:2601
+#: cp/class.c:2595
#, gcc-internal-format
msgid " by %q+D"
msgstr ""
-#: cp/class.c:2644 cp/decl2.c:1361
+#: cp/class.c:2638 cp/decl2.c:1361
#, gcc-internal-format
msgid "%q+#D invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2647
+#: cp/class.c:2641
#, gcc-internal-format
msgid ""
"%q+#D invalid; an anonymous struct can only have non-static data members"
msgstr ""
-#: cp/class.c:2655 cp/decl2.c:1367
+#: cp/class.c:2649 cp/decl2.c:1367
#, gcc-internal-format
msgid "private member %q+#D in anonymous union"
msgstr ""
-#: cp/class.c:2657
+#: cp/class.c:2651
#, gcc-internal-format
msgid "private member %q+#D in anonymous struct"
msgstr ""
-#: cp/class.c:2662 cp/decl2.c:1369
+#: cp/class.c:2656 cp/decl2.c:1369
#, gcc-internal-format
msgid "protected member %q+#D in anonymous union"
msgstr ""
-#: cp/class.c:2664
+#: cp/class.c:2658
#, gcc-internal-format
msgid "protected member %q+#D in anonymous struct"
msgstr ""
-#: cp/class.c:2908
+#: cp/class.c:2902
#, gcc-internal-format
msgid "bit-field %q+#D with non-integral type"
msgstr ""
-#: cp/class.c:2924
+#: cp/class.c:2918
#, gcc-internal-format
msgid "bit-field %q+D width not an integer constant"
msgstr ""
-#: cp/class.c:2929
+#: cp/class.c:2923
#, gcc-internal-format
msgid "negative width in bit-field %q+D"
msgstr ""
-#: cp/class.c:2934
+#: cp/class.c:2928
#, gcc-internal-format
msgid "zero width for bit-field %q+D"
msgstr ""
-#: cp/class.c:2940
+#: cp/class.c:2934
#, gcc-internal-format
msgid "width of %q+D exceeds its type"
msgstr ""
-#: cp/class.c:2944
+#: cp/class.c:2938
#, gcc-internal-format
msgid "%q+D is too small to hold all values of %q#T"
msgstr ""
-#: cp/class.c:3003
+#: cp/class.c:2997
#, gcc-internal-format
msgid "member %q+#D with constructor not allowed in union"
msgstr ""
-#: cp/class.c:3006
+#: cp/class.c:3000
#, gcc-internal-format
msgid "member %q+#D with destructor not allowed in union"
msgstr ""
-#: cp/class.c:3008
+#: cp/class.c:3002
#, gcc-internal-format
msgid "member %q+#D with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:3012
+#: cp/class.c:3006
#, gcc-internal-format
msgid "unrestricted unions only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/class.c:3046
+#: cp/class.c:3040
#, gcc-internal-format
msgid "multiple fields in union %qT initialized"
msgstr ""
-#: cp/class.c:3130
+#: cp/class.c:3125
#, gcc-internal-format
msgid "%q+D may not be static because it is a member of a union"
msgstr ""
-#: cp/class.c:3135
+#: cp/class.c:3130
#, gcc-internal-format
msgid "%q+D may not have reference type %qT because it is a member of a union"
msgstr ""
-#: cp/class.c:3146
+#: cp/class.c:3141
#, gcc-internal-format
msgid "field %q+D invalidly declared function type"
msgstr ""
-#: cp/class.c:3152
+#: cp/class.c:3147
#, gcc-internal-format
msgid "field %q+D invalidly declared method type"
msgstr ""
-#: cp/class.c:3208
+#: cp/class.c:3203
#, gcc-internal-format
msgid "ignoring packed attribute because of unpacked non-POD field %q+#D"
msgstr ""
-#: cp/class.c:3305
+#: cp/class.c:3300
#, gcc-internal-format
msgid "field %q+#D with same name as class"
msgstr ""
-#: cp/class.c:3328
+#: cp/class.c:3323
#, gcc-internal-format
msgid "%q#T has pointer data members"
msgstr ""
-#: cp/class.c:3333
+#: cp/class.c:3328
#, gcc-internal-format
msgid " but does not override %<%T(const %T&)%>"
msgstr ""
-#: cp/class.c:3335
+#: cp/class.c:3330
#, gcc-internal-format
msgid " or %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3339
+#: cp/class.c:3334
#, gcc-internal-format
msgid " but does not override %<operator=(const %T&)%>"
msgstr ""
-#: cp/class.c:3810
+#: cp/class.c:3805
#, gcc-internal-format
msgid ""
"offset of empty base %qT may not be ABI-compliant and maychange in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:3937
+#: cp/class.c:3932
#, gcc-internal-format
msgid "class %qT will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/class.c:4019
+#: cp/class.c:4014
#, gcc-internal-format
msgid "initializer specified for non-virtual method %q+D"
msgstr ""
-#: cp/class.c:4445
+#: cp/class.c:4440
#, gcc-internal-format
msgid "method overrides both %<transaction_pure%> and %qE methods"
msgstr ""
-#: cp/class.c:4466
+#: cp/class.c:4461
#, gcc-internal-format
msgid "method declared %qE overriding %qE method"
msgstr ""
-#: cp/class.c:4932 cp/semantics.c:5749
+#: cp/class.c:4927 cp/semantics.c:5740
#, gcc-internal-format
msgid ""
"enclosing class of constexpr non-static member function %q+#D is not a "
"literal type"
msgstr ""
-#: cp/class.c:4957
+#: cp/class.c:4952
#, gcc-internal-format
msgid "%q+T is not literal because:"
msgstr ""
-#: cp/class.c:4959
+#: cp/class.c:4954
#, gcc-internal-format
msgid " %q+T has a non-trivial destructor"
msgstr ""
-#: cp/class.c:4964
+#: cp/class.c:4959
#, gcc-internal-format
msgid ""
" %q+T is not an aggregate, does not have a trivial default constructor, and "
"has no constexpr constructor that is not a copy or move constructor"
msgstr ""
-#: cp/class.c:5000
+#: cp/class.c:4995
#, gcc-internal-format
msgid " base class %qT of %q+T is non-literal"
msgstr ""
-#: cp/class.c:5014
+#: cp/class.c:5009
#, gcc-internal-format
msgid " non-static data member %q+D has non-literal type"
msgstr ""
-#: cp/class.c:5130
+#: cp/class.c:5126
#, gcc-internal-format
msgid "non-static reference %q+#D in class without a constructor"
msgstr ""
-#: cp/class.c:5135
+#: cp/class.c:5131
#, gcc-internal-format
msgid "non-static const member %q+#D in class without a constructor"
msgstr ""
#. If the function is defaulted outside the class, we just
#. give the synthesis error.
-#: cp/class.c:5161
+#: cp/class.c:5157
#, gcc-internal-format
msgid ""
"%q+D declared to take const reference, but implicit declaration would take "
"non-const"
msgstr ""
-#: cp/class.c:5385
+#: cp/class.c:5381
#, gcc-internal-format
msgid ""
"offset of virtual base %qT is not ABI-compliant and may change in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:5486
+#: cp/class.c:5482
#, gcc-internal-format
msgid "direct base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:5498
+#: cp/class.c:5494
#, gcc-internal-format
msgid "virtual base %qT inaccessible in %qT due to ambiguity"
msgstr ""
-#: cp/class.c:5684
+#: cp/class.c:5680
#, gcc-internal-format
msgid ""
"size assigned to %qT may not be ABI-compliant and may change in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:5724
+#: cp/class.c:5720
#, gcc-internal-format
msgid ""
"the offset of %qD may not be ABI-compliant and may change in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:5752
+#: cp/class.c:5748
#, gcc-internal-format
msgid ""
"offset of %q+D is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:5762
+#: cp/class.c:5758
#, gcc-internal-format
msgid ""
"%q+D contains empty classes which may cause base classes to be placed at "
"different locations in a future version of GCC"
msgstr ""
-#: cp/class.c:5850
+#: cp/class.c:5846
#, gcc-internal-format
msgid ""
"layout of classes derived from empty class %qT may change in a future "
"version of GCC"
msgstr ""
-#: cp/class.c:6018 cp/decl.c:11866 cp/parser.c:18591
+#: cp/class.c:6014 cp/decl.c:11871 cp/parser.c:18627
#, gcc-internal-format
msgid "redefinition of %q#T"
msgstr ""
-#: cp/class.c:6161
+#: cp/class.c:6157
#, gcc-internal-format
msgid "%q#T has virtual functions and accessible non-virtual destructor"
msgstr ""
-#: cp/class.c:6187
+#: cp/class.c:6183
#, gcc-internal-format
msgid "type transparent class %qT does not have any fields"
msgstr ""
-#: cp/class.c:6193
+#: cp/class.c:6189
#, gcc-internal-format
msgid "type transparent class %qT has base classes"
msgstr ""
-#: cp/class.c:6197
+#: cp/class.c:6193
#, gcc-internal-format
msgid "type transparent class %qT has virtual functions"
msgstr ""
-#: cp/class.c:6338
+#: cp/class.c:6343
#, gcc-internal-format
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:6846
+#: cp/class.c:6853
#, gcc-internal-format
msgid "language string %<\"%E\"%> not recognized"
msgstr ""
-#: cp/class.c:6936
+#: cp/class.c:6942
#, gcc-internal-format
msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
msgstr ""
-#: cp/class.c:7060
+#: cp/class.c:7062
#, gcc-internal-format
msgid "no matches converting function %qD to type %q#T"
msgstr ""
-#: cp/class.c:7083
+#: cp/class.c:7085
#, gcc-internal-format
msgid "converting overloaded function %qD to type %q#T is ambiguous"
msgstr ""
-#: cp/class.c:7110
+#: cp/class.c:7112
#, gcc-internal-format
msgid "assuming pointer to member %qD"
msgstr ""
-#: cp/class.c:7113
+#: cp/class.c:7115
#, gcc-internal-format
msgid "(a pointer to member can only be formed with %<&%E%>)"
msgstr ""
-#: cp/class.c:7175 cp/class.c:7209
+#: cp/class.c:7176 cp/class.c:7210
#, gcc-internal-format
msgid "not enough type information"
msgstr ""
-#: cp/class.c:7192 cp/cvt.c:173 cp/cvt.c:199 cp/cvt.c:253
+#: cp/class.c:7193 cp/cvt.c:175 cp/cvt.c:201 cp/cvt.c:255
#, gcc-internal-format
msgid "cannot convert %qE from type %qT to type %qT"
msgstr ""
@@ -27936,17 +28147,17 @@ msgstr ""
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:7503 cp/decl.c:1294
+#: cp/class.c:7505 cp/decl.c:1294
#, gcc-internal-format
msgid "declaration of %q#D"
msgstr ""
-#: cp/class.c:7504
+#: cp/class.c:7506
#, gcc-internal-format
msgid "changes meaning of %qD from %q+#D"
msgstr ""
-#: cp/cp-gimplify.c:1473
+#: cp/cp-gimplify.c:1472
#, gcc-internal-format
msgid "%qE implicitly determined as %<firstprivate%> has reference type"
msgstr ""
@@ -27961,389 +28172,389 @@ msgstr ""
msgid "conversion of %qE from %qT to %qT is ambiguous"
msgstr ""
-#: cp/cvt.c:210 cp/decl.c:10623 cp/typeck.c:4166
+#: cp/cvt.c:212 cp/decl.c:10602 cp/typeck.c:4179
#, gcc-internal-format
msgid "zero as null pointer constant"
msgstr ""
-#: cp/cvt.c:387
+#: cp/cvt.c:390
#, gcc-internal-format
msgid "initialization of volatile reference type %q#T from rvalue of type %qT"
msgstr ""
-#: cp/cvt.c:390
+#: cp/cvt.c:393
#, gcc-internal-format
msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
msgstr ""
-#: cp/cvt.c:393
+#: cp/cvt.c:396
#, gcc-internal-format
msgid "initialization of non-const reference type %q#T from rvalue of type %qT"
msgstr ""
-#: cp/cvt.c:396
+#: cp/cvt.c:399
#, gcc-internal-format
msgid "conversion to non-const reference type %q#T from rvalue of type %qT"
msgstr ""
-#: cp/cvt.c:471
+#: cp/cvt.c:474
#, gcc-internal-format
msgid "conversion from %qT to %qT discards qualifiers"
msgstr ""
-#: cp/cvt.c:493 cp/typeck.c:6321
+#: cp/cvt.c:496 cp/typeck.c:6369
#, gcc-internal-format
msgid "casting %qT to %qT does not dereference pointer"
msgstr ""
-#: cp/cvt.c:521
+#: cp/cvt.c:524
#, gcc-internal-format
msgid "cannot convert type %qT to type %qT"
msgstr ""
-#: cp/cvt.c:731
+#: cp/cvt.c:734
#, gcc-internal-format
msgid "conversion from %q#T to %q#T"
msgstr ""
-#: cp/cvt.c:747
+#: cp/cvt.c:750
#, gcc-internal-format
msgid ""
"the result of the conversion is unspecified because %qE is outside the range "
"of type %qT"
msgstr ""
-#: cp/cvt.c:758 cp/cvt.c:798
+#: cp/cvt.c:761 cp/cvt.c:801
#, gcc-internal-format
msgid "%q#T used where a %qT was expected"
msgstr ""
-#: cp/cvt.c:767
+#: cp/cvt.c:770
#, gcc-internal-format
msgid "could not convert %qE from %<void%> to %<bool%>"
msgstr ""
-#: cp/cvt.c:814
+#: cp/cvt.c:817
#, gcc-internal-format
msgid "%q#T used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:873
+#: cp/cvt.c:876
#, gcc-internal-format
msgid "conversion from %qT to non-scalar type %qT requested"
msgstr ""
-#: cp/cvt.c:933
+#: cp/cvt.c:936
#, gcc-internal-format
msgid "pseudo-destructor is not called"
msgstr ""
-#: cp/cvt.c:1010
+#: cp/cvt.c:1013
#, gcc-internal-format
msgid "conversion to void will not access object of incomplete type %qT"
msgstr ""
-#: cp/cvt.c:1014
+#: cp/cvt.c:1017
#, gcc-internal-format
msgid ""
"indirection will not access object of incomplete type %qT in second operand "
"of conditional expression"
msgstr ""
-#: cp/cvt.c:1019
+#: cp/cvt.c:1022
#, gcc-internal-format
msgid ""
"indirection will not access object of incomplete type %qT in third operand "
"of conditional expression"
msgstr ""
-#: cp/cvt.c:1024
+#: cp/cvt.c:1027
#, gcc-internal-format
msgid ""
"indirection will not access object of incomplete type %qT in right operand "
"of comma operator"
msgstr ""
-#: cp/cvt.c:1029
+#: cp/cvt.c:1032
#, gcc-internal-format
msgid ""
"indirection will not access object of incomplete type %qT in left operand of "
"comma operator"
msgstr ""
-#: cp/cvt.c:1034
+#: cp/cvt.c:1037
#, gcc-internal-format
msgid "indirection will not access object of incomplete type %qT in statement"
msgstr ""
-#: cp/cvt.c:1038
+#: cp/cvt.c:1041
#, gcc-internal-format
msgid ""
"indirection will not access object of incomplete type %qT in for increment "
"expression"
msgstr ""
-#: cp/cvt.c:1054
+#: cp/cvt.c:1057
#, gcc-internal-format
msgid "conversion to void will not access object of type %qT"
msgstr ""
-#: cp/cvt.c:1058
+#: cp/cvt.c:1061
#, gcc-internal-format
msgid ""
"implicit dereference will not access object of type %qT in second operand of "
"conditional expression"
msgstr ""
-#: cp/cvt.c:1063
+#: cp/cvt.c:1066
#, gcc-internal-format
msgid ""
"implicit dereference will not access object of type %qT in third operand of "
"conditional expression"
msgstr ""
-#: cp/cvt.c:1068
+#: cp/cvt.c:1071
#, gcc-internal-format
msgid ""
"implicit dereference will not access object of type %qT in right operand of "
"comma operator"
msgstr ""
-#: cp/cvt.c:1073
+#: cp/cvt.c:1076
#, gcc-internal-format
msgid ""
"implicit dereference will not access object of type %qT in left operand of "
"comma operator"
msgstr ""
-#: cp/cvt.c:1078
+#: cp/cvt.c:1081
#, gcc-internal-format
msgid "implicit dereference will not access object of type %qT in statement"
msgstr ""
-#: cp/cvt.c:1082
+#: cp/cvt.c:1085
#, gcc-internal-format
msgid ""
"implicit dereference will not access object of type %qT in for increment "
"expression"
msgstr ""
-#: cp/cvt.c:1096
+#: cp/cvt.c:1099
#, gcc-internal-format
msgid ""
"conversion to void will not access object of non-trivially-copyable type %qT"
msgstr ""
-#: cp/cvt.c:1101
+#: cp/cvt.c:1104
#, gcc-internal-format
msgid ""
"indirection will not access object of non-trivially-copyable type %qT in "
"second operand of conditional expression"
msgstr ""
-#: cp/cvt.c:1106
+#: cp/cvt.c:1109
#, gcc-internal-format
msgid ""
"indirection will not access object of non-trivially-copyable type %qT in "
"third operand of conditional expression"
msgstr ""
-#: cp/cvt.c:1111
+#: cp/cvt.c:1114
#, gcc-internal-format
msgid ""
"indirection will not access object of non-trivially-copyable type %qT in "
"right operand of comma operator"
msgstr ""
-#: cp/cvt.c:1116
+#: cp/cvt.c:1119
#, gcc-internal-format
msgid ""
"indirection will not access object of non-trivially-copyable type %qT in "
"left operand of comma operator"
msgstr ""
-#: cp/cvt.c:1121
+#: cp/cvt.c:1124
#, gcc-internal-format
msgid ""
"indirection will not access object of non-trivially-copyable type %qT in "
"statement"
msgstr ""
-#: cp/cvt.c:1126
+#: cp/cvt.c:1129
#, gcc-internal-format
msgid ""
"indirection will not access object of non-trivially-copyable type %qT in for "
"increment expression"
msgstr ""
-#: cp/cvt.c:1164
+#: cp/cvt.c:1167
#, gcc-internal-format
msgid "conversion to void will not access object %qE of incomplete type %qT"
msgstr ""
-#: cp/cvt.c:1168
+#: cp/cvt.c:1171
#, gcc-internal-format
msgid ""
"variable %qE of incomplete type %qT will not be accessed in second operand "
"of conditional expression"
msgstr ""
-#: cp/cvt.c:1173
+#: cp/cvt.c:1176
#, gcc-internal-format
msgid ""
"variable %qE of incomplete type %qT will not be accessed in third operand of "
"conditional expression"
msgstr ""
-#: cp/cvt.c:1178
+#: cp/cvt.c:1181
#, gcc-internal-format
msgid ""
"variable %qE of incomplete type %qT will not be accessed in right operand of "
"comma operator"
msgstr ""
-#: cp/cvt.c:1183
+#: cp/cvt.c:1186
#, gcc-internal-format
msgid ""
"variable %qE of incomplete type %qT will not be accessed in left operand of "
"comma operator"
msgstr ""
-#: cp/cvt.c:1188
+#: cp/cvt.c:1191
#, gcc-internal-format
msgid "variable %qE of incomplete type %qT will not be accessed in statement"
msgstr ""
-#: cp/cvt.c:1192
+#: cp/cvt.c:1195
#, gcc-internal-format
msgid ""
"variable %qE of incomplete type %qT will not be accessed in for increment "
"expression"
msgstr ""
-#: cp/cvt.c:1241
+#: cp/cvt.c:1244
#, gcc-internal-format
msgid "conversion to void cannot resolve address of overloaded function"
msgstr ""
-#: cp/cvt.c:1245
+#: cp/cvt.c:1248
#, gcc-internal-format
msgid ""
"second operand of conditional expression cannot resolve address of "
"overloaded function"
msgstr ""
-#: cp/cvt.c:1249
+#: cp/cvt.c:1252
#, gcc-internal-format
msgid ""
"third operand of conditional expression cannot resolve address of overloaded "
"function"
msgstr ""
-#: cp/cvt.c:1253
+#: cp/cvt.c:1256
#, gcc-internal-format
msgid ""
"right operand of comma operator cannot resolve address of overloaded function"
msgstr ""
-#: cp/cvt.c:1257
+#: cp/cvt.c:1260
#, gcc-internal-format
msgid ""
"left operand of comma operator cannot resolve address of overloaded function"
msgstr ""
-#: cp/cvt.c:1261
+#: cp/cvt.c:1264
#, gcc-internal-format
msgid "statement cannot resolve address of overloaded function"
msgstr ""
-#: cp/cvt.c:1265
+#: cp/cvt.c:1268
#, gcc-internal-format
msgid "for increment expression cannot resolve address of overloaded function"
msgstr ""
-#: cp/cvt.c:1281
+#: cp/cvt.c:1284
#, gcc-internal-format
msgid ""
"second operand of conditional expression is a reference, not call, to "
"function %qE"
msgstr ""
-#: cp/cvt.c:1286
+#: cp/cvt.c:1289
#, gcc-internal-format
msgid ""
"third operand of conditional expression is a reference, not call, to "
"function %qE"
msgstr ""
-#: cp/cvt.c:1291
+#: cp/cvt.c:1294
#, gcc-internal-format
msgid ""
"right operand of comma operator is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:1296
+#: cp/cvt.c:1299
#, gcc-internal-format
msgid ""
"left operand of comma operator is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:1301
+#: cp/cvt.c:1304
#, gcc-internal-format
msgid "statement is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:1306
+#: cp/cvt.c:1309
#, gcc-internal-format
msgid "for increment expression is a reference, not call, to function %qE"
msgstr ""
-#: cp/cvt.c:1333
+#: cp/cvt.c:1336
#, gcc-internal-format
msgid "second operand of conditional expression has no effect"
msgstr ""
-#: cp/cvt.c:1338
+#: cp/cvt.c:1341
#, gcc-internal-format
msgid "third operand of conditional expression has no effect"
msgstr ""
-#: cp/cvt.c:1343
+#: cp/cvt.c:1346
#, gcc-internal-format
msgid "right operand of comma operator has no effect"
msgstr ""
-#: cp/cvt.c:1347
+#: cp/cvt.c:1350
#, gcc-internal-format
msgid "left operand of comma operator has no effect"
msgstr ""
-#: cp/cvt.c:1351
+#: cp/cvt.c:1354
#, gcc-internal-format
msgid "statement has no effect"
msgstr ""
-#: cp/cvt.c:1355
+#: cp/cvt.c:1358
#, gcc-internal-format
msgid "for increment expression has no effect"
msgstr ""
-#: cp/cvt.c:1511
+#: cp/cvt.c:1514
#, gcc-internal-format
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1587 cp/cvt.c:1636
+#: cp/cvt.c:1590 cp/cvt.c:1639
#, gcc-internal-format
msgid "ambiguous default type conversion from %qT"
msgstr ""
-#: cp/cvt.c:1589
+#: cp/cvt.c:1592
#, gcc-internal-format
msgid " candidate conversions include %qD"
msgstr ""
-#: cp/cvt.c:1638
+#: cp/cvt.c:1641
#, gcc-internal-format
msgid " candidate conversions include %qD and %qD"
msgstr ""
@@ -28358,7 +28569,7 @@ msgstr ""
msgid "%qD was declared %<extern%> and later %<static%>"
msgstr ""
-#: cp/decl.c:1116 cp/decl.c:1720 objc/objc-act.c:3377 objc/objc-act.c:3960
+#: cp/decl.c:1116 cp/decl.c:1721 objc/objc-act.c:3377 objc/objc-act.c:3960
#: objc/objc-act.c:3988 objc/objc-act.c:4044 objc/objc-act.c:6827
#, gcc-internal-format
msgid "previous declaration of %q+D"
@@ -28434,7 +28645,7 @@ msgstr ""
msgid "conflicts with built-in declaration %q#D"
msgstr ""
-#: cp/decl.c:1349 cp/decl.c:1478 cp/decl.c:1495
+#: cp/decl.c:1349 cp/decl.c:1479 cp/decl.c:1496
#, gcc-internal-format
msgid "new declaration %q#D"
msgstr ""
@@ -28459,37 +28670,37 @@ msgstr ""
msgid "declaration of template %q#D"
msgstr ""
-#: cp/decl.c:1465 cp/name-lookup.c:844 cp/name-lookup.c:859
+#: cp/decl.c:1465 cp/name-lookup.c:841 cp/name-lookup.c:856
#, gcc-internal-format
msgid "conflicts with previous declaration %q+#D"
msgstr ""
-#: cp/decl.c:1479 cp/decl.c:1500
+#: cp/decl.c:1480 cp/decl.c:1501
#, gcc-internal-format
msgid "ambiguates old declaration %q+#D"
msgstr ""
-#: cp/decl.c:1487
+#: cp/decl.c:1488
#, gcc-internal-format
msgid "declaration of C function %q#D conflicts with"
msgstr ""
-#: cp/decl.c:1489
+#: cp/decl.c:1490
#, gcc-internal-format
msgid "previous declaration %q+#D here"
msgstr ""
-#: cp/decl.c:1497
+#: cp/decl.c:1498
#, gcc-internal-format
msgid "ambiguates old declaration with deduced return type"
msgstr ""
-#: cp/decl.c:1508
+#: cp/decl.c:1509
#, gcc-internal-format
msgid "conflicting declaration %q#D"
msgstr ""
-#: cp/decl.c:1509
+#: cp/decl.c:1510
#, gcc-internal-format
msgid "%q+D has a previous declaration as %q#D"
msgstr ""
@@ -28501,68 +28712,68 @@ msgstr ""
#. A namespace-name defined at global scope shall not be
#. declared as the name of any other entity in any global scope
#. of the program.
-#: cp/decl.c:1561
+#: cp/decl.c:1562
#, gcc-internal-format
msgid "declaration of namespace %qD conflicts with"
msgstr ""
-#: cp/decl.c:1562
+#: cp/decl.c:1563
#, gcc-internal-format
msgid "previous declaration of namespace %q+D here"
msgstr ""
-#: cp/decl.c:1573
+#: cp/decl.c:1574
#, gcc-internal-format
msgid "%q+#D previously defined here"
msgstr ""
-#: cp/decl.c:1574 cp/name-lookup.c:1136
+#: cp/decl.c:1575 cp/name-lookup.c:1133
#, gcc-internal-format
msgid "%q+#D previously declared here"
msgstr ""
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:1583
+#: cp/decl.c:1584
#, gcc-internal-format
msgid "prototype for %q+#D"
msgstr ""
-#: cp/decl.c:1585
+#: cp/decl.c:1586
#, gcc-internal-format
msgid "follows non-prototype definition here"
msgstr ""
-#: cp/decl.c:1625
+#: cp/decl.c:1626
#, gcc-internal-format
msgid "previous declaration of %q+#D with %qL linkage"
msgstr ""
-#: cp/decl.c:1627
+#: cp/decl.c:1628
#, gcc-internal-format
msgid "conflicts with new declaration with %qL linkage"
msgstr ""
-#: cp/decl.c:1650 cp/decl.c:1656
+#: cp/decl.c:1651 cp/decl.c:1657
#, gcc-internal-format
msgid "default argument given for parameter %d of %q#D"
msgstr ""
-#: cp/decl.c:1652 cp/decl.c:1658
+#: cp/decl.c:1653 cp/decl.c:1659
#, gcc-internal-format
msgid "after previous specification in %q+#D"
msgstr ""
-#: cp/decl.c:1719
+#: cp/decl.c:1720
#, gcc-internal-format
msgid "redundant redeclaration of %qD in same scope"
msgstr ""
-#: cp/decl.c:1725
+#: cp/decl.c:1726
#, gcc-internal-format
msgid "deleted definition of %qD"
msgstr ""
-#: cp/decl.c:1726
+#: cp/decl.c:1727
#, gcc-internal-format
msgid "after previous declaration %q+D"
msgstr ""
@@ -28575,43 +28786,43 @@ msgstr ""
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:2085
+#: cp/decl.c:2086
#, gcc-internal-format
msgid "explicit specialization of %qD after first use"
msgstr ""
-#: cp/decl.c:2211
+#: cp/decl.c:2212
#, gcc-internal-format
msgid "%q+D: visibility attribute ignored because it"
msgstr ""
-#: cp/decl.c:2213
+#: cp/decl.c:2214
#, gcc-internal-format
msgid "conflicts with previous declaration here"
msgstr ""
#. Reject two definitions.
-#: cp/decl.c:2380 cp/decl.c:2409 cp/decl.c:2438 cp/decl.c:2455 cp/decl.c:2527
+#: cp/decl.c:2381 cp/decl.c:2410 cp/decl.c:2439 cp/decl.c:2456 cp/decl.c:2529
#, gcc-internal-format
msgid "redefinition of %q#D"
msgstr ""
-#: cp/decl.c:2396
+#: cp/decl.c:2397
#, gcc-internal-format
msgid "%qD conflicts with used function"
msgstr ""
-#: cp/decl.c:2406
+#: cp/decl.c:2407
#, gcc-internal-format
msgid "%q#D not declared in class"
msgstr ""
-#: cp/decl.c:2420 cp/decl.c:2465
+#: cp/decl.c:2421 cp/decl.c:2466
#, gcc-internal-format
msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
msgstr ""
-#: cp/decl.c:2423 cp/decl.c:2468
+#: cp/decl.c:2424 cp/decl.c:2469
#, gcc-internal-format
msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
msgstr ""
@@ -28619,278 +28830,271 @@ msgstr ""
#. is_primary=
#. is_partial=
#. is_friend_decl=
-#: cp/decl.c:2484
+#: cp/decl.c:2486
#, gcc-internal-format
msgid "redeclaration of friend %q#D may not have default template arguments"
msgstr ""
-#: cp/decl.c:2498
+#: cp/decl.c:2500
#, gcc-internal-format
msgid "thread-local declaration of %q#D follows non-thread-local declaration"
msgstr ""
-#: cp/decl.c:2501
+#: cp/decl.c:2503
#, gcc-internal-format
msgid "non-thread-local declaration of %q#D follows thread-local declaration"
msgstr ""
-#: cp/decl.c:2516 cp/decl.c:2535 cp/name-lookup.c:553 cp/name-lookup.c:1135
+#: cp/decl.c:2518 cp/decl.c:2537 cp/name-lookup.c:550 cp/name-lookup.c:1132
#, gcc-internal-format
msgid "redeclaration of %q#D"
msgstr ""
-#: cp/decl.c:2690
+#: cp/decl.c:2692
#, gcc-internal-format
msgid "jump to label %qD"
msgstr ""
-#: cp/decl.c:2692
+#: cp/decl.c:2694
#, gcc-internal-format
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:2694 cp/decl.c:2836 cp/decl.c:2876
+#: cp/decl.c:2696 cp/decl.c:2838 cp/decl.c:2878
#, gcc-internal-format
msgid " from here"
msgstr ""
-#: cp/decl.c:2713 cp/decl.c:2879
+#: cp/decl.c:2715 cp/decl.c:2881
#, gcc-internal-format
msgid " exits OpenMP structured block"
msgstr ""
-#: cp/decl.c:2735
+#: cp/decl.c:2737
#, gcc-internal-format
msgid " crosses initialization of %q+#D"
msgstr ""
-#: cp/decl.c:2737 cp/decl.c:2853
+#: cp/decl.c:2739 cp/decl.c:2855
#, gcc-internal-format
msgid " enters scope of %q+#D which has non-trivial destructor"
msgstr ""
-#: cp/decl.c:2751 cp/decl.c:2858
+#: cp/decl.c:2753 cp/decl.c:2860
#, gcc-internal-format
msgid " enters try block"
msgstr ""
#. Can't skip init of __exception_info.
-#: cp/decl.c:2753 cp/decl.c:2847 cp/decl.c:2860
+#: cp/decl.c:2755 cp/decl.c:2849 cp/decl.c:2862
#, gcc-internal-format
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:2763 cp/decl.c:2863
+#: cp/decl.c:2765 cp/decl.c:2865
#, gcc-internal-format
msgid " enters OpenMP structured block"
msgstr ""
-#: cp/decl.c:2835 cp/decl.c:2875
+#: cp/decl.c:2837 cp/decl.c:2877
#, gcc-internal-format
msgid "jump to label %q+D"
msgstr ""
-#: cp/decl.c:2851
+#: cp/decl.c:2853
#, gcc-internal-format
msgid " skips initialization of %q+#D"
msgstr ""
-#: cp/decl.c:2928
+#: cp/decl.c:2930
#, gcc-internal-format
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:3236
+#: cp/decl.c:3239
#, gcc-internal-format
msgid "%qD is not a type"
msgstr ""
-#: cp/decl.c:3242 cp/parser.c:5014
+#: cp/decl.c:3246 cp/parser.c:5021
#, gcc-internal-format
msgid "%qD used without template parameters"
msgstr ""
-#: cp/decl.c:3251
+#: cp/decl.c:3255
#, gcc-internal-format
msgid "%q#T is not a class"
msgstr ""
-#: cp/decl.c:3275 cp/decl.c:3365
+#: cp/decl.c:3279 cp/decl.c:3369
#, gcc-internal-format
msgid "no class template named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:3276
+#: cp/decl.c:3280
#, gcc-internal-format
msgid "no type named %q#T in %q#T"
msgstr ""
-#: cp/decl.c:3288
+#: cp/decl.c:3292
#, gcc-internal-format
msgid "lookup of %qT in %qT is ambiguous"
msgstr ""
-#: cp/decl.c:3297
+#: cp/decl.c:3301
#, gcc-internal-format
msgid "%<typename %T::%D%> names %q#T, which is not a class template"
msgstr ""
-#: cp/decl.c:3304
+#: cp/decl.c:3308
#, gcc-internal-format
msgid "%<typename %T::%D%> names %q#T, which is not a type"
msgstr ""
-#: cp/decl.c:3374
+#: cp/decl.c:3378
#, gcc-internal-format
msgid "template parameters do not match template"
msgstr ""
-#: cp/decl.c:3375 cp/friend.c:329 cp/friend.c:337
+#: cp/decl.c:3379 cp/friend.c:331 cp/friend.c:339
#, gcc-internal-format
msgid "%q+D declared here"
msgstr ""
-#: cp/decl.c:4089
+#: cp/decl.c:4094
#, gcc-internal-format
msgid "an anonymous struct cannot have function members"
msgstr ""
-#: cp/decl.c:4092
+#: cp/decl.c:4097
#, gcc-internal-format
msgid "an anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:4110
+#: cp/decl.c:4115
#, gcc-internal-format
msgid "member %q+#D with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:4113
+#: cp/decl.c:4118
#, gcc-internal-format
msgid "member %q+#D with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:4116
+#: cp/decl.c:4121
#, gcc-internal-format
msgid ""
"member %q+#D with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:4141
+#: cp/decl.c:4146
#, gcc-internal-format
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:4146
+#: cp/decl.c:4151
#, gcc-internal-format
msgid "redeclaration of C++ built-in type %qT"
msgstr ""
-#: cp/decl.c:4163
+#: cp/decl.c:4168
#, gcc-internal-format
msgid "%<auto%> can only be specified for variables or function declarations"
msgstr ""
-#: cp/decl.c:4189
+#: cp/decl.c:4194
#, gcc-internal-format
msgid "missing type-name in typedef-declaration"
msgstr ""
-#: cp/decl.c:4196
+#: cp/decl.c:4201
#, gcc-internal-format
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:4203
+#: cp/decl.c:4208
#, gcc-internal-format
msgid "%qs can only be specified for functions"
msgstr ""
-#: cp/decl.c:4209
+#: cp/decl.c:4214
#, gcc-internal-format
msgid "%<friend%> can only be specified inside a class"
msgstr ""
-#: cp/decl.c:4211
+#: cp/decl.c:4216
#, gcc-internal-format
msgid "%<explicit%> can only be specified for constructors"
msgstr ""
-#: cp/decl.c:4213
+#: cp/decl.c:4218
#, gcc-internal-format
msgid "a storage class can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:4219
+#: cp/decl.c:4224
#, gcc-internal-format
msgid "qualifiers can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:4222
+#: cp/decl.c:4227
#, gcc-internal-format
msgid "%<typedef%> was ignored in this declaration"
msgstr ""
-#: cp/decl.c:4224
+#: cp/decl.c:4229
#, gcc-internal-format
msgid "%<constexpr%> cannot be used for type declarations"
msgstr ""
-#: cp/decl.c:4238
+#: cp/decl.c:4243
#, gcc-internal-format
msgid "attribute ignored in declaration of %q#T"
msgstr ""
-#: cp/decl.c:4240
+#: cp/decl.c:4245
#, gcc-internal-format
msgid "attribute for %q#T must follow the %qs keyword"
msgstr ""
-#: cp/decl.c:4308
+#: cp/decl.c:4313
#, gcc-internal-format
msgid "ignoring attributes applied to class type %qT outside of definition"
msgstr ""
#. A template type parameter or other dependent type.
-#: cp/decl.c:4312
+#: cp/decl.c:4317
#, gcc-internal-format
msgid ""
"ignoring attributes applied to dependent type %qT without an associated "
"declaration"
msgstr ""
-#: cp/decl.c:4382 cp/decl2.c:817
+#: cp/decl.c:4387 cp/decl2.c:817
#, gcc-internal-format
msgid "typedef %qD is initialized (use decltype instead)"
msgstr ""
-#: cp/decl.c:4400
+#: cp/decl.c:4405
#, gcc-internal-format
msgid "declaration of %q#D has %<extern%> and is initialized"
msgstr ""
-#: cp/decl.c:4429
+#: cp/decl.c:4434
#, gcc-internal-format
msgid "definition of %q#D is marked %<dllimport%>"
msgstr ""
-#: cp/decl.c:4449
+#: cp/decl.c:4454
#, gcc-internal-format
msgid "%q#D is not a static member of %q#T"
msgstr ""
-#: cp/decl.c:4455
+#: cp/decl.c:4460
#, gcc-internal-format
msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
msgstr ""
-#: cp/decl.c:4464
-#, gcc-internal-format
-msgid ""
-"template header not allowed in member definition of explicitly specialized "
-"class"
-msgstr ""
-
#: cp/decl.c:4472
#, gcc-internal-format
msgid "duplicate initialization of %qD"
@@ -28911,12 +29115,12 @@ msgstr ""
msgid "variable %q#D has initializer but incomplete type"
msgstr ""
-#: cp/decl.c:4605 cp/decl.c:5405
+#: cp/decl.c:4605 cp/decl.c:5415
#, gcc-internal-format
msgid "elements of array %q#D have incomplete type"
msgstr ""
-#: cp/decl.c:4612 cp/decl.c:6015
+#: cp/decl.c:4612 cp/decl.c:6025
#, gcc-internal-format
msgid "declaration of %q#D has no initializer"
msgstr ""
@@ -28936,7 +29140,7 @@ msgstr ""
msgid "name used in a GNU-style designated initializer for an array"
msgstr ""
-#: cp/decl.c:4697 cp/typeck2.c:1089 cp/typeck2.c:1194
+#: cp/decl.c:4697 cp/typeck2.c:1093 cp/typeck2.c:1198
#, gcc-internal-format
msgid "non-trivial designated initializers not supported"
msgstr ""
@@ -29018,354 +29222,359 @@ msgstr ""
msgid "initializer for %qT must be brace-enclosed"
msgstr ""
-#: cp/decl.c:5106
+#: cp/decl.c:5107
#, gcc-internal-format
msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
msgstr ""
-#: cp/decl.c:5120
+#: cp/decl.c:5121
#, gcc-internal-format
msgid "%qT has no non-static data member named %qD"
msgstr ""
-#: cp/decl.c:5161
+#: cp/decl.c:5141
+#, gcc-internal-format
+msgid "invalid initializer for %q#D"
+msgstr ""
+
+#: cp/decl.c:5171
#, gcc-internal-format
msgid "C99 designator %qE outside aggregate initializer"
msgstr ""
-#: cp/decl.c:5198 cp/decl.c:5384 cp/typeck2.c:1076 cp/typeck2.c:1275
-#: cp/typeck2.c:1304 cp/typeck2.c:1351
+#: cp/decl.c:5208 cp/decl.c:5394 cp/typeck2.c:1080 cp/typeck2.c:1279
+#: cp/typeck2.c:1308 cp/typeck2.c:1355
#, gcc-internal-format
msgid "too many initializers for %qT"
msgstr ""
-#: cp/decl.c:5231
+#: cp/decl.c:5241
#, gcc-internal-format
msgid "braces around scalar initializer for type %qT"
msgstr ""
-#: cp/decl.c:5325
+#: cp/decl.c:5335
#, gcc-internal-format
msgid "missing braces around initializer for %qT"
msgstr ""
-#: cp/decl.c:5407
+#: cp/decl.c:5417
#, gcc-internal-format
msgid "elements of array %q#T have incomplete type"
msgstr ""
-#: cp/decl.c:5416
+#: cp/decl.c:5426
#, gcc-internal-format
msgid "variable-sized object %qD may not be initialized"
msgstr ""
-#: cp/decl.c:5418
+#: cp/decl.c:5428
#, gcc-internal-format
msgid "variable-sized compound literal"
msgstr ""
-#: cp/decl.c:5473
+#: cp/decl.c:5483
#, gcc-internal-format
msgid "%q#D has incomplete type"
msgstr ""
-#: cp/decl.c:5493
+#: cp/decl.c:5503
#, gcc-internal-format
msgid "scalar object %qD requires one element in initializer"
msgstr ""
-#: cp/decl.c:5536
+#: cp/decl.c:5546
#, gcc-internal-format
msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
msgstr ""
-#: cp/decl.c:5616
+#: cp/decl.c:5626
#, gcc-internal-format
msgid "array %qD initialized by parenthesized string literal %qE"
msgstr ""
-#: cp/decl.c:5643
+#: cp/decl.c:5653
#, gcc-internal-format
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl.c:5645
+#: cp/decl.c:5655
#, gcc-internal-format
msgid "non-constant in-class initialization invalid for static member %qD"
msgstr ""
-#: cp/decl.c:5649
+#: cp/decl.c:5659
#, gcc-internal-format
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl.c:5984
+#: cp/decl.c:5994
#, gcc-internal-format
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:6142
+#: cp/decl.c:6159
#, gcc-internal-format
msgid "shadowing previous type declaration of %q#D"
msgstr ""
-#: cp/decl.c:6174
+#: cp/decl.c:6191
#, gcc-internal-format
msgid "%qD cannot be thread-local because it has non-trivial type %qT"
msgstr ""
-#: cp/decl.c:6216
+#: cp/decl.c:6233
#, gcc-internal-format
msgid "Java object %qD not allocated with %<new%>"
msgstr ""
-#: cp/decl.c:6224
+#: cp/decl.c:6241
#, gcc-internal-format
msgid "%qD is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/decl.c:6242
+#: cp/decl.c:6259
#, gcc-internal-format
msgid ""
"%qD cannot be initialized by a non-constant expression when being declared"
msgstr ""
-#: cp/decl.c:6290
+#: cp/decl.c:6307
#, gcc-internal-format
msgid "non-static data member %qD has Java class type"
msgstr ""
-#: cp/decl.c:6355
+#: cp/decl.c:6372
#, gcc-internal-format
msgid "function %q#D is initialized like a variable"
msgstr ""
-#: cp/decl.c:6954
+#: cp/decl.c:6972
#, gcc-internal-format
msgid "initializer fails to determine size of %qT"
msgstr ""
-#: cp/decl.c:6958
+#: cp/decl.c:6976
#, gcc-internal-format
msgid "array size missing in %qT"
msgstr ""
-#: cp/decl.c:6961
+#: cp/decl.c:6979
#, gcc-internal-format
msgid "zero-size array %qT"
msgstr ""
-#: cp/decl.c:6977
+#: cp/decl.c:6995
#, gcc-internal-format
msgid "destructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:6979
+#: cp/decl.c:6997
#, gcc-internal-format
msgid "constructor for alien class %qT cannot be a member"
msgstr ""
-#: cp/decl.c:7003
+#: cp/decl.c:7021
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> variable"
msgstr ""
-#: cp/decl.c:7005
+#: cp/decl.c:7023
#, gcc-internal-format
msgid "%qD declared as an %<inline%> variable"
msgstr ""
-#: cp/decl.c:7007
+#: cp/decl.c:7025
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in variable "
"declaration"
msgstr ""
-#: cp/decl.c:7012
+#: cp/decl.c:7030
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> parameter"
msgstr ""
-#: cp/decl.c:7014
+#: cp/decl.c:7032
#, gcc-internal-format
msgid "%qD declared as an %<inline%> parameter"
msgstr ""
-#: cp/decl.c:7016
+#: cp/decl.c:7034
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in parameter "
"declaration"
msgstr ""
-#: cp/decl.c:7021
+#: cp/decl.c:7039
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> type"
msgstr ""
-#: cp/decl.c:7023
+#: cp/decl.c:7041
#, gcc-internal-format
msgid "%qD declared as an %<inline%> type"
msgstr ""
-#: cp/decl.c:7025
+#: cp/decl.c:7043
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in type "
"declaration"
msgstr ""
-#: cp/decl.c:7030
+#: cp/decl.c:7048
#, gcc-internal-format
msgid "%qD declared as a %<virtual%> field"
msgstr ""
-#: cp/decl.c:7032
+#: cp/decl.c:7050
#, gcc-internal-format
msgid "%qD declared as an %<inline%> field"
msgstr ""
-#: cp/decl.c:7034
+#: cp/decl.c:7052
#, gcc-internal-format
msgid ""
"%<const%> and %<volatile%> function specifiers on %qD invalid in field "
"declaration"
msgstr ""
-#: cp/decl.c:7041
+#: cp/decl.c:7059
#, gcc-internal-format
msgid "%q+D declared as a friend"
msgstr ""
-#: cp/decl.c:7047
+#: cp/decl.c:7065
#, gcc-internal-format
msgid "%q+D declared with an exception specification"
msgstr ""
-#: cp/decl.c:7081
+#: cp/decl.c:7099
#, gcc-internal-format
msgid "definition of %qD is not in namespace enclosing %qT"
msgstr ""
-#: cp/decl.c:7121
+#: cp/decl.c:7139
#, gcc-internal-format
msgid "static member function %q#D declared with type qualifiers"
msgstr ""
-#: cp/decl.c:7220
+#: cp/decl.c:7238
#, gcc-internal-format
msgid "defining explicit specialization %qD in friend declaration"
msgstr ""
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:7230
+#: cp/decl.c:7248
#, gcc-internal-format
msgid "invalid use of template-id %qD in declaration of primary template"
msgstr ""
-#: cp/decl.c:7260
+#: cp/decl.c:7278
#, gcc-internal-format
msgid ""
"default arguments are not allowed in declaration of friend template "
"specialization %qD"
msgstr ""
-#: cp/decl.c:7268
+#: cp/decl.c:7286
#, gcc-internal-format
msgid ""
"%<inline%> is not allowed in declaration of friend template specialization "
"%qD"
msgstr ""
-#: cp/decl.c:7310
+#: cp/decl.c:7328
#, gcc-internal-format
msgid "cannot declare %<::main%> to be a template"
msgstr ""
-#: cp/decl.c:7312
+#: cp/decl.c:7330
#, gcc-internal-format
msgid "cannot declare %<::main%> to be inline"
msgstr ""
-#: cp/decl.c:7314
+#: cp/decl.c:7332
#, gcc-internal-format
msgid "cannot declare %<::main%> to be static"
msgstr ""
-#: cp/decl.c:7342
+#: cp/decl.c:7360
#, gcc-internal-format
msgid ""
"anonymous type with no linkage used to declare function %q#D with linkage"
msgstr ""
-#: cp/decl.c:7346 cp/decl.c:7710 cp/decl2.c:3640
+#: cp/decl.c:7364 cp/decl.c:7728 cp/decl2.c:3640
#, gcc-internal-format
msgid ""
"%q+#D does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:7352
+#: cp/decl.c:7370
#, gcc-internal-format
msgid "type %qT with no linkage used to declare function %q#D with linkage"
msgstr ""
-#: cp/decl.c:7374
+#: cp/decl.c:7392
#, gcc-internal-format
msgid "static member function %qD cannot have cv-qualifier"
msgstr ""
-#: cp/decl.c:7375
+#: cp/decl.c:7393
#, gcc-internal-format
msgid "non-member function %qD cannot have cv-qualifier"
msgstr ""
-#: cp/decl.c:7391
+#: cp/decl.c:7409
#, gcc-internal-format
msgid "literal operator with C linkage"
msgstr ""
-#: cp/decl.c:7400
+#: cp/decl.c:7418
#, gcc-internal-format
msgid "%qD has invalid argument list"
msgstr ""
-#: cp/decl.c:7408
+#: cp/decl.c:7426
#, gcc-internal-format
msgid "integer suffix %<%s%> shadowed by implementation"
msgstr ""
-#: cp/decl.c:7414
+#: cp/decl.c:7432
#, gcc-internal-format
msgid "floating point suffix %<%s%> shadowed by implementation"
msgstr ""
-#: cp/decl.c:7420
+#: cp/decl.c:7438
#, gcc-internal-format
msgid "%qD must be a non-member function"
msgstr ""
-#: cp/decl.c:7471
+#: cp/decl.c:7489
#, gcc-internal-format
msgid "%<::main%> must return %<int%>"
msgstr ""
-#: cp/decl.c:7513
+#: cp/decl.c:7531
#, gcc-internal-format
msgid "definition of implicitly-declared %qD"
msgstr ""
-#: cp/decl.c:7518
+#: cp/decl.c:7536
#, gcc-internal-format
msgid "definition of explicitly-defaulted %q+D"
msgstr ""
-#: cp/decl.c:7519
+#: cp/decl.c:7537
#, gcc-internal-format
msgid "%q+#D explicitly defaulted here"
msgstr ""
-#: cp/decl.c:7536 cp/decl2.c:736
+#: cp/decl.c:7554 cp/decl2.c:736
#, gcc-internal-format
msgid "no %q#D member function declared in class %qT"
msgstr ""
@@ -29374,437 +29583,437 @@ msgstr ""
#. no linkage can only be used to declare extern "C"
#. entities. Since it's not always an error in the
#. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl.c:7707
+#: cp/decl.c:7725
#, gcc-internal-format
msgid ""
"anonymous type with no linkage used to declare variable %q#D with linkage"
msgstr ""
-#: cp/decl.c:7716
+#: cp/decl.c:7734
#, gcc-internal-format
msgid "type %qT with no linkage used to declare variable %q#D with linkage"
msgstr ""
-#: cp/decl.c:7839
+#: cp/decl.c:7857
#, gcc-internal-format
msgid "in-class initialization of static data member %q#D of incomplete type"
msgstr ""
-#: cp/decl.c:7843
+#: cp/decl.c:7861
#, gcc-internal-format
msgid ""
"%<constexpr%> needed for in-class initialization of static data member %q#D "
"of non-integral type"
msgstr ""
-#: cp/decl.c:7846
+#: cp/decl.c:7864
#, gcc-internal-format
msgid "in-class initialization of static data member %q#D of non-literal type"
msgstr ""
-#: cp/decl.c:7859
+#: cp/decl.c:7877
#, gcc-internal-format
msgid ""
"invalid in-class initialization of static data member of non-integral type "
"%qT"
msgstr ""
-#: cp/decl.c:7865
+#: cp/decl.c:7883
#, gcc-internal-format
msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
msgstr ""
-#: cp/decl.c:7869
+#: cp/decl.c:7887
#, gcc-internal-format
msgid ""
"ISO C++ forbids initialization of member constant %qD of non-integral type "
"%qT"
msgstr ""
-#: cp/decl.c:7946 cp/decl.c:7974
+#: cp/decl.c:7963 cp/decl.c:7991
#, gcc-internal-format
msgid "size of array %qD has non-integral type %qT"
msgstr ""
-#: cp/decl.c:7949 cp/decl.c:7976
+#: cp/decl.c:7966 cp/decl.c:7993
#, gcc-internal-format
msgid "size of array has non-integral type %qT"
msgstr ""
-#: cp/decl.c:8026
+#: cp/decl.c:8043
#, gcc-internal-format
msgid "size of array %qD is negative"
msgstr ""
-#: cp/decl.c:8028
+#: cp/decl.c:8045
#, gcc-internal-format
msgid "size of array is negative"
msgstr ""
-#: cp/decl.c:8042
+#: cp/decl.c:8059
#, gcc-internal-format
msgid "ISO C++ forbids zero-size array %qD"
msgstr ""
-#: cp/decl.c:8044
+#: cp/decl.c:8061
#, gcc-internal-format
msgid "ISO C++ forbids zero-size array"
msgstr ""
-#: cp/decl.c:8056
+#: cp/decl.c:8073
#, gcc-internal-format
msgid "size of array %qD is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:8059
+#: cp/decl.c:8076
#, gcc-internal-format
msgid "size of array is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:8065
+#: cp/decl.c:8082
#, gcc-internal-format
msgid "ISO C++ forbids variable length array %qD"
msgstr ""
-#: cp/decl.c:8067
+#: cp/decl.c:8084
#, gcc-internal-format
msgid "ISO C++ forbids variable length array"
msgstr ""
-#: cp/decl.c:8073
+#: cp/decl.c:8090
#, gcc-internal-format
msgid "variable length array %qD is used"
msgstr ""
-#: cp/decl.c:8112
+#: cp/decl.c:8129
#, gcc-internal-format
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:8172
+#: cp/decl.c:8189
#, gcc-internal-format
msgid "declaration of %qD as array of %<auto%>"
msgstr ""
-#: cp/decl.c:8180
+#: cp/decl.c:8197
#, gcc-internal-format
msgid "declaration of %qD as array of void"
msgstr ""
-#: cp/decl.c:8182
+#: cp/decl.c:8199
#, gcc-internal-format
msgid "creating array of void"
msgstr ""
-#: cp/decl.c:8187
+#: cp/decl.c:8204
#, gcc-internal-format
msgid "declaration of %qD as array of functions"
msgstr ""
-#: cp/decl.c:8189
+#: cp/decl.c:8206
#, gcc-internal-format
msgid "creating array of functions"
msgstr ""
-#: cp/decl.c:8194
+#: cp/decl.c:8211
#, gcc-internal-format
msgid "declaration of %qD as array of references"
msgstr ""
-#: cp/decl.c:8196
+#: cp/decl.c:8213
#, gcc-internal-format
msgid "creating array of references"
msgstr ""
-#: cp/decl.c:8201
+#: cp/decl.c:8218
#, gcc-internal-format
msgid "declaration of %qD as array of function members"
msgstr ""
-#: cp/decl.c:8203
+#: cp/decl.c:8220
#, gcc-internal-format
msgid "creating array of function members"
msgstr ""
-#: cp/decl.c:8217
+#: cp/decl.c:8234
#, gcc-internal-format
msgid ""
"declaration of %qD as multidimensional array must have bounds for all "
"dimensions except the first"
msgstr ""
-#: cp/decl.c:8221
+#: cp/decl.c:8238
#, gcc-internal-format
msgid ""
"multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:8256
+#: cp/decl.c:8273
#, gcc-internal-format
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:8266
+#: cp/decl.c:8283
#, gcc-internal-format
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:8279
+#: cp/decl.c:8296
#, gcc-internal-format
msgid "return type specified for %<operator %T%>"
msgstr ""
-#: cp/decl.c:8301
+#: cp/decl.c:8318
#, gcc-internal-format
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:8308
+#: cp/decl.c:8325
#, gcc-internal-format
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:8492
+#: cp/decl.c:8509
#, gcc-internal-format
msgid "invalid use of qualified-name %<::%D%>"
msgstr ""
-#: cp/decl.c:8495
+#: cp/decl.c:8512
#, gcc-internal-format
msgid "invalid use of qualified-name %<%T::%D%>"
msgstr ""
-#: cp/decl.c:8498
+#: cp/decl.c:8515
#, gcc-internal-format
msgid "invalid use of qualified-name %<%D::%D%>"
msgstr ""
-#: cp/decl.c:8507
+#: cp/decl.c:8524
#, gcc-internal-format
msgid "%q#T is not a class or a namespace"
msgstr ""
-#: cp/decl.c:8515
+#: cp/decl.c:8532
#, gcc-internal-format
msgid "type %qT is not derived from type %qT"
msgstr ""
-#: cp/decl.c:8531 cp/decl.c:8623 cp/decl.c:8632 cp/decl.c:9997
+#: cp/decl.c:8548 cp/decl.c:8640 cp/decl.c:8649 cp/decl.c:9985
#, gcc-internal-format
msgid "declaration of %qD as non-function"
msgstr ""
-#: cp/decl.c:8537
+#: cp/decl.c:8554
#, gcc-internal-format
msgid "declaration of %qD as non-member"
msgstr ""
-#: cp/decl.c:8568
+#: cp/decl.c:8585
#, gcc-internal-format
msgid "declarator-id missing; using reserved word %qD"
msgstr ""
-#: cp/decl.c:8615
+#: cp/decl.c:8632
#, gcc-internal-format
msgid "function definition does not declare parameters"
msgstr ""
-#: cp/decl.c:8640
+#: cp/decl.c:8657
#, gcc-internal-format
msgid "declaration of %qD as %<typedef%>"
msgstr ""
-#: cp/decl.c:8645
+#: cp/decl.c:8662
#, gcc-internal-format
msgid "declaration of %qD as parameter"
msgstr ""
-#: cp/decl.c:8678
+#: cp/decl.c:8695
#, gcc-internal-format
msgid "%<constexpr%> cannot appear in a typedef declaration"
msgstr ""
-#: cp/decl.c:8686
+#: cp/decl.c:8703
#, gcc-internal-format
msgid "two or more data types in declaration of %qs"
msgstr ""
-#: cp/decl.c:8692
+#: cp/decl.c:8709
#, gcc-internal-format
msgid "conflicting specifiers in declaration of %qs"
msgstr ""
-#: cp/decl.c:8764 cp/decl.c:8767 cp/decl.c:8770
+#: cp/decl.c:8781 cp/decl.c:8784 cp/decl.c:8787
#, gcc-internal-format
msgid "ISO C++ forbids declaration of %qs with no type"
msgstr ""
-#: cp/decl.c:8781
+#: cp/decl.c:8798
#, gcc-internal-format
msgid "%<__int128%> is not supported by this target"
msgstr ""
-#: cp/decl.c:8786
+#: cp/decl.c:8803
#, gcc-internal-format
msgid "ISO C++ does not support %<__int128%> for %qs"
msgstr ""
-#: cp/decl.c:8807 cp/decl.c:8827
+#: cp/decl.c:8824 cp/decl.c:8844
#, gcc-internal-format
msgid "%<signed%> or %<unsigned%> invalid for %qs"
msgstr ""
-#: cp/decl.c:8809
+#: cp/decl.c:8826
#, gcc-internal-format
msgid "%<signed%> and %<unsigned%> specified together for %qs"
msgstr ""
-#: cp/decl.c:8811
+#: cp/decl.c:8828
#, gcc-internal-format
msgid "%<long long%> invalid for %qs"
msgstr ""
-#: cp/decl.c:8813
+#: cp/decl.c:8830
#, gcc-internal-format
msgid "%<long%> invalid for %qs"
msgstr ""
-#: cp/decl.c:8815
+#: cp/decl.c:8832
#, gcc-internal-format
msgid "%<short%> invalid for %qs"
msgstr ""
-#: cp/decl.c:8817
+#: cp/decl.c:8834
#, gcc-internal-format
msgid "%<long%> or %<short%> invalid for %qs"
msgstr ""
-#: cp/decl.c:8819
+#: cp/decl.c:8836
#, gcc-internal-format
msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs"
msgstr ""
-#: cp/decl.c:8821
+#: cp/decl.c:8838
#, gcc-internal-format
msgid "%<long%> or %<short%> specified with char for %qs"
msgstr ""
-#: cp/decl.c:8823
+#: cp/decl.c:8840
#, gcc-internal-format
msgid "%<long%> and %<short%> specified together for %qs"
msgstr ""
-#: cp/decl.c:8829
+#: cp/decl.c:8846
#, gcc-internal-format
msgid "%<short%> or %<long%> invalid for %qs"
msgstr ""
-#: cp/decl.c:8837
+#: cp/decl.c:8854
#, gcc-internal-format
msgid "long, short, signed or unsigned used invalidly for %qs"
msgstr ""
-#: cp/decl.c:8905
+#: cp/decl.c:8922
#, gcc-internal-format
msgid "complex invalid for %qs"
msgstr ""
-#: cp/decl.c:8933
+#: cp/decl.c:8950
#, gcc-internal-format
msgid "qualifiers are not allowed on declaration of %<operator %T%>"
msgstr ""
-#: cp/decl.c:8965
+#: cp/decl.c:8982
#, gcc-internal-format
msgid "member %qD cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:8973
+#: cp/decl.c:8990
#, gcc-internal-format
msgid "%<%T::%D%> is not a valid declarator"
msgstr ""
-#: cp/decl.c:8982
+#: cp/decl.c:8999
#, gcc-internal-format
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:8987
+#: cp/decl.c:9004
#, gcc-internal-format
msgid "storage class specified for template parameter %qs"
msgstr ""
-#: cp/decl.c:8993
+#: cp/decl.c:9010
#, gcc-internal-format
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:8999
+#: cp/decl.c:9016
#, gcc-internal-format
msgid "a parameter cannot be declared %<constexpr%>"
msgstr ""
-#: cp/decl.c:9008
+#: cp/decl.c:9025
#, gcc-internal-format
msgid "%<virtual%> outside class declaration"
msgstr ""
-#: cp/decl.c:9026
+#: cp/decl.c:9043
#, gcc-internal-format
msgid "multiple storage classes in declaration of %qs"
msgstr ""
-#: cp/decl.c:9049
+#: cp/decl.c:9066
#, gcc-internal-format
msgid "storage class specified for %qs"
msgstr ""
-#: cp/decl.c:9053
+#: cp/decl.c:9070
#, gcc-internal-format
msgid "storage class specified for parameter %qs"
msgstr ""
-#: cp/decl.c:9066
+#: cp/decl.c:9083
#, gcc-internal-format
msgid "nested function %qs declared %<extern%>"
msgstr ""
-#: cp/decl.c:9070
+#: cp/decl.c:9087
#, gcc-internal-format
msgid "top-level declaration of %qs specifies %<auto%>"
msgstr ""
-#: cp/decl.c:9076
+#: cp/decl.c:9093
#, gcc-internal-format
msgid "function-scope %qs implicitly auto and declared %<__thread%>"
msgstr ""
-#: cp/decl.c:9083
+#: cp/decl.c:9100
#, gcc-internal-format
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:9177
+#: cp/decl.c:9194
#, gcc-internal-format
msgid "%qs declared as function returning a function"
msgstr ""
-#: cp/decl.c:9182
+#: cp/decl.c:9199
#, gcc-internal-format
msgid "%qs declared as function returning an array"
msgstr ""
-#: cp/decl.c:9188
+#: cp/decl.c:9205
#, gcc-internal-format
msgid "%qs declared as function returning an abstract class type"
msgstr ""
-#: cp/decl.c:9217
+#: cp/decl.c:9234
#, gcc-internal-format
msgid "%qs function uses %<auto%> type specifier without trailing return type"
msgstr ""
-#: cp/decl.c:9223
+#: cp/decl.c:9240
#, gcc-internal-format
msgid ""
"%qs function with trailing return type has %qT as its type rather than plain "
@@ -29813,476 +30022,461 @@ msgstr ""
#. Not using maybe_warn_cpp0x because this should
#. always be an error.
-#: cp/decl.c:9234
+#: cp/decl.c:9251
#, gcc-internal-format
msgid "trailing return type only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/decl.c:9237
+#: cp/decl.c:9254
#, gcc-internal-format
msgid ""
"%qs function with trailing return type not declared with %<auto%> type "
"specifier"
msgstr ""
-#: cp/decl.c:9270
+#: cp/decl.c:9287
#, gcc-internal-format
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:9271
+#: cp/decl.c:9288
#, gcc-internal-format
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:9275
+#: cp/decl.c:9292
#, gcc-internal-format
msgid "destructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:9276
+#: cp/decl.c:9293
#, gcc-internal-format
msgid "constructors may not be cv-qualified"
msgstr ""
-#: cp/decl.c:9293
+#: cp/decl.c:9310
#, gcc-internal-format
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:9306
+#: cp/decl.c:9323
#, gcc-internal-format
msgid "can%'t initialize friend function %qs"
msgstr ""
#. Cannot be both friend and virtual.
-#: cp/decl.c:9310
+#: cp/decl.c:9327
#, gcc-internal-format
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:9314
+#: cp/decl.c:9331
#, gcc-internal-format
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:9316
+#: cp/decl.c:9333
#, gcc-internal-format
msgid "can%'t define friend function %qs in a local class definition"
msgstr ""
-#: cp/decl.c:9337
+#: cp/decl.c:9354
#, gcc-internal-format
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:9356
+#: cp/decl.c:9373
#, gcc-internal-format
msgid "cannot declare pointer to %q#T"
msgstr ""
-#: cp/decl.c:9369 cp/decl.c:9376
+#: cp/decl.c:9386 cp/decl.c:9393
#, gcc-internal-format
msgid "cannot declare reference to %q#T"
msgstr ""
-#: cp/decl.c:9378
+#: cp/decl.c:9395
#, gcc-internal-format
msgid "cannot declare pointer to %q#T member"
msgstr ""
-#: cp/decl.c:9401
+#: cp/decl.c:9418
#, gcc-internal-format
msgid "cannot declare reference to qualified function type %qT"
msgstr ""
-#: cp/decl.c:9402
+#: cp/decl.c:9419
#, gcc-internal-format
msgid "cannot declare pointer to qualified function type %qT"
msgstr ""
-#: cp/decl.c:9476
+#: cp/decl.c:9493
#, gcc-internal-format
msgid ""
"cannot declare reference to %q#T, which is not a typedef or a template type "
"argument"
msgstr ""
-#: cp/decl.c:9529
-#, gcc-internal-format
-msgid "both %<const%> and %<constexpr%> cannot be used here"
-msgstr ""
-
-#: cp/decl.c:9531
+#: cp/decl.c:9546
#, gcc-internal-format
msgid "both %<volatile%> and %<constexpr%> cannot be used here"
msgstr ""
-#: cp/decl.c:9543
+#: cp/decl.c:9558
#, gcc-internal-format
msgid "template-id %qD used as a declarator"
msgstr ""
-#: cp/decl.c:9594
+#: cp/decl.c:9582
#, gcc-internal-format
msgid "member functions are implicitly friends of their class"
msgstr ""
-#: cp/decl.c:9599
+#: cp/decl.c:9587
#, gcc-internal-format
msgid "extra qualification %<%T::%> on member %qs"
msgstr ""
-#: cp/decl.c:9629
+#: cp/decl.c:9617
#, gcc-internal-format
msgid "cannot define member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:9631
+#: cp/decl.c:9619
#, gcc-internal-format
msgid "cannot declare member function %<%T::%s%> within %<%T%>"
msgstr ""
-#: cp/decl.c:9640
+#: cp/decl.c:9628
#, gcc-internal-format
msgid "cannot declare member %<%T::%s%> within %qT"
msgstr ""
-#: cp/decl.c:9666
+#: cp/decl.c:9654
#, gcc-internal-format
msgid "non-parameter %qs cannot be a parameter pack"
msgstr ""
-#: cp/decl.c:9676
+#: cp/decl.c:9664
#, gcc-internal-format
msgid "size of array %qs is too large"
msgstr ""
-#: cp/decl.c:9687
+#: cp/decl.c:9675
#, gcc-internal-format
msgid "data member may not have variably modified type %qT"
msgstr ""
-#: cp/decl.c:9689
+#: cp/decl.c:9677
#, gcc-internal-format
msgid "parameter may not have variably modified type %qT"
msgstr ""
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:9697
+#: cp/decl.c:9685
#, gcc-internal-format
msgid "only declarations of constructors can be %<explicit%>"
msgstr ""
-#: cp/decl.c:9705
+#: cp/decl.c:9693
#, gcc-internal-format
msgid "non-member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:9711
+#: cp/decl.c:9699
#, gcc-internal-format
msgid "non-object member %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:9717
+#: cp/decl.c:9705
#, gcc-internal-format
msgid "function %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:9722
+#: cp/decl.c:9710
#, gcc-internal-format
msgid "static %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:9727
+#: cp/decl.c:9715
#, gcc-internal-format
msgid "const %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:9732
+#: cp/decl.c:9720
#, gcc-internal-format
msgid "reference %qs cannot be declared %<mutable%>"
msgstr ""
-#: cp/decl.c:9767
+#: cp/decl.c:9755
#, gcc-internal-format
msgid "typedef declared %<auto%>"
msgstr ""
-#: cp/decl.c:9777
+#: cp/decl.c:9765
#, gcc-internal-format
msgid "typedef name may not be a nested-name-specifier"
msgstr ""
-#: cp/decl.c:9796
+#: cp/decl.c:9784
#, gcc-internal-format
msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
msgstr ""
-#: cp/decl.c:9898
+#: cp/decl.c:9886
#, gcc-internal-format
msgid ""
"qualified function types cannot be used to declare static member functions"
msgstr ""
-#: cp/decl.c:9900
+#: cp/decl.c:9888
#, gcc-internal-format
msgid "qualified function types cannot be used to declare free functions"
msgstr ""
-#: cp/decl.c:9927
+#: cp/decl.c:9915
#, gcc-internal-format
msgid "type qualifiers specified for friend class declaration"
msgstr ""
-#: cp/decl.c:9932
+#: cp/decl.c:9920
#, gcc-internal-format
msgid "%<inline%> specified for friend class declaration"
msgstr ""
-#: cp/decl.c:9940
+#: cp/decl.c:9928
#, gcc-internal-format
msgid "template parameters cannot be friends"
msgstr ""
-#: cp/decl.c:9942
+#: cp/decl.c:9930
#, gcc-internal-format
msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
msgstr ""
-#: cp/decl.c:9946
+#: cp/decl.c:9934
#, gcc-internal-format
msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
msgstr ""
-#: cp/decl.c:9959
+#: cp/decl.c:9947
#, gcc-internal-format
msgid "trying to make class %qT a friend of global scope"
msgstr ""
-#: cp/decl.c:9977
+#: cp/decl.c:9965
#, gcc-internal-format
msgid "invalid qualifiers on non-member function type"
msgstr ""
-#: cp/decl.c:9987
+#: cp/decl.c:9975
#, gcc-internal-format
msgid "abstract declarator %qT used as declaration"
msgstr ""
-#: cp/decl.c:10016
+#: cp/decl.c:10004
#, gcc-internal-format
msgid "cannot use %<::%> in parameter declaration"
msgstr ""
-#: cp/decl.c:10020
+#: cp/decl.c:10008
#, gcc-internal-format
msgid "parameter declared %<auto%>"
msgstr ""
-#: cp/decl.c:10063
+#: cp/decl.c:10051
#, gcc-internal-format
msgid "non-static data member declared %<auto%>"
msgstr ""
#. Something like struct S { int N::j; };
-#: cp/decl.c:10085
+#: cp/decl.c:10073
#, gcc-internal-format
msgid "invalid use of %<::%>"
msgstr ""
-#: cp/decl.c:10107
+#: cp/decl.c:10095
#, gcc-internal-format
msgid "declaration of function %qD in invalid context"
msgstr ""
-#: cp/decl.c:10116
+#: cp/decl.c:10104
#, gcc-internal-format
msgid "function %qD declared virtual inside a union"
msgstr ""
-#: cp/decl.c:10125
+#: cp/decl.c:10113
#, gcc-internal-format
msgid "%qD cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:10141
+#: cp/decl.c:10129
#, gcc-internal-format
msgid "expected qualified name in friend declaration for destructor %qD"
msgstr ""
-#: cp/decl.c:10148
+#: cp/decl.c:10136
#, gcc-internal-format
msgid "declaration of %qD as member of %qT"
msgstr ""
-#: cp/decl.c:10154
+#: cp/decl.c:10142
#, gcc-internal-format
msgid "a destructor cannot be %<constexpr%>"
msgstr ""
-#: cp/decl.c:10160
+#: cp/decl.c:10148
#, gcc-internal-format
msgid "expected qualified name in friend declaration for constructor %qD"
msgstr ""
-#: cp/decl.c:10206
+#: cp/decl.c:10194
#, gcc-internal-format
msgid "field %qD has incomplete type"
msgstr ""
-#: cp/decl.c:10208
+#: cp/decl.c:10196
#, gcc-internal-format
msgid "name %qT has incomplete type"
msgstr ""
-#: cp/decl.c:10217
+#: cp/decl.c:10205
#, gcc-internal-format
msgid " in instantiation of template %qT"
msgstr ""
-#: cp/decl.c:10226
+#: cp/decl.c:10214
#, gcc-internal-format
msgid "%qE is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cp/decl.c:10279
+#: cp/decl.c:10267
#, gcc-internal-format
msgid "constexpr static data member %qD must have an initializer"
msgstr ""
-#: cp/decl.c:10288
+#: cp/decl.c:10276
#, gcc-internal-format
msgid "non-static data member %qE declared %<constexpr%>"
msgstr ""
-#: cp/decl.c:10338
+#: cp/decl.c:10326
#, gcc-internal-format
msgid "storage class %<auto%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:10340
+#: cp/decl.c:10328
#, gcc-internal-format
msgid "storage class %<register%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:10342
+#: cp/decl.c:10330
#, gcc-internal-format
msgid "storage class %<__thread%> invalid for function %qs"
msgstr ""
-#: cp/decl.c:10345
+#: cp/decl.c:10333
#, gcc-internal-format
msgid "virt-specifiers in %qs not allowed outside a class definition"
msgstr ""
-#: cp/decl.c:10356
+#: cp/decl.c:10344
#, gcc-internal-format
msgid ""
"%<static%> specified invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:10360
+#: cp/decl.c:10348
#, gcc-internal-format
msgid ""
"%<inline%> specifier invalid for function %qs declared out of global scope"
msgstr ""
-#: cp/decl.c:10368
+#: cp/decl.c:10356
#, gcc-internal-format
msgid "virtual non-class function %qs"
msgstr ""
-#: cp/decl.c:10375
+#: cp/decl.c:10363
#, gcc-internal-format
msgid "%qs defined in a non-class scope"
msgstr ""
-#: cp/decl.c:10376
+#: cp/decl.c:10364
#, gcc-internal-format
msgid "%qs declared in a non-class scope"
msgstr ""
-#: cp/decl.c:10404
+#: cp/decl.c:10392
#, gcc-internal-format
msgid "cannot declare member function %qD to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:10411
+#: cp/decl.c:10399
#, gcc-internal-format
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:10441
+#: cp/decl.c:10429
#, gcc-internal-format
msgid ""
"%<static%> may not be used when defining (as opposed to declaring) a static "
"data member"
msgstr ""
-#: cp/decl.c:10448
+#: cp/decl.c:10436
#, gcc-internal-format
msgid "static member %qD declared %<register%>"
msgstr ""
-#: cp/decl.c:10454
+#: cp/decl.c:10442
#, gcc-internal-format
msgid "cannot explicitly declare member %q#D to have extern linkage"
msgstr ""
-#: cp/decl.c:10461
+#: cp/decl.c:10449
#, gcc-internal-format
msgid "declaration of constexpr variable %qD is not a definition"
msgstr ""
-#: cp/decl.c:10474
+#: cp/decl.c:10462
#, gcc-internal-format
msgid "%qs initialized and declared %<extern%>"
msgstr ""
-#: cp/decl.c:10478
+#: cp/decl.c:10466
#, gcc-internal-format
msgid "%qs has both %<extern%> and initializer"
msgstr ""
-#: cp/decl.c:10607
-#, gcc-internal-format
-msgid "default argument for %q#D has type %qT"
-msgstr ""
-
-#: cp/decl.c:10610
-#, gcc-internal-format
-msgid "default argument for parameter of type %qT has type %qT"
-msgstr ""
-
-#: cp/decl.c:10638
+#: cp/decl.c:10617
#, gcc-internal-format
msgid "default argument %qE uses %qD"
msgstr ""
-#: cp/decl.c:10640
+#: cp/decl.c:10619
#, gcc-internal-format
msgid "default argument %qE uses local variable %qD"
msgstr ""
-#: cp/decl.c:10728
+#: cp/decl.c:10707
#, gcc-internal-format
msgid "parameter %qD has Java class type"
msgstr ""
-#: cp/decl.c:10756
+#: cp/decl.c:10735
#, gcc-internal-format
msgid "parameter %qD invalidly declared method type"
msgstr ""
-#: cp/decl.c:10781
+#: cp/decl.c:10760
#, gcc-internal-format
msgid "parameter %qD includes pointer to array of unknown bound %qT"
msgstr ""
-#: cp/decl.c:10783
+#: cp/decl.c:10762
#, gcc-internal-format
msgid "parameter %qD includes reference to array of unknown bound %qT"
msgstr ""
@@ -30302,174 +30496,174 @@ msgstr ""
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:11024
+#: cp/decl.c:11016
#, gcc-internal-format
msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
msgstr ""
-#: cp/decl.c:11146
+#: cp/decl.c:11138
#, gcc-internal-format
msgid "%qD may not be declared within a namespace"
msgstr ""
-#: cp/decl.c:11151
+#: cp/decl.c:11143
#, gcc-internal-format
msgid "%qD may not be declared as static"
msgstr ""
-#: cp/decl.c:11177
+#: cp/decl.c:11169
#, gcc-internal-format
msgid "%qD must be a nonstatic member function"
msgstr ""
-#: cp/decl.c:11186
+#: cp/decl.c:11178
#, gcc-internal-format
msgid ""
"%qD must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:11208
+#: cp/decl.c:11200
#, gcc-internal-format
msgid "%qD must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:11237
+#: cp/decl.c:11229
#, gcc-internal-format
msgid ""
"conversion to a reference to void will never use a type conversion operator"
msgstr ""
-#: cp/decl.c:11239
+#: cp/decl.c:11231
#, gcc-internal-format
msgid "conversion to void will never use a type conversion operator"
msgstr ""
-#: cp/decl.c:11246
+#: cp/decl.c:11238
#, gcc-internal-format
msgid ""
"conversion to a reference to the same type will never use a type conversion "
"operator"
msgstr ""
-#: cp/decl.c:11248
+#: cp/decl.c:11240
#, gcc-internal-format
msgid "conversion to the same type will never use a type conversion operator"
msgstr ""
-#: cp/decl.c:11256
+#: cp/decl.c:11248
#, gcc-internal-format
msgid ""
"conversion to a reference to a base class will never use a type conversion "
"operator"
msgstr ""
-#: cp/decl.c:11258
+#: cp/decl.c:11250
#, gcc-internal-format
msgid "conversion to a base class will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:11267
+#: cp/decl.c:11259
#, gcc-internal-format
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:11272
+#: cp/decl.c:11264
#, gcc-internal-format
msgid "%qD must not have variable number of arguments"
msgstr ""
-#: cp/decl.c:11323
+#: cp/decl.c:11315
#, gcc-internal-format
msgid "postfix %qD must take %<int%> as its argument"
msgstr ""
-#: cp/decl.c:11326
+#: cp/decl.c:11318
#, gcc-internal-format
msgid "postfix %qD must take %<int%> as its second argument"
msgstr ""
-#: cp/decl.c:11334
+#: cp/decl.c:11326
#, gcc-internal-format
msgid "%qD must take either zero or one argument"
msgstr ""
-#: cp/decl.c:11336
+#: cp/decl.c:11328
#, gcc-internal-format
msgid "%qD must take either one or two arguments"
msgstr ""
-#: cp/decl.c:11358
+#: cp/decl.c:11350
#, gcc-internal-format
msgid "prefix %qD should return %qT"
msgstr ""
-#: cp/decl.c:11364
+#: cp/decl.c:11356
#, gcc-internal-format
msgid "postfix %qD should return %qT"
msgstr ""
-#: cp/decl.c:11373
+#: cp/decl.c:11365
#, gcc-internal-format
msgid "%qD must take %<void%>"
msgstr ""
-#: cp/decl.c:11375 cp/decl.c:11384
+#: cp/decl.c:11367 cp/decl.c:11376
#, gcc-internal-format
msgid "%qD must take exactly one argument"
msgstr ""
-#: cp/decl.c:11386
+#: cp/decl.c:11378
#, gcc-internal-format
msgid "%qD must take exactly two arguments"
msgstr ""
-#: cp/decl.c:11395
+#: cp/decl.c:11387
#, gcc-internal-format
msgid "user-defined %qD always evaluates both arguments"
msgstr ""
-#: cp/decl.c:11409
+#: cp/decl.c:11401
#, gcc-internal-format
msgid "%qD should return by value"
msgstr ""
-#: cp/decl.c:11420 cp/decl.c:11425
+#: cp/decl.c:11412 cp/decl.c:11417
#, gcc-internal-format
msgid "%qD cannot have default arguments"
msgstr ""
-#: cp/decl.c:11486
+#: cp/decl.c:11478
#, gcc-internal-format
msgid "using template type parameter %qT after %qs"
msgstr ""
-#: cp/decl.c:11508
+#: cp/decl.c:11501
#, gcc-internal-format
msgid "using alias template specialization %qT after %qs"
msgstr ""
-#: cp/decl.c:11511
+#: cp/decl.c:11504
#, gcc-internal-format
msgid "using typedef-name %qD after %qs"
msgstr ""
-#: cp/decl.c:11513
+#: cp/decl.c:11506
#, gcc-internal-format
msgid "%qD has a previous declaration here"
msgstr ""
-#: cp/decl.c:11521
+#: cp/decl.c:11514
#, gcc-internal-format
msgid "%qT referred to as %qs"
msgstr ""
-#: cp/decl.c:11522 cp/decl.c:11529
+#: cp/decl.c:11515 cp/decl.c:11522
#, gcc-internal-format
msgid "%q+T has a previous declaration here"
msgstr ""
-#: cp/decl.c:11528
+#: cp/decl.c:11521
#, gcc-internal-format
msgid "%qT referred to as enum"
msgstr ""
@@ -30481,88 +30675,88 @@ msgstr ""
#. void f(class C); // No template header here
#.
#. then the required template argument is missing.
-#: cp/decl.c:11543
+#: cp/decl.c:11536
#, gcc-internal-format
msgid "template argument required for %<%s %T%>"
msgstr ""
-#: cp/decl.c:11591 cp/name-lookup.c:3052
+#: cp/decl.c:11586 cp/name-lookup.c:3061
#, gcc-internal-format
msgid "%qD has the same name as the class in which it is declared"
msgstr ""
-#: cp/decl.c:11621 cp/name-lookup.c:2551 cp/name-lookup.c:3376
-#: cp/name-lookup.c:3421 cp/parser.c:5019 cp/parser.c:20529
+#: cp/decl.c:11616 cp/name-lookup.c:2560 cp/name-lookup.c:3386
+#: cp/name-lookup.c:3431 cp/parser.c:5026 cp/parser.c:20573
#, gcc-internal-format
msgid "reference to %qD is ambiguous"
msgstr ""
-#: cp/decl.c:11733
+#: cp/decl.c:11731
#, gcc-internal-format
msgid "use of enum %q#D without previous declaration"
msgstr ""
-#: cp/decl.c:11754
+#: cp/decl.c:11752
#, gcc-internal-format
msgid "redeclaration of %qT as a non-template"
msgstr ""
-#: cp/decl.c:11755
+#: cp/decl.c:11753
#, gcc-internal-format
msgid "previous declaration %q+D"
msgstr ""
-#: cp/decl.c:11889
+#: cp/decl.c:11894
#, gcc-internal-format
msgid "derived union %qT invalid"
msgstr ""
-#: cp/decl.c:11898
+#: cp/decl.c:11903
#, gcc-internal-format
msgid "Java class %qT cannot have multiple bases"
msgstr ""
-#: cp/decl.c:11909
+#: cp/decl.c:11914
#, gcc-internal-format
msgid "Java class %qT cannot have virtual bases"
msgstr ""
-#: cp/decl.c:11929
+#: cp/decl.c:11934
#, gcc-internal-format
msgid "base type %qT fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:11962
+#: cp/decl.c:11967
#, gcc-internal-format
msgid "recursive type %qT undefined"
msgstr ""
-#: cp/decl.c:11964
+#: cp/decl.c:11969
#, gcc-internal-format
msgid "duplicate base type %qT invalid"
msgstr ""
-#: cp/decl.c:12088
+#: cp/decl.c:12093
#, gcc-internal-format
msgid "scoped/unscoped mismatch in enum %q#T"
msgstr ""
-#: cp/decl.c:12091 cp/decl.c:12099 cp/decl.c:12111 cp/parser.c:14511
+#: cp/decl.c:12096 cp/decl.c:12104 cp/decl.c:12116 cp/parser.c:14559
#, gcc-internal-format
msgid "previous definition here"
msgstr ""
-#: cp/decl.c:12096
+#: cp/decl.c:12101
#, gcc-internal-format
msgid "underlying type mismatch in enum %q#T"
msgstr ""
-#: cp/decl.c:12108
+#: cp/decl.c:12113
#, gcc-internal-format
msgid "different underlying type in enum %q#T"
msgstr ""
-#: cp/decl.c:12175
+#: cp/decl.c:12180
#, gcc-internal-format
msgid "underlying type %<%T%> of %<%T%> must be an integral type"
msgstr ""
@@ -30571,82 +30765,82 @@ msgstr ""
#.
#. IF no integral type can represent all the enumerator values, the
#. enumeration is ill-formed.
-#: cp/decl.c:12309
+#: cp/decl.c:12314
#, gcc-internal-format
msgid "no integral type can represent all of the enumerator values for %qT"
msgstr ""
-#: cp/decl.c:12450
+#: cp/decl.c:12455
#, gcc-internal-format
msgid "enumerator value for %qD is not an integer constant"
msgstr ""
-#: cp/decl.c:12500
+#: cp/decl.c:12505
#, gcc-internal-format
msgid "incremented enumerator value is too large for %<unsigned long%>"
msgstr ""
-#: cp/decl.c:12512
+#: cp/decl.c:12517
#, gcc-internal-format
msgid "overflow in enumeration values at %qD"
msgstr ""
-#: cp/decl.c:12532
+#: cp/decl.c:12537
#, gcc-internal-format
msgid "enumerator value %E is too large for underlying type %<%T%>"
msgstr ""
-#: cp/decl.c:12630
+#: cp/decl.c:12628
#, gcc-internal-format
msgid "return type %q#T is incomplete"
msgstr ""
-#: cp/decl.c:12632
+#: cp/decl.c:12630
#, gcc-internal-format
msgid "return type has Java class type %q#T"
msgstr ""
-#: cp/decl.c:12756 cp/typeck.c:8081
+#: cp/decl.c:12754 cp/typeck.c:8120
#, gcc-internal-format
msgid "%<operator=%> should return a reference to %<*this%>"
msgstr ""
-#: cp/decl.c:12852
+#: cp/decl.c:12850
#, gcc-internal-format
msgid "no previous declaration for %q+D"
msgstr ""
-#: cp/decl.c:13073
+#: cp/decl.c:13071
#, gcc-internal-format
msgid "invalid function declaration"
msgstr ""
-#: cp/decl.c:13157
+#: cp/decl.c:13155
#, gcc-internal-format
msgid "parameter %qD declared void"
msgstr ""
-#: cp/decl.c:13532
+#: cp/decl.c:13523
#, gcc-internal-format
msgid "no return statements in function returning %qT"
msgstr ""
-#: cp/decl.c:13534 cp/typeck.c:7969
+#: cp/decl.c:13525 cp/typeck.c:8008
#, gcc-internal-format
msgid "only plain %<auto%> return type can be deduced to %<void%>"
msgstr ""
-#: cp/decl.c:13629
+#: cp/decl.c:13621
#, gcc-internal-format
msgid "parameter %q+D set but not used"
msgstr ""
-#: cp/decl.c:13724
+#: cp/decl.c:13716
#, gcc-internal-format
msgid "invalid member function declaration"
msgstr ""
-#: cp/decl.c:13738
+#: cp/decl.c:13730
#, gcc-internal-format
msgid "%qD is already defined in class %qT"
msgstr ""
@@ -30688,7 +30882,7 @@ msgstr ""
msgid "deleting %qT is undefined"
msgstr ""
-#: cp/decl2.c:512 cp/pt.c:4880
+#: cp/decl2.c:512 cp/pt.c:4628
#, gcc-internal-format
msgid "template declaration of %q#D"
msgstr ""
@@ -30870,110 +31064,110 @@ msgstr ""
#. We mark a lambda conversion op as deleted if we can't
#. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.c:4218
+#: cp/decl2.c:4222
#, gcc-internal-format
msgid "converting lambda which uses %<...%> to function pointer"
msgstr ""
-#: cp/decl2.c:4223
+#: cp/decl2.c:4227
#, gcc-internal-format
msgid "use of deleted function %qD"
msgstr ""
-#: cp/decl2.c:4237 cp/decl2.c:4283
+#: cp/decl2.c:4242 cp/decl2.c:4291
#, gcc-internal-format
msgid "use of %qD before deduction of %<auto%>"
msgstr ""
-#: cp/error.c:3315
+#: cp/error.c:3319
#, gcc-internal-format
msgid ""
"extended initializer lists only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3320
+#: cp/error.c:3324
#, gcc-internal-format
msgid ""
"explicit conversion operators only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3325
+#: cp/error.c:3329
#, gcc-internal-format
msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3330
+#: cp/error.c:3334
#, gcc-internal-format
msgid "lambda expressions only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3335
+#: cp/error.c:3339
#, gcc-internal-format
msgid "C++0x auto only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3339
+#: cp/error.c:3343
#, gcc-internal-format
msgid "scoped enums only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3343
+#: cp/error.c:3347
#, gcc-internal-format
msgid ""
"defaulted and deleted functions only available with -std=c++11 or -std=gnu+"
"+11"
msgstr ""
-#: cp/error.c:3348
+#: cp/error.c:3352
#, gcc-internal-format
msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3353
+#: cp/error.c:3357
#, gcc-internal-format
msgid ""
"override controls (override/final) only available with -std=c++11 or -std=gnu"
"++11"
msgstr ""
-#: cp/error.c:3358
+#: cp/error.c:3362
#, gcc-internal-format
msgid ""
"non-static data member initializers only available with -std=c++11 or -"
"std=gnu++11"
msgstr ""
-#: cp/error.c:3363
+#: cp/error.c:3367
#, gcc-internal-format
msgid "user-defined literals only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3368
+#: cp/error.c:3372
#, gcc-internal-format
msgid "delegating constructors only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/error.c:3417
+#: cp/error.c:3421
#, gcc-internal-format
msgid "incomplete type %qT used in nested name specifier"
msgstr ""
-#: cp/error.c:3421
+#: cp/error.c:3425
#, gcc-internal-format
msgid "reference to %<%T::%D%> is ambiguous"
msgstr ""
-#: cp/error.c:3426 cp/typeck.c:2213
+#: cp/error.c:3430 cp/typeck.c:2207
#, gcc-internal-format
msgid "%qD is not a member of %qT"
msgstr ""
-#: cp/error.c:3430
+#: cp/error.c:3434
#, gcc-internal-format
msgid "%qD is not a member of %qD"
msgstr ""
-#: cp/error.c:3435
+#: cp/error.c:3439
#, gcc-internal-format
msgid "%<::%D%> has not been declared"
msgstr ""
@@ -31005,58 +31199,58 @@ msgstr ""
msgid "exception handling disabled, use -fexceptions to enable"
msgstr ""
-#: cp/except.c:721
+#: cp/except.c:720
#, gcc-internal-format
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:745 cp/init.c:2314
+#: cp/except.c:744 cp/init.c:2426
#, gcc-internal-format
msgid "%qD should never be overloaded"
msgstr ""
-#: cp/except.c:849
+#: cp/except.c:848
#, gcc-internal-format
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:981
+#: cp/except.c:980
#, gcc-internal-format
msgid ""
"expression %qE of abstract class type %qT cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:984
+#: cp/except.c:983
#, gcc-internal-format
msgid "cannot declare catch parameter to be of abstract class type %qT"
msgstr ""
-#: cp/except.c:992
+#: cp/except.c:991
#, gcc-internal-format
msgid "cannot declare catch parameter to be of rvalue reference type %qT"
msgstr ""
-#: cp/except.c:1078
+#: cp/except.c:1077
#, gcc-internal-format
msgid "exception of type %qT will be caught"
msgstr ""
-#: cp/except.c:1081
+#: cp/except.c:1080
#, gcc-internal-format
msgid " by earlier handler for %qT"
msgstr ""
-#: cp/except.c:1110
+#: cp/except.c:1109
#, gcc-internal-format
msgid "%<...%> handler must be the last handler for its try block"
msgstr ""
-#: cp/except.c:1193
+#: cp/except.c:1191
#, gcc-internal-format
msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
msgstr ""
-#: cp/except.c:1195
+#: cp/except.c:1193
#, gcc-internal-format
msgid "but %q+D does not throw; perhaps it should be declared %<noexcept%>"
msgstr ""
@@ -31066,7 +31260,7 @@ msgstr ""
msgid "%qD is already a friend of class %qT"
msgstr ""
-#: cp/friend.c:235
+#: cp/friend.c:237
#, gcc-internal-format
msgid "invalid type %qT declared %<friend%>"
msgstr ""
@@ -31078,69 +31272,69 @@ msgstr ""
#. [temp.friend]
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:256 cp/friend.c:286
+#: cp/friend.c:258 cp/friend.c:288
#, gcc-internal-format
msgid "partial specialization %qT declared %<friend%>"
msgstr ""
-#: cp/friend.c:264
+#: cp/friend.c:266
#, gcc-internal-format
msgid "class %qT is implicitly friends with itself"
msgstr ""
-#: cp/friend.c:322
+#: cp/friend.c:324
#, gcc-internal-format
msgid "%qT is not a member of %qT"
msgstr ""
-#: cp/friend.c:327
+#: cp/friend.c:329
#, gcc-internal-format
msgid "%qT is not a member class template of %qT"
msgstr ""
-#: cp/friend.c:335
+#: cp/friend.c:337
#, gcc-internal-format
msgid "%qT is not a nested class of %qT"
msgstr ""
#. template <class T> friend class T;
-#: cp/friend.c:348
+#: cp/friend.c:350
#, gcc-internal-format
msgid "template parameter type %qT declared %<friend%>"
msgstr ""
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:354
+#: cp/friend.c:358
#, gcc-internal-format
msgid "%q#T is not a template"
msgstr ""
-#: cp/friend.c:376
+#: cp/friend.c:380
#, gcc-internal-format
msgid "%qD is already a friend of %qT"
msgstr ""
-#: cp/friend.c:385
+#: cp/friend.c:389
#, gcc-internal-format
msgid "%qT is already a friend of %qT"
msgstr ""
-#: cp/friend.c:509
+#: cp/friend.c:513
#, gcc-internal-format
msgid "member %qD declared as friend before type %qT defined"
msgstr ""
-#: cp/friend.c:558
+#: cp/friend.c:562
#, gcc-internal-format
msgid "friend declaration %qD in local class without prior declaration"
msgstr ""
-#: cp/friend.c:581
+#: cp/friend.c:585
#, gcc-internal-format
msgid "friend declaration %q#D declares a non-template function"
msgstr ""
-#: cp/friend.c:585
+#: cp/friend.c:589
#, gcc-internal-format
msgid ""
"(if this is not what you intended, make sure the function template has "
@@ -31157,294 +31351,314 @@ msgstr ""
msgid "cannot value-initialize array of unknown bound %qT"
msgstr ""
-#: cp/init.c:481
+#: cp/init.c:480
#, gcc-internal-format
msgid "value-initialization of function type %qT"
msgstr ""
-#: cp/init.c:487
+#: cp/init.c:486
#, gcc-internal-format
msgid "value-initialization of reference type %qT"
msgstr ""
-#: cp/init.c:544
+#: cp/init.c:543
#, gcc-internal-format
msgid ""
"constructor required before non-static data member for %qD has been parsed"
msgstr ""
-#: cp/init.c:564
+#: cp/init.c:563
#, gcc-internal-format
msgid "%qD should be initialized in the member initialization list"
msgstr ""
-#: cp/init.c:582
+#: cp/init.c:581
#, gcc-internal-format
msgid "%qD is initialized with itself"
msgstr ""
-#: cp/init.c:676
+#: cp/init.c:675
#, gcc-internal-format
msgid "invalid initializer for array member %q#D"
msgstr ""
-#: cp/init.c:689 cp/init.c:707
+#: cp/init.c:688 cp/init.c:706
#, gcc-internal-format
msgid "uninitialized member %qD with %<const%> type %qT"
msgstr ""
-#: cp/init.c:703
+#: cp/init.c:702
#, gcc-internal-format
msgid "uninitialized reference member %qD"
msgstr ""
-#: cp/init.c:863
+#: cp/init.c:862
#, gcc-internal-format
msgid "%q+D will be initialized after"
msgstr ""
-#: cp/init.c:866
+#: cp/init.c:865
#, gcc-internal-format
msgid "base %qT will be initialized after"
msgstr ""
-#: cp/init.c:869
+#: cp/init.c:868
#, gcc-internal-format
msgid " %q+#D"
msgstr ""
-#: cp/init.c:871
+#: cp/init.c:870
#, gcc-internal-format
msgid " base %qT"
msgstr ""
-#: cp/init.c:873
+#: cp/init.c:872
#, gcc-internal-format
msgid " when initialized here"
msgstr ""
-#: cp/init.c:890
+#: cp/init.c:889
#, gcc-internal-format
msgid "multiple initializations given for %qD"
msgstr ""
-#: cp/init.c:894
+#: cp/init.c:893
#, gcc-internal-format
msgid "multiple initializations given for base %qT"
msgstr ""
-#: cp/init.c:978
+#: cp/init.c:977
#, gcc-internal-format
msgid "initializations for multiple members of %qT"
msgstr ""
-#: cp/init.c:1066
+#: cp/init.c:1065
#, gcc-internal-format
msgid ""
"base class %q#T should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:1288 cp/init.c:1307
+#: cp/init.c:1287 cp/init.c:1306
#, gcc-internal-format
msgid "class %qT does not have any field named %qD"
msgstr ""
-#: cp/init.c:1294
+#: cp/init.c:1293
#, gcc-internal-format
msgid ""
"%q#D is a static data member; it can only be initialized at its definition"
msgstr ""
-#: cp/init.c:1301
+#: cp/init.c:1300
#, gcc-internal-format
msgid "%q#D is not a non-static data member of %qT"
msgstr ""
-#: cp/init.c:1340
+#: cp/init.c:1339
#, gcc-internal-format
msgid "unnamed initializer for %qT, which has no base classes"
msgstr ""
-#: cp/init.c:1348
+#: cp/init.c:1347
#, gcc-internal-format
msgid "unnamed initializer for %qT, which uses multiple inheritance"
msgstr ""
-#: cp/init.c:1395
+#: cp/init.c:1394
#, gcc-internal-format
msgid "%qD is both a direct base and an indirect virtual base"
msgstr ""
-#: cp/init.c:1403
+#: cp/init.c:1402
#, gcc-internal-format
msgid "type %qT is not a direct or virtual base of %qT"
msgstr ""
-#: cp/init.c:1406
+#: cp/init.c:1405
#, gcc-internal-format
msgid "type %qT is not a direct base of %qT"
msgstr ""
-#: cp/init.c:1491
+#: cp/init.c:1490
#, gcc-internal-format
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1784 cp/semantics.c:2784
+#: cp/init.c:1785 cp/semantics.c:2791
#, gcc-internal-format
msgid "%qT is not a class type"
msgstr ""
-#: cp/init.c:1838
+#: cp/init.c:1839
#, gcc-internal-format
msgid "incomplete type %qT does not have member %qD"
msgstr ""
-#: cp/init.c:1851
+#: cp/init.c:1852
#, gcc-internal-format
msgid "invalid pointer to bit-field %qD"
msgstr ""
-#: cp/init.c:1928
+#: cp/init.c:1932
#, gcc-internal-format
msgid "invalid use of non-static member function %qD"
msgstr ""
-#: cp/init.c:1934
+#: cp/init.c:1938
#, gcc-internal-format
msgid "invalid use of non-static data member %qD"
msgstr ""
-#: cp/init.c:2116
+#: cp/init.c:2120
#, gcc-internal-format
msgid ""
"uninitialized reference member in %q#T using %<new%> without new-initializer"
msgstr ""
-#: cp/init.c:2119
+#: cp/init.c:2123
#, gcc-internal-format
msgid "uninitialized reference member in %q#T"
msgstr ""
-#: cp/init.c:2131
+#: cp/init.c:2135
#, gcc-internal-format
msgid ""
"uninitialized const member in %q#T using %<new%> without new-initializer"
msgstr ""
-#: cp/init.c:2134
+#: cp/init.c:2138
#, gcc-internal-format
msgid "uninitialized const member in %q#T"
msgstr ""
-#: cp/init.c:2231
+#: cp/init.c:2248
+#, gcc-internal-format
+msgid "integer overflow in array size"
+msgstr ""
+
+#: cp/init.c:2258
+#, gcc-internal-format
+msgid "array size in operator new must be constant"
+msgstr ""
+
+#: cp/init.c:2272
+#, gcc-internal-format
+msgid "variably modified type not allowed in operator new"
+msgstr ""
+
+#: cp/init.c:2286
+#, gcc-internal-format
+msgid "ISO C++ does not support variable-length array types"
+msgstr ""
+
+#: cp/init.c:2294
#, gcc-internal-format
msgid "invalid type %<void%> for new"
msgstr ""
-#: cp/init.c:2274
+#: cp/init.c:2337
#, gcc-internal-format
msgid "uninitialized const in %<new%> of %q#T"
msgstr ""
-#: cp/init.c:2308
+#: cp/init.c:2420
#, gcc-internal-format
msgid "call to Java constructor with %qs undefined"
msgstr ""
-#: cp/init.c:2324
+#: cp/init.c:2436
#, gcc-internal-format
msgid "Java class %q#T object allocated using placement new"
msgstr ""
-#: cp/init.c:2354
+#: cp/init.c:2469
#, gcc-internal-format
msgid "no suitable %qD found in class %qT"
msgstr ""
-#: cp/init.c:2361 cp/search.c:1109
+#: cp/init.c:2476 cp/search.c:1099
#, gcc-internal-format
msgid "request for member %qD is ambiguous"
msgstr ""
-#: cp/init.c:2569
+#: cp/init.c:2683
#, gcc-internal-format
msgid ""
"non-constant array size in new, unable to verify length of initializer-list"
msgstr ""
-#: cp/init.c:2580
+#: cp/init.c:2694
#, gcc-internal-format
msgid "parenthesized initializer in array new"
msgstr ""
-#: cp/init.c:2815
+#: cp/init.c:2930
#, gcc-internal-format
msgid "size in array new must have integral type"
msgstr ""
-#: cp/init.c:2829
+#: cp/init.c:2944
#, gcc-internal-format
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:2838
+#: cp/init.c:2953
#, gcc-internal-format
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:2882
+#: cp/init.c:2997
#, gcc-internal-format
msgid "call to Java constructor, while %<jclass%> undefined"
msgstr ""
-#: cp/init.c:2900
+#: cp/init.c:3015
#, gcc-internal-format
msgid "can%'t find %<class$%> in %qT"
msgstr ""
-#: cp/init.c:3395
+#: cp/init.c:3510
#, gcc-internal-format
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:3459
+#: cp/init.c:3574
#, gcc-internal-format
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:3633
+#: cp/init.c:3748
#, gcc-internal-format
msgid "possible problem detected in invocation of delete operator:"
msgstr ""
-#: cp/init.c:3637
+#: cp/init.c:3752
#, gcc-internal-format
msgid ""
"neither the destructor nor the class-specific operator delete will be "
"called, even if they are declared when the class is defined"
msgstr ""
-#: cp/init.c:3653
+#: cp/init.c:3768
#, gcc-internal-format
msgid ""
"deleting object of abstract class type %qT which has non-virtual destructor "
"will cause undefined behaviour"
msgstr ""
-#: cp/init.c:3658
+#: cp/init.c:3773
#, gcc-internal-format
msgid ""
"deleting object of polymorphic class type %qT which has non-virtual "
"destructor might cause undefined behaviour"
msgstr ""
-#: cp/init.c:3680
+#: cp/init.c:3795
#, gcc-internal-format
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3952
+#: cp/init.c:4067
#, gcc-internal-format
msgid "type to vector delete is neither pointer or array type"
msgstr ""
@@ -31544,161 +31758,155 @@ msgstr ""
msgid "string literal in function template signature"
msgstr ""
-#: cp/mangle.c:3258
+#: cp/mangle.c:3261
#, gcc-internal-format
msgid "the mangled name of %qD will change in a future version of GCC"
msgstr ""
-#: cp/mangle.c:3402
+#: cp/mangle.c:3405
#, gcc-internal-format
msgid "-fabi-version=6 (or =0) avoids this error with a change in mangling"
msgstr ""
-#: cp/method.c:404
+#: cp/method.c:403
#, gcc-internal-format
msgid "generic thunk code fails for method %q#D which uses %<...%>"
msgstr ""
-#: cp/method.c:663 cp/method.c:1002
+#: cp/method.c:662 cp/method.c:1000
#, gcc-internal-format
msgid "non-static const member %q#D, can%'t use default assignment operator"
msgstr ""
-#: cp/method.c:669 cp/method.c:1008
+#: cp/method.c:668 cp/method.c:1006
#, gcc-internal-format
msgid ""
"non-static reference member %q#D, can%'t use default assignment operator"
msgstr ""
-#: cp/method.c:785
+#: cp/method.c:784
#, gcc-internal-format
msgid "synthesized method %qD first required here "
msgstr ""
-#: cp/method.c:947
+#: cp/method.c:946
#, gcc-internal-format
msgid "union member %q+D with non-trivial %qD"
msgstr ""
-#: cp/method.c:963
+#: cp/method.c:961
#, gcc-internal-format
msgid "defaulted constructor calls non-constexpr %q+D"
msgstr ""
-#: cp/method.c:1024
+#: cp/method.c:1022
#, gcc-internal-format
msgid "initializer for %q+#D is invalid"
msgstr ""
-#: cp/method.c:1047
+#: cp/method.c:1045
#, gcc-internal-format
msgid "uninitialized non-static const member %q#D"
msgstr ""
-#: cp/method.c:1054
+#: cp/method.c:1052
#, gcc-internal-format
msgid "uninitialized non-static reference member %q#D"
msgstr ""
-#: cp/method.c:1070
+#: cp/method.c:1068
#, gcc-internal-format
msgid "defaulted default constructor does not initialize %q+#D"
msgstr ""
#. A trivial constructor doesn't have any NSDMI.
-#: cp/method.c:1219
+#: cp/method.c:1220
#, gcc-internal-format
msgid ""
"defaulted default constructor does not initialize any non-static data member"
msgstr ""
-#: cp/method.c:1293
-#, gcc-internal-format
-msgid ""
-"%qT has virtual bases, default move assignment operator cannot be generated"
-msgstr ""
-
-#: cp/method.c:1383
+#: cp/method.c:1387
#, gcc-internal-format
msgid "a lambda closure type has a deleted default constructor"
msgstr ""
-#: cp/method.c:1386
+#: cp/method.c:1390
#, gcc-internal-format
msgid "a lambda closure type has a deleted copy assignment operator"
msgstr ""
-#: cp/method.c:1396
+#: cp/method.c:1400
#, gcc-internal-format
msgid ""
"%q+#D is implicitly declared as deleted because %qT declares a move "
"constructor or move assignment operator"
msgstr ""
-#: cp/method.c:1406
+#: cp/method.c:1410
#, gcc-internal-format
msgid ""
"%q+#D is implicitly deleted because the default definition would be ill-"
"formed:"
msgstr ""
-#: cp/method.c:1616
+#: cp/method.c:1622
#, gcc-internal-format
msgid "defaulted declaration %q+D"
msgstr ""
-#: cp/method.c:1618
+#: cp/method.c:1624
#, gcc-internal-format
msgid "does not match expected signature %qD"
msgstr ""
-#: cp/method.c:1632
+#: cp/method.c:1638
#, gcc-internal-format
msgid ""
"function %q+D defaulted on its first declaration with an exception-"
"specification that differs from the implicit declaration %q#D"
msgstr ""
-#: cp/method.c:1653
+#: cp/method.c:1659
#, gcc-internal-format
msgid ""
"explicitly defaulted function %q+D cannot be declared as constexpr because "
"the implicit declaration is not constexpr:"
msgstr ""
-#: cp/method.c:1675
+#: cp/method.c:1681
#, gcc-internal-format
msgid "a template cannot be defaulted"
msgstr ""
-#: cp/method.c:1703
+#: cp/method.c:1709
#, gcc-internal-format
msgid "%qD cannot be defaulted"
msgstr ""
-#: cp/method.c:1712
+#: cp/method.c:1718
#, gcc-internal-format
msgid "defaulted function %q+D with default argument"
msgstr ""
-#: cp/method.c:1800
+#: cp/method.c:1810
#, gcc-internal-format
msgid ""
"vtable layout for class %qT may not be ABI-compliantand may change in a "
"future version of GCC due to implicit virtual destructor"
msgstr ""
-#: cp/name-lookup.c:555
+#: cp/name-lookup.c:552
#, gcc-internal-format
msgid "%q#D conflicts with a previous declaration"
msgstr ""
-#: cp/name-lookup.c:557
+#: cp/name-lookup.c:554
#, gcc-internal-format
msgid "previous declaration %q+#D"
msgstr ""
-#: cp/name-lookup.c:769
+#: cp/name-lookup.c:766
#, gcc-internal-format
msgid "redeclaration of %<wchar_t%> as %qT"
msgstr ""
@@ -31709,1264 +31917,1270 @@ msgstr ""
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/name-lookup.c:799
+#: cp/name-lookup.c:796
#, gcc-internal-format
msgid "invalid redeclaration of %q+D"
msgstr ""
-#: cp/name-lookup.c:800
+#: cp/name-lookup.c:797
#, gcc-internal-format
msgid "as %qD"
msgstr ""
-#: cp/name-lookup.c:841 cp/name-lookup.c:857
+#: cp/name-lookup.c:838 cp/name-lookup.c:854
#, gcc-internal-format
msgid "declaration of %q#D with C language linkage"
msgstr ""
-#: cp/name-lookup.c:847
+#: cp/name-lookup.c:844
#, gcc-internal-format
msgid "due to different exception specifications"
msgstr ""
-#: cp/name-lookup.c:948
+#: cp/name-lookup.c:945
#, gcc-internal-format
msgid "type mismatch with previous external decl of %q#D"
msgstr ""
-#: cp/name-lookup.c:949
+#: cp/name-lookup.c:946
#, gcc-internal-format
msgid "previous external decl of %q+#D"
msgstr ""
-#: cp/name-lookup.c:1047
+#: cp/name-lookup.c:1044
#, gcc-internal-format
msgid "extern declaration of %q#D doesn%'t match"
msgstr ""
-#: cp/name-lookup.c:1048
+#: cp/name-lookup.c:1045
#, gcc-internal-format
msgid "global declaration %q+#D"
msgstr ""
-#: cp/name-lookup.c:1100 cp/name-lookup.c:1143
+#: cp/name-lookup.c:1097 cp/name-lookup.c:1140
#, gcc-internal-format
msgid "declaration of %q#D shadows a parameter"
msgstr ""
-#: cp/name-lookup.c:1146
+#: cp/name-lookup.c:1143
#, gcc-internal-format
msgid "declaration of %qD shadows a lambda capture"
msgstr ""
-#: cp/name-lookup.c:1150
+#: cp/name-lookup.c:1147
#, gcc-internal-format
msgid "declaration of %qD shadows a previous local"
msgstr ""
#. Location of previous decl is not useful in this case.
-#: cp/name-lookup.c:1180
+#: cp/name-lookup.c:1177
#, gcc-internal-format
msgid "declaration of %qD shadows a member of 'this'"
msgstr ""
-#: cp/name-lookup.c:1194
+#: cp/name-lookup.c:1191
#, gcc-internal-format
msgid "declaration of %qD shadows a global declaration"
msgstr ""
-#: cp/name-lookup.c:1329
+#: cp/name-lookup.c:1326
#, gcc-internal-format
msgid "name lookup of %qD changed"
msgstr ""
-#: cp/name-lookup.c:1330
+#: cp/name-lookup.c:1327
#, gcc-internal-format
msgid " matches this %q+D under ISO standard rules"
msgstr ""
-#: cp/name-lookup.c:1332
+#: cp/name-lookup.c:1329
#, gcc-internal-format
msgid " matches this %q+D under old rules"
msgstr ""
-#: cp/name-lookup.c:1350 cp/name-lookup.c:1358
+#: cp/name-lookup.c:1347 cp/name-lookup.c:1355
#, gcc-internal-format
msgid "name lookup of %qD changed for ISO %<for%> scoping"
msgstr ""
-#: cp/name-lookup.c:1352
+#: cp/name-lookup.c:1349
#, gcc-internal-format
msgid " cannot use obsolete binding at %q+D because it has a destructor"
msgstr ""
-#: cp/name-lookup.c:1361
+#: cp/name-lookup.c:1358
#, gcc-internal-format
msgid " using obsolete binding at %q+D"
msgstr ""
-#: cp/name-lookup.c:1367 cp/parser.c:12451
+#: cp/name-lookup.c:1364 cp/parser.c:12492
#, gcc-internal-format
msgid "(if you use %<-fpermissive%> G++ will accept your code)"
msgstr ""
-#: cp/name-lookup.c:1422
+#: cp/name-lookup.c:1419
#, gcc-internal-format
msgid "%s %s(%E) %p %d\n"
msgstr ""
-#: cp/name-lookup.c:1425
+#: cp/name-lookup.c:1422
#, gcc-internal-format
msgid "%s %s %p %d\n"
msgstr ""
-#: cp/name-lookup.c:2252
+#: cp/name-lookup.c:2253
#, gcc-internal-format
msgid "%q#D hides constructor for %q#T"
msgstr ""
-#: cp/name-lookup.c:2269
+#: cp/name-lookup.c:2270
#, gcc-internal-format
msgid "%q#D conflicts with previous using declaration %q#D"
msgstr ""
-#: cp/name-lookup.c:2292
+#: cp/name-lookup.c:2293
#, gcc-internal-format
msgid "previous non-function declaration %q+#D"
msgstr ""
-#: cp/name-lookup.c:2293
+#: cp/name-lookup.c:2294
#, gcc-internal-format
msgid "conflicts with function declaration %q#D"
msgstr ""
#. It's a nested name with template parameter dependent scope.
#. This can only be using-declaration for class member.
-#: cp/name-lookup.c:2383 cp/name-lookup.c:2408
+#: cp/name-lookup.c:2384 cp/name-lookup.c:2409
#, gcc-internal-format
msgid "%qT is not a namespace"
msgstr ""
#. 7.3.3/5
#. A using-declaration shall not name a template-id.
-#: cp/name-lookup.c:2393
+#: cp/name-lookup.c:2394
#, gcc-internal-format
msgid "a using-declaration cannot specify a template-id. Try %<using %D%>"
msgstr ""
-#: cp/name-lookup.c:2400
+#: cp/name-lookup.c:2401
#, gcc-internal-format
msgid "namespace %qD not allowed in using-declaration"
msgstr ""
-#: cp/name-lookup.c:2436
+#. C++11 7.3.3/10.
+#: cp/name-lookup.c:2425 cp/name-lookup.c:2481 cp/name-lookup.c:2518
+#: cp/name-lookup.c:2552 cp/name-lookup.c:2567
#, gcc-internal-format
-msgid "%qD not declared"
+msgid "%qD is already declared in this scope"
msgstr ""
-#: cp/name-lookup.c:2472 cp/name-lookup.c:2509 cp/name-lookup.c:2543
-#: cp/name-lookup.c:2558
+#: cp/name-lookup.c:2445
#, gcc-internal-format
-msgid "%qD is already declared in this scope"
+msgid "%qD not declared"
msgstr ""
-#: cp/name-lookup.c:3201
+#: cp/name-lookup.c:3210
#, gcc-internal-format
msgid "using-declaration for non-member at class scope"
msgstr ""
-#: cp/name-lookup.c:3208
+#: cp/name-lookup.c:3217
#, gcc-internal-format
msgid "%<%T::%D%> names destructor"
msgstr ""
-#: cp/name-lookup.c:3213
+#: cp/name-lookup.c:3222
#, gcc-internal-format
msgid "%<%T::%D%> names constructor"
msgstr ""
-#: cp/name-lookup.c:3218
+#: cp/name-lookup.c:3227
#, gcc-internal-format
msgid "%<%T::%D%> names constructor in %qT"
msgstr ""
-#: cp/name-lookup.c:3268
+#: cp/name-lookup.c:3278
#, gcc-internal-format
msgid "no members matching %<%T::%D%> in %q#T"
msgstr ""
-#: cp/name-lookup.c:3355
+#: cp/name-lookup.c:3365
#, gcc-internal-format
msgid "declaration of %qD not in a namespace surrounding %qD"
msgstr ""
-#: cp/name-lookup.c:3363
+#: cp/name-lookup.c:3373
#, gcc-internal-format
msgid "explicit qualification in declaration of %qD"
msgstr ""
-#: cp/name-lookup.c:3446
+#: cp/name-lookup.c:3456
#, gcc-internal-format
msgid "%qD should have been declared inside %qD"
msgstr ""
-#: cp/name-lookup.c:3490
+#: cp/name-lookup.c:3500
#, gcc-internal-format
msgid "%qD attribute requires a single NTBS argument"
msgstr ""
-#: cp/name-lookup.c:3497
+#: cp/name-lookup.c:3507
#, gcc-internal-format
msgid ""
"%qD attribute is meaningless since members of the anonymous namespace get "
"local symbols"
msgstr ""
-#: cp/name-lookup.c:3505 cp/name-lookup.c:3917
+#: cp/name-lookup.c:3515 cp/name-lookup.c:3927
#, gcc-internal-format
msgid "%qD attribute directive ignored"
msgstr ""
-#: cp/name-lookup.c:3569
+#: cp/name-lookup.c:3579
#, gcc-internal-format
msgid "namespace alias %qD not allowed here, assuming %qD"
msgstr ""
-#: cp/name-lookup.c:3905
+#: cp/name-lookup.c:3915
#, gcc-internal-format
msgid "strong using only meaningful at namespace scope"
msgstr ""
-#: cp/name-lookup.c:3909
+#: cp/name-lookup.c:3919
#, gcc-internal-format
msgid "current namespace %qD does not enclose strongly used namespace %qD"
msgstr ""
-#: cp/name-lookup.c:4247
+#: cp/name-lookup.c:4257
#, gcc-internal-format
msgid "maximum limit of %d namespaces searched for %qE"
msgstr ""
-#: cp/name-lookup.c:4257
+#: cp/name-lookup.c:4267
#, gcc-internal-format
msgid "suggested alternative:"
msgid_plural "suggested alternatives:"
msgstr[0] ""
msgstr[1] ""
-#: cp/name-lookup.c:4261
+#: cp/name-lookup.c:4271
#, gcc-internal-format
msgid " %qE"
msgstr ""
-#: cp/name-lookup.c:5531
+#: cp/name-lookup.c:5541
#, gcc-internal-format
msgid "argument dependent lookup finds %q+D"
msgstr ""
-#: cp/name-lookup.c:6036
+#: cp/name-lookup.c:6080
#, gcc-internal-format
msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/name-lookup.c:6045
+#: cp/name-lookup.c:6089
#, gcc-internal-format
msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/optimize.c:357
+#: cp/optimize.c:358
#, gcc-internal-format
msgid "making multiple clones of %qD"
msgstr ""
-#: cp/parser.c:751
+#: cp/parser.c:750
#, gcc-internal-format
msgid "identifier %qE is a keyword in C++11"
msgstr ""
-#: cp/parser.c:2378
+#: cp/parser.c:2374
#, gcc-internal-format
msgid "%<#pragma%> is not allowed here"
msgstr ""
-#: cp/parser.c:2409
+#: cp/parser.c:2405
#, gcc-internal-format
msgid "%<%E::%E%> has not been declared"
msgstr ""
-#: cp/parser.c:2412
+#: cp/parser.c:2408
#, gcc-internal-format
msgid "%<::%E%> has not been declared"
msgstr ""
-#: cp/parser.c:2415
+#: cp/parser.c:2411
#, gcc-internal-format
msgid "request for member %qE in non-class type %qT"
msgstr ""
-#: cp/parser.c:2418
+#: cp/parser.c:2414
#, gcc-internal-format
msgid "%<%T::%E%> has not been declared"
msgstr ""
-#: cp/parser.c:2421
+#: cp/parser.c:2417
#, gcc-internal-format
msgid "%qE has not been declared"
msgstr ""
-#: cp/parser.c:2428
+#: cp/parser.c:2424
#, gcc-internal-format
msgid "%<%E::%E%> is not a type"
msgstr ""
-#: cp/parser.c:2432
+#: cp/parser.c:2428
#, gcc-internal-format
msgid "%<%E::%E%> is not a class or namespace"
msgstr ""
-#: cp/parser.c:2437
+#: cp/parser.c:2433
#, gcc-internal-format
msgid "%<%E::%E%> is not a class, namespace, or enumeration"
msgstr ""
-#: cp/parser.c:2450
+#: cp/parser.c:2446
#, gcc-internal-format
msgid "%<::%E%> is not a type"
msgstr ""
-#: cp/parser.c:2453
+#: cp/parser.c:2449
#, gcc-internal-format
msgid "%<::%E%> is not a class or namespace"
msgstr ""
-#: cp/parser.c:2457
+#: cp/parser.c:2453
#, gcc-internal-format
msgid "%<::%E%> is not a class, namespace, or enumeration"
msgstr ""
-#: cp/parser.c:2469
+#: cp/parser.c:2465
#, gcc-internal-format
msgid "%qE is not a type"
msgstr ""
-#: cp/parser.c:2472
+#: cp/parser.c:2468
#, gcc-internal-format
msgid "%qE is not a class or namespace"
msgstr ""
-#: cp/parser.c:2476
+#: cp/parser.c:2472
#, gcc-internal-format
msgid "%qE is not a class, namespace, or enumeration"
msgstr ""
-#: cp/parser.c:2539
+#: cp/parser.c:2535
#, gcc-internal-format
msgid "new types may not be defined in a return type"
msgstr ""
-#: cp/parser.c:2541
+#: cp/parser.c:2537
#, gcc-internal-format
msgid "(perhaps a semicolon is missing after the definition of %qT)"
msgstr ""
-#: cp/parser.c:2561 cp/parser.c:5067 cp/pt.c:7269
+#: cp/parser.c:2559 cp/parser.c:5074 cp/pt.c:7017
#, gcc-internal-format
msgid "%qT is not a template"
msgstr ""
#: cp/parser.c:2563
#, gcc-internal-format
-msgid "%qE is not a template"
+msgid "%qE is not a class template"
msgstr ""
#: cp/parser.c:2565
#, gcc-internal-format
+msgid "%qE is not a template"
+msgstr ""
+
+#: cp/parser.c:2568
+#, gcc-internal-format
msgid "invalid template-id"
msgstr ""
-#: cp/parser.c:2598
+#: cp/parser.c:2601
#, gcc-internal-format
msgid "floating-point literal cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2602 cp/pt.c:13545
+#: cp/parser.c:2605 cp/pt.c:13332
#, gcc-internal-format
msgid ""
"a cast to a type other than an integral or enumeration type cannot appear in "
"a constant-expression"
msgstr ""
-#: cp/parser.c:2607
+#: cp/parser.c:2610
#, gcc-internal-format
msgid "%<typeid%> operator cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2611
+#: cp/parser.c:2614
#, gcc-internal-format
msgid "non-constant compound literals cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2615
+#: cp/parser.c:2618
#, gcc-internal-format
msgid "a function call cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2619
+#: cp/parser.c:2622
#, gcc-internal-format
msgid "an increment cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2623
+#: cp/parser.c:2626
#, gcc-internal-format
msgid "an decrement cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2627
+#: cp/parser.c:2630
#, gcc-internal-format
msgid "an array reference cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2631
+#: cp/parser.c:2634
#, gcc-internal-format
msgid "the address of a label cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2635
+#: cp/parser.c:2638
#, gcc-internal-format
msgid "calls to overloaded operators cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2639
+#: cp/parser.c:2642
#, gcc-internal-format
msgid "an assignment cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2642
+#: cp/parser.c:2645
#, gcc-internal-format
msgid "a comma operator cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2646
+#: cp/parser.c:2649
#, gcc-internal-format
msgid "a call to a constructor cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2650
+#: cp/parser.c:2653
#, gcc-internal-format
msgid "a transaction expression cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2696
+#: cp/parser.c:2699
#, gcc-internal-format
msgid "%qs cannot appear in a constant-expression"
msgstr ""
-#: cp/parser.c:2725
+#: cp/parser.c:2728
#, gcc-internal-format
msgid "invalid use of template-name %qE without an argument list"
msgstr ""
-#: cp/parser.c:2728
+#: cp/parser.c:2731
#, gcc-internal-format
msgid "invalid use of destructor %qD as a type"
msgstr ""
#. Something like 'unsigned A a;'
-#: cp/parser.c:2731
+#: cp/parser.c:2734
#, gcc-internal-format
msgid "invalid combination of multiple type-specifiers"
msgstr ""
#. Issue an error message.
-#: cp/parser.c:2735
+#: cp/parser.c:2738
#, gcc-internal-format
msgid "%qE does not name a type"
msgstr ""
-#: cp/parser.c:2744
+#: cp/parser.c:2747
#, gcc-internal-format
msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/parser.c:2771
+#: cp/parser.c:2774
#, gcc-internal-format
msgid "(perhaps %<typename %T::%E%> was intended)"
msgstr ""
-#: cp/parser.c:2786
+#: cp/parser.c:2789
#, gcc-internal-format
msgid "%qE in namespace %qE does not name a type"
msgstr ""
#. A<T>::A<T>()
-#: cp/parser.c:2792
+#: cp/parser.c:2795
#, gcc-internal-format
msgid "%<%T::%E%> names the constructor, not the type"
msgstr ""
-#: cp/parser.c:2795
+#: cp/parser.c:2798
#, gcc-internal-format
msgid "and %qT has no template constructors"
msgstr ""
-#: cp/parser.c:2800
+#: cp/parser.c:2803
#, gcc-internal-format
msgid "need %<typename%> before %<%T::%E%> because %qT is a dependent scope"
msgstr ""
-#: cp/parser.c:2804
+#: cp/parser.c:2807
#, gcc-internal-format
msgid "%qE in %q#T does not name a type"
msgstr ""
-#: cp/parser.c:3357
+#: cp/parser.c:3360
#, gcc-internal-format
msgid "expected string-literal"
msgstr ""
-#: cp/parser.c:3419
+#: cp/parser.c:3422
#, gcc-internal-format
msgid ""
"inconsistent user-defined literal suffixes %qD and %qD in string literal"
msgstr ""
-#: cp/parser.c:3462
+#: cp/parser.c:3465
#, gcc-internal-format
msgid "a wide string is invalid in this context"
msgstr ""
-#: cp/parser.c:3575 cp/parser.c:3585
+#: cp/parser.c:3578 cp/parser.c:3588
#, gcc-internal-format
msgid "unable to find character literal operator %qD with %qT argument"
msgstr ""
-#: cp/parser.c:3682
+#: cp/parser.c:3685
#, gcc-internal-format
msgid "unable to find numeric literal operator %qD"
msgstr ""
-#: cp/parser.c:3709
+#: cp/parser.c:3712
#, gcc-internal-format
msgid "unable to find string literal operator %qD"
msgstr ""
-#: cp/parser.c:3718
+#: cp/parser.c:3721
#, gcc-internal-format
msgid "unable to find string literal operator %qD with %qT, %qT arguments"
msgstr ""
-#: cp/parser.c:3778 cp/parser.c:10345
+#: cp/parser.c:3781 cp/parser.c:10384
#, gcc-internal-format
msgid "expected declaration"
msgstr ""
-#: cp/parser.c:3881
+#: cp/parser.c:3884
#, gcc-internal-format
msgid "fixed-point types not supported in C++"
msgstr ""
-#: cp/parser.c:3972
+#: cp/parser.c:3975
#, gcc-internal-format
msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
-#: cp/parser.c:3984
+#: cp/parser.c:3987
#, gcc-internal-format
msgid ""
"statement-expressions are not allowed outside functions nor in template-"
"argument lists"
msgstr ""
-#: cp/parser.c:4044 cp/parser.c:4196 cp/parser.c:4349
+#: cp/parser.c:4047 cp/parser.c:4199 cp/parser.c:4352
#, gcc-internal-format
msgid "expected primary-expression"
msgstr ""
-#: cp/parser.c:4074
+#: cp/parser.c:4077
#, gcc-internal-format
msgid "%<this%> may not be used in this context"
msgstr ""
-#: cp/parser.c:4191
+#: cp/parser.c:4194
#, gcc-internal-format
msgid "a template declaration cannot appear at block scope"
msgstr ""
-#: cp/parser.c:4325
+#: cp/parser.c:4328
#, gcc-internal-format
msgid "local variable %qD may not appear in this context"
msgstr ""
-#: cp/parser.c:4489
+#: cp/parser.c:4493
#, gcc-internal-format
msgid "expected id-expression"
msgstr ""
-#: cp/parser.c:4619
+#: cp/parser.c:4625
#, gcc-internal-format
msgid "scope %qT before %<~%> is not a class-name"
msgstr ""
-#: cp/parser.c:4741
+#: cp/parser.c:4747
#, gcc-internal-format
msgid "declaration of %<~%T%> as member of %qT"
msgstr ""
-#: cp/parser.c:4756
+#: cp/parser.c:4762
#, gcc-internal-format
msgid "typedef-name %qD used as destructor declarator"
msgstr ""
-#: cp/parser.c:4789
+#: cp/parser.c:4796
#, gcc-internal-format
msgid ""
"literal operator suffixes not preceded by %<_%> are reserved for future "
"standardization"
msgstr ""
-#: cp/parser.c:4800 cp/parser.c:16243
+#: cp/parser.c:4807 cp/parser.c:16292
#, gcc-internal-format
msgid "expected unqualified-id"
msgstr ""
-#: cp/parser.c:4907
+#: cp/parser.c:4914
#, gcc-internal-format
msgid "found %<:%> in nested-name-specifier, expected %<::%>"
msgstr ""
-#: cp/parser.c:4976
+#: cp/parser.c:4983
#, gcc-internal-format
msgid "decltype evaluates to %qT, which is not a class or enumeration type"
msgstr ""
-#: cp/parser.c:5068 cp/typeck.c:2484 cp/typeck.c:2504
+#: cp/parser.c:5075 cp/typeck.c:2478 cp/typeck.c:2498
#, gcc-internal-format
msgid "%qD is not a template"
msgstr ""
-#: cp/parser.c:5146
+#: cp/parser.c:5153
#, gcc-internal-format
msgid "expected nested-name-specifier"
msgstr ""
-#: cp/parser.c:5343 cp/parser.c:7062
+#: cp/parser.c:5350 cp/parser.c:7101
#, gcc-internal-format
msgid "types may not be defined in casts"
msgstr ""
-#: cp/parser.c:5403
+#: cp/parser.c:5410
#, gcc-internal-format
msgid "types may not be defined in a %<typeid%> expression"
msgstr ""
#. Warn the user that a compound literal is not
#. allowed in standard C++.
-#: cp/parser.c:5512
+#: cp/parser.c:5557
#, gcc-internal-format
msgid "ISO C++ forbids compound-literals"
msgstr ""
-#: cp/parser.c:5904
+#: cp/parser.c:5949
#, gcc-internal-format
msgid "%qE does not have class type"
msgstr ""
-#: cp/parser.c:5993 cp/typeck.c:2393
+#: cp/parser.c:6038 cp/typeck.c:2387
#, gcc-internal-format
msgid "invalid use of %qD"
msgstr ""
-#: cp/parser.c:6002
+#: cp/parser.c:6047
#, gcc-internal-format
msgid "%<%D::%D%> is not a class member"
msgstr ""
-#: cp/parser.c:6263
+#: cp/parser.c:6309
#, gcc-internal-format
msgid "non-scalar type"
msgstr ""
-#: cp/parser.c:6357
+#: cp/parser.c:6403
#, gcc-internal-format
msgid "ISO C++ does not allow %<alignof%> with a non-type"
msgstr ""
-#: cp/parser.c:6421
+#: cp/parser.c:6467
#, gcc-internal-format
msgid "types may not be defined in %<noexcept%> expressions"
msgstr ""
-#: cp/parser.c:6650
+#: cp/parser.c:6696
#, gcc-internal-format
msgid "types may not be defined in a new-expression"
msgstr ""
-#: cp/parser.c:6663
+#: cp/parser.c:6709
#, gcc-internal-format
msgid "array bound forbidden after parenthesized type-id"
msgstr ""
-#: cp/parser.c:6665
+#: cp/parser.c:6711
#, gcc-internal-format
msgid "try removing the parentheses around the type-id"
msgstr ""
-#: cp/parser.c:6744
+#: cp/parser.c:6790
#, gcc-internal-format
msgid "types may not be defined in a new-type-id"
msgstr ""
-#: cp/parser.c:6871
+#: cp/parser.c:6916
#, gcc-internal-format
msgid "expression in new-declarator must have integral or enumeration type"
msgstr ""
-#: cp/parser.c:7127
+#: cp/parser.c:7166
#, gcc-internal-format
msgid "use of old-style cast"
msgstr ""
-#: cp/parser.c:7262
+#: cp/parser.c:7301
#, gcc-internal-format
msgid "%<>>%> operator is treated as two right angle brackets in C++11"
msgstr ""
-#: cp/parser.c:7265
+#: cp/parser.c:7304
#, gcc-internal-format
msgid "suggest parentheses around %<>>%> expression"
msgstr ""
-#: cp/parser.c:7409
+#: cp/parser.c:7448
#, gcc-internal-format
msgid "ISO C++ does not allow ?: with omitted middle operand"
msgstr ""
-#: cp/parser.c:8036
+#: cp/parser.c:8075
#, gcc-internal-format
msgid "lambda-expression in unevaluated context"
msgstr ""
-#: cp/parser.c:8165
+#: cp/parser.c:8204
#, gcc-internal-format
msgid "expected end of capture-list"
msgstr ""
-#: cp/parser.c:8179
+#: cp/parser.c:8218
#, gcc-internal-format
msgid ""
"explicit by-copy capture of %<this%> redundant with by-copy capture default"
msgstr ""
-#: cp/parser.c:8220
+#: cp/parser.c:8259
#, gcc-internal-format
msgid "ISO C++ does not allow initializers in lambda expression capture lists"
msgstr ""
-#: cp/parser.c:8253
+#: cp/parser.c:8292
#, gcc-internal-format
msgid "capture of non-variable %qD "
msgstr ""
-#: cp/parser.c:8255 cp/parser.c:8264
+#: cp/parser.c:8294 cp/parser.c:8303
#, gcc-internal-format
msgid "%q+#D declared here"
msgstr ""
-#: cp/parser.c:8261
+#: cp/parser.c:8300
#, gcc-internal-format
msgid "capture of variable %qD with non-automatic storage duration"
msgstr ""
-#: cp/parser.c:8290
+#: cp/parser.c:8329
#, gcc-internal-format
msgid "explicit by-copy capture of %qD redundant with by-copy capture default"
msgstr ""
-#: cp/parser.c:8295
+#: cp/parser.c:8334
#, gcc-internal-format
msgid ""
"explicit by-reference capture of %qD redundant with by-reference capture "
"default"
msgstr ""
-#: cp/parser.c:8350
+#: cp/parser.c:8389
#, gcc-internal-format
msgid "default argument specified for lambda parameter"
msgstr ""
-#: cp/parser.c:8750
+#: cp/parser.c:8789
#, gcc-internal-format
msgid "expected labeled-statement"
msgstr ""
-#: cp/parser.c:8788
+#: cp/parser.c:8827
#, gcc-internal-format
msgid "case label %qE not within a switch statement"
msgstr ""
-#: cp/parser.c:8863
+#: cp/parser.c:8902
#, gcc-internal-format
msgid "need %<typename%> before %qE because %qT is a dependent scope"
msgstr ""
-#: cp/parser.c:8872
+#: cp/parser.c:8911
#, gcc-internal-format
msgid "%<%T::%D%> names the constructor, not the type"
msgstr ""
-#: cp/parser.c:8921
+#: cp/parser.c:8960
#, gcc-internal-format
msgid "compound-statement in constexpr function"
msgstr ""
-#: cp/parser.c:9133 cp/parser.c:22376
+#: cp/parser.c:9172 cp/parser.c:22392
#, gcc-internal-format
msgid "expected selection-statement"
msgstr ""
-#: cp/parser.c:9166
+#: cp/parser.c:9205
#, gcc-internal-format
msgid "types may not be defined in conditions"
msgstr ""
-#: cp/parser.c:9511
+#: cp/parser.c:9550
#, gcc-internal-format
msgid "range-based %<for%> expression of type %qT has incomplete type"
msgstr ""
-#: cp/parser.c:9549
+#: cp/parser.c:9588
#, gcc-internal-format
msgid ""
"range-based %<for%> expression of type %qT has an %<end%> member but not a "
"%<begin%>"
msgstr ""
-#: cp/parser.c:9555
+#: cp/parser.c:9594
#, gcc-internal-format
msgid ""
"range-based %<for%> expression of type %qT has a %<begin%> member but not an "
"%<end%>"
msgstr ""
-#: cp/parser.c:9593
+#: cp/parser.c:9632
#, gcc-internal-format
msgid ""
"inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
msgstr ""
-#: cp/parser.c:9724 cp/parser.c:22379
+#: cp/parser.c:9763 cp/parser.c:22395
#, gcc-internal-format
msgid "expected iteration-statement"
msgstr ""
-#: cp/parser.c:9771
+#: cp/parser.c:9810
#, gcc-internal-format
msgid "range-based %<for%> loops are not allowed in C++98 mode"
msgstr ""
#. Issue a warning about this use of a GNU extension.
-#: cp/parser.c:9893
+#: cp/parser.c:9932
#, gcc-internal-format
msgid "ISO C++ forbids computed gotos"
msgstr ""
-#: cp/parser.c:9906 cp/parser.c:22382
+#: cp/parser.c:9945 cp/parser.c:22398
#, gcc-internal-format
msgid "expected jump-statement"
msgstr ""
-#: cp/parser.c:10038 cp/parser.c:18876
+#: cp/parser.c:10077 cp/parser.c:18920
#, gcc-internal-format
msgid "extra %<;%>"
msgstr ""
-#: cp/parser.c:10272
+#: cp/parser.c:10311
#, gcc-internal-format
msgid "%<__label__%> not at the beginning of a block"
msgstr ""
-#: cp/parser.c:10423
+#: cp/parser.c:10462
#, gcc-internal-format
msgid "mixing declarations and function-definitions is forbidden"
msgstr ""
-#: cp/parser.c:10571
+#: cp/parser.c:10610
#, gcc-internal-format
msgid "%<friend%> used outside of class"
msgstr ""
#. Complain about `auto' as a storage specifier, if
#. we're complaining about C++0x compatibility.
-#: cp/parser.c:10630
+#: cp/parser.c:10669
#, gcc-internal-format
msgid "%<auto%> changes meaning in C++11; please remove it"
msgstr ""
-#: cp/parser.c:10666
+#: cp/parser.c:10705
#, gcc-internal-format
msgid "decl-specifier invalid in condition"
msgstr ""
-#: cp/parser.c:10758
+#: cp/parser.c:10797
#, gcc-internal-format
msgid "class definition may not be declared a friend"
msgstr ""
-#: cp/parser.c:10826 cp/parser.c:19254
+#: cp/parser.c:10865 cp/parser.c:19298
#, gcc-internal-format
msgid "templates may not be %<virtual%>"
msgstr ""
-#: cp/parser.c:10865
+#: cp/parser.c:10904
#, gcc-internal-format
msgid "invalid linkage-specification"
msgstr ""
-#: cp/parser.c:11000
+#: cp/parser.c:11039
#, gcc-internal-format
msgid "types may not be defined in %<decltype%> expressions"
msgstr ""
-#: cp/parser.c:11259
+#: cp/parser.c:11298
#, gcc-internal-format
msgid "invalid use of %<auto%> in conversion operator"
msgstr ""
-#: cp/parser.c:11263
+#: cp/parser.c:11302
#, gcc-internal-format
msgid ""
"use of %<auto%> in member template conversion operator can never be deduced"
msgstr ""
-#: cp/parser.c:11349
+#: cp/parser.c:11388
#, gcc-internal-format
msgid "only constructors take member initializers"
msgstr ""
-#: cp/parser.c:11371
+#: cp/parser.c:11410
#, gcc-internal-format
msgid "cannot expand initializer for member %<%D%>"
msgstr ""
-#: cp/parser.c:11383
+#: cp/parser.c:11422
#, gcc-internal-format
msgid "mem-initializer for %qD follows constructor delegation"
msgstr ""
-#: cp/parser.c:11395
+#: cp/parser.c:11434
#, gcc-internal-format
msgid "constructor delegation follows mem-initializer for %qD"
msgstr ""
-#: cp/parser.c:11447
+#: cp/parser.c:11486
#, gcc-internal-format
msgid "anachronistic old-style base class initializer"
msgstr ""
-#: cp/parser.c:11515
+#: cp/parser.c:11554
#, gcc-internal-format
msgid ""
"keyword %<typename%> not allowed in this context (a qualified member "
"initializer is implicitly a type)"
msgstr ""
-#: cp/parser.c:11832
+#: cp/parser.c:11871
#, gcc-internal-format
msgid "expected empty string after %<operator%> keyword"
msgstr ""
-#: cp/parser.c:11850
+#: cp/parser.c:11889
#, gcc-internal-format
msgid "expected suffix identifier"
msgstr ""
-#: cp/parser.c:11855
+#: cp/parser.c:11894
#, gcc-internal-format
msgid "missing space between %<\"\"%> and suffix identifier"
msgstr ""
-#: cp/parser.c:11870
+#: cp/parser.c:11909
#, gcc-internal-format
msgid "expected operator"
msgstr ""
#. Warn that we do not support `export'.
-#: cp/parser.c:11907
+#: cp/parser.c:11946
#, gcc-internal-format
msgid "keyword %<export%> not implemented, and will be ignored"
msgstr ""
-#: cp/parser.c:12098 cp/parser.c:12196 cp/parser.c:12303 cp/parser.c:17343
+#: cp/parser.c:12136 cp/parser.c:12234 cp/parser.c:12341 cp/parser.c:17392
#, gcc-internal-format
msgid "template parameter pack %qD cannot have a default argument"
msgstr ""
-#: cp/parser.c:12102 cp/parser.c:17351
+#: cp/parser.c:12140 cp/parser.c:17400
#, gcc-internal-format
msgid "template parameter pack cannot have a default argument"
msgstr ""
-#: cp/parser.c:12200 cp/parser.c:12307
+#: cp/parser.c:12238 cp/parser.c:12345
#, gcc-internal-format
msgid "template parameter packs cannot have default arguments"
msgstr ""
-#: cp/parser.c:12389
+#: cp/parser.c:12429
#, gcc-internal-format
msgid "expected template-id"
msgstr ""
-#: cp/parser.c:12436 cp/parser.c:22340
+#: cp/parser.c:12477 cp/parser.c:22356
#, gcc-internal-format
msgid "expected %<<%>"
msgstr ""
-#: cp/parser.c:12443
+#: cp/parser.c:12484
#, gcc-internal-format
msgid "%<<::%> cannot begin a template-argument list"
msgstr ""
-#: cp/parser.c:12447
+#: cp/parser.c:12488
#, gcc-internal-format
msgid ""
"%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> "
"and %<::%>"
msgstr ""
-#: cp/parser.c:12527
+#: cp/parser.c:12568
#, gcc-internal-format
msgid "parse error in template argument list"
msgstr ""
#. The name does not name a template.
-#: cp/parser.c:12595 cp/parser.c:12710 cp/parser.c:12922
+#: cp/parser.c:12637 cp/parser.c:12752 cp/parser.c:12964
#, gcc-internal-format
msgid "expected template-name"
msgstr ""
#. Explain what went wrong.
-#: cp/parser.c:12641
+#: cp/parser.c:12683
#, gcc-internal-format
msgid "non-template %qD used as template"
msgstr ""
-#: cp/parser.c:12643
+#: cp/parser.c:12685
#, gcc-internal-format
msgid "use %<%T::template %D%> to indicate that it is a template"
msgstr ""
-#: cp/parser.c:12777
+#: cp/parser.c:12819
#, gcc-internal-format
msgid "expected parameter pack before %<...%>"
msgstr ""
-#: cp/parser.c:12887 cp/parser.c:12905 cp/parser.c:13049
+#: cp/parser.c:12929 cp/parser.c:12947 cp/parser.c:13091
#, gcc-internal-format
msgid "expected template-argument"
msgstr ""
-#: cp/parser.c:13032
+#: cp/parser.c:13074
#, gcc-internal-format
msgid "invalid non-type template argument"
msgstr ""
-#: cp/parser.c:13149
+#: cp/parser.c:13191
#, gcc-internal-format
msgid "explicit instantiation shall not use %<inline%> specifier"
msgstr ""
-#: cp/parser.c:13153
+#: cp/parser.c:13195
#, gcc-internal-format
msgid "explicit instantiation shall not use %<constexpr%> specifier"
msgstr ""
-#: cp/parser.c:13212
+#: cp/parser.c:13254
#, gcc-internal-format
msgid "template specialization with C linkage"
msgstr ""
-#: cp/parser.c:13432
+#: cp/parser.c:13474
#, gcc-internal-format
msgid "expected type specifier"
msgstr ""
-#: cp/parser.c:13676
+#: cp/parser.c:13720
#, gcc-internal-format
msgid "expected template-id for type"
msgstr ""
-#: cp/parser.c:13703
+#: cp/parser.c:13747
#, gcc-internal-format
msgid "expected type-name"
msgstr ""
-#: cp/parser.c:13940
+#: cp/parser.c:13986
#, gcc-internal-format
msgid ""
"elaborated-type-specifier for a scoped enum must not use the %<%D%> keyword"
msgstr ""
-#: cp/parser.c:14125
+#: cp/parser.c:14172
#, gcc-internal-format
msgid "declaration %qD does not declare anything"
msgstr ""
-#: cp/parser.c:14211
+#: cp/parser.c:14258
#, gcc-internal-format
msgid "attributes ignored on uninstantiated type"
msgstr ""
-#: cp/parser.c:14215
+#: cp/parser.c:14262
#, gcc-internal-format
msgid "attributes ignored on template instantiation"
msgstr ""
-#: cp/parser.c:14220
+#: cp/parser.c:14267
#, gcc-internal-format
msgid ""
"attributes ignored on elaborated-type-specifier that is not a forward "
"declaration"
msgstr ""
-#: cp/parser.c:14353
+#: cp/parser.c:14401
#, gcc-internal-format
msgid "%qD is an enumeration template"
msgstr ""
-#: cp/parser.c:14361
+#: cp/parser.c:14409
#, gcc-internal-format
msgid "%qD is not an enumerator-name"
msgstr ""
-#: cp/parser.c:14424
+#: cp/parser.c:14472
#, gcc-internal-format
msgid "expected %<;%> or %<{%>"
msgstr ""
-#: cp/parser.c:14472
+#: cp/parser.c:14520
#, gcc-internal-format
msgid "cannot add an enumerator list to a template instantiation"
msgstr ""
-#: cp/parser.c:14481 cp/parser.c:18449
+#: cp/parser.c:14529 cp/parser.c:18485
#, gcc-internal-format
msgid "declaration of %qD in namespace %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:14486 cp/parser.c:18454
+#: cp/parser.c:14534 cp/parser.c:18490
#, gcc-internal-format
msgid "declaration of %qD in %qD which does not enclose %qD"
msgstr ""
-#: cp/parser.c:14509
+#: cp/parser.c:14557
#, gcc-internal-format
msgid "multiple definition of %q#T"
msgstr ""
-#: cp/parser.c:14536
+#: cp/parser.c:14584
#, gcc-internal-format
msgid "opaque-enum-specifier without name"
msgstr ""
-#: cp/parser.c:14539
+#: cp/parser.c:14587
#, gcc-internal-format
msgid "opaque-enum-specifier must use a simple identifier"
msgstr ""
-#: cp/parser.c:14715
+#: cp/parser.c:14763
#, gcc-internal-format
msgid "%qD is not a namespace-name"
msgstr ""
-#: cp/parser.c:14716
+#: cp/parser.c:14764
#, gcc-internal-format
msgid "expected namespace-name"
msgstr ""
-#: cp/parser.c:14841
+#: cp/parser.c:14889
#, gcc-internal-format
msgid "%<namespace%> definition is not allowed here"
msgstr ""
-#: cp/parser.c:14987
+#: cp/parser.c:15035
#, gcc-internal-format
msgid "a template-id may not appear in a using-declaration"
msgstr ""
-#: cp/parser.c:15027
+#: cp/parser.c:15075
#, gcc-internal-format
msgid ""
"access declarations are deprecated in favour of using-declarations; "
"suggestion: add the %<using%> keyword"
msgstr ""
-#: cp/parser.c:15087
+#: cp/parser.c:15135
#, gcc-internal-format
msgid "types may not be defined in alias template declarations"
msgstr ""
-#: cp/parser.c:15544
+#: cp/parser.c:15592
#, gcc-internal-format
msgid "a function-definition is not allowed here"
msgstr ""
-#: cp/parser.c:15556
+#: cp/parser.c:15604
#, gcc-internal-format
msgid "an asm-specification is not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:15560
+#: cp/parser.c:15608
#, gcc-internal-format
msgid "attributes are not allowed on a function-definition"
msgstr ""
-#: cp/parser.c:15597
+#: cp/parser.c:15645
#, gcc-internal-format
msgid "expected constructor, destructor, or type conversion"
msgstr ""
#. Anything else is an error.
-#: cp/parser.c:15632 cp/parser.c:17514
+#: cp/parser.c:15680 cp/parser.c:17563
#, gcc-internal-format
msgid "expected initializer"
msgstr ""
-#: cp/parser.c:15652
+#: cp/parser.c:15700
#, gcc-internal-format
msgid "invalid type in declaration"
msgstr ""
-#: cp/parser.c:15728
+#: cp/parser.c:15776
#, gcc-internal-format
msgid "initializer provided for function"
msgstr ""
-#: cp/parser.c:15762
+#: cp/parser.c:15810
#, gcc-internal-format
msgid "attributes after parenthesized initializer ignored"
msgstr ""
-#: cp/parser.c:16166
+#: cp/parser.c:16215
#, gcc-internal-format
msgid "array bound is not an integer constant"
msgstr ""
-#: cp/parser.c:16287
+#: cp/parser.c:16336
#, gcc-internal-format
msgid "cannot define member of dependent typedef %qT"
msgstr ""
-#: cp/parser.c:16291
+#: cp/parser.c:16340
#, gcc-internal-format
msgid "%<%T::%E%> is not a type"
msgstr ""
-#: cp/parser.c:16319
+#: cp/parser.c:16368
#, gcc-internal-format
msgid "invalid use of constructor as a template"
msgstr ""
-#: cp/parser.c:16321
+#: cp/parser.c:16370
#, gcc-internal-format
msgid ""
"use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified "
@@ -32977,256 +33191,256 @@ msgstr ""
#. here because we do not have enough
#. information about its original syntactic
#. form.
-#: cp/parser.c:16338
+#: cp/parser.c:16387
#, gcc-internal-format
msgid "invalid declarator"
msgstr ""
-#: cp/parser.c:16404
+#: cp/parser.c:16453
#, gcc-internal-format
msgid "expected declarator"
msgstr ""
-#: cp/parser.c:16499
+#: cp/parser.c:16548
#, gcc-internal-format
msgid "%qD is a namespace"
msgstr ""
-#: cp/parser.c:16501
+#: cp/parser.c:16550
#, gcc-internal-format
msgid "cannot form pointer to member of non-class %q#T"
msgstr ""
-#: cp/parser.c:16518
+#: cp/parser.c:16567
#, gcc-internal-format
msgid "expected ptr-operator"
msgstr ""
-#: cp/parser.c:16577
+#: cp/parser.c:16626
#, gcc-internal-format
msgid "duplicate cv-qualifier"
msgstr ""
-#: cp/parser.c:16635
+#: cp/parser.c:16684
#, gcc-internal-format
msgid "duplicate virt-specifier"
msgstr ""
-#: cp/parser.c:16797 cp/typeck2.c:450 cp/typeck2.c:1689
+#: cp/parser.c:16846 cp/typeck2.c:451 cp/typeck2.c:1694
#, gcc-internal-format
msgid "invalid use of %<auto%>"
msgstr ""
-#: cp/parser.c:16816
+#: cp/parser.c:16865
#, gcc-internal-format
msgid "types may not be defined in template arguments"
msgstr ""
-#: cp/parser.c:16897
+#: cp/parser.c:16946
#, gcc-internal-format
msgid "expected type-specifier"
msgstr ""
-#: cp/parser.c:17139
+#: cp/parser.c:17188
#, gcc-internal-format
msgid "expected %<,%> or %<...%>"
msgstr ""
-#: cp/parser.c:17196
+#: cp/parser.c:17245
#, gcc-internal-format
msgid "types may not be defined in parameter types"
msgstr ""
-#: cp/parser.c:17322
+#: cp/parser.c:17371
#, gcc-internal-format
msgid "deprecated use of default argument for parameter of non-function"
msgstr ""
-#: cp/parser.c:17326
+#: cp/parser.c:17375
#, gcc-internal-format
msgid "default arguments are only permitted for function parameters"
msgstr ""
-#: cp/parser.c:17345
+#: cp/parser.c:17394
#, gcc-internal-format
msgid "parameter pack %qD cannot have a default argument"
msgstr ""
-#: cp/parser.c:17353
+#: cp/parser.c:17402
#, gcc-internal-format
msgid "parameter pack cannot have a default argument"
msgstr ""
-#: cp/parser.c:17642
+#: cp/parser.c:17691
#, gcc-internal-format
msgid "ISO C++ does not allow designated initializers"
msgstr ""
-#: cp/parser.c:17656
+#: cp/parser.c:17705
#, gcc-internal-format
msgid "ISO C++ does not allow C99 designated initializers"
msgstr ""
-#: cp/parser.c:17760 cp/parser.c:17884
+#: cp/parser.c:17809 cp/parser.c:17934
#, gcc-internal-format
msgid "expected class-name"
msgstr ""
-#: cp/parser.c:18072
+#: cp/parser.c:18108
#, gcc-internal-format
msgid "expected %<;%> after class definition"
msgstr ""
-#: cp/parser.c:18074
+#: cp/parser.c:18110
#, gcc-internal-format
msgid "expected %<;%> after struct definition"
msgstr ""
-#: cp/parser.c:18076
+#: cp/parser.c:18112
#, gcc-internal-format
msgid "expected %<;%> after union definition"
msgstr ""
-#: cp/parser.c:18397
+#: cp/parser.c:18433
#, gcc-internal-format
msgid "expected %<{%> or %<:%>"
msgstr ""
-#: cp/parser.c:18408
+#: cp/parser.c:18444
#, gcc-internal-format
msgid "cannot specify %<override%> for a class"
msgstr ""
-#: cp/parser.c:18416
+#: cp/parser.c:18452
#, gcc-internal-format
msgid "global qualification of class name is invalid"
msgstr ""
-#: cp/parser.c:18423
+#: cp/parser.c:18459
#, gcc-internal-format
msgid "qualified name does not name a class"
msgstr ""
-#: cp/parser.c:18435
+#: cp/parser.c:18471
#, gcc-internal-format
msgid "invalid class name in declaration of %qD"
msgstr ""
-#: cp/parser.c:18468
+#: cp/parser.c:18504
#, gcc-internal-format
msgid "extra qualification not allowed"
msgstr ""
-#: cp/parser.c:18480
+#: cp/parser.c:18516
#, gcc-internal-format
msgid "an explicit specialization must be preceded by %<template <>%>"
msgstr ""
-#: cp/parser.c:18510
+#: cp/parser.c:18546
#, gcc-internal-format
msgid "function template %qD redeclared as a class template"
msgstr ""
-#: cp/parser.c:18541
+#: cp/parser.c:18577
#, gcc-internal-format
msgid "could not resolve typename type"
msgstr ""
-#: cp/parser.c:18593
+#: cp/parser.c:18629
#, gcc-internal-format
msgid "previous definition of %q+#T"
msgstr ""
-#: cp/parser.c:18666 cp/parser.c:22385
+#: cp/parser.c:18710 cp/parser.c:22401
#, gcc-internal-format
msgid "expected class-key"
msgstr ""
-#: cp/parser.c:18895
+#: cp/parser.c:18939
#, gcc-internal-format
msgid "in C++03 a class-key must be used when declaring a friend"
msgstr ""
-#: cp/parser.c:18913
+#: cp/parser.c:18957
#, gcc-internal-format
msgid "friend declaration does not name a class or function"
msgstr ""
-#: cp/parser.c:18931
+#: cp/parser.c:18975
#, gcc-internal-format
msgid "a storage class on an anonymous aggregate in class scope is not allowed"
msgstr ""
-#: cp/parser.c:19129
+#: cp/parser.c:19173
#, gcc-internal-format
msgid "pure-specifier on function-definition"
msgstr ""
-#: cp/parser.c:19177
+#: cp/parser.c:19221
#, gcc-internal-format
msgid "expected %<;%> at end of member declaration"
msgstr ""
-#: cp/parser.c:19248
+#: cp/parser.c:19292
#, gcc-internal-format
msgid "invalid pure specifier (only %<= 0%> is allowed)"
msgstr ""
-#: cp/parser.c:19283
+#: cp/parser.c:19327
#, gcc-internal-format
msgid "a brace-enclosed initializer is not allowed here"
msgstr ""
-#: cp/parser.c:19414
+#: cp/parser.c:19458
#, gcc-internal-format
msgid "%<virtual%> specified more than once in base-specified"
msgstr ""
-#: cp/parser.c:19434
+#: cp/parser.c:19478
#, gcc-internal-format
msgid "more than one access specifier in base-specified"
msgstr ""
-#: cp/parser.c:19458
+#: cp/parser.c:19502
#, gcc-internal-format
msgid "keyword %<typename%> not allowed outside of templates"
msgstr ""
-#: cp/parser.c:19461
+#: cp/parser.c:19505
#, gcc-internal-format
msgid ""
"keyword %<typename%> not allowed in this context (the base class is "
"implicitly a type)"
msgstr ""
-#: cp/parser.c:19554 cp/parser.c:19636
+#: cp/parser.c:19598 cp/parser.c:19680
#, gcc-internal-format
msgid "types may not be defined in an exception-specification"
msgstr ""
-#: cp/parser.c:19618
+#: cp/parser.c:19662
#, gcc-internal-format
msgid ""
"dynamic exception specifications are deprecated in C++0x; use %<noexcept%> "
"instead"
msgstr ""
-#: cp/parser.c:19817
+#: cp/parser.c:19861
#, gcc-internal-format
msgid "types may not be defined in exception-declarations"
msgstr ""
-#: cp/parser.c:20718
+#: cp/parser.c:20732
#, gcc-internal-format
msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
msgstr ""
-#: cp/parser.c:20723
+#: cp/parser.c:20737
#, gcc-internal-format
msgid "invalid declaration of %<%T::%E%>"
msgstr ""
-#: cp/parser.c:20727
+#: cp/parser.c:20741
#, gcc-internal-format
msgid "too few template-parameter-lists"
msgstr ""
@@ -33235,497 +33449,519 @@ msgstr ""
#. something like:
#.
#. template <class T> template <class U> void S::f();
-#: cp/parser.c:20734
+#: cp/parser.c:20748
#, gcc-internal-format
msgid "too many template-parameter-lists"
msgstr ""
-#: cp/parser.c:21031
+#: cp/parser.c:21045
#, gcc-internal-format
msgid "named return values are no longer supported"
msgstr ""
-#: cp/parser.c:21118
+#: cp/parser.c:21132
#, gcc-internal-format
msgid "invalid declaration of member template in local class"
msgstr ""
-#: cp/parser.c:21127
+#: cp/parser.c:21141
#, gcc-internal-format
msgid "template with C linkage"
msgstr ""
-#: cp/parser.c:21146
+#: cp/parser.c:21160
#, gcc-internal-format
msgid "invalid explicit specialization"
msgstr ""
-#: cp/parser.c:21232
+#: cp/parser.c:21247
#, gcc-internal-format
msgid ""
"literal operator template %qD has invalid parameter list. Expected non-type "
"template argument pack <char...>"
msgstr ""
-#: cp/parser.c:21306
+#: cp/parser.c:21321
#, gcc-internal-format
msgid "template declaration of %<typedef%>"
msgstr ""
-#: cp/parser.c:21383
+#: cp/parser.c:21398
#, gcc-internal-format
msgid "explicit template specialization cannot have a storage class"
msgstr ""
-#: cp/parser.c:21618
+#: cp/parser.c:21636
#, gcc-internal-format
msgid "%<>>%> should be %<> >%> within a nested template argument list"
msgstr ""
-#: cp/parser.c:21631
+#: cp/parser.c:21649
#, gcc-internal-format
msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
msgstr ""
-#: cp/parser.c:21991
+#: cp/parser.c:22007
#, gcc-internal-format
msgid "%<sizeof...%> argument must be surrounded by parentheses"
msgstr ""
-#: cp/parser.c:22043
+#: cp/parser.c:22059
#, gcc-internal-format
msgid "invalid use of %qD in linkage specification"
msgstr ""
-#: cp/parser.c:22057
+#: cp/parser.c:22073
#, gcc-internal-format
msgid "%<__thread%> before %qD"
msgstr ""
-#: cp/parser.c:22177
+#: cp/parser.c:22193
#, gcc-internal-format
msgid "ISO C++ 1998 does not support %<long long%>"
msgstr ""
-#: cp/parser.c:22201
+#: cp/parser.c:22217
#, gcc-internal-format
msgid "duplicate %qs"
msgstr ""
-#: cp/parser.c:22243
+#: cp/parser.c:22259
#, gcc-internal-format
msgid "expected %<new%>"
msgstr ""
-#: cp/parser.c:22246
+#: cp/parser.c:22262
#, gcc-internal-format
msgid "expected %<delete%>"
msgstr ""
-#: cp/parser.c:22249
+#: cp/parser.c:22265
#, gcc-internal-format
msgid "expected %<return%>"
msgstr ""
-#: cp/parser.c:22255
+#: cp/parser.c:22271
#, gcc-internal-format
msgid "expected %<extern%>"
msgstr ""
-#: cp/parser.c:22258
+#: cp/parser.c:22274
#, gcc-internal-format
msgid "expected %<static_assert%>"
msgstr ""
-#: cp/parser.c:22261
+#: cp/parser.c:22277
#, gcc-internal-format
msgid "expected %<decltype%>"
msgstr ""
-#: cp/parser.c:22264
+#: cp/parser.c:22280
#, gcc-internal-format
msgid "expected %<operator%>"
msgstr ""
-#: cp/parser.c:22267
+#: cp/parser.c:22283
#, gcc-internal-format
msgid "expected %<class%>"
msgstr ""
-#: cp/parser.c:22270
+#: cp/parser.c:22286
#, gcc-internal-format
msgid "expected %<template%>"
msgstr ""
-#: cp/parser.c:22273
+#: cp/parser.c:22289
#, gcc-internal-format
msgid "expected %<namespace%>"
msgstr ""
-#: cp/parser.c:22276
+#: cp/parser.c:22292
#, gcc-internal-format
msgid "expected %<using%>"
msgstr ""
-#: cp/parser.c:22279
+#: cp/parser.c:22295
#, gcc-internal-format
msgid "expected %<asm%>"
msgstr ""
-#: cp/parser.c:22282
+#: cp/parser.c:22298
#, gcc-internal-format
msgid "expected %<try%>"
msgstr ""
-#: cp/parser.c:22285
+#: cp/parser.c:22301
#, gcc-internal-format
msgid "expected %<catch%>"
msgstr ""
-#: cp/parser.c:22288
+#: cp/parser.c:22304
#, gcc-internal-format
msgid "expected %<throw%>"
msgstr ""
-#: cp/parser.c:22291
+#: cp/parser.c:22307
#, gcc-internal-format
msgid "expected %<__label__%>"
msgstr ""
-#: cp/parser.c:22294
+#: cp/parser.c:22310
#, gcc-internal-format
msgid "expected %<@try%>"
msgstr ""
-#: cp/parser.c:22297
+#: cp/parser.c:22313
#, gcc-internal-format
msgid "expected %<@synchronized%>"
msgstr ""
-#: cp/parser.c:22300
+#: cp/parser.c:22316
#, gcc-internal-format
msgid "expected %<@throw%>"
msgstr ""
-#: cp/parser.c:22303
+#: cp/parser.c:22319
#, gcc-internal-format
msgid "expected %<__transaction_atomic%>"
msgstr ""
-#: cp/parser.c:22306
+#: cp/parser.c:22322
#, gcc-internal-format
msgid "expected %<__transaction_relaxed%>"
msgstr ""
-#: cp/parser.c:22337
+#: cp/parser.c:22353
#, gcc-internal-format
msgid "expected %<::%>"
msgstr ""
-#: cp/parser.c:22349
+#: cp/parser.c:22365
#, gcc-internal-format
msgid "expected %<...%>"
msgstr ""
-#: cp/parser.c:22352
+#: cp/parser.c:22368
#, gcc-internal-format
msgid "expected %<*%>"
msgstr ""
-#: cp/parser.c:22355
+#: cp/parser.c:22371
#, gcc-internal-format
msgid "expected %<~%>"
msgstr ""
-#: cp/parser.c:22361
+#: cp/parser.c:22377
#, gcc-internal-format
msgid "expected %<:%> or %<::%>"
msgstr ""
-#: cp/parser.c:22389
+#: cp/parser.c:22405
#, gcc-internal-format
msgid "expected %<class%>, %<typename%>, or %<template%>"
msgstr ""
-#: cp/parser.c:22627
+#: cp/parser.c:22643
#, gcc-internal-format
msgid "%qs tag used in naming %q#T"
msgstr ""
-#: cp/parser.c:22632
+#: cp/parser.c:22648
#, gcc-internal-format
msgid "%q#T was previously declared here"
msgstr ""
-#: cp/parser.c:22651
+#: cp/parser.c:22667
#, gcc-internal-format
msgid "%qD redeclared with different access"
msgstr ""
-#: cp/parser.c:22670
+#: cp/parser.c:22686
#, gcc-internal-format
msgid "%<template%> (as a disambiguator) is only allowed within templates"
msgstr ""
-#: cp/parser.c:22903
+#: cp/parser.c:22919
#, gcc-internal-format
msgid "file ends in default argument"
msgstr ""
-#: cp/parser.c:23107 cp/parser.c:24369 cp/parser.c:24555
+#: cp/parser.c:23123 cp/parser.c:24385 cp/parser.c:24571
#, gcc-internal-format
msgid "misplaced %<@%D%> Objective-C++ construct"
msgstr ""
-#: cp/parser.c:23229
+#: cp/parser.c:23245
#, gcc-internal-format
msgid "objective-c++ message argument(s) are expected"
msgstr ""
-#: cp/parser.c:23258
+#: cp/parser.c:23274
#, gcc-internal-format
msgid "%<@encode%> must specify a type as an argument"
msgstr ""
-#: cp/parser.c:23634
+#: cp/parser.c:23650
#, gcc-internal-format
msgid "invalid Objective-C++ selector name"
msgstr ""
-#: cp/parser.c:23709 cp/parser.c:23727
+#: cp/parser.c:23725 cp/parser.c:23743
#, gcc-internal-format
msgid "objective-c++ method declaration is expected"
msgstr ""
-#: cp/parser.c:23721 cp/parser.c:23786
+#: cp/parser.c:23737 cp/parser.c:23802
#, gcc-internal-format
msgid "method attributes must be specified at the end"
msgstr ""
-#: cp/parser.c:23829
+#: cp/parser.c:23845
#, gcc-internal-format
msgid "stray %qs between Objective-C++ methods"
msgstr ""
-#: cp/parser.c:24035 cp/parser.c:24042 cp/parser.c:24049
+#: cp/parser.c:24051 cp/parser.c:24058 cp/parser.c:24065
#, gcc-internal-format
msgid "invalid type for instance variable"
msgstr ""
-#: cp/parser.c:24163
+#: cp/parser.c:24179
#, gcc-internal-format
msgid "identifier expected after %<@protocol%>"
msgstr ""
-#: cp/parser.c:24334
+#: cp/parser.c:24350
#, gcc-internal-format
msgid ""
"attributes may not be specified before the %<@%D%> Objective-C++ keyword"
msgstr ""
-#: cp/parser.c:24341
+#: cp/parser.c:24357
#, gcc-internal-format
msgid "prefix attributes are ignored before %<@%D%>"
msgstr ""
-#: cp/parser.c:24614 cp/parser.c:24621 cp/parser.c:24628
+#: cp/parser.c:24630 cp/parser.c:24637 cp/parser.c:24644
#, gcc-internal-format
msgid "invalid type for property"
msgstr ""
-#: cp/parser.c:26359
+#: cp/parser.c:26375
#, gcc-internal-format
msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
msgstr ""
-#: cp/parser.c:26527 cp/pt.c:12712
+#: cp/parser.c:26543 cp/pt.c:12506
#, gcc-internal-format
msgid "iteration variable %qD should not be reduction"
msgstr ""
-#: cp/parser.c:26595
+#: cp/parser.c:26613
#, gcc-internal-format
msgid "not enough collapsed for loops"
msgstr ""
-#: cp/parser.c:27153 cp/semantics.c:5039
+#: cp/parser.c:27171 cp/semantics.c:5027
#, gcc-internal-format
msgid "%<__transaction_relaxed%> without transactional memory support enabled"
msgstr ""
-#: cp/parser.c:27155 cp/semantics.c:5041
+#: cp/parser.c:27173 cp/semantics.c:5029
#, gcc-internal-format
msgid "%<__transaction_atomic%> without transactional memory support enabled"
msgstr ""
-#: cp/parser.c:27352
+#: cp/parser.c:27370
#, gcc-internal-format
msgid "junk at end of %<#pragma GCC pch_preprocess%>"
msgstr ""
-#: cp/parser.c:27531
+#: cp/parser.c:27549
#, gcc-internal-format
msgid "inter-module optimizations not implemented for C++"
msgstr ""
-#: cp/pt.c:285
+#: cp/pt.c:286
#, gcc-internal-format
msgid "data member %qD cannot be a member template"
msgstr ""
-#: cp/pt.c:297
+#: cp/pt.c:298
#, gcc-internal-format
msgid "invalid member template declaration %qD"
msgstr ""
-#: cp/pt.c:664
+#: cp/pt.c:665
#, gcc-internal-format
msgid "explicit specialization in non-namespace scope %qD"
msgstr ""
-#: cp/pt.c:678
+#: cp/pt.c:679
#, gcc-internal-format
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:764
+#: cp/pt.c:765
#, gcc-internal-format
msgid "specialization of %qD must appear at namespace scope"
msgstr ""
-#: cp/pt.c:772
+#: cp/pt.c:773
#, gcc-internal-format
msgid "specialization of %qD in different namespace"
msgstr ""
-#: cp/pt.c:773 cp/pt.c:890
+#: cp/pt.c:774 cp/pt.c:891
#, gcc-internal-format
msgid " from definition of %q+#D"
msgstr ""
-#: cp/pt.c:790
+#: cp/pt.c:791
#, gcc-internal-format
msgid ""
"explicit instantiation of %qD in namespace %qD (which does not enclose "
"namespace %qD)"
msgstr ""
-#: cp/pt.c:808
+#: cp/pt.c:809
#, gcc-internal-format
msgid "name of class shadows template template parameter %qD"
msgstr ""
-#: cp/pt.c:849
+#: cp/pt.c:850
#, gcc-internal-format
msgid "specialization of %qT after instantiation"
msgstr ""
-#: cp/pt.c:853
+#: cp/pt.c:854
#, gcc-internal-format
msgid "partial specialization of alias template %qD"
msgstr ""
-#: cp/pt.c:889
+#: cp/pt.c:890
#, gcc-internal-format
msgid "specializing %q#T in different namespace"
msgstr ""
#. But if we've had an implicit instantiation, that's a
#. problem ([temp.expl.spec]/6).
-#: cp/pt.c:928
+#: cp/pt.c:929
#, gcc-internal-format
msgid "specialization %qT after instantiation %qT"
msgstr ""
-#: cp/pt.c:945
+#: cp/pt.c:946
#, gcc-internal-format
msgid "template specialization of %qD not allowed by ISO C++"
msgstr ""
-#: cp/pt.c:949
+#: cp/pt.c:950
#, gcc-internal-format
msgid "explicit specialization of non-template %qT"
msgstr ""
-#: cp/pt.c:1365
+#: cp/pt.c:1366
#, gcc-internal-format
msgid "specialization of %qD after instantiation"
msgstr ""
-#: cp/pt.c:1737
+#: cp/pt.c:1733
#, gcc-internal-format
-msgid "%s %+#D"
+msgid "candidate is: %#D"
msgstr ""
-#: cp/pt.c:1821
+#: cp/pt.c:1740
+#, gcc-internal-format
+msgid "%s %#D"
+msgstr ""
+
+#: cp/pt.c:1834
#, gcc-internal-format
msgid "%qD is not a function template"
msgstr ""
-#: cp/pt.c:2031
+#: cp/pt.c:2048
#, gcc-internal-format
msgid "template-id %qD for %q+D does not match any template declaration"
msgstr ""
-#: cp/pt.c:2034
+#: cp/pt.c:2051
#, gcc-internal-format
msgid ""
"saw %d %<template<>%>, need %d for specializing a member function template"
msgstr ""
-#: cp/pt.c:2043
+#: cp/pt.c:2060
#, gcc-internal-format
msgid "ambiguous template specialization %qD for %q+D"
msgstr ""
+#: cp/pt.c:2259 cp/pt.c:17708
+#, gcc-internal-format
+msgid "%qD is not a static data member of a class template"
+msgstr ""
+
+#: cp/pt.c:2263
+#, gcc-internal-format
+msgid "too many template headers for %D (should be %d)"
+msgstr ""
+
+#: cp/pt.c:2267
+#, gcc-internal-format
+msgid ""
+"members of an explicitly specialized class are defined without a template "
+"header"
+msgstr ""
+
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:2279 cp/pt.c:2333
+#: cp/pt.c:2355 cp/pt.c:2409
#, gcc-internal-format
msgid "template-id %qD in declaration of primary template"
msgstr ""
-#: cp/pt.c:2292
+#: cp/pt.c:2368
#, gcc-internal-format
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:2298
+#: cp/pt.c:2374
#, gcc-internal-format
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:2306
+#: cp/pt.c:2382
#, gcc-internal-format
msgid "too many template parameter lists in declaration of %qD"
msgstr ""
-#: cp/pt.c:2309
+#: cp/pt.c:2385
#, gcc-internal-format
msgid "too few template parameter lists in declaration of %qD"
msgstr ""
-#: cp/pt.c:2311
+#: cp/pt.c:2387
#, gcc-internal-format
msgid "explicit specialization of %qD must be introduced by %<template <>%>"
msgstr ""
-#: cp/pt.c:2330
+#: cp/pt.c:2406
#, gcc-internal-format
msgid "function template partial specialization %qD is not allowed"
msgstr ""
-#: cp/pt.c:2362
+#: cp/pt.c:2438
#, gcc-internal-format
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:2392
+#: cp/pt.c:2468
#, gcc-internal-format
msgid "%qD is not a template function"
msgstr ""
-#: cp/pt.c:2400
+#: cp/pt.c:2476
#, gcc-internal-format
msgid "%qD is not declared in %qD"
msgstr ""
@@ -33738,154 +33974,154 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:2462
+#: cp/pt.c:2538
#, gcc-internal-format
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:2506
+#: cp/pt.c:2582
#, gcc-internal-format
msgid "no member function %qD declared in %qT"
msgstr ""
-#: cp/pt.c:3164
+#: cp/pt.c:3240
#, gcc-internal-format
msgid "base initializer expansion %<%T%> contains no parameter packs"
msgstr ""
-#: cp/pt.c:3225
+#: cp/pt.c:3301
#, gcc-internal-format
msgid "expansion pattern %<%T%> contains no argument packs"
msgstr ""
-#: cp/pt.c:3227
+#: cp/pt.c:3303
#, gcc-internal-format
msgid "expansion pattern %<%E%> contains no argument packs"
msgstr ""
-#: cp/pt.c:3270
+#: cp/pt.c:3346
#, gcc-internal-format
msgid "parameter packs not expanded with %<...%>:"
msgstr ""
-#: cp/pt.c:3285 cp/pt.c:4363
+#: cp/pt.c:3361 cp/pt.c:4112
#, gcc-internal-format
msgid " %qD"
msgstr ""
-#: cp/pt.c:3287
+#: cp/pt.c:3363
#, gcc-internal-format
msgid " <anonymous>"
msgstr ""
-#: cp/pt.c:3404
+#: cp/pt.c:3480
#, gcc-internal-format
msgid "declaration of %q+#D"
msgstr ""
-#: cp/pt.c:3405
+#: cp/pt.c:3481
#, gcc-internal-format
msgid " shadows template parm %q+#D"
msgstr ""
-#: cp/pt.c:4359
+#: cp/pt.c:4108
#, gcc-internal-format
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:4377
+#: cp/pt.c:4126
#, gcc-internal-format
msgid "partial specialization %qT does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:4384
+#: cp/pt.c:4133
#, gcc-internal-format
msgid ""
"partial specialization is not more specialized than the primary template "
"because it replaces multiple parameters with a pack expansion"
msgstr ""
-#: cp/pt.c:4387
+#: cp/pt.c:4136
#, gcc-internal-format
msgid "primary template here"
msgstr ""
-#: cp/pt.c:4434
+#: cp/pt.c:4183
#, gcc-internal-format
msgid ""
"parameter pack argument %qE must be at the end of the template argument list"
msgstr ""
-#: cp/pt.c:4437
+#: cp/pt.c:4186
#, gcc-internal-format
msgid ""
"parameter pack argument %qT must be at the end of the template argument list"
msgstr ""
-#: cp/pt.c:4456
+#: cp/pt.c:4205
#, gcc-internal-format
msgid "template argument %qE involves template parameter(s)"
msgstr ""
-#: cp/pt.c:4502
+#: cp/pt.c:4251
#, gcc-internal-format
msgid "type %qT of template argument %qE depends on a template parameter"
msgid_plural "type %qT of template argument %qE depends on template parameters"
msgstr[0] ""
msgstr[1] ""
-#: cp/pt.c:4532
+#: cp/pt.c:4281
#, gcc-internal-format
msgid "partial specialization of %qT after instantiation of %qT"
msgstr ""
-#: cp/pt.c:4625
+#: cp/pt.c:4374
#, gcc-internal-format
msgid "no default argument for %qD"
msgstr ""
-#: cp/pt.c:4646
+#: cp/pt.c:4394
#, gcc-internal-format
msgid "parameter pack %qE must be at the end of the template parameter list"
msgstr ""
-#: cp/pt.c:4649
+#: cp/pt.c:4397
#, gcc-internal-format
msgid "parameter pack %qT must be at the end of the template parameter list"
msgstr ""
-#: cp/pt.c:4686
+#: cp/pt.c:4434
#, gcc-internal-format
msgid ""
"default template arguments may not be used in function template friend re-"
"declaration"
msgstr ""
-#: cp/pt.c:4689
+#: cp/pt.c:4437
#, gcc-internal-format
msgid ""
"default template arguments may not be used in function template friend "
"declarations"
msgstr ""
-#: cp/pt.c:4692
+#: cp/pt.c:4440
#, gcc-internal-format
msgid ""
"default template arguments may not be used in function templates without -"
"std=c++11 or -std=gnu++11"
msgstr ""
-#: cp/pt.c:4695
+#: cp/pt.c:4443
#, gcc-internal-format
msgid "default template arguments may not be used in partial specializations"
msgstr ""
-#: cp/pt.c:4698 cp/pt.c:4749
+#: cp/pt.c:4446 cp/pt.c:4497
#, gcc-internal-format
msgid "default argument for template parameter for class enclosing %qD"
msgstr ""
-#: cp/pt.c:4842
+#: cp/pt.c:4590
#, gcc-internal-format
msgid "template class without a name"
msgstr ""
@@ -33893,7 +34129,7 @@ msgstr ""
#. [temp.mem]
#.
#. A destructor shall not be a member template.
-#: cp/pt.c:4852
+#: cp/pt.c:4600
#, gcc-internal-format
msgid "destructor %qD declared as member template"
msgstr ""
@@ -33903,76 +34139,76 @@ msgstr ""
#. An allocation function can be a function
#. template. ... Template allocation functions shall
#. have two or more parameters.
-#: cp/pt.c:4867
+#: cp/pt.c:4615
#, gcc-internal-format
msgid "invalid template declaration of %qD"
msgstr ""
-#: cp/pt.c:4991
+#: cp/pt.c:4739
#, gcc-internal-format
msgid "template definition of non-template %q#D"
msgstr ""
-#: cp/pt.c:5034
+#: cp/pt.c:4782
#, gcc-internal-format
msgid "expected %d levels of template parms for %q#D, got %d"
msgstr ""
-#: cp/pt.c:5046
+#: cp/pt.c:4794
#, gcc-internal-format
msgid "got %d template parameters for %q#D"
msgstr ""
-#: cp/pt.c:5049
+#: cp/pt.c:4797
#, gcc-internal-format
msgid "got %d template parameters for %q#T"
msgstr ""
-#: cp/pt.c:5051
+#: cp/pt.c:4799
#, gcc-internal-format, gfc-internal-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:5072
+#: cp/pt.c:4820
#, gcc-internal-format
msgid "template arguments to %qD do not match original template %qD"
msgstr ""
-#: cp/pt.c:5076
+#: cp/pt.c:4824
#, gcc-internal-format
msgid "use template<> for an explicit specialization"
msgstr ""
-#: cp/pt.c:5177
+#: cp/pt.c:4925
#, gcc-internal-format
msgid "%qT is not a template type"
msgstr ""
-#: cp/pt.c:5190
+#: cp/pt.c:4938
#, gcc-internal-format
msgid "template specifiers not specified in declaration of %qD"
msgstr ""
-#: cp/pt.c:5201
+#: cp/pt.c:4949
#, gcc-internal-format, gfc-internal-format
msgid "redeclared with %d template parameter"
msgid_plural "redeclared with %d template parameters"
msgstr[0] ""
msgstr[1] ""
-#: cp/pt.c:5205
+#: cp/pt.c:4953
#, gcc-internal-format
msgid "previous declaration %q+D used %d template parameter"
msgid_plural "previous declaration %q+D used %d template parameters"
msgstr[0] ""
msgstr[1] ""
-#: cp/pt.c:5242
+#: cp/pt.c:4990
#, gcc-internal-format
msgid "template parameter %q+#D"
msgstr ""
-#: cp/pt.c:5243
+#: cp/pt.c:4991
#, gcc-internal-format
msgid "redeclared here as %q#D"
msgstr ""
@@ -33981,357 +34217,362 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:5253
+#: cp/pt.c:5001
#, gcc-internal-format
msgid "redefinition of default argument for %q#D"
msgstr ""
-#: cp/pt.c:5255
+#: cp/pt.c:5003
#, gcc-internal-format
msgid "original definition appeared here"
msgstr ""
-#: cp/pt.c:5373
+#: cp/pt.c:5121
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because %qD has no linkage"
msgstr ""
-#: cp/pt.c:5377
+#: cp/pt.c:5125
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because %qD does not have "
"external linkage"
msgstr ""
-#: cp/pt.c:5401 cp/pt.c:6004
+#: cp/pt.c:5149 cp/pt.c:5752
#, gcc-internal-format
msgid "%qE is not a valid template argument for type %qT"
msgstr ""
-#: cp/pt.c:5403
+#: cp/pt.c:5151
#, gcc-internal-format
msgid "it must be a pointer-to-member of the form %<&X::Y%>"
msgstr ""
-#: cp/pt.c:5454
+#: cp/pt.c:5202
#, gcc-internal-format
msgid " couldn't deduce template parameter %qD"
msgstr ""
-#: cp/pt.c:5469
+#: cp/pt.c:5217
#, gcc-internal-format
msgid " types %qT and %qT have incompatible cv-qualifiers"
msgstr ""
-#: cp/pt.c:5478
+#: cp/pt.c:5226
#, gcc-internal-format
msgid " mismatched types %qT and %qT"
msgstr ""
-#: cp/pt.c:5487
+#: cp/pt.c:5235
#, gcc-internal-format
msgid " template parameter %qD is not a parameter pack, but argument %qD is"
msgstr ""
-#: cp/pt.c:5498
+#: cp/pt.c:5246
#, gcc-internal-format
msgid " template argument %qE does not match pointer-to-member constant %qE"
msgstr ""
-#: cp/pt.c:5508
+#: cp/pt.c:5256
#, gcc-internal-format
msgid " %qE is not equivalent to %qE"
msgstr ""
-#: cp/pt.c:5517
+#: cp/pt.c:5265
#, gcc-internal-format
msgid " inconsistent parameter pack deduction with %qT and %qT"
msgstr ""
-#: cp/pt.c:5529
+#: cp/pt.c:5277
#, gcc-internal-format
msgid " deduced conflicting types for parameter %qT (%qT and %qT)"
msgstr ""
-#: cp/pt.c:5533
+#: cp/pt.c:5281
#, gcc-internal-format
msgid " deduced conflicting values for non-type parameter %qE (%qE and %qE)"
msgstr ""
-#: cp/pt.c:5544
+#: cp/pt.c:5292
#, gcc-internal-format
msgid " variable-sized array type %qT is not a valid template argument"
msgstr ""
-#: cp/pt.c:5555
+#: cp/pt.c:5303
#, gcc-internal-format
msgid " member function type %qT is not a valid template argument"
msgstr ""
-#: cp/pt.c:5588
+#: cp/pt.c:5336
#, gcc-internal-format
msgid " cannot convert %qE (type %qT) to type %qT"
msgstr ""
-#: cp/pt.c:5601
+#: cp/pt.c:5349
#, gcc-internal-format
msgid " %qT is an ambiguous base class of %qT"
msgstr ""
-#: cp/pt.c:5605
+#: cp/pt.c:5353
#, gcc-internal-format
msgid " %qT is not derived from %qT"
msgstr ""
-#: cp/pt.c:5616
+#: cp/pt.c:5364
#, gcc-internal-format
msgid ""
" template parameters of a template template argument are inconsistent with "
"other deduced template arguments"
msgstr ""
-#: cp/pt.c:5626
+#: cp/pt.c:5374
#, gcc-internal-format
msgid " can't deduce a template for %qT from non-template type %qT"
msgstr ""
-#: cp/pt.c:5636
+#: cp/pt.c:5384
#, gcc-internal-format
msgid " template argument %qE does not match %qD"
msgstr ""
-#: cp/pt.c:5645
+#: cp/pt.c:5393
#, gcc-internal-format
msgid " could not resolve address from overloaded function %qE"
msgstr ""
-#: cp/pt.c:5684
+#: cp/pt.c:5432
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because string literals "
"can never be used in this context"
msgstr ""
-#: cp/pt.c:5823
+#: cp/pt.c:5571
#, gcc-internal-format
msgid "in template argument for type %qT "
msgstr ""
-#: cp/pt.c:5865
+#: cp/pt.c:5613
#, gcc-internal-format
msgid ""
"%qD is not a valid template argument because %qD is a variable, not the "
"address of a variable"
msgstr ""
-#: cp/pt.c:5883
+#: cp/pt.c:5631
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument of type %qT because %qE is not a "
"variable"
msgstr ""
-#: cp/pt.c:5890
+#: cp/pt.c:5638
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument of type %qT because %qD does not have "
"external linkage"
msgstr ""
-#: cp/pt.c:5897
+#: cp/pt.c:5645
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument of type %qT because %qD has no linkage"
msgstr ""
-#: cp/pt.c:5927
+#: cp/pt.c:5675
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because of conflicts in cv-"
"qualification"
msgstr ""
-#: cp/pt.c:5934
+#: cp/pt.c:5682
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is not an lvalue"
msgstr ""
-#: cp/pt.c:5951
+#: cp/pt.c:5699
#, gcc-internal-format
msgid ""
"%q#D is not a valid template argument for type %qT because a reference "
"variable does not have a constant address"
msgstr ""
-#: cp/pt.c:5960
+#: cp/pt.c:5708
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is not an "
"object with external linkage"
msgstr ""
-#: cp/pt.c:5968
+#: cp/pt.c:5716
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because object %qD has not "
"external linkage"
msgstr ""
-#: cp/pt.c:6005
+#: cp/pt.c:5753
#, gcc-internal-format
msgid "it must be the address of a function with external linkage"
msgstr ""
-#: cp/pt.c:6019
+#: cp/pt.c:5767
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is a pointer"
msgstr ""
-#: cp/pt.c:6021
+#: cp/pt.c:5769
#, gcc-internal-format
msgid "try using %qE instead"
msgstr ""
-#: cp/pt.c:6059 cp/pt.c:6088
+#: cp/pt.c:5807 cp/pt.c:5836
#, gcc-internal-format
msgid ""
"%qE is not a valid template argument for type %qT because it is of type %qT"
msgstr ""
-#: cp/pt.c:6065
+#: cp/pt.c:5813
#, gcc-internal-format
msgid "standard conversions are not allowed in this context"
msgstr ""
-#: cp/pt.c:6375
+#: cp/pt.c:6123
#, gcc-internal-format
msgid "ignoring attributes on template argument %qT"
msgstr ""
-#: cp/pt.c:6433
+#: cp/pt.c:6181
#, gcc-internal-format
msgid "injected-class-name %qD used as template template argument"
msgstr ""
-#: cp/pt.c:6462
+#: cp/pt.c:6210
#, gcc-internal-format
msgid "invalid use of destructor %qE as a type"
msgstr ""
-#: cp/pt.c:6467
+#: cp/pt.c:6215
#, gcc-internal-format
msgid "to refer to a type member of a template parameter, use %<typename %E%>"
msgstr ""
-#: cp/pt.c:6483 cp/pt.c:6502 cp/pt.c:6550
+#: cp/pt.c:6231 cp/pt.c:6250 cp/pt.c:6298
#, gcc-internal-format
msgid "type/value mismatch at argument %d in template parameter list for %qD"
msgstr ""
-#: cp/pt.c:6487
+#: cp/pt.c:6235
#, gcc-internal-format
msgid " expected a constant of type %qT, got %qT"
msgstr ""
-#: cp/pt.c:6491
+#: cp/pt.c:6239
#, gcc-internal-format
msgid " expected a class template, got %qE"
msgstr ""
-#: cp/pt.c:6493
+#: cp/pt.c:6241
#, gcc-internal-format
msgid " expected a type, got %qE"
msgstr ""
-#: cp/pt.c:6506
+#: cp/pt.c:6254
#, gcc-internal-format
msgid " expected a type, got %qT"
msgstr ""
-#: cp/pt.c:6508
+#: cp/pt.c:6256
#, gcc-internal-format
msgid " expected a class template, got %qT"
msgstr ""
-#: cp/pt.c:6553
+#: cp/pt.c:6301
#, gcc-internal-format
msgid " expected a template of type %qD, got %qT"
msgstr ""
#. Not sure if this is reachable, but it doesn't hurt
#. to be robust.
-#: cp/pt.c:6586
+#: cp/pt.c:6334
#, gcc-internal-format
msgid "type mismatch in nontype parameter pack"
msgstr ""
-#: cp/pt.c:6608
+#: cp/pt.c:6356
#, gcc-internal-format
msgid "could not convert template argument %qE to %qT"
msgstr ""
-#: cp/pt.c:6674 cp/pt.c:6843
+#: cp/pt.c:6422 cp/pt.c:6591
#, gcc-internal-format, gfc-internal-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:6720 cp/pt.c:6928
+#: cp/pt.c:6468 cp/pt.c:6676
#, gcc-internal-format, gfc-internal-format
msgid "template argument %d is invalid"
msgstr ""
-#: cp/pt.c:6839
+#: cp/pt.c:6587
#, gcc-internal-format, gfc-internal-format
msgid "wrong number of template arguments (%d, should be %d or more)"
msgstr ""
-#: cp/pt.c:6847
+#: cp/pt.c:6595
#, gcc-internal-format
msgid "provided for %q+D"
msgstr ""
-#: cp/pt.c:7117
+#: cp/pt.c:6865
#, gcc-internal-format
msgid "%q#D is not a function template"
msgstr ""
-#: cp/pt.c:7281
+#: cp/pt.c:7029
#, gcc-internal-format
msgid "non-template type %qT used as a template"
msgstr ""
-#: cp/pt.c:7283
+#: cp/pt.c:7031
#, gcc-internal-format
msgid "for template declaration %q+D"
msgstr ""
-#: cp/pt.c:8088
+#: cp/pt.c:7852
msgid ""
"template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to "
"increase the maximum) substituting %qS"
msgstr ""
-#: cp/pt.c:8092
+#: cp/pt.c:7856
#, gcc-internal-format
msgid ""
"template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to "
"increase the maximum) instantiating %qD"
msgstr ""
-#: cp/pt.c:9415
+#: cp/pt.c:9185
#, gcc-internal-format
msgid "mismatched argument pack lengths while expanding %<%T%>"
msgstr ""
-#: cp/pt.c:9419
+#: cp/pt.c:9189
#, gcc-internal-format
msgid "mismatched argument pack lengths while expanding %<%E%>"
msgstr ""
-#: cp/pt.c:10542
+#: cp/pt.c:9737
+#, gcc-internal-format
+msgid " when instantiating default argument for call to %D"
+msgstr ""
+
+#: cp/pt.c:10324
#, gcc-internal-format
msgid "instantiation of %q+D as type %qT"
msgstr ""
@@ -34349,261 +34590,256 @@ msgstr ""
#.
#. is an attempt to declare a variable with function
#. type.
-#: cp/pt.c:10700
+#: cp/pt.c:10496
#, gcc-internal-format
msgid "variable %qD has function type"
msgstr ""
-#: cp/pt.c:10869
+#: cp/pt.c:10668
#, gcc-internal-format
msgid "invalid parameter type %qT"
msgstr ""
-#: cp/pt.c:10871
+#: cp/pt.c:10670
#, gcc-internal-format
msgid "in declaration %q+D"
msgstr ""
-#: cp/pt.c:10948
+#: cp/pt.c:10747
#, gcc-internal-format
msgid "function returning an array"
msgstr ""
-#: cp/pt.c:10950
+#: cp/pt.c:10749
#, gcc-internal-format
msgid "function returning a function"
msgstr ""
-#: cp/pt.c:10980
+#: cp/pt.c:10779
#, gcc-internal-format
msgid "creating pointer to member function of non-class type %qT"
msgstr ""
-#: cp/pt.c:11527
+#: cp/pt.c:11326
#, gcc-internal-format
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:11529
+#: cp/pt.c:11328
#, gcc-internal-format
msgid "forming pointer to reference type %qT"
msgstr ""
-#: cp/pt.c:11531
+#: cp/pt.c:11330
#, gcc-internal-format
msgid "forming reference to reference type %qT"
msgstr ""
-#: cp/pt.c:11580
+#: cp/pt.c:11379
#, gcc-internal-format
msgid "creating pointer to member of non-class type %qT"
msgstr ""
-#: cp/pt.c:11586
+#: cp/pt.c:11385
#, gcc-internal-format
msgid "creating pointer to member reference type %qT"
msgstr ""
-#: cp/pt.c:11592
+#: cp/pt.c:11391
#, gcc-internal-format
msgid "creating pointer to member of type void"
msgstr ""
-#: cp/pt.c:11654
+#: cp/pt.c:11453
#, gcc-internal-format
msgid "creating array of %qT"
msgstr ""
-#: cp/pt.c:11660
+#: cp/pt.c:11459
#, gcc-internal-format
msgid "creating array of %qT, which is an abstract class type"
msgstr ""
-#: cp/pt.c:11689
+#: cp/pt.c:11488
#, gcc-internal-format
msgid "%qT is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:11726
+#: cp/pt.c:11525
#, gcc-internal-format
msgid "%qT resolves to %qT, which is not an enumeration type"
msgstr ""
-#: cp/pt.c:11734
+#: cp/pt.c:11533
#, gcc-internal-format
msgid "%qT resolves to %qT, which is is not a class type"
msgstr ""
-#: cp/pt.c:11851
+#: cp/pt.c:11650
#, gcc-internal-format
msgid "use of %qs in template"
msgstr ""
-#: cp/pt.c:11993
+#: cp/pt.c:11792
#, gcc-internal-format
msgid "qualifying type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/pt.c:12008
+#: cp/pt.c:11807
#, gcc-internal-format
msgid ""
"dependent-name %qE is parsed as a non-type, but instantiation yields a type"
msgstr ""
-#: cp/pt.c:12010
+#: cp/pt.c:11809
#, gcc-internal-format
msgid "say %<typename %E%> if a type is meant"
msgstr ""
-#: cp/pt.c:12165
+#: cp/pt.c:11957
#, gcc-internal-format
msgid "using invalid field %qD"
msgstr ""
-#: cp/pt.c:12521 cp/pt.c:13351
+#: cp/pt.c:12313 cp/pt.c:13128
#, gcc-internal-format
msgid "invalid use of pack expansion expression"
msgstr ""
-#: cp/pt.c:12525 cp/pt.c:13355
+#: cp/pt.c:12317 cp/pt.c:13132
#, gcc-internal-format
msgid "use %<...%> to expand argument pack"
msgstr ""
-#: cp/pt.c:13959
+#: cp/pt.c:13746
#, gcc-internal-format
msgid ""
"%qD was not declared in this scope, and no declarations were found by "
"argument-dependent lookup at the point of instantiation"
msgstr ""
-#: cp/pt.c:13968
+#: cp/pt.c:13755
#, gcc-internal-format
msgid "declarations in dependent base %qT are not found by unqualified lookup"
msgstr ""
-#: cp/pt.c:13973
+#: cp/pt.c:13760
#, gcc-internal-format
msgid "use %<this->%D%> instead"
msgstr ""
-#: cp/pt.c:13976
+#: cp/pt.c:13763
#, gcc-internal-format
msgid "use %<%T::%D%> instead"
msgstr ""
-#: cp/pt.c:13980
+#: cp/pt.c:13767
#, gcc-internal-format
msgid "%q+D declared here, later in the translation unit"
msgstr ""
-#: cp/pt.c:14238
+#: cp/pt.c:14025
#, gcc-internal-format
msgid "%qT is not a class or namespace"
msgstr ""
-#: cp/pt.c:14241
+#: cp/pt.c:14028
#, gcc-internal-format
msgid "%qD is not a class or namespace"
msgstr ""
-#: cp/pt.c:14528
+#: cp/pt.c:14318
#, gcc-internal-format
msgid "%qT is/uses anonymous type"
msgstr ""
-#: cp/pt.c:14530
+#: cp/pt.c:14320
#, gcc-internal-format
msgid "template argument for %qD uses local type %qT"
msgstr ""
-#: cp/pt.c:14540
+#: cp/pt.c:14330
#, gcc-internal-format
msgid "%qT is a variably modified type"
msgstr ""
-#: cp/pt.c:14551
+#: cp/pt.c:14341
#, gcc-internal-format
msgid "integral expression %qE is not constant"
msgstr ""
-#: cp/pt.c:14569
+#: cp/pt.c:14359
#, gcc-internal-format
msgid " trying to instantiate %qD"
msgstr ""
-#: cp/pt.c:17852
+#: cp/pt.c:17665
#, gcc-internal-format
msgid "ambiguous class template instantiation for %q#T"
msgstr ""
-#: cp/pt.c:17856
+#: cp/pt.c:17669
#, gcc-internal-format
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:17880 cp/pt.c:17963
+#: cp/pt.c:17693 cp/pt.c:17776
#, gcc-internal-format
msgid "explicit instantiation of non-template %q#D"
msgstr ""
-#: cp/pt.c:17895
-#, gcc-internal-format
-msgid "%qD is not a static data member of a class template"
-msgstr ""
-
-#: cp/pt.c:17901 cp/pt.c:17958
+#: cp/pt.c:17714 cp/pt.c:17771
#, gcc-internal-format
msgid "no matching template for %qD found"
msgstr ""
-#: cp/pt.c:17906
+#: cp/pt.c:17719
#, gcc-internal-format
msgid ""
"type %qT for explicit instantiation %qD does not match declared type %qT"
msgstr ""
-#: cp/pt.c:17914
+#: cp/pt.c:17727
#, gcc-internal-format
msgid "explicit instantiation of %q#D"
msgstr ""
-#: cp/pt.c:17950
+#: cp/pt.c:17763
#, gcc-internal-format
msgid "duplicate explicit instantiation of %q#D"
msgstr ""
-#: cp/pt.c:17973 cp/pt.c:18070
+#: cp/pt.c:17786 cp/pt.c:17883
#, gcc-internal-format
msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
msgstr ""
-#: cp/pt.c:17978 cp/pt.c:18087
+#: cp/pt.c:17791 cp/pt.c:17900
#, gcc-internal-format
msgid "storage class %qD applied to template instantiation"
msgstr ""
-#: cp/pt.c:18046
+#: cp/pt.c:17859
#, gcc-internal-format
msgid "explicit instantiation of non-class template %qD"
msgstr ""
-#: cp/pt.c:18048
+#: cp/pt.c:17861
#, gcc-internal-format
msgid "explicit instantiation of non-template type %qT"
msgstr ""
-#: cp/pt.c:18057
+#: cp/pt.c:17870
#, gcc-internal-format
msgid "explicit instantiation of %q#T before definition of template"
msgstr ""
-#: cp/pt.c:18075
+#: cp/pt.c:17888
#, gcc-internal-format
msgid "ISO C++ forbids the use of %qE on explicit instantiations"
msgstr ""
-#: cp/pt.c:18121
+#: cp/pt.c:17934
#, gcc-internal-format
msgid "duplicate explicit instantiation of %q#T"
msgstr ""
@@ -34615,12 +34851,12 @@ msgstr ""
#. member function or static data member of a class template
#. shall be present in every translation unit in which it is
#. explicitly instantiated.
-#: cp/pt.c:18677
+#: cp/pt.c:18461
#, gcc-internal-format
msgid "explicit instantiation of %qD but no definition available"
msgstr ""
-#: cp/pt.c:18855
+#: cp/pt.c:18646
#, gcc-internal-format
msgid ""
"template instantiation depth exceeds maximum of %d instantiating %q+D, "
@@ -34628,39 +34864,39 @@ msgid ""
"the maximum)"
msgstr ""
-#: cp/pt.c:19235
+#: cp/pt.c:19026
#, gcc-internal-format
msgid "invalid template non-type parameter"
msgstr ""
-#: cp/pt.c:19237
+#: cp/pt.c:19028
#, gcc-internal-format
msgid "%q#T is not a valid type for a template non-type parameter"
msgstr ""
-#: cp/pt.c:20323
+#: cp/pt.c:20208
#, gcc-internal-format
msgid ""
"deducing from brace-enclosed initializer list requires #include "
"<initializer_list>"
msgstr ""
-#: cp/pt.c:20394
+#: cp/pt.c:20279
#, gcc-internal-format
msgid "unable to deduce lambda return type from %qE"
msgstr ""
-#: cp/pt.c:20396
+#: cp/pt.c:20281
#, gcc-internal-format
msgid "unable to deduce %qT from %qE"
msgstr ""
-#: cp/pt.c:20410
+#: cp/pt.c:20295
#, gcc-internal-format
msgid "inconsistent types %qT and %qT deduced for lambda return type"
msgstr ""
-#: cp/pt.c:20414
+#: cp/pt.c:20299
#, gcc-internal-format
msgid "inconsistent deduction for %qT: %qT and then %qT"
msgstr ""
@@ -34712,648 +34948,648 @@ msgstr ""
msgid "cannot dynamic_cast %qE (of type %q#T) to type %q#T (%s)"
msgstr ""
-#: cp/search.c:258
+#: cp/search.c:255
#, gcc-internal-format
msgid "%qT is an ambiguous base of %qT"
msgstr ""
-#: cp/search.c:276
+#: cp/search.c:271
#, gcc-internal-format
msgid "%qT is an inaccessible base of %qT"
msgstr ""
-#: cp/search.c:1906
+#: cp/search.c:1894
#, gcc-internal-format
msgid "deprecated covariant return type for %q+#D"
msgstr ""
-#: cp/search.c:1908 cp/search.c:1923 cp/search.c:1928 cp/search.c:1952
+#: cp/search.c:1896 cp/search.c:1911 cp/search.c:1916 cp/search.c:1940
#, gcc-internal-format
msgid " overriding %q+#D"
msgstr ""
-#: cp/search.c:1922
+#: cp/search.c:1910
#, gcc-internal-format
msgid "invalid covariant return type for %q+#D"
msgstr ""
-#: cp/search.c:1927
+#: cp/search.c:1915
#, gcc-internal-format
msgid "conflicting return type specified for %q+#D"
msgstr ""
-#: cp/search.c:1942
+#: cp/search.c:1930
#, gcc-internal-format
msgid "looser throw specifier for %q+#F"
msgstr ""
-#: cp/search.c:1943
+#: cp/search.c:1931
#, gcc-internal-format
msgid " overriding %q+#F"
msgstr ""
-#: cp/search.c:1951
+#: cp/search.c:1939
#, gcc-internal-format
msgid "conflicting type attributes specified for %q+#D"
msgstr ""
-#: cp/search.c:1961
+#: cp/search.c:1949
#, gcc-internal-format
msgid "deleted function %q+D"
msgstr ""
-#: cp/search.c:1962
+#: cp/search.c:1950
#, gcc-internal-format
msgid "overriding non-deleted function %q+D"
msgstr ""
-#: cp/search.c:1967
+#: cp/search.c:1955
#, gcc-internal-format
msgid "non-deleted function %q+D"
msgstr ""
-#: cp/search.c:1968
+#: cp/search.c:1956
#, gcc-internal-format
msgid "overriding deleted function %q+D"
msgstr ""
-#: cp/search.c:1974
+#: cp/search.c:1962
#, gcc-internal-format
msgid "virtual function %q+D"
msgstr ""
-#: cp/search.c:1975
+#: cp/search.c:1963
#, gcc-internal-format
msgid "overriding final function %q+D"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:2071
+#: cp/search.c:2059
#, gcc-internal-format
msgid "%q+#D cannot be declared"
msgstr ""
-#: cp/search.c:2072
+#: cp/search.c:2060
#, gcc-internal-format
msgid " since %q+#D declared in base class"
msgstr ""
-#: cp/semantics.c:775
+#: cp/semantics.c:762
#, gcc-internal-format
msgid "suggest explicit braces around empty body in %<do%> statement"
msgstr ""
-#: cp/semantics.c:1396
+#: cp/semantics.c:1383
#, gcc-internal-format
msgid "type of asm operand %qE could not be determined"
msgstr ""
-#: cp/semantics.c:1454
+#: cp/semantics.c:1441
#, gcc-internal-format
msgid "__label__ declarations are only allowed in function scopes"
msgstr ""
-#: cp/semantics.c:1558
+#: cp/semantics.c:1545
#, gcc-internal-format
msgid "invalid use of member %q+D in static member function"
msgstr ""
-#: cp/semantics.c:1560
+#: cp/semantics.c:1547
#, gcc-internal-format
msgid "invalid use of non-static data member %q+D"
msgstr ""
-#: cp/semantics.c:1561
+#: cp/semantics.c:1548
#, gcc-internal-format
msgid "from this location"
msgstr ""
-#: cp/semantics.c:2174
+#: cp/semantics.c:2179
#, gcc-internal-format
msgid "arguments to destructor are not allowed"
msgstr ""
-#: cp/semantics.c:2255
+#: cp/semantics.c:2260
#, gcc-internal-format
msgid "%<this%> is unavailable for static member functions"
msgstr ""
-#: cp/semantics.c:2261
+#: cp/semantics.c:2266
#, gcc-internal-format
msgid "invalid use of %<this%> in non-member function"
msgstr ""
-#: cp/semantics.c:2263
+#: cp/semantics.c:2268
#, gcc-internal-format
msgid "invalid use of %<this%> at top level"
msgstr ""
-#: cp/semantics.c:2287
+#: cp/semantics.c:2292
#, gcc-internal-format
msgid "invalid qualifying scope in pseudo-destructor name"
msgstr ""
-#: cp/semantics.c:2292 cp/typeck.c:2419
+#: cp/semantics.c:2297 cp/typeck.c:2413
#, gcc-internal-format
msgid "qualified type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/semantics.c:2314
+#: cp/semantics.c:2319
#, gcc-internal-format
msgid "%qE is not of type %qT"
msgstr ""
-#: cp/semantics.c:2355
+#: cp/semantics.c:2360
#, gcc-internal-format
msgid "compound literal of non-object type %qT"
msgstr ""
-#: cp/semantics.c:2467
+#: cp/semantics.c:2472
#, gcc-internal-format
msgid "template type parameters must use the keyword %<class%> or %<typename%>"
msgstr ""
-#: cp/semantics.c:2509
+#: cp/semantics.c:2514
#, gcc-internal-format
msgid ""
"invalid use of type %qT as a default value for a template template-parameter"
msgstr ""
-#: cp/semantics.c:2512
+#: cp/semantics.c:2517
#, gcc-internal-format
msgid "invalid default argument for a template template parameter"
msgstr ""
-#: cp/semantics.c:2529
+#: cp/semantics.c:2534
#, gcc-internal-format
msgid "definition of %q#T inside template parameter list"
msgstr ""
-#: cp/semantics.c:2560
+#: cp/semantics.c:2565
#, gcc-internal-format
msgid "invalid definition of qualified type %qT"
msgstr ""
-#: cp/semantics.c:2779
+#: cp/semantics.c:2786
#, gcc-internal-format
msgid "invalid base-class specification"
msgstr ""
-#: cp/semantics.c:3000 cp/semantics.c:8842
+#: cp/semantics.c:3007 cp/semantics.c:8925
#, gcc-internal-format
msgid "%qD is not captured"
msgstr ""
-#: cp/semantics.c:3006
+#: cp/semantics.c:3013
#, gcc-internal-format
msgid "use of %<auto%> variable from containing function"
msgstr ""
-#: cp/semantics.c:3007
+#: cp/semantics.c:3014
#, gcc-internal-format
msgid "use of parameter from containing function"
msgstr ""
-#: cp/semantics.c:3008
+#: cp/semantics.c:3015
#, gcc-internal-format
msgid " %q+#D declared here"
msgstr ""
-#: cp/semantics.c:3019
+#: cp/semantics.c:3026
#, gcc-internal-format
msgid "use of parameter %qD outside function body"
msgstr ""
-#: cp/semantics.c:3056
+#: cp/semantics.c:3063
#, gcc-internal-format
msgid ""
"template parameter %qD of type %qT is not allowed in an integral constant "
"expression because it is not of integral or enumeration type"
msgstr ""
-#: cp/semantics.c:3216
+#: cp/semantics.c:3214
#, gcc-internal-format
msgid "use of namespace %qD as expression"
msgstr ""
-#: cp/semantics.c:3221
+#: cp/semantics.c:3219
#, gcc-internal-format
msgid "use of class template %qT as expression"
msgstr ""
#. Ambiguous reference to base members.
-#: cp/semantics.c:3227
+#: cp/semantics.c:3225
#, gcc-internal-format
msgid "request for member %qD is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/semantics.c:3250
+#: cp/semantics.c:3251
#, gcc-internal-format
msgid "%qD cannot appear in a constant-expression"
msgstr ""
-#: cp/semantics.c:3371
+#: cp/semantics.c:3359
#, gcc-internal-format
msgid "type of %qE is unknown"
msgstr ""
-#: cp/semantics.c:3399
+#: cp/semantics.c:3387
#, gcc-internal-format
msgid "%qT is not an enumeration type"
msgstr ""
#. Parameter packs can only be used in templates
-#: cp/semantics.c:3547
+#: cp/semantics.c:3535
#, gcc-internal-format
msgid "Parameter pack __bases only valid in template declaration"
msgstr ""
-#: cp/semantics.c:3567
+#: cp/semantics.c:3555
#, gcc-internal-format
msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
msgstr ""
-#: cp/semantics.c:3578
+#: cp/semantics.c:3566
#, gcc-internal-format
msgid "cannot apply %<offsetof%> to member function %qD"
msgstr ""
-#: cp/semantics.c:3997
+#: cp/semantics.c:3985
#, gcc-internal-format
msgid "%qD is not a variable in clause %qs"
msgstr ""
-#: cp/semantics.c:4006 cp/semantics.c:4028 cp/semantics.c:4050
+#: cp/semantics.c:3994 cp/semantics.c:4016 cp/semantics.c:4038
#, gcc-internal-format
msgid "%qD appears more than once in data clauses"
msgstr ""
-#: cp/semantics.c:4020
+#: cp/semantics.c:4008
#, gcc-internal-format
msgid "%qD is not a variable in clause %<firstprivate%>"
msgstr ""
-#: cp/semantics.c:4042
+#: cp/semantics.c:4030
#, gcc-internal-format
msgid "%qD is not a variable in clause %<lastprivate%>"
msgstr ""
-#: cp/semantics.c:4084
+#: cp/semantics.c:4072
#, gcc-internal-format
msgid "num_threads expression must be integral"
msgstr ""
-#: cp/semantics.c:4105
+#: cp/semantics.c:4093
#, gcc-internal-format
msgid "schedule chunk size expression must be integral"
msgstr ""
-#: cp/semantics.c:4248
+#: cp/semantics.c:4236
#, gcc-internal-format
msgid "%qE has reference type for %qs"
msgstr ""
-#: cp/semantics.c:4324
+#: cp/semantics.c:4312
#, gcc-internal-format
msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
msgstr ""
-#: cp/semantics.c:4338
+#: cp/semantics.c:4326
#, gcc-internal-format
msgid "%<threadprivate%> %qE directive not in %qT definition"
msgstr ""
-#: cp/semantics.c:4485
+#: cp/semantics.c:4473
#, gcc-internal-format
msgid "difference between %qE and %qD does not have integer type"
msgstr ""
#. Report the error.
-#: cp/semantics.c:5152
+#: cp/semantics.c:5146
#, gcc-internal-format, gfc-internal-format
msgid "static assertion failed: %s"
msgstr ""
-#: cp/semantics.c:5155
+#: cp/semantics.c:5149
#, gcc-internal-format
msgid "non-constant condition for static assertion"
msgstr ""
-#: cp/semantics.c:5184
+#: cp/semantics.c:5178
#, gcc-internal-format
msgid "argument to decltype must be an expression"
msgstr ""
-#: cp/semantics.c:5213
+#: cp/semantics.c:5203
#, gcc-internal-format
msgid "decltype cannot resolve address of overloaded function"
msgstr ""
-#: cp/semantics.c:5536
+#: cp/semantics.c:5526
#, gcc-internal-format
msgid "__is_convertible_to"
msgstr ""
-#: cp/semantics.c:5653
+#: cp/semantics.c:5644
#, gcc-internal-format
msgid "the type %qT of constexpr variable %qD is not literal"
msgstr ""
-#: cp/semantics.c:5723
+#: cp/semantics.c:5714
#, gcc-internal-format
msgid "invalid type for parameter %d of constexpr function %q+#D"
msgstr ""
-#: cp/semantics.c:5737
+#: cp/semantics.c:5728
#, gcc-internal-format
msgid "invalid return type %qT of constexpr function %q+D"
msgstr ""
-#: cp/semantics.c:5759
+#: cp/semantics.c:5750
#, gcc-internal-format
msgid "%q#T has virtual base classes"
msgstr ""
-#: cp/semantics.c:5896
+#: cp/semantics.c:5884
#, gcc-internal-format
msgid "constexpr constructor does not have empty body"
msgstr ""
-#: cp/semantics.c:5943
+#: cp/semantics.c:5962
#, gcc-internal-format
msgid "body of %<constexpr%> constructor cannot be a function-try-block"
msgstr ""
-#: cp/semantics.c:6065
+#: cp/semantics.c:6085
#, gcc-internal-format
msgid ""
"%<constexpr%> constructor for union %qT must initialize exactly one non-"
"static data member"
msgstr ""
-#: cp/semantics.c:6103
+#: cp/semantics.c:6125
#, gcc-internal-format
msgid "uninitialized member %qD in %<constexpr%> constructor"
msgstr ""
-#: cp/semantics.c:6134
+#: cp/semantics.c:6156
#, gcc-internal-format
msgid "body of constexpr function %qD not a return-statement"
msgstr ""
-#: cp/semantics.c:6189
+#: cp/semantics.c:6211
#, gcc-internal-format
msgid "%q+D is not usable as a constexpr function because:"
msgstr ""
-#: cp/semantics.c:6513
+#: cp/semantics.c:6538
#, gcc-internal-format
msgid "expression %qE does not designate a constexpr function"
msgstr ""
-#: cp/semantics.c:6527 cp/semantics.c:8109
+#: cp/semantics.c:6552 cp/semantics.c:8182
#, gcc-internal-format
msgid "call to non-constexpr function %qD"
msgstr ""
#. The definition of fun was somehow unsuitable.
-#: cp/semantics.c:6555
+#: cp/semantics.c:6580
#, gcc-internal-format
msgid "%qD called in a constant expression"
msgstr ""
-#: cp/semantics.c:6559
+#: cp/semantics.c:6584
#, gcc-internal-format
msgid "%qD used before its definition"
msgstr ""
-#: cp/semantics.c:6593
+#: cp/semantics.c:6618
#, gcc-internal-format
msgid "call has circular dependency"
msgstr ""
-#: cp/semantics.c:6601
+#: cp/semantics.c:6626
#, gcc-internal-format, gfc-internal-format
msgid ""
"constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to "
"increase the maximum)"
msgstr ""
-#: cp/semantics.c:6679
+#: cp/semantics.c:6704
#, gcc-internal-format
msgid "%q+E is not a constant expression"
msgstr ""
-#: cp/semantics.c:6819
+#: cp/semantics.c:6844
#, gcc-internal-format
msgid "array subscript out of bound"
msgstr ""
-#: cp/semantics.c:6865 cp/semantics.c:6925 cp/semantics.c:7562
+#: cp/semantics.c:6890 cp/semantics.c:6950 cp/semantics.c:7630
#, gcc-internal-format
msgid "%qE is not a constant expression"
msgstr ""
-#: cp/semantics.c:6871
+#: cp/semantics.c:6896
#, gcc-internal-format
msgid "mutable %qD is not usable in a constant expression"
msgstr ""
-#: cp/semantics.c:6886
+#: cp/semantics.c:6911
#, gcc-internal-format
msgid ""
"accessing %qD member instead of initialized %qD member in constant expression"
msgstr ""
-#: cp/semantics.c:7427
+#: cp/semantics.c:7458
#, gcc-internal-format
msgid "accessing value of %qE through a %qT glvalue in a constant expression"
msgstr ""
-#: cp/semantics.c:7458
+#: cp/semantics.c:7493
#, gcc-internal-format
msgid "the value of %qD is not usable in a constant expression"
msgstr ""
-#: cp/semantics.c:7465
+#: cp/semantics.c:7500
#, gcc-internal-format
msgid "%qD used in its own initializer"
msgstr ""
-#: cp/semantics.c:7470
+#: cp/semantics.c:7505
#, gcc-internal-format
msgid "%q#D is not const"
msgstr ""
-#: cp/semantics.c:7473
+#: cp/semantics.c:7508
#, gcc-internal-format
msgid "%q#D is volatile"
msgstr ""
-#: cp/semantics.c:7477
+#: cp/semantics.c:7512
#, gcc-internal-format
msgid "%qD was not initialized with a constant expression"
msgstr ""
-#: cp/semantics.c:7486
+#: cp/semantics.c:7521
#, gcc-internal-format
msgid "%qD was not declared %<constexpr%>"
msgstr ""
-#: cp/semantics.c:7489
+#: cp/semantics.c:7524
#, gcc-internal-format
msgid "%qD does not have integral or enumeration type"
msgstr ""
-#: cp/semantics.c:7550 cp/semantics.c:8241
+#: cp/semantics.c:7618 cp/semantics.c:8314
#, gcc-internal-format
msgid ""
"use of the value of the object being constructed in a constant expression"
msgstr ""
-#: cp/semantics.c:7578 cp/semantics.c:8379
+#: cp/semantics.c:7646 cp/semantics.c:8452
#, gcc-internal-format
msgid "temporary of non-literal type %qT in a constant expression"
msgstr ""
-#: cp/semantics.c:7824 cp/semantics.c:8283 cp/semantics.c:8533
+#: cp/semantics.c:7897 cp/semantics.c:8356 cp/semantics.c:8616
#, gcc-internal-format
msgid "expression %qE is not a constant-expression"
msgstr ""
-#: cp/semantics.c:7829
+#: cp/semantics.c:7902
#, gcc-internal-format
msgid "unexpected expression %qE of kind %s"
msgstr ""
-#: cp/semantics.c:7860
+#: cp/semantics.c:7933
#, gcc-internal-format
msgid ""
"%qT cannot be the type of a complete constant expression because it has "
"mutable sub-objects"
msgstr ""
-#: cp/semantics.c:7873
+#: cp/semantics.c:7946
#, gcc-internal-format
msgid ""
"conversion from pointer type %qT to arithmetic type %qT in a constant-"
"expression"
msgstr ""
-#: cp/semantics.c:8044
+#: cp/semantics.c:8117
#, gcc-internal-format
msgid "expression %qE has side-effects"
msgstr ""
-#: cp/semantics.c:8127
+#: cp/semantics.c:8200
#, gcc-internal-format
msgid ""
"calling a member function of the object being constructed in a constant "
"expression"
msgstr ""
-#: cp/semantics.c:8209
+#: cp/semantics.c:8282
#, gcc-internal-format
msgid ""
"address-of an object %qE with thread local or automatic storage is not a "
"constant expression"
msgstr ""
-#: cp/semantics.c:8295
+#: cp/semantics.c:8368
#, gcc-internal-format
msgid ""
"typeid-expression is not a constant expression because %qE is of polymorphic "
"type"
msgstr ""
-#: cp/semantics.c:8308
+#: cp/semantics.c:8381
#, gcc-internal-format
msgid "difference of two pointer expressions is not a constant expression"
msgstr ""
-#: cp/semantics.c:8327
+#: cp/semantics.c:8400
#, gcc-internal-format
msgid "pointer comparison expression is not a constant expression"
msgstr ""
-#: cp/semantics.c:8428
+#: cp/semantics.c:8501
#, gcc-internal-format
msgid "division by zero is not a constant-expression"
msgstr ""
-#: cp/semantics.c:8541
+#: cp/semantics.c:8624
#, gcc-internal-format
msgid "non-constant array initialization"
msgstr ""
-#: cp/semantics.c:8547
+#: cp/semantics.c:8630
#, gcc-internal-format, gfc-internal-format
msgid "unexpected AST of kind %s"
msgstr ""
-#: cp/semantics.c:9039
+#: cp/semantics.c:9122
#, gcc-internal-format
msgid "cannot capture %qE by reference"
msgstr ""
-#: cp/semantics.c:9062
+#: cp/semantics.c:9145
#, gcc-internal-format
msgid "already captured %qD in lambda expression"
msgstr ""
-#: cp/semantics.c:9208
+#: cp/semantics.c:9291
#, gcc-internal-format
msgid "%<this%> was not captured for this lambda function"
msgstr ""
-#: cp/tree.c:1034
+#: cp/tree.c:1046
#, gcc-internal-format
msgid "%qV qualifiers cannot be applied to %qT"
msgstr ""
-#: cp/tree.c:2815
+#: cp/tree.c:3008
#, gcc-internal-format
msgid "%qE attribute can only be applied to Java class definitions"
msgstr ""
-#: cp/tree.c:2844
+#: cp/tree.c:3037
#, gcc-internal-format
msgid "%qE attribute can only be applied to class definitions"
msgstr ""
-#: cp/tree.c:2850
+#: cp/tree.c:3043
#, gcc-internal-format
msgid "%qE is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:2874
+#: cp/tree.c:3067
#, gcc-internal-format
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:2895
+#: cp/tree.c:3088
#, gcc-internal-format
msgid ""
"can only use %qE attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:2903
+#: cp/tree.c:3096
#, gcc-internal-format
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:2913
+#: cp/tree.c:3106
#, gcc-internal-format
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:2924
+#: cp/tree.c:3117
#, gcc-internal-format
msgid "%qE attribute is not supported on this platform"
msgstr ""
-#: cp/tree.c:3615
+#: cp/tree.c:3807
#, gcc-internal-format, gfc-internal-format
msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
@@ -35415,361 +35651,366 @@ msgid ""
"lacks a cast"
msgstr ""
-#: cp/typeck.c:1396
+#: cp/typeck.c:1390
#, gcc-internal-format
msgid "canonical types differ for identical types %T and %T"
msgstr ""
-#: cp/typeck.c:1403
+#: cp/typeck.c:1397
#, gcc-internal-format
msgid "same canonical type node for different types %T and %T"
msgstr ""
-#: cp/typeck.c:1528
+#: cp/typeck.c:1522
#, gcc-internal-format
msgid "invalid application of %qs to a member function"
msgstr ""
-#: cp/typeck.c:1605
+#: cp/typeck.c:1599
#, gcc-internal-format
msgid "invalid application of %<sizeof%> to a bit-field"
msgstr ""
-#: cp/typeck.c:1613
+#: cp/typeck.c:1607
#, gcc-internal-format
msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
msgstr ""
-#: cp/typeck.c:1664
+#: cp/typeck.c:1658
#, gcc-internal-format
msgid "invalid application of %<__alignof%> to a bit-field"
msgstr ""
-#: cp/typeck.c:1675
+#: cp/typeck.c:1669
#, gcc-internal-format
msgid ""
"ISO C++ forbids applying %<__alignof%> to an expression of function type"
msgstr ""
-#: cp/typeck.c:1733
+#: cp/typeck.c:1727
#, gcc-internal-format
msgid "invalid use of non-static member function"
msgstr ""
-#: cp/typeck.c:1893
+#: cp/typeck.c:1887
#, gcc-internal-format
msgid "taking address of temporary array"
msgstr ""
-#: cp/typeck.c:2049
+#: cp/typeck.c:2043
#, gcc-internal-format
msgid "deprecated conversion from string constant to %qT"
msgstr ""
-#: cp/typeck.c:2177 cp/typeck.c:2577
+#: cp/typeck.c:2171 cp/typeck.c:2571
#, gcc-internal-format
msgid ""
"request for member %qD in %qE, which is of pointer type %qT (maybe you meant "
"to use %<->%> ?)"
msgstr ""
-#: cp/typeck.c:2181 cp/typeck.c:2581
+#: cp/typeck.c:2175 cp/typeck.c:2575
#, gcc-internal-format
msgid "request for member %qD in %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck.c:2211
+#: cp/typeck.c:2205
#, gcc-internal-format
msgid "invalid use of nonstatic data member %qE"
msgstr ""
-#: cp/typeck.c:2267
+#: cp/typeck.c:2261
#, gcc-internal-format
msgid "invalid access to non-static data member %qD of NULL object"
msgstr ""
-#: cp/typeck.c:2270 cp/typeck.c:2301
+#: cp/typeck.c:2264 cp/typeck.c:2295
#, gcc-internal-format
msgid "(perhaps the %<offsetof%> macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:2298
+#: cp/typeck.c:2292
#, gcc-internal-format
msgid "invalid access to non-static data member %qD of NULL object"
msgstr ""
-#: cp/typeck.c:2431
+#: cp/typeck.c:2425
#, gcc-internal-format
msgid "object type %qT does not match destructor name ~%qT"
msgstr ""
-#: cp/typeck.c:2439
+#: cp/typeck.c:2433
#, gcc-internal-format
msgid "the type being destroyed is %qT, but the destructor refers to %qT"
msgstr ""
-#: cp/typeck.c:2621
+#: cp/typeck.c:2615
#, gcc-internal-format
msgid "%<%D::%D%> is not a member of %qT"
msgstr ""
-#: cp/typeck.c:2645
+#: cp/typeck.c:2640
#, gcc-internal-format
msgid "%qT is not a base of %qT"
msgstr ""
-#: cp/typeck.c:2665
+#: cp/typeck.c:2660
#, gcc-internal-format
msgid "%qD has no member named %qE"
msgstr ""
-#: cp/typeck.c:2683
+#: cp/typeck.c:2678
#, gcc-internal-format
msgid "%qD is not a member template function"
msgstr ""
-#: cp/typeck.c:2827
+#: cp/typeck.c:2822
#, gcc-internal-format
msgid "%qT is not a pointer-to-object type"
msgstr ""
-#: cp/typeck.c:2858
+#: cp/typeck.c:2853
#, gcc-internal-format
msgid "invalid use of array indexing on pointer to member"
msgstr ""
-#: cp/typeck.c:2861
+#: cp/typeck.c:2856
#, gcc-internal-format
msgid "invalid use of unary %<*%> on pointer to member"
msgstr ""
-#: cp/typeck.c:2864
+#: cp/typeck.c:2859
#, gcc-internal-format
msgid "invalid use of implicit conversion on pointer to member"
msgstr ""
-#: cp/typeck.c:2899
+#: cp/typeck.c:2894
#, gcc-internal-format
msgid "subscript missing in array reference"
msgstr ""
-#: cp/typeck.c:2985
+#: cp/typeck.c:2980
#, gcc-internal-format
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: cp/typeck.c:2998
+#: cp/typeck.c:2993
#, gcc-internal-format
msgid "subscripting array declared %<register%>"
msgstr ""
-#: cp/typeck.c:3035
+#: cp/typeck.c:3030
#, gcc-internal-format
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: cp/typeck.c:3103
+#: cp/typeck.c:3098
#, gcc-internal-format
msgid "object missing in use of %qE"
msgstr ""
-#: cp/typeck.c:3311
+#: cp/typeck.c:3306
#, gcc-internal-format
msgid "ISO C++ forbids calling %<::main%> from within program"
msgstr ""
-#: cp/typeck.c:3330
+#: cp/typeck.c:3325
#, gcc-internal-format
msgid ""
"must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E "
"(...)%>, e.g. %<(... ->* %E) (...)%>"
msgstr ""
-#: cp/typeck.c:3348
+#: cp/typeck.c:3343
#, gcc-internal-format
msgid "%qE cannot be used as a function"
msgstr ""
-#: cp/typeck.c:3351
+#: cp/typeck.c:3346
#, gcc-internal-format
msgid "%qD cannot be used as a function"
msgstr ""
-#: cp/typeck.c:3354
+#: cp/typeck.c:3349
#, gcc-internal-format
msgid "expression cannot be used as a function"
msgstr ""
-#: cp/typeck.c:3403
+#: cp/typeck.c:3398
#, gcc-internal-format
msgid "too many arguments to constructor %q#D"
msgstr ""
-#: cp/typeck.c:3404
+#: cp/typeck.c:3399
#, gcc-internal-format
msgid "too few arguments to constructor %q#D"
msgstr ""
-#: cp/typeck.c:3409
+#: cp/typeck.c:3404
#, gcc-internal-format
msgid "too many arguments to member function %q#D"
msgstr ""
-#: cp/typeck.c:3410
+#: cp/typeck.c:3405
#, gcc-internal-format
msgid "too few arguments to member function %q#D"
msgstr ""
-#: cp/typeck.c:3416
+#: cp/typeck.c:3411
#, gcc-internal-format
msgid "too many arguments to function %q#D"
msgstr ""
-#: cp/typeck.c:3417
+#: cp/typeck.c:3412
#, gcc-internal-format
msgid "too few arguments to function %q#D"
msgstr ""
-#: cp/typeck.c:3427
+#: cp/typeck.c:3422
#, gcc-internal-format
msgid "too many arguments to method %q#D"
msgstr ""
-#: cp/typeck.c:3428
+#: cp/typeck.c:3423
#, gcc-internal-format
msgid "too few arguments to method %q#D"
msgstr ""
-#: cp/typeck.c:3431
+#: cp/typeck.c:3426
#, gcc-internal-format
msgid "too many arguments to function"
msgstr ""
-#: cp/typeck.c:3432
+#: cp/typeck.c:3427
#, gcc-internal-format
msgid "too few arguments to function"
msgstr ""
-#: cp/typeck.c:3511
+#: cp/typeck.c:3506
#, gcc-internal-format
msgid "parameter %P of %qD has incomplete type %qT"
msgstr ""
-#: cp/typeck.c:3514
+#: cp/typeck.c:3509
#, gcc-internal-format
msgid "parameter %P has incomplete type %qT"
msgstr ""
-#: cp/typeck.c:3811 cp/typeck.c:3822
+#: cp/typeck.c:3806 cp/typeck.c:3817
#, gcc-internal-format
msgid "assuming cast to type %qT from overloaded function"
msgstr ""
-#: cp/typeck.c:3867
+#: cp/typeck.c:3862
#, gcc-internal-format
msgid "NULL used in arithmetic"
msgstr ""
-#: cp/typeck.c:4060
+#: cp/typeck.c:4071
#, gcc-internal-format
msgid "left rotate count is negative"
msgstr ""
-#: cp/typeck.c:4061
+#: cp/typeck.c:4072
#, gcc-internal-format
msgid "right rotate count is negative"
msgstr ""
-#: cp/typeck.c:4067
+#: cp/typeck.c:4078
#, gcc-internal-format
msgid "left rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:4068
+#: cp/typeck.c:4079
#, gcc-internal-format
msgid "right rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:4087 cp/typeck.c:4319
+#: cp/typeck.c:4100 cp/typeck.c:4332
#, gcc-internal-format
msgid "comparison with string literal results in unspecified behaviour"
msgstr ""
-#: cp/typeck.c:4107 cp/typeck.c:4120
+#: cp/typeck.c:4120 cp/typeck.c:4133
#, gcc-internal-format
msgid "the address of %qD will never be NULL"
msgstr ""
-#: cp/typeck.c:4132 cp/typeck.c:4140 cp/typeck.c:4352 cp/typeck.c:4360
+#: cp/typeck.c:4145 cp/typeck.c:4153 cp/typeck.c:4394 cp/typeck.c:4402
#, gcc-internal-format
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr ""
-#: cp/typeck.c:4377
+#: cp/typeck.c:4344 cp/typeck.c:4352
+#, gcc-internal-format
+msgid "operand types are %qT and %qT"
+msgstr ""
+
+#: cp/typeck.c:4419
#, gcc-internal-format
msgid "unordered comparison on non-floating point argument"
msgstr ""
-#: cp/typeck.c:4424
+#: cp/typeck.c:4466
#, gcc-internal-format
msgid "invalid operands of types %qT and %qT to binary %qO"
msgstr ""
-#: cp/typeck.c:4651
+#: cp/typeck.c:4693
#, gcc-internal-format
msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
msgstr ""
-#: cp/typeck.c:4659
+#: cp/typeck.c:4701
#, gcc-internal-format
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: cp/typeck.c:4667
+#: cp/typeck.c:4709
#, gcc-internal-format
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: cp/typeck.c:4686
+#: cp/typeck.c:4728
#, gcc-internal-format
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: cp/typeck.c:4750
+#: cp/typeck.c:4792
#, gcc-internal-format
msgid "taking address of constructor %qE"
msgstr ""
-#: cp/typeck.c:4751
+#: cp/typeck.c:4793
#, gcc-internal-format
msgid "taking address of destructor %qE"
msgstr ""
-#: cp/typeck.c:4765
+#: cp/typeck.c:4807
#, gcc-internal-format
msgid "invalid use of %qE to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:4768
+#: cp/typeck.c:4810
#, gcc-internal-format
msgid " a qualified-id is required"
msgstr ""
-#: cp/typeck.c:4773
+#: cp/typeck.c:4815
#, gcc-internal-format
msgid ""
"parentheses around %qE cannot be used to form a pointer-to-member-function"
msgstr ""
#. An expression like &memfn.
-#: cp/typeck.c:4934
+#: cp/typeck.c:4976
#, gcc-internal-format
msgid ""
"ISO C++ forbids taking the address of an unqualified or parenthesized non-"
"static member function to form a pointer to member function. Say %<&%T::%D%>"
msgstr ""
-#: cp/typeck.c:4939
+#: cp/typeck.c:4981
#, gcc-internal-format
msgid ""
"ISO C++ forbids taking the address of a bound member function to form a "
@@ -35777,152 +36018,152 @@ msgid ""
msgstr ""
#. Make this a permerror because we used to accept it.
-#: cp/typeck.c:4976
+#: cp/typeck.c:5018
#, gcc-internal-format
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:4978
+#: cp/typeck.c:5020
#, gcc-internal-format
msgid "taking address of xvalue (rvalue reference)"
msgstr ""
-#: cp/typeck.c:4995
+#: cp/typeck.c:5037
#, gcc-internal-format
msgid "ISO C++ forbids taking address of function %<::main%>"
msgstr ""
-#: cp/typeck.c:5050
+#: cp/typeck.c:5092
#, gcc-internal-format
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: cp/typeck.c:5078
+#: cp/typeck.c:5120
#, gcc-internal-format
msgid "cannot create pointer to reference member %qD"
msgstr ""
-#: cp/typeck.c:5354
+#: cp/typeck.c:5396
#, gcc-internal-format
msgid "ISO C++ forbids incrementing an enum"
msgstr ""
-#: cp/typeck.c:5355
+#: cp/typeck.c:5397
#, gcc-internal-format
msgid "ISO C++ forbids decrementing an enum"
msgstr ""
-#: cp/typeck.c:5371
+#: cp/typeck.c:5413
#, gcc-internal-format
msgid "cannot increment a pointer to incomplete type %qT"
msgstr ""
-#: cp/typeck.c:5372
+#: cp/typeck.c:5414
#, gcc-internal-format
msgid "cannot decrement a pointer to incomplete type %qT"
msgstr ""
-#: cp/typeck.c:5383
+#: cp/typeck.c:5425
#, gcc-internal-format
msgid "ISO C++ forbids incrementing a pointer of type %qT"
msgstr ""
-#: cp/typeck.c:5384
+#: cp/typeck.c:5426
#, gcc-internal-format
msgid "ISO C++ forbids decrementing a pointer of type %qT"
msgstr ""
-#: cp/typeck.c:5417
+#: cp/typeck.c:5459
#, gcc-internal-format
msgid "invalid use of Boolean expression as operand to %<operator--%>"
msgstr ""
-#: cp/typeck.c:5579
+#: cp/typeck.c:5621
#, gcc-internal-format
msgid "cannot take the address of %<this%>, which is an rvalue expression"
msgstr ""
-#: cp/typeck.c:5601
+#: cp/typeck.c:5643
#, gcc-internal-format
msgid "address of explicit register variable %qD requested"
msgstr ""
-#: cp/typeck.c:5606
+#: cp/typeck.c:5648
#, gcc-internal-format
msgid "address requested for %qD, which is declared %<register%>"
msgstr ""
-#: cp/typeck.c:5687
+#: cp/typeck.c:5729
#, gcc-internal-format
msgid "list-initializer for non-class type must not be parenthesized"
msgstr ""
-#: cp/typeck.c:5699
+#: cp/typeck.c:5741
#, gcc-internal-format
msgid "expression list treated as compound expression in initializer"
msgstr ""
-#: cp/typeck.c:5703
+#: cp/typeck.c:5745
#, gcc-internal-format
msgid "expression list treated as compound expression in mem-initializer"
msgstr ""
-#: cp/typeck.c:5707
+#: cp/typeck.c:5749
#, gcc-internal-format
msgid "expression list treated as compound expression in functional cast"
msgstr ""
-#: cp/typeck.c:5741
+#: cp/typeck.c:5786
#, gcc-internal-format, gfc-internal-format
msgid "%s expression list treated as compound expression"
msgstr ""
-#: cp/typeck.c:5816
+#: cp/typeck.c:5864
#, gcc-internal-format
msgid "no context to resolve type of %qE"
msgstr ""
-#: cp/typeck.c:5849
+#: cp/typeck.c:5897
#, gcc-internal-format
msgid "cast from type %qT to type %qT casts away qualifiers"
msgstr ""
-#: cp/typeck.c:5855
+#: cp/typeck.c:5903
#, gcc-internal-format
msgid "static_cast from type %qT to type %qT casts away qualifiers"
msgstr ""
-#: cp/typeck.c:5861
+#: cp/typeck.c:5909
#, gcc-internal-format
msgid "reinterpret_cast from type %qT to type %qT casts away qualifiers"
msgstr ""
-#: cp/typeck.c:5888
+#: cp/typeck.c:5936
#, gcc-internal-format
msgid "useless cast to type %qT"
msgstr ""
-#: cp/typeck.c:6230
+#: cp/typeck.c:6278
#, gcc-internal-format
msgid "invalid static_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:6256
+#: cp/typeck.c:6304
#, gcc-internal-format
msgid "converting from %qT to %qT"
msgstr ""
-#: cp/typeck.c:6308
+#: cp/typeck.c:6356
#, gcc-internal-format
msgid "invalid cast of an rvalue expression of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:6378
+#: cp/typeck.c:6426
#, gcc-internal-format
msgid "cast from %qT to %qT loses precision"
msgstr ""
-#: cp/typeck.c:6418
+#: cp/typeck.c:6466
#, gcc-internal-format
msgid "cast from %qT to %qT increases required alignment of target type"
msgstr ""
@@ -35931,212 +36172,212 @@ msgstr ""
#. where possible, and it is necessary in some cases. DR 195
#. addresses this issue, but as of 2004/10/26 is still in
#. drafting.
-#: cp/typeck.c:6437
+#: cp/typeck.c:6485
#, gcc-internal-format
msgid ""
"ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: cp/typeck.c:6450
+#: cp/typeck.c:6498
#, gcc-internal-format
msgid "invalid cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:6511
+#: cp/typeck.c:6559
#, gcc-internal-format
msgid ""
"invalid use of const_cast with type %qT, which is not a pointer, reference, "
"nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:6520
+#: cp/typeck.c:6568
#, gcc-internal-format
msgid ""
"invalid use of const_cast with type %qT, which is a pointer or reference to "
"a function type"
msgstr ""
-#: cp/typeck.c:6560
+#: cp/typeck.c:6608
#, gcc-internal-format
msgid "invalid const_cast of an rvalue of type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:6621
+#: cp/typeck.c:6669
#, gcc-internal-format
msgid "invalid const_cast from type %qT to type %qT"
msgstr ""
-#: cp/typeck.c:6702 cp/typeck.c:6710
+#: cp/typeck.c:6750 cp/typeck.c:6758
#, gcc-internal-format
msgid "ISO C++ forbids casting to an array type %qT"
msgstr ""
-#: cp/typeck.c:6719
+#: cp/typeck.c:6767
#, gcc-internal-format
msgid "invalid cast to function type %qT"
msgstr ""
-#: cp/typeck.c:7001
+#: cp/typeck.c:7049
#, gcc-internal-format
msgid " in evaluation of %<%Q(%#T, %#T)%>"
msgstr ""
-#: cp/typeck.c:7062
+#: cp/typeck.c:7110
#, gcc-internal-format
msgid "assigning to an array from an initializer list"
msgstr ""
-#: cp/typeck.c:7076
+#: cp/typeck.c:7124
#, gcc-internal-format
msgid "incompatible types in assignment of %qT to %qT"
msgstr ""
-#: cp/typeck.c:7090
+#: cp/typeck.c:7138
#, gcc-internal-format
msgid "array used as initializer"
msgstr ""
-#: cp/typeck.c:7092
+#: cp/typeck.c:7140
#, gcc-internal-format
msgid "invalid array assignment"
msgstr ""
-#: cp/typeck.c:7204
+#: cp/typeck.c:7247
#, gcc-internal-format
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:7218
+#: cp/typeck.c:7261
#, gcc-internal-format
msgid "pointer to member conversion via virtual base %qT"
msgstr ""
-#: cp/typeck.c:7265 cp/typeck.c:7284
+#: cp/typeck.c:7308 cp/typeck.c:7327
#, gcc-internal-format
msgid " in pointer to member conversion"
msgstr ""
-#: cp/typeck.c:7364
+#: cp/typeck.c:7407
#, gcc-internal-format
msgid "invalid conversion to type %qT from type %qT"
msgstr ""
-#: cp/typeck.c:7647
+#: cp/typeck.c:7686
#, gcc-internal-format
msgid "cannot convert %qT to %qT for argument %qP to %qD"
msgstr ""
-#: cp/typeck.c:7653
+#: cp/typeck.c:7692
#, gcc-internal-format
msgid "cannot convert %qT to %qT in default argument"
msgstr ""
-#: cp/typeck.c:7657
+#: cp/typeck.c:7696
#, gcc-internal-format
msgid "cannot convert %qT to %qT in argument passing"
msgstr ""
-#: cp/typeck.c:7661
+#: cp/typeck.c:7700
#, gcc-internal-format
msgid "cannot convert %qT to %qT"
msgstr ""
-#: cp/typeck.c:7665
+#: cp/typeck.c:7704
#, gcc-internal-format
msgid "cannot convert %qT to %qT in initialization"
msgstr ""
-#: cp/typeck.c:7669
+#: cp/typeck.c:7708
#, gcc-internal-format
msgid "cannot convert %qT to %qT in return"
msgstr ""
-#: cp/typeck.c:7673
+#: cp/typeck.c:7712
#, gcc-internal-format
msgid "cannot convert %qT to %qT in assignment"
msgstr ""
-#: cp/typeck.c:7696
+#: cp/typeck.c:7735
#, gcc-internal-format
msgid "parameter %qP of %qD might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:7700
+#: cp/typeck.c:7739
#, gcc-internal-format
msgid "parameter might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:7705
+#: cp/typeck.c:7744
#, gcc-internal-format
msgid "target of conversion might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:7710
+#: cp/typeck.c:7749
#, gcc-internal-format
msgid "target of initialization might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:7720
+#: cp/typeck.c:7759
#, gcc-internal-format
msgid ""
"left-hand side of assignment might be a candidate for a format attribute"
msgstr ""
-#: cp/typeck.c:7813 cp/typeck.c:7815
+#: cp/typeck.c:7852 cp/typeck.c:7854
#, gcc-internal-format
msgid "in passing argument %P of %q+D"
msgstr ""
-#: cp/typeck.c:7870
+#: cp/typeck.c:7909
#, gcc-internal-format
msgid "returning reference to temporary"
msgstr ""
-#: cp/typeck.c:7877
+#: cp/typeck.c:7916
#, gcc-internal-format
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:7893
+#: cp/typeck.c:7932
#, gcc-internal-format
msgid "reference to local variable %q+D returned"
msgstr ""
-#: cp/typeck.c:7896
+#: cp/typeck.c:7935
#, gcc-internal-format
msgid "address of local variable %q+D returned"
msgstr ""
-#: cp/typeck.c:7933
+#: cp/typeck.c:7972
#, gcc-internal-format
msgid "returning a value from a destructor"
msgstr ""
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:7941
+#: cp/typeck.c:7980
#, gcc-internal-format
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr ""
#. You can't return a value from a constructor.
-#: cp/typeck.c:7944
+#: cp/typeck.c:7983
#, gcc-internal-format
msgid "returning a value from a constructor"
msgstr ""
#. Give a helpful error message.
-#: cp/typeck.c:7967 cp/typeck.c:8006
+#: cp/typeck.c:8006 cp/typeck.c:8045
#, gcc-internal-format
msgid "return-statement with no value, in function returning %qT"
msgstr ""
-#: cp/typeck.c:8025
+#: cp/typeck.c:8064
#, gcc-internal-format
msgid "return-statement with a value, in function returning 'void'"
msgstr ""
-#: cp/typeck.c:8055
+#: cp/typeck.c:8094
#, gcc-internal-format
msgid ""
"%<operator new%> must not return NULL unless it is declared %<throw()%> (or -"
@@ -36144,12 +36385,12 @@ msgid ""
msgstr ""
#. Make this a permerror because we used to accept it.
-#: cp/typeck.c:8623
+#: cp/typeck.c:8662
#, gcc-internal-format
msgid "using temporary as lvalue"
msgstr ""
-#: cp/typeck.c:8625
+#: cp/typeck.c:8664
#, gcc-internal-format
msgid "using xvalue (rvalue reference) as lvalue"
msgstr ""
@@ -36159,1155 +36400,1203 @@ msgstr ""
msgid "type %qT is not a base type for type %qT"
msgstr ""
-#: cp/typeck2.c:107
+#: cp/typeck2.c:108
#, gcc-internal-format
msgid "assignment of constant field %qD"
msgstr ""
-#: cp/typeck2.c:109
+#: cp/typeck2.c:110
#, gcc-internal-format
msgid "constant field %qD used as %<asm%> output"
msgstr ""
-#: cp/typeck2.c:111
+#: cp/typeck2.c:112
#, gcc-internal-format
msgid "increment of constant field %qD"
msgstr ""
-#: cp/typeck2.c:113
+#: cp/typeck2.c:114
#, gcc-internal-format
msgid "decrement of constant field %qD"
msgstr ""
-#: cp/typeck2.c:120
+#: cp/typeck2.c:121
#, gcc-internal-format
msgid "assignment of read-only reference %qD"
msgstr ""
-#: cp/typeck2.c:122
+#: cp/typeck2.c:123
#, gcc-internal-format
msgid "read-only reference %qD used as %<asm%> output"
msgstr ""
-#: cp/typeck2.c:124
+#: cp/typeck2.c:125
#, gcc-internal-format
msgid "increment of read-only reference %qD"
msgstr ""
-#: cp/typeck2.c:126
+#: cp/typeck2.c:127
#, gcc-internal-format
msgid "decrement of read-only reference %qD"
msgstr ""
-#: cp/typeck2.c:310
+#: cp/typeck2.c:311
#, gcc-internal-format
msgid "cannot declare variable %q+D to be of abstract type %qT"
msgstr ""
-#: cp/typeck2.c:313
+#: cp/typeck2.c:314
#, gcc-internal-format
msgid "cannot declare parameter %q+D to be of abstract type %qT"
msgstr ""
-#: cp/typeck2.c:316
+#: cp/typeck2.c:317
#, gcc-internal-format
msgid "cannot declare field %q+D to be of abstract type %qT"
msgstr ""
-#: cp/typeck2.c:320
+#: cp/typeck2.c:321
#, gcc-internal-format
msgid "invalid abstract return type for member function %q+#D"
msgstr ""
-#: cp/typeck2.c:322
+#: cp/typeck2.c:323
#, gcc-internal-format
msgid "invalid abstract return type for function %q+#D"
msgstr ""
#. Here we do not have location information.
-#: cp/typeck2.c:325
+#: cp/typeck2.c:326
#, gcc-internal-format
msgid "invalid abstract type %qT for %qE"
msgstr ""
-#: cp/typeck2.c:327
+#: cp/typeck2.c:328
#, gcc-internal-format
msgid "invalid abstract type for %q+D"
msgstr ""
-#: cp/typeck2.c:330
+#: cp/typeck2.c:331
#, gcc-internal-format
msgid "cannot allocate an object of abstract type %qT"
msgstr ""
-#: cp/typeck2.c:339
+#: cp/typeck2.c:340
#, gcc-internal-format
msgid " because the following virtual functions are pure within %qT:"
msgstr ""
-#: cp/typeck2.c:345
+#: cp/typeck2.c:346
#, gcc-internal-format
msgid "\t%+#D"
msgstr ""
-#: cp/typeck2.c:354
+#: cp/typeck2.c:355
#, gcc-internal-format
msgid " since type %qT has pure virtual functions"
msgstr ""
-#: cp/typeck2.c:392
+#: cp/typeck2.c:393
#, gcc-internal-format
msgid "%q+D has incomplete type"
msgstr ""
-#: cp/typeck2.c:405
+#: cp/typeck2.c:406
#, gcc-internal-format
msgid "invalid use of incomplete type %q#T"
msgstr ""
-#: cp/typeck2.c:408
+#: cp/typeck2.c:409
#, gcc-internal-format
msgid "forward declaration of %q+#T"
msgstr ""
-#: cp/typeck2.c:411
+#: cp/typeck2.c:412
#, gcc-internal-format
msgid "declaration of %q+#T"
msgstr ""
-#: cp/typeck2.c:416
+#: cp/typeck2.c:417
#, gcc-internal-format
msgid "invalid use of %qT"
msgstr ""
-#: cp/typeck2.c:438
+#: cp/typeck2.c:439
#, gcc-internal-format
msgid "invalid use of member function (did you forget the %<()%> ?)"
msgstr ""
-#: cp/typeck2.c:442
+#: cp/typeck2.c:443
#, gcc-internal-format
msgid "invalid use of member (did you forget the %<&%> ?)"
msgstr ""
-#: cp/typeck2.c:453
+#: cp/typeck2.c:454
#, gcc-internal-format
msgid "invalid use of template type parameter %qT"
msgstr ""
-#: cp/typeck2.c:458
+#: cp/typeck2.c:459
#, gcc-internal-format
msgid "invalid use of template template parameter %qT"
msgstr ""
-#: cp/typeck2.c:464
+#: cp/typeck2.c:465
#, gcc-internal-format
msgid "invalid use of dependent type %qT"
msgstr ""
-#: cp/typeck2.c:471
+#: cp/typeck2.c:472
#, gcc-internal-format
msgid "invalid use of brace-enclosed initializer list"
msgstr ""
-#: cp/typeck2.c:479
+#: cp/typeck2.c:480
#, gcc-internal-format
msgid "address of overloaded function with no contextual type information"
msgstr ""
-#: cp/typeck2.c:483
+#: cp/typeck2.c:484
#, gcc-internal-format
msgid "overloaded function with no contextual type information"
msgstr ""
-#: cp/typeck2.c:486
+#: cp/typeck2.c:487
#, gcc-internal-format
msgid "insufficient contextual information to determine type"
msgstr ""
-#: cp/typeck2.c:677
+#: cp/typeck2.c:678
#, gcc-internal-format
msgid "constructor syntax used, but no constructor declared for type %qT"
msgstr ""
-#: cp/typeck2.c:690
+#: cp/typeck2.c:691
#, gcc-internal-format
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:832
+#: cp/typeck2.c:836
#, gcc-internal-format
msgid "narrowing conversion of %qE from %qT to %qT inside { }"
msgstr ""
-#: cp/typeck2.c:836
+#: cp/typeck2.c:840
#, gcc-internal-format
msgid ""
"narrowing conversion of %qE from %qT to %qT inside { } is ill-formed in C++11"
msgstr ""
-#: cp/typeck2.c:899
+#: cp/typeck2.c:903
#, gcc-internal-format
msgid "int-array initialized from non-wide string"
msgstr ""
-#: cp/typeck2.c:905
+#: cp/typeck2.c:909
#, gcc-internal-format
msgid "int-array initialized from incompatible wide string"
msgstr ""
-#: cp/typeck2.c:925
+#: cp/typeck2.c:929
#, gcc-internal-format
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: cp/typeck2.c:973
+#: cp/typeck2.c:977
#, gcc-internal-format
msgid "cannot initialize aggregate of type %qT with a compound literal"
msgstr ""
-#: cp/typeck2.c:991
+#: cp/typeck2.c:995
#, gcc-internal-format
msgid "array must be initialized with a brace-enclosed initializer"
msgstr ""
-#: cp/typeck2.c:1225 cp/typeck2.c:1254
+#: cp/typeck2.c:1229 cp/typeck2.c:1258
#, gcc-internal-format
msgid "missing initializer for member %qD"
msgstr ""
-#: cp/typeck2.c:1232
+#: cp/typeck2.c:1236
#, gcc-internal-format
msgid "uninitialized const member %qD"
msgstr ""
-#: cp/typeck2.c:1239
+#: cp/typeck2.c:1243
#, gcc-internal-format
msgid "member %qD with uninitialized const fields"
msgstr ""
-#: cp/typeck2.c:1246
+#: cp/typeck2.c:1250
#, gcc-internal-format
msgid "member %qD is uninitialized reference"
msgstr ""
-#: cp/typeck2.c:1326
+#: cp/typeck2.c:1330
#, gcc-internal-format
msgid "no field %qD found in union being initialized"
msgstr ""
-#: cp/typeck2.c:1337
+#: cp/typeck2.c:1341
#, gcc-internal-format
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:1509
+#: cp/typeck2.c:1514
#, gcc-internal-format
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1523
+#: cp/typeck2.c:1528
#, gcc-internal-format
msgid "base operand of %<->%> has non-pointer type %qT"
msgstr ""
-#: cp/typeck2.c:1549
+#: cp/typeck2.c:1554
#, gcc-internal-format
msgid "result of %<operator->()%> yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1551
+#: cp/typeck2.c:1556
#, gcc-internal-format
msgid "base operand of %<->%> is not a pointer"
msgstr ""
-#: cp/typeck2.c:1578
+#: cp/typeck2.c:1583
#, gcc-internal-format
msgid "%qE cannot be used as a member pointer, since it is of type %qT"
msgstr ""
-#: cp/typeck2.c:1587
+#: cp/typeck2.c:1592
#, gcc-internal-format
msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
msgstr ""
-#: cp/typeck2.c:1609
+#: cp/typeck2.c:1614
#, gcc-internal-format
msgid "pointer to member type %qT incompatible with object type %qT"
msgstr ""
-#: cp/typeck2.c:1682
+#: cp/typeck2.c:1687
#, gcc-internal-format
msgid "functional cast to array type %qT"
msgstr ""
-#: cp/typeck2.c:1703
+#: cp/typeck2.c:1708
#, gcc-internal-format
msgid "invalid value-initialization of reference type"
msgstr ""
-#: cp/typeck2.c:1933
+#: cp/typeck2.c:1938
#, gcc-internal-format
msgid "call to function %qD which throws incomplete type %q#T"
msgstr ""
-#: cp/typeck2.c:1936
+#: cp/typeck2.c:1941
#, gcc-internal-format
msgid "call to function which throws incomplete type %q#T"
msgstr ""
-#: fortran/arith.c:46
+#: fortran/arith.c:47
#, gcc-internal-format, gfc-internal-format
msgid "Conversion of an Infinity or Not-a-Number at %L to INTEGER"
msgstr ""
-#: fortran/arith.c:905 fortran/arith.c:927
+#: fortran/arith.c:906 fortran/arith.c:931
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Noninteger exponent in an initialization expression at %L"
+msgid "Noninteger exponent in an initialization expression at %L"
msgstr ""
-#: fortran/arith.c:913
+#: fortran/arith.c:917
#, gcc-internal-format, gfc-internal-format
msgid "Raising a negative REAL at %L to a REAL power is prohibited"
msgstr ""
-#: fortran/arith.c:1909
+#: fortran/arith.c:1916
#, gcc-internal-format, gfc-internal-format
msgid "Arithmetic OK converting %s to %s at %L"
msgstr ""
-#: fortran/arith.c:1913
+#: fortran/arith.c:1920
#, gcc-internal-format, gfc-internal-format
msgid ""
"Arithmetic overflow converting %s to %s at %L. This check can be disabled "
"with the option -fno-range-check"
msgstr ""
-#: fortran/arith.c:1918
+#: fortran/arith.c:1925
#, gcc-internal-format, gfc-internal-format
msgid ""
"Arithmetic underflow converting %s to %s at %L. This check can be disabled "
"with the option -fno-range-check"
msgstr ""
-#: fortran/arith.c:1923
+#: fortran/arith.c:1930
#, gcc-internal-format, gfc-internal-format
msgid ""
"Arithmetic NaN converting %s to %s at %L. This check can be disabled with "
"the option -fno-range-check"
msgstr ""
-#: fortran/arith.c:1928
+#: fortran/arith.c:1935
#, gcc-internal-format, gfc-internal-format
msgid "Division by zero converting %s to %s at %L"
msgstr ""
-#: fortran/arith.c:1932
+#: fortran/arith.c:1939
#, gcc-internal-format, gfc-internal-format
msgid "Array operands are incommensurate converting %s to %s at %L"
msgstr ""
-#: fortran/arith.c:1936
+#: fortran/arith.c:1943
#, gcc-internal-format, gfc-internal-format
msgid ""
"Integer outside symmetric range implied by Standard Fortran converting %s to "
"%s at %L"
msgstr ""
-#: fortran/arith.c:2268
+#: fortran/arith.c:2275
#, gcc-internal-format, gfc-internal-format
msgid "The Hollerith constant at %L is too long to convert to %s"
msgstr ""
-#: fortran/array.c:98
+#: fortran/array.c:95
#, gcc-internal-format, gfc-internal-format
msgid "Expected array subscript at %C"
msgstr ""
-#: fortran/array.c:107
+#: fortran/array.c:104
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected '*' in coarray subscript at %C"
msgstr ""
-#: fortran/array.c:131
+#: fortran/array.c:128
#, gcc-internal-format, gfc-internal-format
msgid "Strides not allowed in coarray subscript at %C"
msgstr ""
-#: fortran/array.c:139
+#: fortran/array.c:136
#, gcc-internal-format, gfc-internal-format
msgid "Expected array subscript stride at %C"
msgstr ""
-#: fortran/array.c:196
+#: fortran/array.c:193
#, gcc-internal-format, gfc-internal-format
msgid "Invalid form of array reference at %C"
msgstr ""
-#: fortran/array.c:201 fortran/array.c:267
+#: fortran/array.c:198 fortran/array.c:271
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %C cannot have more than %d dimensions"
msgstr ""
-#: fortran/array.c:216 fortran/array.c:576 fortran/check.c:2149
-#: fortran/check.c:3915 fortran/check.c:3953 fortran/check.c:4120
-#: fortran/match.c:1766 fortran/match.c:2833 fortran/match.c:3029
-#: fortran/simplify.c:4537
+#: fortran/array.c:213 fortran/array.c:599 fortran/check.c:2166
+#: fortran/check.c:3950 fortran/check.c:3988 fortran/check.c:4159
+#: fortran/match.c:1767 fortran/match.c:2834 fortran/match.c:3034
+#: fortran/simplify.c:4548
#, gcc-internal-format, gfc-internal-format
msgid "Coarrays disabled at %C, use -fcoarray= to enable"
msgstr ""
-#: fortran/array.c:222
+#: fortran/array.c:219
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected coarray designator at %C"
msgstr ""
-#: fortran/array.c:237
+#: fortran/array.c:234
#, gcc-internal-format, gfc-internal-format
msgid "Too few codimensions at %C, expected %d not %d"
msgstr ""
-#: fortran/array.c:243
+#: fortran/array.c:240
#, gcc-internal-format, gfc-internal-format
msgid "Too many codimensions at %C, expected %d not %d"
msgstr ""
-#: fortran/array.c:253
+#: fortran/array.c:250 fortran/array.c:258
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected '*' for codimension %d of %d at %C"
msgstr ""
-#: fortran/array.c:256
+#: fortran/array.c:253
#, gcc-internal-format, gfc-internal-format
msgid "Invalid form of coarray reference at %C"
msgstr ""
-#: fortran/array.c:261
+#: fortran/array.c:265
#, gcc-internal-format, gfc-internal-format
msgid "Invalid codimension %d at %C, only %d codimensions exist"
msgstr ""
-#: fortran/array.c:313
+#: fortran/array.c:317
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' at %L in this context must be constant"
msgstr ""
-#: fortran/array.c:316
+#: fortran/array.c:320
#, gcc-internal-format, gfc-internal-format
msgid "Expression at %L in this context must be constant"
msgstr ""
-#: fortran/array.c:407
+#: fortran/array.c:413
#, gcc-internal-format, gfc-internal-format
msgid "Expected expression in array specification at %C"
msgstr ""
-#: fortran/array.c:486
+#: fortran/array.c:471
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank array at %C"
+msgstr ""
+
+#: fortran/array.c:506
#, gcc-internal-format, gfc-internal-format
msgid "Bad array specification for implied-shape array at %C"
msgstr ""
-#: fortran/array.c:502 fortran/array.c:614
+#: fortran/array.c:522 fortran/array.c:637
#, gcc-internal-format, gfc-internal-format
msgid "Bad array specification for an explicitly shaped array at %C"
msgstr ""
-#: fortran/array.c:512 fortran/array.c:624
+#: fortran/array.c:532 fortran/array.c:647
#, gcc-internal-format, gfc-internal-format
msgid "Bad array specification for assumed shape array at %C"
msgstr ""
-#: fortran/array.c:526 fortran/array.c:638
+#: fortran/array.c:546 fortran/array.c:661
#, gcc-internal-format, gfc-internal-format
msgid "Bad specification for deferred shape array at %C"
msgstr ""
-#: fortran/array.c:536 fortran/array.c:642
+#: fortran/array.c:556 fortran/array.c:665
#, gcc-internal-format, gfc-internal-format
msgid "Bad specification for assumed size array at %C"
msgstr ""
-#: fortran/array.c:545 fortran/array.c:651
+#: fortran/array.c:568 fortran/array.c:677
#, gcc-internal-format, gfc-internal-format
msgid "Expected another dimension in array declaration at %C"
msgstr ""
-#: fortran/array.c:551 fortran/array.c:582 fortran/array.c:657
+#: fortran/array.c:574 fortran/array.c:605 fortran/array.c:683
#, gcc-internal-format, gfc-internal-format
msgid "Array specification at %C has more than %d dimensions"
msgstr ""
-#: fortran/array.c:557
+#: fortran/array.c:580
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Array specification at %C with more than 7 dimensions"
+msgid "Array specification at %C with more than 7 dimensions"
msgstr ""
-#: fortran/array.c:570
+#: fortran/array.c:593
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Coarray declaration at %C"
+msgid "Coarray declaration at %C"
msgstr ""
-#: fortran/array.c:665
+#: fortran/array.c:691
#, gcc-internal-format, gfc-internal-format
msgid "Upper bound of last coarray dimension must be '*' at %C"
msgstr ""
-#: fortran/array.c:885
+#: fortran/array.c:759
+#, gcc-internal-format, gfc-internal-format
+msgid "The assumed-rank array '%s' at %L shall not have a codimension"
+msgstr ""
+
+#: fortran/array.c:919
#, gcc-internal-format, gfc-internal-format
msgid "DO-iterator '%s' at %L is inside iterator of the same name"
msgstr ""
-#: fortran/array.c:977 fortran/array.c:1109
+#: fortran/array.c:1011 fortran/array.c:1144
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in array constructor at %C"
msgstr ""
-#: fortran/array.c:1029
+#: fortran/array.c:1063
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: [...] style array constructors at %C"
+msgid "[...] style array constructors at %C"
msgstr ""
-#: fortran/array.c:1049
+#: fortran/array.c:1084
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Array constructor including type specification at %C"
+msgid "Array constructor including type specification at %C"
msgstr ""
-#: fortran/array.c:1055 fortran/match.c:3465
+#: fortran/array.c:1090 fortran/match.c:3470
#, gcc-internal-format, gfc-internal-format
msgid "Type-spec at %L cannot contain a deferred type parameter"
msgstr ""
-#: fortran/array.c:1071
+#: fortran/array.c:1106
#, gcc-internal-format, gfc-internal-format
msgid "Empty array constructor at %C is not allowed"
msgstr ""
-#: fortran/array.c:1156
+#: fortran/array.c:1191
#, gcc-internal-format, gfc-internal-format
msgid "Element in %s array constructor at %L is %s"
msgstr ""
-#: fortran/array.c:1484
+#: fortran/array.c:1519
#, gcc-internal-format, gfc-internal-format
msgid "Iterator step at %L cannot be zero"
msgstr ""
#. Problems occur when we get something like
#. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/array.c:1621 fortran/expr.c:1539 fortran/trans-array.c:5291
+#: fortran/array.c:1656 fortran/expr.c:1537 fortran/trans-array.c:5366
#, gcc-internal-format, gfc-internal-format
msgid ""
"The number of elements in the array constructor at %L requires an increase "
"of the allowed %d upper limit. See -fmax-array-constructor option"
msgstr ""
-#: fortran/array.c:1818
+#: fortran/array.c:1827
+#, gcc-internal-format, gfc-internal-format
+msgid "AC-IMPLIED-DO initial expression references control variable at %L"
+msgstr ""
+
+#: fortran/array.c:1834
+#, gcc-internal-format, gfc-internal-format
+msgid "AC-IMPLIED-DO final expression references control variable at %L"
+msgstr ""
+
+#: fortran/array.c:1841
+#, gcc-internal-format, gfc-internal-format
+msgid "AC-IMPLIED-DO step expression references control variable at %L"
+msgstr ""
+
+#: fortran/array.c:1929
#, gcc-internal-format, gfc-internal-format
msgid "Different CHARACTER lengths (%d/%d) in array constructor at %L"
msgstr ""
-#: fortran/check.c:46
+#: fortran/check.c:48
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a scalar"
msgstr ""
-#: fortran/check.c:62
+#: fortran/check.c:64
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be %s"
msgstr ""
-#: fortran/check.c:90
+#: fortran/check.c:92
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a numeric type"
msgstr ""
-#: fortran/check.c:105
+#: fortran/check.c:107
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or REAL"
msgstr ""
-#: fortran/check.c:122
+#: fortran/check.c:124
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be REAL or COMPLEX"
msgstr ""
-#: fortran/check.c:139
+#: fortran/check.c:141
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or PROCEDURE"
msgstr ""
-#: fortran/check.c:168 fortran/check.c:5193
+#: fortran/check.c:170 fortran/check.c:5232
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a constant"
msgstr ""
-#: fortran/check.c:177
+#: fortran/check.c:179
#, gcc-internal-format, gfc-internal-format
msgid "Invalid kind for %s at %L"
msgstr ""
-#: fortran/check.c:196
+#: fortran/check.c:198
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be double precision"
msgstr ""
-#: fortran/check.c:219
+#: fortran/check.c:221
#, gcc-internal-format, gfc-internal-format
msgid "Expected coarray variable as '%s' argument to the %s intrinsic at %L"
msgstr ""
-#: fortran/check.c:236
+#: fortran/check.c:238
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a logical array"
msgstr ""
-#: fortran/check.c:262
+#: fortran/check.c:264
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be an array"
msgstr ""
-#: fortran/check.c:283
+#: fortran/check.c:285
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L must be nonnegative"
msgstr ""
-#: fortran/check.c:314
+#: fortran/check.c:316
#, gcc-internal-format, gfc-internal-format
msgid ""
"The absolute value of SHIFT at %L must be less than or equal to BIT_SIZE"
"('%s')"
msgstr ""
-#: fortran/check.c:325
+#: fortran/check.c:327
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L must be less than or equal to BIT_SIZE('%s')"
msgstr ""
-#: fortran/check.c:335
+#: fortran/check.c:337
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L must be less than BIT_SIZE('%s')"
msgstr ""
-#: fortran/check.c:362
+#: fortran/check.c:364
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L must be less than or equal to the BIT_SIZE of INTEGER(KIND=%d)"
msgstr ""
-#: fortran/check.c:388
+#: fortran/check.c:390
#, gcc-internal-format, gfc-internal-format
msgid "'%s + %s' at %L must be less than or equal to BIT_SIZE('%s')"
msgstr ""
-#: fortran/check.c:406
+#: fortran/check.c:408
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must be the same type and kind as '%s'"
msgstr ""
-#: fortran/check.c:423
+#: fortran/check.c:425
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be of rank %d"
msgstr ""
-#: fortran/check.c:438
+#: fortran/check.c:440
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must not be OPTIONAL"
msgstr ""
-#: fortran/check.c:459
+#: fortran/check.c:461
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
msgstr ""
-#: fortran/check.c:477
+#: fortran/check.c:479
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be of kind %d"
msgstr ""
-#: fortran/check.c:515
+#: fortran/check.c:517
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L cannot be INTENT(IN)"
msgstr ""
-#: fortran/check.c:536
+#: fortran/check.c:538
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a variable"
msgstr ""
-#: fortran/check.c:585
+#: fortran/check.c:587
#, gcc-internal-format, gfc-internal-format
msgid "'dim' argument of '%s' intrinsic at %L is not a valid codimension index"
msgstr ""
-#: fortran/check.c:634
+#: fortran/check.c:640
#, gcc-internal-format, gfc-internal-format
msgid "'dim' argument of '%s' intrinsic at %L is not a valid dimension index"
msgstr ""
-#: fortran/check.c:732
+#: fortran/check.c:738
#, gcc-internal-format, gfc-internal-format
msgid "Unequal character lengths (%ld/%ld) in %s at %L"
msgstr ""
-#: fortran/check.c:854 fortran/check.c:5162
+#: fortran/check.c:860 fortran/check.c:5201
#, gcc-internal-format, gfc-internal-format
msgid "'%s' and '%s' arguments of '%s' intrinsic at %L must have the same type"
msgstr ""
-#: fortran/check.c:863 fortran/check.c:1793 fortran/check.c:1919
-#: fortran/check.c:1993 fortran/check.c:2345
+#: fortran/check.c:869 fortran/check.c:1810 fortran/check.c:1936
+#: fortran/check.c:2010 fortran/check.c:2362
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Different type kinds at %L"
+msgid "Different type kinds at %L"
msgstr ""
-#: fortran/check.c:901
+#: fortran/check.c:907
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
msgstr ""
-#: fortran/check.c:910 fortran/check.c:946 fortran/check.c:2853
+#: fortran/check.c:916 fortran/check.c:952 fortran/check.c:2888
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L shall not be coindexed"
msgstr ""
-#: fortran/check.c:928
+#: fortran/check.c:934
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must be a pointer or target VARIABLE "
"or FUNCTION"
msgstr ""
-#: fortran/check.c:937
+#: fortran/check.c:943
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER or a TARGET"
msgstr ""
-#: fortran/check.c:962
+#: fortran/check.c:968
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array section with a vector subscript at %L shall not be the target of a "
"pointer"
msgstr ""
-#: fortran/check.c:973
+#: fortran/check.c:979
#, gcc-internal-format, gfc-internal-format
msgid ""
"NULL pointer at %L is not permitted as actual argument of '%s' intrinsic "
"function"
msgstr ""
-#: fortran/check.c:1012
+#: fortran/check.c:1018
#, gcc-internal-format, gfc-internal-format
msgid ""
"ATOM argument at %L to intrinsic function %s shall be an integer of "
"ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND"
msgstr ""
-#: fortran/check.c:1020
+#: fortran/check.c:1026
#, gcc-internal-format, gfc-internal-format
msgid ""
"ATOM argument at %L of the %s intrinsic function shall be a coarray or "
"coindexed"
msgstr ""
-#: fortran/check.c:1027
+#: fortran/check.c:1033
#, gcc-internal-format, gfc-internal-format
msgid ""
"ATOM and VALUE argument of the %s intrinsic function shall have the same "
"type at %L"
msgstr ""
-#: fortran/check.c:1045
+#: fortran/check.c:1051
#, gcc-internal-format, gfc-internal-format
msgid "ATOM argument of the %s intrinsic function at %L shall be definable"
msgstr ""
-#: fortran/check.c:1062
+#: fortran/check.c:1068
#, gcc-internal-format, gfc-internal-format
msgid "VALUE argument of the %s intrinsic function at %L shall be definable"
msgstr ""
-#: fortran/check.c:1082
+#: fortran/check.c:1088
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Negative argument N at %L"
+msgid "Negative argument N at %L"
msgstr ""
-#: fortran/check.c:1254 fortran/check.c:1413
+#: fortran/check.c:1260 fortran/check.c:1430
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must not be present if 'x' is COMPLEX"
msgstr ""
-#: fortran/check.c:1263 fortran/check.c:1422
+#: fortran/check.c:1269 fortran/check.c:1439
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must have a type of either REAL or "
"INTEGER"
msgstr ""
-#: fortran/check.c:1307 fortran/check.c:1838 fortran/check.c:1941
-#: fortran/check.c:2135 fortran/check.c:2180 fortran/check.c:3382
-#: fortran/check.c:3516 fortran/check.c:3571 fortran/check.c:4106
-#: fortran/check.c:4235
+#: fortran/check.c:1283 fortran/check.c:1288
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: '%s' intrinsic with KIND argument at %L"
+msgid ""
+"Conversion from %s to default-kind COMPLEX(%d) at %L might loose precision, "
+"consider using the KIND argument"
msgstr ""
-#: fortran/check.c:1354 fortran/check.c:1604
+#: fortran/check.c:1324 fortran/check.c:1855 fortran/check.c:1958
+#: fortran/check.c:2152 fortran/check.c:2197 fortran/check.c:3417
+#: fortran/check.c:3551 fortran/check.c:3606 fortran/check.c:4145
+#: fortran/check.c:4274
+#, gcc-internal-format, gfc-internal-format
+msgid "'%s' intrinsic with KIND argument at %L"
+msgstr ""
+
+#: fortran/check.c:1371 fortran/check.c:1621
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L has invalid shape in dimension %d (%ld/"
"%ld)"
msgstr ""
-#: fortran/check.c:1369 fortran/check.c:1619 fortran/check.c:1647
+#: fortran/check.c:1386 fortran/check.c:1636 fortran/check.c:1664
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of intrinsic '%s' at %L of must have rank %d or be a scalar"
msgstr ""
-#: fortran/check.c:1472 fortran/check.c:2439 fortran/check.c:2447
+#: fortran/check.c:1489 fortran/check.c:2456 fortran/check.c:2464
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be numeric or LOGICAL"
msgstr ""
-#: fortran/check.c:1486
+#: fortran/check.c:1503
#, gcc-internal-format, gfc-internal-format
msgid ""
"Different shape for arguments '%s' and '%s' at %L for intrinsic 'dot_product'"
msgstr ""
-#: fortran/check.c:1505 fortran/check.c:1513
+#: fortran/check.c:1522 fortran/check.c:1530
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be default real"
msgstr ""
-#: fortran/check.c:1534
+#: fortran/check.c:1551
#, gcc-internal-format, gfc-internal-format
msgid "'I' at %L and 'J' at %L cannot both be BOZ literal constants"
msgstr ""
-#: fortran/check.c:1665
+#: fortran/check.c:1682
#, gcc-internal-format, gfc-internal-format
-msgid "GNU extension: non-default INTEGER kind argument to %s intrinsic at %L"
+msgid "non-default INTEGER kind argument to %s intrinsic at %L"
msgstr ""
-#: fortran/check.c:1725
+#: fortran/check.c:1742
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: COMPLEX argument '%s' argument of '%s' intrinsic at %L"
+msgid "COMPLEX argument '%s' argument of '%s' intrinsic at %L"
msgstr ""
-#: fortran/check.c:1889
+#: fortran/check.c:1906
#, gcc-internal-format, gfc-internal-format
msgid "Argument of %s at %L must be of length one"
msgstr ""
-#: fortran/check.c:1948
+#: fortran/check.c:1965
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be the same kind as '%s'"
msgstr ""
-#: fortran/check.c:2038
+#: fortran/check.c:2055
#, gcc-internal-format, gfc-internal-format
msgid "SIZE at %L must be positive"
msgstr ""
-#: fortran/check.c:2050
+#: fortran/check.c:2067
#, gcc-internal-format, gfc-internal-format
msgid ""
"The absolute value of SHIFT at %L must be less than or equal to SIZE at %L"
msgstr ""
-#: fortran/check.c:2111
+#: fortran/check.c:2128
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
msgstr ""
-#: fortran/check.c:2318
+#: fortran/check.c:2335
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic '%s' at %L must have at least two arguments"
msgstr ""
-#: fortran/check.c:2351
+#: fortran/check.c:2368
#, gcc-internal-format, gfc-internal-format
msgid "'a%d' argument of '%s' intrinsic at %L must be %s(%d)"
msgstr ""
-#: fortran/check.c:2382
+#: fortran/check.c:2399
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: '%s' intrinsic with CHARACTER argument at %L"
+msgid "'%s' intrinsic with CHARACTER argument at %L"
msgstr ""
-#: fortran/check.c:2389
+#: fortran/check.c:2406
#, gcc-internal-format, gfc-internal-format
msgid ""
"'a1' argument of '%s' intrinsic at %L must be INTEGER, REAL or CHARACTER"
msgstr ""
-#: fortran/check.c:2456
+#: fortran/check.c:2473
#, gcc-internal-format, gfc-internal-format
msgid "Argument types of '%s' intrinsic at %L must match (%s/%s)"
msgstr ""
-#: fortran/check.c:2470
+#: fortran/check.c:2487
#, gcc-internal-format, gfc-internal-format
msgid ""
"Different shape on dimension 1 for arguments '%s' and '%s' at %L for "
"intrinsic matmul"
msgstr ""
-#: fortran/check.c:2489
+#: fortran/check.c:2506
#, gcc-internal-format, gfc-internal-format
msgid ""
"Different shape on dimension 2 for argument '%s' and dimension 1 for "
"argument '%s' at %L for intrinsic matmul"
msgstr ""
-#: fortran/check.c:2498
+#: fortran/check.c:2515
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be of rank 1 or 2"
msgstr ""
-#: fortran/check.c:2673
+#: fortran/check.c:2690
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER"
msgstr ""
-#: fortran/check.c:2739
+#: fortran/check.c:2750
+#, gcc-internal-format, gfc-internal-format
+msgid "The FROM argument to MOVE_ALLOC at %L shall not be coindexed"
+msgstr ""
+
+#: fortran/check.c:2761
+#, gcc-internal-format, gfc-internal-format
+msgid "The TO argument to MOVE_ALLOC at %L shall not be coindexed"
+msgstr ""
+
+#: fortran/check.c:2768
#, gcc-internal-format, gfc-internal-format
msgid ""
"The TO arguments in MOVE_ALLOC at %L must be polymorphic if FROM is "
"polymorphic"
msgstr ""
-#: fortran/check.c:2750
+#: fortran/check.c:2779
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"The FROM and TO arguments of the MOVE_ALLOC intrinsic at %L must have the "
+"same rank %d/%d"
+msgstr ""
+
+#: fortran/check.c:2788
#, gcc-internal-format, gfc-internal-format
msgid ""
-"the '%s' and '%s' arguments of '%s' intrinsic at %L must have the same rank "
-"%d/%d"
+"The FROM and TO arguments of the MOVE_ALLOC intrinsic at %L must have the "
+"same corank %d/%d"
msgstr ""
-#: fortran/check.c:2759
+#: fortran/check.c:2796
#, gcc-internal-format, gfc-internal-format
msgid ""
-"the '%s' and '%s' arguments of '%s' intrinsic at %L must be of the same kind "
-"%d/%d"
+"The FROM and TO arguments of the MOVE_ALLOC intrinsic at %L must be of the "
+"same kind %d/%d"
msgstr ""
-#: fortran/check.c:2788
+#: fortran/check.c:2823
#, gcc-internal-format, gfc-internal-format
msgid "Argument 'S' of NEAREST at %L shall not be zero"
msgstr ""
-#: fortran/check.c:2838
+#: fortran/check.c:2873
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must be a POINTER, ALLOCATABLE or "
"procedure pointer"
msgstr ""
-#: fortran/check.c:2846
+#: fortran/check.c:2881
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: NULL intrinsic with allocatable MOLD at %L"
+msgid "NULL intrinsic with allocatable MOLD at %L"
msgstr ""
-#: fortran/check.c:2925 fortran/check.c:4182
+#: fortran/check.c:2960 fortran/check.c:4221
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must provide at least as many elements "
"as there are .TRUE. values in '%s' (%ld/%d)"
msgstr ""
-#: fortran/check.c:2983
+#: fortran/check.c:3018
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be of a dummy variable"
msgstr ""
-#: fortran/check.c:2991
+#: fortran/check.c:3026
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must be of an OPTIONAL dummy variable"
msgstr ""
-#: fortran/check.c:3010
+#: fortran/check.c:3045
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must not be a subobject of '%s'"
msgstr ""
-#: fortran/check.c:3058
+#: fortran/check.c:3093
#, gcc-internal-format, gfc-internal-format
msgid "The argument of the RANK intrinsic at %L must be a data object"
msgstr ""
-#: fortran/check.c:3162
+#: fortran/check.c:3197
#, gcc-internal-format, gfc-internal-format
msgid ""
"'shape' argument of 'reshape' intrinsic at %L must be an array of constant "
"size"
msgstr ""
-#: fortran/check.c:3172
+#: fortran/check.c:3207
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L is empty"
msgstr ""
-#: fortran/check.c:3179
+#: fortran/check.c:3214
#, gcc-internal-format, gfc-internal-format
msgid "'shape' argument of 'reshape' intrinsic at %L has more than %d elements"
msgstr ""
-#: fortran/check.c:3196
+#: fortran/check.c:3231
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L has negative element (%d)"
msgstr ""
-#: fortran/check.c:3236
+#: fortran/check.c:3271
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L has wrong number of elements (%d/%d)"
msgstr ""
-#: fortran/check.c:3254
+#: fortran/check.c:3289
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L has out-of-range dimension (%d)"
msgstr ""
-#: fortran/check.c:3263
+#: fortran/check.c:3298
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L has invalid permutation of dimensions "
"(dimension '%d' duplicated)"
msgstr ""
-#: fortran/check.c:3299
+#: fortran/check.c:3334
#, gcc-internal-format, gfc-internal-format
msgid ""
"Without padding, there are not enough elements in the intrinsic RESHAPE "
"source at %L to match the shape"
msgstr ""
-#: fortran/check.c:3317 fortran/check.c:3335
+#: fortran/check.c:3352 fortran/check.c:3370
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be of a derived type"
msgstr ""
-#: fortran/check.c:3326 fortran/check.c:3344
+#: fortran/check.c:3361 fortran/check.c:3379
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be of an extensible type"
msgstr ""
-#: fortran/check.c:3443
+#: fortran/check.c:3478
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Fortran 2008: SELECTED_REAL_KIND with neither 'P' nor 'R' argument at %L"
+msgid "SELECTED_REAL_KIND with neither 'P' nor 'R' argument at %L"
msgstr ""
-#: fortran/check.c:3474
+#: fortran/check.c:3509
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: '%s' intrinsic with RADIX argument at %L"
+msgid "'%s' intrinsic with RADIX argument at %L"
msgstr ""
-#: fortran/check.c:3509
+#: fortran/check.c:3544
#, gcc-internal-format, gfc-internal-format
msgid ""
"'source' argument of 'shape' intrinsic at %L must not be an assumed size "
"array"
msgstr ""
-#: fortran/check.c:3586
+#: fortran/check.c:3621
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L may not be a procedure"
msgstr ""
-#: fortran/check.c:3600
+#: fortran/check.c:3635
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must be an interoperable data entity"
msgstr ""
-#: fortran/check.c:3629
+#: fortran/check.c:3664
#, gcc-internal-format, gfc-internal-format
-msgid "GNU extension: non double precision REAL argument to %s intrinsic at %L"
+msgid "non double precision REAL argument to %s intrinsic at %L"
msgstr ""
-#: fortran/check.c:3642
+#: fortran/check.c:3677
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be less than rank %d"
msgstr ""
-#: fortran/check.c:3661
+#: fortran/check.c:3696
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L is not a valid dimension index"
msgstr ""
-#: fortran/check.c:3924
+#: fortran/check.c:3959
#, gcc-internal-format, gfc-internal-format
msgid "%s argument to IMAGE_INDEX must be a rank one array at %L"
msgstr ""
-#: fortran/check.c:3935
+#: fortran/check.c:3970
#, gcc-internal-format, gfc-internal-format
msgid ""
"The number of array elements of the SUB argument to IMAGE_INDEX at %L shall "
"be %d (corank) not %d"
msgstr ""
-#: fortran/check.c:3959
+#: fortran/check.c:3994
#, gcc-internal-format, gfc-internal-format
msgid ""
"DIM argument without ARRAY argument not allowed for THIS_IMAGE intrinsic at "
"%L"
msgstr ""
-#: fortran/check.c:4046
+#: fortran/check.c:4085
#, gcc-internal-format, gfc-internal-format
msgid "'MOLD' argument of 'TRANSFER' intrinsic at %L must not be %s"
msgstr ""
-#: fortran/check.c:4074
+#: fortran/check.c:4113
#, gcc-internal-format, gfc-internal-format
msgid ""
"Intrinsic TRANSFER at %L has partly undefined result: source size %ld < "
"result size %ld"
msgstr ""
-#: fortran/check.c:4196
+#: fortran/check.c:4235
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must have the same rank as '%s' or be "
"a scalar"
msgstr ""
-#: fortran/check.c:4209
+#: fortran/check.c:4248
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' and '%s' arguments of '%s' intrinsic at %L must have identical shape."
msgstr ""
-#: fortran/check.c:4468 fortran/check.c:4500
+#: fortran/check.c:4507 fortran/check.c:4539
#, gcc-internal-format, gfc-internal-format
msgid "Size of '%s' argument of '%s' intrinsic at %L too small (%i/%i)"
msgstr ""
-#: fortran/check.c:4508
+#: fortran/check.c:4547
#, gcc-internal-format, gfc-internal-format
msgid "Too many arguments to %s at %L"
msgstr ""
-#: fortran/check.c:4794
+#: fortran/check.c:4833
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' argument of '%s' intrinsic at %L must be of a kind not wider than the "
"default kind (%d)"
msgstr ""
-#: fortran/check.c:5146 fortran/check.c:5154
+#: fortran/check.c:5185 fortran/check.c:5193
#, gcc-internal-format, gfc-internal-format
msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL"
msgstr ""
-#: fortran/class.c:503
+#: fortran/class.c:510
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed size polymorphic objects or components, such as that at %C, have not "
@@ -37316,12 +37605,12 @@ msgstr ""
#. Since the extension field is 8 bit wide, we can only have
#. up to 255 extension levels.
-#: fortran/class.c:586 fortran/decl.c:7593
+#: fortran/class.c:598 fortran/decl.c:7589
#, gcc-internal-format, gfc-internal-format
msgid "Maximum extension level reached with type '%s' at %L"
msgstr ""
-#: fortran/class.c:978 fortran/class.c:1052
+#: fortran/class.c:1710 fortran/class.c:1784
#, gcc-internal-format, gfc-internal-format
msgid "'%s' of '%s' is PRIVATE at %L"
msgstr ""
@@ -37336,626 +37625,622 @@ msgstr ""
msgid "opening output file %s: %s"
msgstr ""
-#: fortran/data.c:65
+#: fortran/data.c:66
#, gcc-internal-format, gfc-internal-format
msgid "non-constant array in DATA statement %L"
msgstr ""
-#: fortran/data.c:134
+#: fortran/data.c:136
#, gcc-internal-format, gfc-internal-format
msgid "failure to simplify substring reference in DATA statement at %L"
msgstr ""
-#: fortran/data.c:158
+#: fortran/data.c:162
#, gcc-internal-format, gfc-internal-format
msgid ""
"Initialization string starting at %L was truncated to fit the variable (%d/"
"%d)"
msgstr ""
-#: fortran/data.c:247
+#: fortran/data.c:251
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L already is initialized at %L"
msgstr ""
-#: fortran/data.c:271
+#: fortran/data.c:275
#, gcc-internal-format, gfc-internal-format
msgid "Data element below array lower bound at %L"
msgstr ""
-#: fortran/data.c:288 fortran/data.c:377
+#: fortran/data.c:292 fortran/data.c:381
#, gcc-internal-format, gfc-internal-format
msgid "Data element above array upper bound at %L"
msgstr ""
-#: fortran/data.c:317 fortran/data.c:483
+#: fortran/data.c:322 fortran/data.c:488
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: re-initialization of '%s' at %L"
+msgid "re-initialization of '%s' at %L"
msgstr ""
-#: fortran/decl.c:264
+#: fortran/decl.c:265
#, gcc-internal-format, gfc-internal-format
msgid "Host associated variable '%s' may not be in the DATA statement at %C"
msgstr ""
-#: fortran/decl.c:271
+#: fortran/decl.c:272
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Extension: initialization of common block variable '%s' in DATA statement at "
-"%C"
+msgid "initialization of common block variable '%s' in DATA statement at %C"
msgstr ""
-#: fortran/decl.c:380
+#: fortran/decl.c:383
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C"
msgstr ""
-#: fortran/decl.c:405
+#: fortran/decl.c:408
#, gcc-internal-format, gfc-internal-format
msgid "Invalid initializer %s in Data statement at %C"
msgstr ""
-#: fortran/decl.c:508
+#: fortran/decl.c:510
#, gcc-internal-format, gfc-internal-format
msgid "Initialization at %C is not allowed in a PURE procedure"
msgstr ""
-#: fortran/decl.c:570
+#: fortran/decl.c:572
#, gcc-internal-format, gfc-internal-format
msgid "DATA statement at %C is not allowed in a PURE procedure"
msgstr ""
-#: fortran/decl.c:658
+#: fortran/decl.c:601
+#, gcc-internal-format, gfc-internal-format
+msgid "The assumed-rank array at %C shall not have a codimension"
+msgstr ""
+
+#: fortran/decl.c:669
#, gcc-internal-format, gfc-internal-format
msgid "Bad INTENT specification at %C"
msgstr ""
-#: fortran/decl.c:679
+#: fortran/decl.c:690
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: deferred type parameter at %C"
+msgid "deferred type parameter at %C"
msgstr ""
-#: fortran/decl.c:716
+#: fortran/decl.c:727
#, gcc-internal-format, gfc-internal-format
msgid "Conflict in attributes of function argument at %C"
msgstr ""
-#: fortran/decl.c:741
+#: fortran/decl.c:754
#, gcc-internal-format, gfc-internal-format
-msgid "Obsolescent feature: Old-style character length at %C"
+msgid "Old-style character length at %C"
msgstr ""
-#: fortran/decl.c:773
+#: fortran/decl.c:785
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in character length specification at %C"
msgstr ""
-#: fortran/decl.c:896
+#: fortran/decl.c:907
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' at %C is already defined at %L"
msgstr ""
-#: fortran/decl.c:904
+#: fortran/decl.c:915
#, gcc-internal-format, gfc-internal-format
msgid "Name '%s' at %C is already defined as a generic interface at %L"
msgstr ""
-#: fortran/decl.c:917
+#: fortran/decl.c:928
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %C has an explicit interface and must not have attributes "
"declared at %L"
msgstr ""
-#: fortran/decl.c:989
+#: fortran/decl.c:1000
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %L must have the BIND(C) attribute to be C interoperable"
msgstr ""
-#: fortran/decl.c:1017
+#: fortran/decl.c:1028
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is "
"not C interoperable because derived type '%s' is not C interoperable"
msgstr ""
-#: fortran/decl.c:1024
+#: fortran/decl.c:1035
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is "
"not C interoperable because it is polymorphic"
msgstr ""
-#: fortran/decl.c:1030
+#: fortran/decl.c:1041
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Variable '%s' at %L is a parameter to the BIND(C) procedure '%s' but may not "
-"be C interoperable"
+"Variable '%s' at %L is a dummy argument of the BIND(C) procedure '%s' but "
+"may not be C interoperable"
msgstr ""
-#: fortran/decl.c:1045
+#: fortran/decl.c:1056
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character argument '%s' at %L must be length 1 because procedure '%s' is BIND"
"(C)"
msgstr ""
-#: fortran/decl.c:1059
+#: fortran/decl.c:1070
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L cannot have the ALLOCATABLE attribute because procedure "
"'%s' is BIND(C)"
msgstr ""
-#: fortran/decl.c:1068
+#: fortran/decl.c:1079
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L cannot have the POINTER attribute because procedure '%s' "
"is BIND(C)"
msgstr ""
-#: fortran/decl.c:1077
+#: fortran/decl.c:1088
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L cannot have both the OPTIONAL and the VALUE attribute "
"because procedure '%s' is BIND(C)"
msgstr ""
-#: fortran/decl.c:1084
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"TS29113: Variable '%s' at %L with OPTIONAL attribute in procedure '%s' which "
-"is BIND(C)"
-msgstr ""
-
-#: fortran/decl.c:1098
+#: fortran/decl.c:1095
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' "
-"at %L because the procedure is BIND(C)"
+"Variable '%s' at %L with OPTIONAL attribute in procedure '%s' which is BIND"
+"(C)"
msgstr ""
-#: fortran/decl.c:1108
+#: fortran/decl.c:1107
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' "
-"at %L because the procedure is BIND(C)"
+"Assumed-shape array '%s' at %L as dummy argument to the BIND(C) procedure "
+"'%s' at %L"
msgstr ""
-#: fortran/decl.c:1189
+#: fortran/decl.c:1186
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' in common block '%s' at %C must be declared with a C "
"interoperable kind since common block '%s' is BIND(C)"
msgstr ""
-#: fortran/decl.c:1231
+#: fortran/decl.c:1228
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER expression at %L is being truncated (%d/%d)"
msgstr ""
-#: fortran/decl.c:1238
+#: fortran/decl.c:1235
#, gcc-internal-format, gfc-internal-format
msgid ""
"The CHARACTER elements of the array constructor at %L must have the same "
"length (%d/%d)"
msgstr ""
-#: fortran/decl.c:1328
+#: fortran/decl.c:1325
#, gcc-internal-format, gfc-internal-format
msgid "Initializer not allowed for PARAMETER '%s' at %C"
msgstr ""
-#: fortran/decl.c:1338
+#: fortran/decl.c:1335
#, gcc-internal-format, gfc-internal-format
msgid "PARAMETER at %L is missing an initializer"
msgstr ""
-#: fortran/decl.c:1348
+#: fortran/decl.c:1345
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %C with an initializer already appears in a DATA statement"
msgstr ""
-#: fortran/decl.c:1429
+#: fortran/decl.c:1426
#, gcc-internal-format, gfc-internal-format
msgid "Can't initialize implied-shape array at %L with scalar"
msgstr ""
-#: fortran/decl.c:1447
+#: fortran/decl.c:1444
#, gcc-internal-format, gfc-internal-format
msgid "Non-constant lower bound in implied-shape declaration at %L"
msgstr ""
-#: fortran/decl.c:1542
+#: fortran/decl.c:1539
#, gcc-internal-format, gfc-internal-format
msgid "Component at %C must have the POINTER attribute"
msgstr ""
-#: fortran/decl.c:1550
+#: fortran/decl.c:1547
#, gcc-internal-format, gfc-internal-format
msgid "Array component of structure at %C must have explicit or deferred shape"
msgstr ""
-#: fortran/decl.c:1631
+#: fortran/decl.c:1628
#, gcc-internal-format, gfc-internal-format
msgid "Pointer array component of structure at %C must have a deferred shape"
msgstr ""
-#: fortran/decl.c:1640
+#: fortran/decl.c:1637
#, gcc-internal-format, gfc-internal-format
msgid "Allocatable component of structure at %C must have a deferred shape"
msgstr ""
-#: fortran/decl.c:1649
+#: fortran/decl.c:1646
#, gcc-internal-format, gfc-internal-format
msgid "Array component of structure at %C must have an explicit shape"
msgstr ""
-#: fortran/decl.c:1686
+#: fortran/decl.c:1683
#, gcc-internal-format, gfc-internal-format
msgid "NULL() initialization at %C is ambiguous"
msgstr ""
-#: fortran/decl.c:1713
+#: fortran/decl.c:1710
#, gcc-internal-format, gfc-internal-format
msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
msgstr ""
-#: fortran/decl.c:1733
+#: fortran/decl.c:1730
#, gcc-internal-format, gfc-internal-format
msgid "Error in pointer initialization at %C"
msgstr ""
-#: fortran/decl.c:1740
+#: fortran/decl.c:1737
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: non-NULL pointer initialization at %C"
+msgid "non-NULL pointer initialization at %C"
msgstr ""
-#: fortran/decl.c:1763
+#: fortran/decl.c:1760
#, gcc-internal-format, gfc-internal-format
msgid "Function name '%s' not allowed at %C"
msgstr ""
-#: fortran/decl.c:1826
+#: fortran/decl.c:1827
#, gcc-internal-format, gfc-internal-format
msgid "Non-PARAMETER symbol '%s' at %L can't be implied-shape"
msgstr ""
-#: fortran/decl.c:1837
+#: fortran/decl.c:1838
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Implied-shape array at %L"
+msgid "Implied-shape array at %L"
msgstr ""
-#: fortran/decl.c:1901 fortran/decl.c:6450
+#: fortran/decl.c:1902 fortran/decl.c:6446
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate array spec for Cray pointee at %C"
msgstr ""
-#: fortran/decl.c:1972
+#: fortran/decl.c:1973
#, gcc-internal-format, gfc-internal-format
msgid "The type of '%s' at %C has not been declared within the interface"
msgstr ""
-#: fortran/decl.c:1996
+#: fortran/decl.c:1997
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Old-style initialization at %C"
+msgid "Old-style initialization at %C"
msgstr ""
-#: fortran/decl.c:2011 fortran/decl.c:4948
+#: fortran/decl.c:2012 fortran/decl.c:4929
#, gcc-internal-format, gfc-internal-format
msgid "Initialization at %C isn't for a pointer variable"
msgstr ""
-#: fortran/decl.c:2024
+#: fortran/decl.c:2025
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization at %C requires '=>', not '='"
msgstr ""
-#: fortran/decl.c:2033 fortran/decl.c:7745
+#: fortran/decl.c:2034 fortran/decl.c:7741
#, gcc-internal-format, gfc-internal-format
msgid "Expected an initialization expression at %C"
msgstr ""
-#: fortran/decl.c:2040
+#: fortran/decl.c:2041
#, gcc-internal-format, gfc-internal-format
msgid "Initialization of variable at %C is not allowed in a PURE procedure"
msgstr ""
-#: fortran/decl.c:2053
+#: fortran/decl.c:2054
#, gcc-internal-format, gfc-internal-format
msgid "Initialization of allocatable component at %C is not allowed"
msgstr ""
-#: fortran/decl.c:2107 fortran/decl.c:2143
+#: fortran/decl.c:2108 fortran/decl.c:2144
#, gcc-internal-format, gfc-internal-format
msgid "Old-style type declaration %s*%d not supported at %C"
msgstr ""
-#: fortran/decl.c:2148
+#: fortran/decl.c:2149
#, gcc-internal-format, gfc-internal-format
msgid "Nonstandard type declaration %s*%d at %C"
msgstr ""
-#: fortran/decl.c:2199 fortran/decl.c:2275
+#: fortran/decl.c:2200 fortran/decl.c:2276
#, gcc-internal-format, gfc-internal-format
msgid "Missing right parenthesis at %C"
msgstr ""
-#: fortran/decl.c:2212 fortran/decl.c:2346
+#: fortran/decl.c:2213 fortran/decl.c:2347
#, gcc-internal-format, gfc-internal-format
msgid "Expected initialization expression at %C"
msgstr ""
-#: fortran/decl.c:2220 fortran/decl.c:2352
+#: fortran/decl.c:2221 fortran/decl.c:2353
#, gcc-internal-format, gfc-internal-format
msgid "Expected scalar initialization expression at %C"
msgstr ""
-#: fortran/decl.c:2251
+#: fortran/decl.c:2252
#, gcc-internal-format, gfc-internal-format
msgid "Kind %d not supported for type %s at %C"
msgstr ""
-#: fortran/decl.c:2264
+#: fortran/decl.c:2265
#, gcc-internal-format, gfc-internal-format
msgid "C kind type parameter is for type %s but type at %L is %s"
msgstr ""
-#: fortran/decl.c:2273
+#: fortran/decl.c:2274
#, gcc-internal-format, gfc-internal-format
msgid "Missing right parenthesis or comma at %C"
msgstr ""
-#: fortran/decl.c:2372
+#: fortran/decl.c:2373
#, gcc-internal-format, gfc-internal-format
msgid "Kind %d is not supported for CHARACTER at %C"
msgstr ""
-#: fortran/decl.c:2504
+#: fortran/decl.c:2505
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in CHARACTER declaration at %C"
msgstr ""
-#: fortran/decl.c:2589
+#: fortran/decl.c:2590
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: BYTE type at %C"
+msgid "BYTE type at %C"
msgstr ""
-#: fortran/decl.c:2595
+#: fortran/decl.c:2596
#, gcc-internal-format, gfc-internal-format
msgid "BYTE type used at %C is not available on the target machine"
msgstr ""
-#: fortran/decl.c:2617
+#: fortran/decl.c:2618
#, gcc-internal-format, gfc-internal-format
msgid "Assumed type at %C is not allowed for components"
msgstr ""
-#: fortran/decl.c:2620
+#: fortran/decl.c:2621
#, gcc-internal-format, gfc-internal-format
-msgid "TS 29113: Assumed type at %C"
+msgid "Assumed type at %C"
msgstr ""
-#: fortran/decl.c:2643 fortran/decl.c:2674 fortran/decl.c:2704
-#: fortran/decl.c:2854
+#: fortran/decl.c:2644 fortran/decl.c:2675 fortran/decl.c:2705
+#: fortran/decl.c:2855
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: TYPE with intrinsic-type-spec at %C"
+msgid "TYPE with intrinsic-type-spec at %C"
msgstr ""
-#: fortran/decl.c:2699
+#: fortran/decl.c:2700
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: DOUBLE COMPLEX at %C"
+msgid "DOUBLE COMPLEX at %C"
msgstr ""
-#: fortran/decl.c:2737
+#: fortran/decl.c:2738
#, gcc-internal-format, gfc-internal-format
msgid "Unlimited polymorphism at %C not yet supported"
msgstr ""
-#: fortran/decl.c:2746
+#: fortran/decl.c:2747
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: CLASS statement at %C"
+msgid "CLASS statement at %C"
msgstr ""
-#: fortran/decl.c:2782 fortran/decl.c:2795 fortran/decl.c:3169
-#: fortran/decl.c:3177
+#: fortran/decl.c:2783 fortran/decl.c:2796 fortran/decl.c:3170
+#: fortran/decl.c:3178
#, gcc-internal-format, gfc-internal-format
msgid "Type name '%s' at %C is ambiguous"
msgstr ""
-#: fortran/decl.c:2810
+#: fortran/decl.c:2811
#, gcc-internal-format, gfc-internal-format
msgid ""
"Type name '%s' at %C conflicts with previously declared entity at %L, which "
"has the same name"
msgstr ""
-#: fortran/decl.c:2930
+#: fortran/decl.c:2931
#, gcc-internal-format, gfc-internal-format
msgid "Missing character range in IMPLICIT at %C"
msgstr ""
-#: fortran/decl.c:2976
+#: fortran/decl.c:2977
#, gcc-internal-format, gfc-internal-format
msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
msgstr ""
-#: fortran/decl.c:3032
+#: fortran/decl.c:3033
#, gcc-internal-format, gfc-internal-format
msgid "Empty IMPLICIT statement at %C"
msgstr ""
-#: fortran/decl.c:3134
+#: fortran/decl.c:3135
#, gcc-internal-format, gfc-internal-format
msgid "IMPORT statement at %C only permitted in an INTERFACE body"
msgstr ""
-#: fortran/decl.c:3139
+#: fortran/decl.c:3140
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: IMPORT statement at %C"
+msgid "IMPORT statement at %C"
msgstr ""
-#: fortran/decl.c:3154
+#: fortran/decl.c:3155
#, gcc-internal-format, gfc-internal-format
msgid "Expecting list of named entities at %C"
msgstr ""
-#: fortran/decl.c:3183
+#: fortran/decl.c:3184
#, gcc-internal-format, gfc-internal-format
msgid "Cannot IMPORT '%s' from host scoping unit at %C - does not exist."
msgstr ""
-#: fortran/decl.c:3190
+#: fortran/decl.c:3191
#, gcc-internal-format, gfc-internal-format
msgid "'%s' is already IMPORTed from host scoping unit at %C."
msgstr ""
-#: fortran/decl.c:3233
+#: fortran/decl.c:3234
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in IMPORT statement at %C"
msgstr ""
-#: fortran/decl.c:3531
+#: fortran/decl.c:3533
#, gcc-internal-format, gfc-internal-format
msgid "Missing codimension specification at %C"
msgstr ""
-#: fortran/decl.c:3533
+#: fortran/decl.c:3535
#, gcc-internal-format, gfc-internal-format
msgid "Missing dimension specification at %C"
msgstr ""
-#: fortran/decl.c:3616
+#: fortran/decl.c:3618
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate %s attribute at %L"
msgstr ""
-#: fortran/decl.c:3635
+#: fortran/decl.c:3637
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ALLOCATABLE attribute at %C in a TYPE definition"
+msgid "ALLOCATABLE attribute at %C in a TYPE definition"
msgstr ""
-#: fortran/decl.c:3645
+#: fortran/decl.c:3647
#, gcc-internal-format, gfc-internal-format
msgid "Attribute at %L is not allowed in a TYPE definition"
msgstr ""
-#: fortran/decl.c:3663
+#: fortran/decl.c:3665
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Attribute %s at %L in a TYPE definition"
+msgid "Attribute %s at %L in a TYPE definition"
msgstr ""
-#: fortran/decl.c:3674
+#: fortran/decl.c:3676
#, gcc-internal-format, gfc-internal-format
msgid ""
"%s attribute at %L is not allowed outside of the specification part of a "
"module"
msgstr ""
-#: fortran/decl.c:3689
+#: fortran/decl.c:3691
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ASYNCHRONOUS attribute at %C"
+msgid "ASYNCHRONOUS attribute at %C"
msgstr ""
-#: fortran/decl.c:3702
+#: fortran/decl.c:3704
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: CONTIGUOUS attribute at %C"
+msgid "CONTIGUOUS attribute at %C"
msgstr ""
-#: fortran/decl.c:3748 fortran/decl.c:6745
+#: fortran/decl.c:3750 fortran/decl.c:6741
#, gcc-internal-format, gfc-internal-format
msgid "PROTECTED at %C only allowed in specification part of a module"
msgstr ""
-#: fortran/decl.c:3754
+#: fortran/decl.c:3756
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: PROTECTED attribute at %C"
+msgid "PROTECTED attribute at %C"
msgstr ""
-#: fortran/decl.c:3785
+#: fortran/decl.c:3787
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: VALUE attribute at %C"
+msgid "VALUE attribute at %C"
msgstr ""
-#: fortran/decl.c:3795
+#: fortran/decl.c:3797
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: VOLATILE attribute at %C"
+msgid "VOLATILE attribute at %C"
msgstr ""
-#: fortran/decl.c:3841
+#: fortran/decl.c:3843
#, gcc-internal-format, gfc-internal-format
msgid "Multiple identifiers provided with single NAME= specifier at %C"
msgstr ""
-#: fortran/decl.c:3938
+#: fortran/decl.c:3940
#, gcc-internal-format, gfc-internal-format
msgid ""
"Implicitly declared BIND(C) function '%s' at %L may not be C interoperable"
msgstr ""
-#: fortran/decl.c:3959
+#: fortran/decl.c:3961
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' in common block '%s' at %L may not be a C interoperable kind "
"though common block '%s' is BIND(C)"
msgstr ""
-#: fortran/decl.c:3968
+#: fortran/decl.c:3970
#, gcc-internal-format, gfc-internal-format
msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)"
msgstr ""
-#: fortran/decl.c:3972
+#: fortran/decl.c:3974
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)"
msgstr ""
-#: fortran/decl.c:3984
+#: fortran/decl.c:3986
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) "
"since it is not a global"
msgstr ""
-#: fortran/decl.c:3998
+#: fortran/decl.c:4000
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
msgstr ""
-#: fortran/decl.c:4006
+#: fortran/decl.c:4008
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
msgstr ""
-#: fortran/decl.c:4018
+#: fortran/decl.c:4020
#, gcc-internal-format, gfc-internal-format
msgid "Return type of BIND(C) function '%s' at %L cannot be an array"
msgstr ""
-#: fortran/decl.c:4026
+#: fortran/decl.c:4028
#, gcc-internal-format, gfc-internal-format
msgid "Return type of BIND(C) function '%s' at %L cannot be a character string"
msgstr ""
#. Use gfc_warning_now because we won't say that the symbol fails
#. just because of this.
-#: fortran/decl.c:4037
+#: fortran/decl.c:4039
#, gcc-internal-format, gfc-internal-format
msgid ""
"Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'"
msgstr ""
-#: fortran/decl.c:4113
+#: fortran/decl.c:4115
#, gcc-internal-format, gfc-internal-format
msgid ""
"Need either entity or common block name for attribute specification "
"statement at %C"
msgstr ""
-#: fortran/decl.c:4160
+#: fortran/decl.c:4162
#, gcc-internal-format, gfc-internal-format
msgid ""
"Missing entity or common block name for attribute specification statement at "
@@ -37964,785 +38249,768 @@ msgstr ""
#. Now we have an error, which we signal, and then fix up
#. because the knock-on is plain and simple confusing.
-#: fortran/decl.c:4269
+#: fortran/decl.c:4271
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type at %C has not been previously defined and so cannot appear in a "
"derived type definition"
msgstr ""
-#: fortran/decl.c:4301
+#: fortran/decl.c:4303
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in data declaration at %C"
msgstr ""
-#: fortran/decl.c:4375
+#: fortran/decl.c:4377
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: IMPURE procedure at %C"
+msgid "IMPURE procedure at %C"
msgstr ""
-#: fortran/decl.c:4388
+#: fortran/decl.c:4390
#, gcc-internal-format, gfc-internal-format
msgid "PURE and IMPURE must not appear both at %C"
msgstr ""
-#: fortran/decl.c:4494
+#: fortran/decl.c:4496
#, gcc-internal-format, gfc-internal-format
msgid "Name '%s' at %C is the name of the procedure"
msgstr ""
-#: fortran/decl.c:4506
+#: fortran/decl.c:4508
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk in formal argument list at %C"
msgstr ""
-#: fortran/decl.c:4523
+#: fortran/decl.c:4525
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate symbol '%s' in formal argument list at %C"
msgstr ""
-#: fortran/decl.c:4574
+#: fortran/decl.c:4576
#, gcc-internal-format, gfc-internal-format
msgid "RESULT variable at %C must be different than function name"
msgstr ""
-#: fortran/decl.c:4651
+#: fortran/decl.c:4653
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after function declaration at %C"
msgstr ""
-#: fortran/decl.c:4661 fortran/decl.c:5702
+#: fortran/decl.c:4663 fortran/decl.c:5698
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Fortran 2008: BIND(C) attribute at %L may not be specified for an internal "
-"procedure"
+msgid "BIND(C) attribute at %L may not be specified for an internal procedure"
msgstr ""
-#: fortran/decl.c:4805
-#, gcc-internal-format, gfc-internal-format
-msgid "Interface '%s' at %C may not be generic"
-msgstr ""
-
-#: fortran/decl.c:4811
-#, gcc-internal-format, gfc-internal-format
-msgid "Interface '%s' at %C may not be a statement function"
-msgstr ""
-
-#: fortran/decl.c:4824
-#, gcc-internal-format, gfc-internal-format
-msgid "Intrinsic procedure '%s' not allowed in PROCEDURE statement at %C"
-msgstr ""
-
-#: fortran/decl.c:4886
+#: fortran/decl.c:4867
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) attribute at %C requires an interface with BIND(C)"
msgstr ""
-#: fortran/decl.c:4893
+#: fortran/decl.c:4874
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C"
msgstr ""
-#: fortran/decl.c:4899
+#: fortran/decl.c:4880
#, gcc-internal-format, gfc-internal-format
msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
msgstr ""
-#: fortran/decl.c:4923
+#: fortran/decl.c:4904
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' at %L already has basic type of %s"
msgstr ""
-#: fortran/decl.c:4972 fortran/decl.c:5140 fortran/decl.c:8227
+#: fortran/decl.c:4953 fortran/decl.c:5136 fortran/decl.c:8223
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in PROCEDURE statement at %C"
msgstr ""
-#: fortran/decl.c:5021 fortran/decl.c:8128
+#: fortran/decl.c:5002 fortran/decl.c:8124
#, gcc-internal-format, gfc-internal-format
msgid "Expected '::' after binding-attributes at %C"
msgstr ""
-#: fortran/decl.c:5028
+#: fortran/decl.c:5009
#, gcc-internal-format, gfc-internal-format
msgid "NOPASS or explicit interface required at %C"
msgstr ""
-#: fortran/decl.c:5032
+#: fortran/decl.c:5013
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Procedure pointer component at %C"
+msgid "Procedure pointer component at %C"
msgstr ""
-#: fortran/decl.c:5097
+#: fortran/decl.c:5079
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in procedure pointer component at %C"
msgstr ""
-#: fortran/decl.c:5114
+#: fortran/decl.c:5097
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE at %C must be in a generic interface"
msgstr ""
-#: fortran/decl.c:5180
+#: fortran/decl.c:5106 fortran/decl.c:7248
+#, gcc-internal-format, gfc-internal-format
+msgid "double colon in MODULE PROCEDURE statement at %L"
+msgstr ""
+
+#: fortran/decl.c:5176
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: PROCEDURE statement at %C"
+msgid "PROCEDURE statement at %C"
msgstr ""
-#: fortran/decl.c:5248
+#: fortran/decl.c:5244
#, gcc-internal-format, gfc-internal-format
msgid "Expected formal argument list in function definition at %C"
msgstr ""
-#: fortran/decl.c:5272 fortran/decl.c:5276 fortran/decl.c:5480
-#: fortran/decl.c:5484 fortran/decl.c:5670 fortran/decl.c:5674
-#: fortran/symbol.c:1589
+#: fortran/decl.c:5268 fortran/decl.c:5272 fortran/decl.c:5476
+#: fortran/decl.c:5480 fortran/decl.c:5666 fortran/decl.c:5670
+#: fortran/symbol.c:1590
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
msgstr ""
-#: fortran/decl.c:5391
+#: fortran/decl.c:5388
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008 obsolescent feature: ENTRY statement at %C"
+msgid "ENTRY statement at %C"
msgstr ""
-#: fortran/decl.c:5401
+#: fortran/decl.c:5397
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a PROGRAM"
msgstr ""
-#: fortran/decl.c:5404
+#: fortran/decl.c:5400
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a MODULE"
msgstr ""
-#: fortran/decl.c:5407
+#: fortran/decl.c:5403
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
msgstr ""
-#: fortran/decl.c:5411
+#: fortran/decl.c:5407
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within an INTERFACE"
msgstr ""
-#: fortran/decl.c:5415
+#: fortran/decl.c:5411
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
msgstr ""
-#: fortran/decl.c:5419
+#: fortran/decl.c:5415
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
msgstr ""
-#: fortran/decl.c:5424
+#: fortran/decl.c:5420
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a DO block"
msgstr ""
-#: fortran/decl.c:5428
+#: fortran/decl.c:5424
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a SELECT block"
msgstr ""
-#: fortran/decl.c:5432
+#: fortran/decl.c:5428
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a FORALL block"
msgstr ""
-#: fortran/decl.c:5436
+#: fortran/decl.c:5432
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a WHERE block"
msgstr ""
-#: fortran/decl.c:5440
+#: fortran/decl.c:5436
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear within a contained subprogram"
msgstr ""
-#: fortran/decl.c:5458
+#: fortran/decl.c:5454
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY statement at %C cannot appear in a contained procedure"
msgstr ""
-#: fortran/decl.c:5512 fortran/decl.c:5710
+#: fortran/decl.c:5508 fortran/decl.c:5706
#, gcc-internal-format, gfc-internal-format
msgid "Missing required parentheses before BIND(C) at %C"
msgstr ""
-#: fortran/decl.c:5768 fortran/decl.c:5784
+#: fortran/decl.c:5764 fortran/decl.c:5780
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in NAME= specifier for binding label at %C"
msgstr ""
-#: fortran/decl.c:5799
+#: fortran/decl.c:5795
#, gcc-internal-format, gfc-internal-format
msgid "Missing closing quote '\"' for binding label at %C"
msgstr ""
-#: fortran/decl.c:5808
+#: fortran/decl.c:5804
#, gcc-internal-format, gfc-internal-format
msgid "Missing closing quote ''' for binding label at %C"
msgstr ""
-#: fortran/decl.c:5818
+#: fortran/decl.c:5814
#, gcc-internal-format, gfc-internal-format
msgid "Missing closing paren for binding label at %C"
msgstr ""
-#: fortran/decl.c:5824
+#: fortran/decl.c:5820
#, gcc-internal-format, gfc-internal-format
msgid "No binding name is allowed in BIND(C) at %C"
msgstr ""
-#: fortran/decl.c:5830
+#: fortran/decl.c:5826
#, gcc-internal-format, gfc-internal-format
msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C"
msgstr ""
-#: fortran/decl.c:5859
+#: fortran/decl.c:5855
#, gcc-internal-format, gfc-internal-format
msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C"
msgstr ""
-#: fortran/decl.c:6064
+#: fortran/decl.c:6060
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected END statement at %C"
msgstr ""
-#: fortran/decl.c:6072
+#: fortran/decl.c:6068
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: END statement instead of %s statement at %L"
+msgid "END statement instead of %s statement at %L"
msgstr ""
#. We would have required END [something].
-#: fortran/decl.c:6080
+#: fortran/decl.c:6076
#, gcc-internal-format, gfc-internal-format
msgid "%s statement expected at %L"
msgstr ""
-#: fortran/decl.c:6091
+#: fortran/decl.c:6087
#, gcc-internal-format, gfc-internal-format
msgid "Expecting %s statement at %C"
msgstr ""
-#: fortran/decl.c:6107
+#: fortran/decl.c:6103
#, gcc-internal-format, gfc-internal-format
msgid "Expected block name of '%s' in %s statement at %C"
msgstr ""
-#: fortran/decl.c:6124
+#: fortran/decl.c:6120
#, gcc-internal-format, gfc-internal-format
msgid "Expected terminating name at %C"
msgstr ""
-#: fortran/decl.c:6133 fortran/decl.c:6141
+#: fortran/decl.c:6129 fortran/decl.c:6137
#, gcc-internal-format, gfc-internal-format
msgid "Expected label '%s' for %s statement at %C"
msgstr ""
-#: fortran/decl.c:6206
+#: fortran/decl.c:6202
#, gcc-internal-format, gfc-internal-format
msgid "Missing array specification at %L in DIMENSION statement"
msgstr ""
-#: fortran/decl.c:6214
+#: fortran/decl.c:6210
#, gcc-internal-format, gfc-internal-format
msgid "Dimensions specified for %s at %L after its initialisation"
msgstr ""
-#: fortran/decl.c:6222
+#: fortran/decl.c:6218
#, gcc-internal-format, gfc-internal-format
msgid "Missing array specification at %L in CODIMENSION statement"
msgstr ""
-#: fortran/decl.c:6231
+#: fortran/decl.c:6227
#, gcc-internal-format, gfc-internal-format
msgid "Array specification must be deferred at %L"
msgstr ""
-#: fortran/decl.c:6330
+#: fortran/decl.c:6326
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected character in variable list at %C"
msgstr ""
-#: fortran/decl.c:6367
+#: fortran/decl.c:6363
#, gcc-internal-format, gfc-internal-format
msgid "Expected '(' at %C"
msgstr ""
-#: fortran/decl.c:6381 fortran/decl.c:6421
+#: fortran/decl.c:6377 fortran/decl.c:6417
#, gcc-internal-format, gfc-internal-format
msgid "Expected variable name at %C"
msgstr ""
-#: fortran/decl.c:6397
+#: fortran/decl.c:6393
#, gcc-internal-format, gfc-internal-format
msgid "Cray pointer at %C must be an integer"
msgstr ""
-#: fortran/decl.c:6401
+#: fortran/decl.c:6397
#, gcc-internal-format, gfc-internal-format
msgid ""
"Cray pointer at %C has %d bytes of precision; memory addresses require %d "
"bytes"
msgstr ""
-#: fortran/decl.c:6407
+#: fortran/decl.c:6403
#, gcc-internal-format, gfc-internal-format
msgid "Expected \",\" at %C"
msgstr ""
-#: fortran/decl.c:6470
+#: fortran/decl.c:6466
#, gcc-internal-format, gfc-internal-format
msgid "Expected \")\" at %C"
msgstr ""
-#: fortran/decl.c:6482
+#: fortran/decl.c:6478
#, gcc-internal-format, gfc-internal-format
msgid "Expected \",\" or end of statement at %C"
msgstr ""
-#: fortran/decl.c:6508
+#: fortran/decl.c:6504
#, gcc-internal-format, gfc-internal-format
msgid "INTENT is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/decl.c:6540
+#: fortran/decl.c:6536
#, gcc-internal-format, gfc-internal-format
msgid "OPTIONAL is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/decl.c:6559
+#: fortran/decl.c:6555
#, gcc-internal-format, gfc-internal-format
msgid "Cray pointer declaration at %C requires -fcray-pointer flag"
msgstr ""
-#: fortran/decl.c:6598
+#: fortran/decl.c:6594
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: CONTIGUOUS statement at %C"
+msgid "CONTIGUOUS statement at %C"
msgstr ""
-#: fortran/decl.c:6696
+#: fortran/decl.c:6692
#, gcc-internal-format, gfc-internal-format
msgid ""
"Access specification of the %s operator at %C has already been specified"
msgstr ""
-#: fortran/decl.c:6713
+#: fortran/decl.c:6709
#, gcc-internal-format, gfc-internal-format
msgid ""
"Access specification of the .%s. operator at %C has already been specified"
msgstr ""
-#: fortran/decl.c:6751
+#: fortran/decl.c:6747
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: PROTECTED statement at %C"
+msgid "PROTECTED statement at %C"
msgstr ""
-#: fortran/decl.c:6791
+#: fortran/decl.c:6787
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in PROTECTED statement at %C"
msgstr ""
-#: fortran/decl.c:6815
+#: fortran/decl.c:6811
#, gcc-internal-format, gfc-internal-format
msgid ""
"PRIVATE statement at %C is only allowed in the specification part of a module"
msgstr ""
-#: fortran/decl.c:6852
+#: fortran/decl.c:6848
#, gcc-internal-format, gfc-internal-format
msgid ""
"PUBLIC statement at %C is only allowed in the specification part of a module"
msgstr ""
-#: fortran/decl.c:6880
+#: fortran/decl.c:6876
#, gcc-internal-format, gfc-internal-format
msgid "Expected variable name at %C in PARAMETER statement"
msgstr ""
-#: fortran/decl.c:6887
+#: fortran/decl.c:6883
#, gcc-internal-format, gfc-internal-format
msgid "Expected = sign in PARAMETER statement at %C"
msgstr ""
-#: fortran/decl.c:6893
+#: fortran/decl.c:6889
#, gcc-internal-format, gfc-internal-format
msgid "Expected expression at %C in PARAMETER statement"
msgstr ""
-#: fortran/decl.c:6913
+#: fortran/decl.c:6909
#, gcc-internal-format, gfc-internal-format
msgid "Initializing already initialized variable at %C"
msgstr ""
-#: fortran/decl.c:6948
+#: fortran/decl.c:6944
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected characters in PARAMETER statement at %C"
msgstr ""
-#: fortran/decl.c:6972
+#: fortran/decl.c:6968
#, gcc-internal-format, gfc-internal-format
msgid "Blanket SAVE statement at %C follows previous SAVE statement"
msgstr ""
-#: fortran/decl.c:6984
+#: fortran/decl.c:6980
#, gcc-internal-format, gfc-internal-format
msgid "SAVE statement at %C follows blanket SAVE statement"
msgstr ""
-#: fortran/decl.c:7031
+#: fortran/decl.c:7027
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in SAVE statement at %C"
msgstr ""
-#: fortran/decl.c:7045
+#: fortran/decl.c:7041
#, gcc-internal-format, gfc-internal-format
msgid "VALUE is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/decl.c:7049
+#: fortran/decl.c:7045
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: VALUE statement at %C"
+msgid "VALUE statement at %C"
msgstr ""
-#: fortran/decl.c:7089
+#: fortran/decl.c:7085
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in VALUE statement at %C"
msgstr ""
-#: fortran/decl.c:7100
+#: fortran/decl.c:7096
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: VOLATILE statement at %C"
+msgid "VOLATILE statement at %C"
msgstr ""
-#: fortran/decl.c:7124
+#: fortran/decl.c:7120
#, gcc-internal-format, gfc-internal-format
msgid ""
"Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-"
"associated"
msgstr ""
-#: fortran/decl.c:7150
+#: fortran/decl.c:7146
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in VOLATILE statement at %C"
msgstr ""
-#: fortran/decl.c:7161
+#: fortran/decl.c:7157
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ASYNCHRONOUS statement at %C"
+msgid "ASYNCHRONOUS statement at %C"
msgstr ""
-#: fortran/decl.c:7203
+#: fortran/decl.c:7199
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in ASYNCHRONOUS statement at %C"
msgstr ""
-#: fortran/decl.c:7227
+#: fortran/decl.c:7223
#, gcc-internal-format, gfc-internal-format
msgid "MODULE PROCEDURE at %C must be in a generic module interface"
msgstr ""
-#: fortran/decl.c:7252
-#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: double colon in MODULE PROCEDURE statement at %L"
-msgstr ""
-
-#: fortran/decl.c:7286
+#: fortran/decl.c:7282
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE"
msgstr ""
-#: fortran/decl.c:7335
+#: fortran/decl.c:7331
#, gcc-internal-format, gfc-internal-format
msgid "Ambiguous symbol in TYPE definition at %C"
msgstr ""
-#: fortran/decl.c:7341
+#: fortran/decl.c:7337
#, gcc-internal-format, gfc-internal-format
msgid "No such symbol in TYPE definition at %C"
msgstr ""
-#: fortran/decl.c:7349
+#: fortran/decl.c:7345
#, gcc-internal-format, gfc-internal-format
msgid "'%s' in EXTENDS expression at %C is not a derived type"
msgstr ""
-#: fortran/decl.c:7356
+#: fortran/decl.c:7352
#, gcc-internal-format, gfc-internal-format
msgid "'%s' cannot be extended at %C because it is BIND(C)"
msgstr ""
-#: fortran/decl.c:7363
+#: fortran/decl.c:7359
#, gcc-internal-format, gfc-internal-format
msgid "'%s' cannot be extended at %C because it is a SEQUENCE type"
msgstr ""
-#: fortran/decl.c:7386
+#: fortran/decl.c:7382
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type at %C can only be PRIVATE in the specification part of a module"
msgstr ""
-#: fortran/decl.c:7398
+#: fortran/decl.c:7394
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type at %C can only be PUBLIC in the specification part of a module"
msgstr ""
-#: fortran/decl.c:7419
+#: fortran/decl.c:7415
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ABSTRACT type at %C"
+msgid "ABSTRACT type at %C"
msgstr ""
-#: fortran/decl.c:7484
+#: fortran/decl.c:7480
#, gcc-internal-format, gfc-internal-format
msgid "Expected :: in TYPE definition at %C"
msgstr ""
-#: fortran/decl.c:7495
+#: fortran/decl.c:7491
#, gcc-internal-format, gfc-internal-format
msgid "Type name '%s' at %C cannot be the same as an intrinsic type"
msgstr ""
-#: fortran/decl.c:7505
+#: fortran/decl.c:7501
#, gcc-internal-format, gfc-internal-format
msgid "Derived type name '%s' at %C already has a basic type of %s"
msgstr ""
-#: fortran/decl.c:7522
+#: fortran/decl.c:7518
#, gcc-internal-format, gfc-internal-format
msgid "Derived type definition of '%s' at %C has already been defined"
msgstr ""
-#: fortran/decl.c:7630
+#: fortran/decl.c:7626
#, gcc-internal-format, gfc-internal-format
msgid "Cray Pointee at %C cannot be assumed shape array"
msgstr ""
-#: fortran/decl.c:7650
+#: fortran/decl.c:7646
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ENUM and ENUMERATOR at %C"
+msgid "ENUM and ENUMERATOR at %C"
msgstr ""
-#: fortran/decl.c:7683
+#: fortran/decl.c:7679
#, gcc-internal-format, gfc-internal-format
msgid "Enumerator exceeds the C integer type at %C"
msgstr ""
-#: fortran/decl.c:7762
+#: fortran/decl.c:7758
#, gcc-internal-format, gfc-internal-format
msgid "ENUMERATOR %L not initialized with integer expression"
msgstr ""
-#: fortran/decl.c:7810
+#: fortran/decl.c:7806
#, gcc-internal-format, gfc-internal-format
msgid "ENUM definition statement expected before %C"
msgstr ""
-#: fortran/decl.c:7846
+#: fortran/decl.c:7842
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in ENUMERATOR definition at %C"
msgstr ""
-#: fortran/decl.c:7893 fortran/decl.c:7908
+#: fortran/decl.c:7889 fortran/decl.c:7904
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate access-specifier at %C"
msgstr ""
-#: fortran/decl.c:7928
+#: fortran/decl.c:7924
#, gcc-internal-format, gfc-internal-format
msgid "Binding attributes already specify passing, illegal NOPASS at %C"
msgstr ""
-#: fortran/decl.c:7948
+#: fortran/decl.c:7944
#, gcc-internal-format, gfc-internal-format
msgid "Binding attributes already specify passing, illegal PASS at %C"
msgstr ""
-#: fortran/decl.c:7975
+#: fortran/decl.c:7971
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate POINTER attribute at %C"
msgstr ""
-#: fortran/decl.c:7993
+#: fortran/decl.c:7989
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate NON_OVERRIDABLE at %C"
msgstr ""
-#: fortran/decl.c:8009
+#: fortran/decl.c:8005
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate DEFERRED at %C"
msgstr ""
-#: fortran/decl.c:8022
+#: fortran/decl.c:8018
#, gcc-internal-format, gfc-internal-format
msgid "Expected access-specifier at %C"
msgstr ""
-#: fortran/decl.c:8024
+#: fortran/decl.c:8020
#, gcc-internal-format, gfc-internal-format
msgid "Expected binding attribute at %C"
msgstr ""
-#: fortran/decl.c:8032
+#: fortran/decl.c:8028
#, gcc-internal-format, gfc-internal-format
msgid "NON_OVERRIDABLE and DEFERRED can't both appear at %C"
msgstr ""
-#: fortran/decl.c:8044
+#: fortran/decl.c:8040
#, gcc-internal-format, gfc-internal-format
msgid "POINTER attribute is required for procedure pointer component at %C"
msgstr ""
-#: fortran/decl.c:8086
+#: fortran/decl.c:8082
#, gcc-internal-format, gfc-internal-format
msgid "Interface-name expected after '(' at %C"
msgstr ""
-#: fortran/decl.c:8092
+#: fortran/decl.c:8088
#, gcc-internal-format, gfc-internal-format
msgid "')' expected at %C"
msgstr ""
-#: fortran/decl.c:8112
+#: fortran/decl.c:8108
#, gcc-internal-format, gfc-internal-format
msgid "Interface must be specified for DEFERRED binding at %C"
msgstr ""
-#: fortran/decl.c:8117
+#: fortran/decl.c:8113
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE(interface) at %C should be declared DEFERRED"
msgstr ""
-#: fortran/decl.c:8140
+#: fortran/decl.c:8136
#, gcc-internal-format, gfc-internal-format
msgid "Expected binding name at %C"
msgstr ""
-#: fortran/decl.c:8144
+#: fortran/decl.c:8140
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: PROCEDURE list at %C"
+msgid "PROCEDURE list at %C"
msgstr ""
-#: fortran/decl.c:8157
+#: fortran/decl.c:8153
#, gcc-internal-format, gfc-internal-format
msgid "'=> target' is invalid for DEFERRED binding at %C"
msgstr ""
-#: fortran/decl.c:8163
+#: fortran/decl.c:8159
#, gcc-internal-format, gfc-internal-format
msgid "'::' needed in PROCEDURE binding with explicit target at %C"
msgstr ""
-#: fortran/decl.c:8173
+#: fortran/decl.c:8169
#, gcc-internal-format, gfc-internal-format
msgid "Expected binding target after '=>' at %C"
msgstr ""
-#: fortran/decl.c:8190
+#: fortran/decl.c:8186
#, gcc-internal-format, gfc-internal-format
msgid "Type '%s' containing DEFERRED binding at %C is not ABSTRACT"
msgstr ""
-#: fortran/decl.c:8201
+#: fortran/decl.c:8197
#, gcc-internal-format, gfc-internal-format
msgid ""
"There is already a procedure with binding name '%s' for the derived type "
"'%s' at %C"
msgstr ""
-#: fortran/decl.c:8250
+#: fortran/decl.c:8246
#, gcc-internal-format, gfc-internal-format
msgid "GENERIC at %C must be inside a derived-type CONTAINS"
msgstr ""
-#: fortran/decl.c:8270
+#: fortran/decl.c:8266
#, gcc-internal-format, gfc-internal-format
msgid "Expected '::' at %C"
msgstr ""
-#: fortran/decl.c:8282
+#: fortran/decl.c:8278
#, gcc-internal-format, gfc-internal-format
msgid "Expected generic name or operator descriptor at %C"
msgstr ""
-#: fortran/decl.c:8308
+#: fortran/decl.c:8304
#, gcc-internal-format, gfc-internal-format
msgid "Expected '=>' at %C"
msgstr ""
-#: fortran/decl.c:8350
+#: fortran/decl.c:8346
#, gcc-internal-format, gfc-internal-format
msgid ""
"There's already a non-generic procedure with binding name '%s' for the "
"derived type '%s' at %C"
msgstr ""
-#: fortran/decl.c:8358
+#: fortran/decl.c:8354
#, gcc-internal-format, gfc-internal-format
msgid "Binding at %C must have the same access as already defined binding '%s'"
msgstr ""
-#: fortran/decl.c:8407
+#: fortran/decl.c:8403
#, gcc-internal-format, gfc-internal-format
msgid "Expected specific binding name at %C"
msgstr ""
-#: fortran/decl.c:8417
+#: fortran/decl.c:8413
#, gcc-internal-format, gfc-internal-format
msgid "'%s' already defined as specific binding for the generic '%s' at %C"
msgstr ""
-#: fortran/decl.c:8435
+#: fortran/decl.c:8431
#, gcc-internal-format, gfc-internal-format
msgid "Junk after GENERIC binding at %C"
msgstr ""
-#: fortran/decl.c:8470
+#: fortran/decl.c:8466
#, gcc-internal-format, gfc-internal-format
msgid "FINAL declaration at %C must be inside a derived type CONTAINS section"
msgstr ""
-#: fortran/decl.c:8481
+#: fortran/decl.c:8477
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type declaration with FINAL at %C must be in the specification part "
"of a MODULE"
msgstr ""
-#: fortran/decl.c:8503
+#: fortran/decl.c:8499
#, gcc-internal-format, gfc-internal-format
msgid "Empty FINAL at %C"
msgstr ""
-#: fortran/decl.c:8510
+#: fortran/decl.c:8506
#, gcc-internal-format, gfc-internal-format
msgid "Expected module procedure name at %C"
msgstr ""
-#: fortran/decl.c:8520
+#: fortran/decl.c:8516
#, gcc-internal-format, gfc-internal-format
msgid "Expected ',' at %C"
msgstr ""
-#: fortran/decl.c:8526
+#: fortran/decl.c:8522
#, gcc-internal-format, gfc-internal-format
msgid "Unknown procedure name \"%s\" at %C"
msgstr ""
-#: fortran/decl.c:8540
+#: fortran/decl.c:8536
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %C is already defined as FINAL procedure!"
msgstr ""
-#: fortran/decl.c:8609
+#: fortran/decl.c:8605
#, gcc-internal-format, gfc-internal-format
msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C"
msgstr ""
-#: fortran/decl.c:8656
+#: fortran/decl.c:8652
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
msgstr ""
@@ -38752,559 +39020,574 @@ msgstr ""
#. If a dependency is found in the case
#. elemental == ELEM_CHECK_VARIABLE, we will generate
#. a temporary, so we don't need to bother the user.
-#: fortran/dependency.c:720
+#: fortran/dependency.c:724
#, gcc-internal-format, gfc-internal-format
msgid ""
"INTENT(%s) actual argument at %L might interfere with actual argument at %L."
msgstr ""
-#: fortran/error.c:338
+#: fortran/error.c:339
#, gcc-internal-format, gfc-internal-format
msgid " Included at %s:%d:"
msgstr ""
-#: fortran/error.c:418
+#: fortran/error.c:420
#, gcc-internal-format
msgid "<During initialization>\n"
msgstr ""
-#: fortran/error.c:752
+#: fortran/error.c:755
#, gcc-internal-format, gfc-internal-format
msgid "Error count reached limit of %d."
msgstr ""
-#: fortran/error.c:1008
+#: fortran/error.c:1051
#, gcc-internal-format
msgid "Internal Error at (1):"
msgstr ""
-#: fortran/expr.c:1230
+#: fortran/expr.c:1231
#, gcc-internal-format, gfc-internal-format
msgid "Index in dimension %d is out of bounds at %L"
msgstr ""
-#: fortran/expr.c:1409 fortran/expr.c:1460
+#: fortran/expr.c:1410 fortran/expr.c:1461
#, gcc-internal-format, gfc-internal-format
msgid "index in dimension %d is out of bounds at %L"
msgstr ""
-#: fortran/expr.c:2068
+#: fortran/expr.c:2066
#, gcc-internal-format, gfc-internal-format
msgid "elemental function arguments at %C are not compliant"
msgstr ""
-#: fortran/expr.c:2112
+#: fortran/expr.c:2110
#, gcc-internal-format, gfc-internal-format
msgid "Numeric or CHARACTER operands are required in expression at %L"
msgstr ""
-#: fortran/expr.c:2137
+#: fortran/expr.c:2135
#, gcc-internal-format, gfc-internal-format
msgid ""
"Concatenation operator in expression at %L must have two CHARACTER operands"
msgstr ""
-#: fortran/expr.c:2144
+#: fortran/expr.c:2142
#, gcc-internal-format, gfc-internal-format
msgid "Concat operator at %L must concatenate strings of the same kind"
msgstr ""
-#: fortran/expr.c:2154
+#: fortran/expr.c:2152
#, gcc-internal-format, gfc-internal-format
msgid ".NOT. operator in expression at %L must have a LOGICAL operand"
msgstr ""
-#: fortran/expr.c:2170
+#: fortran/expr.c:2168
#, gcc-internal-format, gfc-internal-format
msgid "LOGICAL operands are required in expression at %L"
msgstr ""
-#: fortran/expr.c:2181
+#: fortran/expr.c:2179
#, gcc-internal-format, gfc-internal-format
msgid "Only intrinsic operators can be used in expression at %L"
msgstr ""
-#: fortran/expr.c:2189
+#: fortran/expr.c:2187
#, gcc-internal-format, gfc-internal-format
msgid "Numeric operands are required in expression at %L"
msgstr ""
-#: fortran/expr.c:2212
+#: fortran/expr.c:2210
#, gcc-internal-format, gfc-internal-format
msgid ""
"Invalid initialization expression for ALLOCATABLE component '%s' in "
"structure constructor at %L"
msgstr ""
-#: fortran/expr.c:2310
+#: fortran/expr.c:2308
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed or deferred character length variable '%s' in constant expression "
"at %L"
msgstr ""
-#: fortran/expr.c:2376
+#: fortran/expr.c:2374
#, gcc-internal-format, gfc-internal-format
msgid ""
"transformational intrinsic '%s' at %L is not permitted in an initialization "
"expression"
msgstr ""
-#: fortran/expr.c:2407
+#: fortran/expr.c:2405
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Evaluation of nonstandard initialization expression at %L"
+msgid "Evaluation of nonstandard initialization expression at %L"
msgstr ""
-#: fortran/expr.c:2463
+#: fortran/expr.c:2461
#, gcc-internal-format, gfc-internal-format
msgid ""
"Function '%s' in initialization expression at %L must be an intrinsic "
"function"
msgstr ""
-#: fortran/expr.c:2475
+#: fortran/expr.c:2473
#, gcc-internal-format, gfc-internal-format
msgid ""
"Intrinsic function '%s' at %L is not permitted in an initialization "
"expression"
msgstr ""
-#: fortran/expr.c:2510
+#: fortran/expr.c:2508
#, gcc-internal-format, gfc-internal-format
msgid "PARAMETER '%s' is used at %L before its definition is complete"
msgstr ""
-#: fortran/expr.c:2530
+#: fortran/expr.c:2528
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed size array '%s' at %L is not permitted in an initialization "
"expression"
msgstr ""
-#: fortran/expr.c:2536
+#: fortran/expr.c:2534
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed shape array '%s' at %L is not permitted in an initialization "
"expression"
msgstr ""
-#: fortran/expr.c:2542
+#: fortran/expr.c:2540
#, gcc-internal-format, gfc-internal-format
msgid ""
"Deferred array '%s' at %L is not permitted in an initialization expression"
msgstr ""
-#: fortran/expr.c:2548
+#: fortran/expr.c:2546
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array '%s' at %L is a variable, which does not reduce to a constant "
"expression"
msgstr ""
-#: fortran/expr.c:2558
+#: fortran/expr.c:2556
#, gcc-internal-format, gfc-internal-format
msgid ""
"Parameter '%s' at %L has not been declared or is a variable, which does not "
"reduce to a constant expression"
msgstr ""
-#: fortran/expr.c:2711
+#: fortran/expr.c:2709
#, gcc-internal-format, gfc-internal-format
msgid "Specification function '%s' at %L cannot be a statement function"
msgstr ""
-#: fortran/expr.c:2718
+#: fortran/expr.c:2716
#, gcc-internal-format, gfc-internal-format
msgid "Specification function '%s' at %L cannot be an internal function"
msgstr ""
-#: fortran/expr.c:2725
+#: fortran/expr.c:2723
#, gcc-internal-format, gfc-internal-format
msgid "Specification function '%s' at %L must be PURE"
msgstr ""
-#: fortran/expr.c:2732
+#: fortran/expr.c:2730
#, gcc-internal-format, gfc-internal-format
msgid "Specification function '%s' at %L cannot be RECURSIVE"
msgstr ""
-#: fortran/expr.c:2866
+#: fortran/expr.c:2864
#, gcc-internal-format, gfc-internal-format
msgid "Dummy argument '%s' not allowed in expression at %L"
msgstr ""
-#: fortran/expr.c:2873
+#: fortran/expr.c:2871
#, gcc-internal-format, gfc-internal-format
msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
msgstr ""
-#: fortran/expr.c:2880
+#: fortran/expr.c:2878
#, gcc-internal-format, gfc-internal-format
msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
msgstr ""
-#: fortran/expr.c:2911
+#: fortran/expr.c:2909
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' cannot appear in the expression at %L"
msgstr ""
-#: fortran/expr.c:2962
+#: fortran/expr.c:2960
#, gcc-internal-format, gfc-internal-format
msgid "Expression at %L must be of INTEGER type, found %s"
msgstr ""
-#: fortran/expr.c:2974
+#: fortran/expr.c:2972
#, gcc-internal-format, gfc-internal-format
msgid "Function '%s' at %L must be PURE"
msgstr ""
-#: fortran/expr.c:2983
+#: fortran/expr.c:2981
#, gcc-internal-format, gfc-internal-format
msgid "Expression at %L must be scalar"
msgstr ""
-#: fortran/expr.c:3017
+#: fortran/expr.c:3015
#, gcc-internal-format, gfc-internal-format
msgid "Incompatible ranks in %s (%d and %d) at %L"
msgstr ""
-#: fortran/expr.c:3031
+#: fortran/expr.c:3029
#, gcc-internal-format, gfc-internal-format
msgid "Different shape for %s at %L on dimension %d (%d and %d)"
msgstr ""
-#: fortran/expr.c:3120
+#: fortran/expr.c:3118
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L is not a VALUE"
msgstr ""
-#: fortran/expr.c:3127
+#: fortran/expr.c:3125
#, gcc-internal-format, gfc-internal-format
msgid "Incompatible ranks %d and %d in assignment at %L"
msgstr ""
-#: fortran/expr.c:3134
+#: fortran/expr.c:3132
#, gcc-internal-format, gfc-internal-format
msgid "Variable type is UNKNOWN in assignment at %L"
msgstr ""
-#: fortran/expr.c:3146
+#: fortran/expr.c:3144
#, gcc-internal-format, gfc-internal-format
msgid "NULL appears on right-hand side in assignment at %L"
msgstr ""
-#: fortran/expr.c:3156
+#: fortran/expr.c:3154
#, gcc-internal-format, gfc-internal-format
msgid "POINTER valued function appears on right-hand side of assignment at %L"
msgstr ""
-#: fortran/expr.c:3166
+#: fortran/expr.c:3164
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Extension: BOZ literal at %L used to initialize non-integer variable '%s'"
+msgid "BOZ literal at %L used to initialize non-integer variable '%s'"
msgstr ""
-#: fortran/expr.c:3172 fortran/resolve.c:9160
+#: fortran/expr.c:3170 fortran/resolve.c:9373
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Extension: BOZ literal at %L outside a DATA statement and outside INT/REAL/"
-"DBLE/CMPLX"
+"BOZ literal at %L outside a DATA statement and outside INT/REAL/DBLE/CMPLX"
msgstr ""
-#: fortran/expr.c:3182 fortran/resolve.c:9170
+#: fortran/expr.c:3180 fortran/resolve.c:9383
#, gcc-internal-format, gfc-internal-format
msgid "BOZ literal at %L is bitwise transferred non-integer symbol '%s'"
msgstr ""
-#: fortran/expr.c:3190 fortran/resolve.c:9179
+#: fortran/expr.c:3188 fortran/resolve.c:9392
#, gcc-internal-format, gfc-internal-format
msgid ""
"Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be "
"disabled with the option -fno-range-check"
msgstr ""
-#: fortran/expr.c:3194 fortran/resolve.c:9183
+#: fortran/expr.c:3192 fortran/resolve.c:9396
#, gcc-internal-format, gfc-internal-format
msgid ""
"Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be "
"disabled with the option -fno-range-check"
msgstr ""
-#: fortran/expr.c:3198 fortran/resolve.c:9187
+#: fortran/expr.c:3196 fortran/resolve.c:9400
#, gcc-internal-format, gfc-internal-format
msgid ""
"Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled "
"with the option -fno-range-check"
msgstr ""
-#: fortran/expr.c:3230
+#: fortran/expr.c:3228
#, gcc-internal-format, gfc-internal-format
msgid "Change of value in conversion from %s to %s at %L"
msgstr ""
-#: fortran/expr.c:3238 fortran/intrinsic.c:4335 fortran/intrinsic.c:4347
+#: fortran/expr.c:3236 fortran/intrinsic.c:4339 fortran/intrinsic.c:4351
#, gcc-internal-format, gfc-internal-format
msgid "Possible change of value in conversion from %s to %s at %L"
msgstr ""
-#: fortran/expr.c:3246 fortran/intrinsic.c:4330 fortran/intrinsic.c:4356
+#: fortran/expr.c:3244 fortran/intrinsic.c:4334 fortran/intrinsic.c:4360
#, gcc-internal-format, gfc-internal-format
msgid "Conversion from %s to %s at %L"
msgstr ""
-#: fortran/expr.c:3267
+#: fortran/expr.c:3265
#, gcc-internal-format, gfc-internal-format
msgid ""
"Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
msgstr ""
-#: fortran/expr.c:3303
+#: fortran/expr.c:3301
#, gcc-internal-format, gfc-internal-format
msgid "Pointer assignment target is not a POINTER at %L"
msgstr ""
-#: fortran/expr.c:3312
+#: fortran/expr.c:3310
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' in the pointer assignment at %L cannot be an l-value since it is a "
"procedure"
msgstr ""
-#: fortran/expr.c:3335
+#: fortran/expr.c:3333
#, gcc-internal-format, gfc-internal-format
msgid "Expected bounds specification for '%s' at %L"
msgstr ""
-#: fortran/expr.c:3340
+#: fortran/expr.c:3338
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Bounds specification for '%s' in pointer assignment at %L"
+msgid "Bounds specification for '%s' in pointer assignment at %L"
msgstr ""
-#: fortran/expr.c:3354
+#: fortran/expr.c:3352
#, gcc-internal-format, gfc-internal-format
msgid "Lower bound has to be present at %L"
msgstr ""
-#: fortran/expr.c:3360
+#: fortran/expr.c:3358
#, gcc-internal-format, gfc-internal-format
msgid "Stride must not be present at %L"
msgstr ""
-#: fortran/expr.c:3372
+#: fortran/expr.c:3370
#, gcc-internal-format, gfc-internal-format
msgid "Either all or none of the upper bounds must be specified at %L"
msgstr ""
-#: fortran/expr.c:3398
+#: fortran/expr.c:3396
#, gcc-internal-format, gfc-internal-format
msgid "Pointer object at %L shall not have a coindex"
msgstr ""
-#: fortran/expr.c:3419
+#: fortran/expr.c:3417
#, gcc-internal-format, gfc-internal-format
msgid "Invalid procedure pointer assignment at %L"
msgstr ""
-#: fortran/expr.c:3425
+#: fortran/expr.c:3437
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Function result '%s' is invalid as proc-target in procedure pointer "
+"assignment at %L"
+msgstr ""
+
+#: fortran/expr.c:3445
#, gcc-internal-format, gfc-internal-format
msgid ""
"Abstract interface '%s' is invalid in procedure pointer assignment at %L"
msgstr ""
-#: fortran/expr.c:3435
+#: fortran/expr.c:3455
#, gcc-internal-format, gfc-internal-format
msgid ""
"Statement function '%s' is invalid in procedure pointer assignment at %L"
msgstr ""
-#: fortran/expr.c:3441
+#: fortran/expr.c:3461
#, gcc-internal-format, gfc-internal-format
msgid ""
"Internal procedure '%s' is invalid in procedure pointer assignment at %L"
msgstr ""
-#: fortran/expr.c:3449
+#: fortran/expr.c:3469
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic '%s' at %L is invalid in procedure pointer assignment"
+msgstr ""
+
+#: fortran/expr.c:3477
#, gcc-internal-format, gfc-internal-format
msgid ""
"Nonintrinsic elemental procedure '%s' is invalid in procedure pointer "
-"assigment at %L"
+"assignment at %L"
msgstr ""
-#: fortran/expr.c:3472
+#: fortran/expr.c:3500
#, gcc-internal-format, gfc-internal-format
msgid ""
"Mismatch in the procedure pointer assignment at %L: mismatch in the calling "
"convention"
msgstr ""
-#: fortran/expr.c:3503
+#: fortran/expr.c:3541
#, gcc-internal-format, gfc-internal-format
msgid "Interface mismatch in procedure pointer assignment at %L: %s"
msgstr ""
-#: fortran/expr.c:3513
+#: fortran/expr.c:3551
#, gcc-internal-format, gfc-internal-format
msgid ""
"Different types in pointer assignment at %L; attempted assignment of %s to %s"
msgstr ""
-#: fortran/expr.c:3521
+#: fortran/expr.c:3559
#, gcc-internal-format, gfc-internal-format
msgid "Different kind type parameters in pointer assignment at %L"
msgstr ""
-#: fortran/expr.c:3528
+#: fortran/expr.c:3566
#, gcc-internal-format, gfc-internal-format
msgid "Different ranks in pointer assignment at %L"
msgstr ""
-#: fortran/expr.c:3547
+#: fortran/expr.c:3585
#, gcc-internal-format, gfc-internal-format
msgid ""
"Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
msgstr ""
-#: fortran/expr.c:3560
+#: fortran/expr.c:3598
#, gcc-internal-format, gfc-internal-format
msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
msgstr ""
-#: fortran/expr.c:3564
+#: fortran/expr.c:3602
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Rank remapping target is not rank 1 at %L"
+msgid "Rank remapping target is not rank 1 at %L"
msgstr ""
-#: fortran/expr.c:3589
+#: fortran/expr.c:3627
#, gcc-internal-format, gfc-internal-format
msgid ""
"Target expression in pointer assignment at %L must deliver a pointer result"
msgstr ""
-#: fortran/expr.c:3597
+#: fortran/expr.c:3635
#, gcc-internal-format, gfc-internal-format
msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
msgstr ""
-#: fortran/expr.c:3604
+#: fortran/expr.c:3642
#, gcc-internal-format, gfc-internal-format
msgid "Bad target in pointer assignment in PURE procedure at %L"
msgstr ""
-#: fortran/expr.c:3614
+#: fortran/expr.c:3652
#, gcc-internal-format, gfc-internal-format
msgid "Pointer assignment with vector subscript on rhs at %L"
msgstr ""
-#: fortran/expr.c:3622
+#: fortran/expr.c:3660
#, gcc-internal-format, gfc-internal-format
msgid "Pointer assignment target has PROTECTED attribute at %L"
msgstr ""
-#: fortran/expr.c:3635
+#: fortran/expr.c:3673
#, gcc-internal-format, gfc-internal-format
msgid "Data target at %L shall not have a coindex"
msgstr ""
-#: fortran/expr.c:3683
+#: fortran/expr.c:3708
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer at %L in pointer assignment might outlive the pointer target"
+msgstr ""
+
+#: fortran/expr.c:3754
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %C must not be ALLOCATABLE "
msgstr ""
-#: fortran/expr.c:3689
+#: fortran/expr.c:3760
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %C must have the TARGET attribute"
msgstr ""
-#: fortran/expr.c:3695
+#: fortran/expr.c:3766
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %C must have the SAVE attribute"
msgstr ""
-#: fortran/expr.c:3707
+#: fortran/expr.c:3778
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure pointer initialization target at %L may not be a procedure pointer"
msgstr ""
-#: fortran/expr.c:4591
+#: fortran/expr.c:4667
#, gcc-internal-format, gfc-internal-format
msgid ""
"Fortran 2008: Pointer functions in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4599
+#: fortran/expr.c:4675
#, gcc-internal-format, gfc-internal-format
msgid "Non-variable expression in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4607
+#: fortran/expr.c:4683
#, gcc-internal-format, gfc-internal-format
msgid "Named constant '%s' in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4616
+#: fortran/expr.c:4692
#, gcc-internal-format, gfc-internal-format
msgid "'%s' in variable definition context (%s) at %L is not a variable"
msgstr ""
-#: fortran/expr.c:4627
+#: fortran/expr.c:4703
#, gcc-internal-format, gfc-internal-format
msgid "Non-POINTER in pointer association context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4640
+#: fortran/expr.c:4716
#, gcc-internal-format, gfc-internal-format
msgid "LOCK_TYPE in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4669
+#: fortran/expr.c:4745
#, gcc-internal-format, gfc-internal-format
msgid ""
"Dummy argument '%s' with INTENT(IN) in pointer association context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4677
+#: fortran/expr.c:4753
#, gcc-internal-format, gfc-internal-format
msgid ""
"Dummy argument '%s' with INTENT(IN) in variable definition context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4690
+#: fortran/expr.c:4766
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' is PROTECTED and can not appear in a pointer association "
"context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4698
+#: fortran/expr.c:4774
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' is PROTECTED and can not appear in a variable definition "
"context (%s) at %L"
msgstr ""
-#: fortran/expr.c:4710
+#: fortran/expr.c:4786
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' can not appear in a variable definition context (%s) at %L in "
"PURE procedure"
msgstr ""
-#: fortran/expr.c:4769
+#: fortran/expr.c:4845
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L associated to vector-indexed target can not be used in a variable "
"definition context (%s)"
msgstr ""
-#: fortran/expr.c:4773
+#: fortran/expr.c:4849
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L associated to expression can not be used in a variable definition "
"context (%s)"
msgstr ""
-#: fortran/expr.c:4785
+#: fortran/expr.c:4861
#, gcc-internal-format, gfc-internal-format
msgid ""
"Associate-name '%s' can not appear in a variable definition context (%s) at "
@@ -39316,14 +39599,14 @@ msgstr ""
msgid "can't open input file: %s"
msgstr ""
-#: fortran/frontend-passes.c:356 fortran/trans-array.c:1024
-#: fortran/trans-array.c:5787 fortran/trans-array.c:7030
-#: fortran/trans-intrinsic.c:5424
+#: fortran/frontend-passes.c:357 fortran/trans-array.c:1043
+#: fortran/trans-array.c:5862 fortran/trans-array.c:7151
+#: fortran/trans-intrinsic.c:5406
#, gcc-internal-format, gfc-internal-format
msgid "Creating array temporary at %L"
msgstr ""
-#: fortran/frontend-passes.c:379 fortran/frontend-passes.c:382
+#: fortran/frontend-passes.c:380 fortran/frontend-passes.c:383
#, gcc-internal-format, gfc-internal-format
msgid "Removing call to function '%s' at %L"
msgstr ""
@@ -39338,232 +39621,239 @@ msgstr ""
msgid "no input files; unwilling to write output files"
msgstr ""
-#: fortran/interface.c:176
+#: fortran/interface.c:177
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in generic specification at %C"
msgstr ""
-#: fortran/interface.c:203
+#: fortran/interface.c:204
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error: Trailing garbage in INTERFACE statement at %C"
msgstr ""
-#: fortran/interface.c:222
+#: fortran/interface.c:223
#, gcc-internal-format, gfc-internal-format
msgid "Dummy procedure '%s' at %C cannot have a generic interface"
msgstr ""
-#: fortran/interface.c:255
+#: fortran/interface.c:256
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ABSTRACT INTERFACE at %C"
+msgid "ABSTRACT INTERFACE at %C"
msgstr ""
-#: fortran/interface.c:263
+#: fortran/interface.c:264
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in ABSTRACT INTERFACE statement at %C"
msgstr ""
-#: fortran/interface.c:294
+#: fortran/interface.c:295
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error: Trailing garbage in END INTERFACE statement at %C"
msgstr ""
-#: fortran/interface.c:307
+#: fortran/interface.c:308
#, gcc-internal-format, gfc-internal-format
msgid "Expected a nameless interface at %C"
msgstr ""
-#: fortran/interface.c:320
+#: fortran/interface.c:321
#, gcc-internal-format, gfc-internal-format
msgid "Expected 'END INTERFACE ASSIGNMENT (=)' at %C"
msgstr ""
-#: fortran/interface.c:350
+#: fortran/interface.c:351
#, gcc-internal-format, gfc-internal-format
msgid "Expecting 'END INTERFACE OPERATOR (%s)' at %C, but got %s"
msgstr ""
-#: fortran/interface.c:364
+#: fortran/interface.c:365
#, gcc-internal-format, gfc-internal-format
msgid "Expecting 'END INTERFACE OPERATOR (.%s.)' at %C"
msgstr ""
-#: fortran/interface.c:375
+#: fortran/interface.c:376
#, gcc-internal-format, gfc-internal-format
msgid "Expecting 'END INTERFACE %s' at %C"
msgstr ""
-#: fortran/interface.c:608
+#: fortran/interface.c:616
#, gcc-internal-format, gfc-internal-format
msgid "Alternate return cannot appear in operator interface at %L"
msgstr ""
-#: fortran/interface.c:636
+#: fortran/interface.c:644
#, gcc-internal-format, gfc-internal-format
msgid "Operator interface at %L has the wrong number of arguments"
msgstr ""
-#: fortran/interface.c:647
+#: fortran/interface.c:655
#, gcc-internal-format, gfc-internal-format
msgid "Assignment operator interface at %L must be a SUBROUTINE"
msgstr ""
-#: fortran/interface.c:653
+#: fortran/interface.c:661
#, gcc-internal-format, gfc-internal-format
msgid "Assignment operator interface at %L must have two arguments"
msgstr ""
-#: fortran/interface.c:670
+#: fortran/interface.c:678
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assignment operator interface at %L must not redefine an INTRINSIC type "
"assignment"
msgstr ""
-#: fortran/interface.c:679
+#: fortran/interface.c:687
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic operator interface at %L must be a FUNCTION"
msgstr ""
-#: fortran/interface.c:690
+#: fortran/interface.c:698
#, gcc-internal-format, gfc-internal-format
msgid ""
"First argument of defined assignment at %L must be INTENT(OUT) or INTENT"
"(INOUT)"
msgstr ""
-#: fortran/interface.c:697
+#: fortran/interface.c:705
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of defined assignment at %L must be INTENT(IN)"
msgstr ""
-#: fortran/interface.c:706 fortran/resolve.c:13867
+#: fortran/interface.c:714 fortran/resolve.c:14135
#, gcc-internal-format, gfc-internal-format
msgid "First argument of operator interface at %L must be INTENT(IN)"
msgstr ""
-#: fortran/interface.c:713 fortran/resolve.c:13885
+#: fortran/interface.c:721 fortran/resolve.c:14153
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of operator interface at %L must be INTENT(IN)"
msgstr ""
-#: fortran/interface.c:818
+#: fortran/interface.c:826
#, gcc-internal-format, gfc-internal-format
msgid "Operator interface at %L conflicts with intrinsic interface"
msgstr ""
-#: fortran/interface.c:1271
+#: fortran/interface.c:1433
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' in %s at %L has no explicit interface"
msgstr ""
-#: fortran/interface.c:1274
+#: fortran/interface.c:1436
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' in %s at %L is neither function nor subroutine"
msgstr ""
-#: fortran/interface.c:1286
+#: fortran/interface.c:1448
#, gcc-internal-format, gfc-internal-format
msgid "In %s at %L procedures must be either all SUBROUTINEs or all FUNCTIONs"
msgstr ""
-#: fortran/interface.c:1290
+#: fortran/interface.c:1452
#, gcc-internal-format, gfc-internal-format
msgid ""
"In %s at %L procedures must be all FUNCTIONs as the generic name is also the "
"name of a derived type"
msgstr ""
-#: fortran/interface.c:1298
+#: fortran/interface.c:1460
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Internal procedure '%s' in %s at %L"
+msgid "Internal procedure '%s' in %s at %L"
msgstr ""
-#: fortran/interface.c:1355 fortran/interface.c:1359
+#: fortran/interface.c:1517 fortran/interface.c:1521
#, gcc-internal-format, gfc-internal-format
msgid "Ambiguous interfaces '%s' and '%s' in %s at %L"
msgstr ""
-#: fortran/interface.c:1363
+#: fortran/interface.c:1525
#, gcc-internal-format, gfc-internal-format
msgid "Although not referenced, '%s' has ambiguous interfaces at %L"
msgstr ""
-#: fortran/interface.c:1400
+#: fortran/interface.c:1562
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L is not a module procedure"
msgstr ""
-#: fortran/interface.c:1622
+#: fortran/interface.c:1786
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"The assumed-rank array at %L requires that the dummy argument '%s' has "
+"assumed-rank"
+msgstr ""
+
+#: fortran/interface.c:1791
#, gcc-internal-format, gfc-internal-format
msgid "Rank mismatch in argument '%s' at %L (scalar and rank-%d)"
msgstr ""
-#: fortran/interface.c:1627
+#: fortran/interface.c:1796
#, gcc-internal-format, gfc-internal-format
msgid "Rank mismatch in argument '%s' at %L (rank-%d and scalar)"
msgstr ""
-#: fortran/interface.c:1632
+#: fortran/interface.c:1801
#, gcc-internal-format, gfc-internal-format
msgid "Rank mismatch in argument '%s' at %L (rank-%d and rank-%d)"
msgstr ""
-#: fortran/interface.c:1674
+#: fortran/interface.c:1843
#, gcc-internal-format, gfc-internal-format
msgid "Invalid procedure argument at %L"
msgstr ""
-#: fortran/interface.c:1682
+#: fortran/interface.c:1851
#, gcc-internal-format, gfc-internal-format
msgid "Interface mismatch in dummy procedure '%s' at %L: %s"
msgstr ""
-#: fortran/interface.c:1707
+#: fortran/interface.c:1876
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument to contiguous pointer dummy '%s' at %L must be simply "
-"contigous"
+"contiguous"
msgstr ""
-#: fortran/interface.c:1721
+#: fortran/interface.c:1890
#, gcc-internal-format, gfc-internal-format
msgid "Type mismatch in argument '%s' at %L; passed %s to %s"
msgstr ""
-#: fortran/interface.c:1736
+#: fortran/interface.c:1905
#, gcc-internal-format, gfc-internal-format
msgid "Actual argument to '%s' at %L must be polymorphic"
msgstr ""
-#: fortran/interface.c:1744
+#: fortran/interface.c:1913
#, gcc-internal-format, gfc-internal-format
msgid "Actual argument to '%s' at %L must have the same declared type"
msgstr ""
-#: fortran/interface.c:1753
+#: fortran/interface.c:1922
#, gcc-internal-format, gfc-internal-format
msgid "Actual argument to '%s' at %L must be a coarray"
msgstr ""
-#: fortran/interface.c:1772
+#: fortran/interface.c:1941
#, gcc-internal-format, gfc-internal-format
msgid "Corank mismatch in argument '%s' at %L (%d and %d)"
msgstr ""
-#: fortran/interface.c:1789
+#: fortran/interface.c:1958
#, gcc-internal-format, gfc-internal-format
msgid "Actual argument to '%s' at %L must be simply contiguous"
msgstr ""
-#: fortran/interface.c:1803
+#: fortran/interface.c:1972
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument to non-INTENT(INOUT) dummy '%s' at %L, which is LOCK_TYPE or "
"has a LOCK_TYPE component"
msgstr ""
-#: fortran/interface.c:1820
+#: fortran/interface.c:1989
#, gcc-internal-format, gfc-internal-format
msgid ""
"Dummy argument '%s' has to be a pointer or assumed-shape array without "
@@ -39571,186 +39861,186 @@ msgid ""
"both are ASYNCHRONOUS or VOLATILE"
msgstr ""
-#: fortran/interface.c:1833
+#: fortran/interface.c:2002
#, gcc-internal-format, gfc-internal-format
msgid ""
"Passing coarray at %L to allocatable, noncoarray, INTENT(OUT) dummy argument "
"'%s'"
msgstr ""
-#: fortran/interface.c:1840
+#: fortran/interface.c:2009
#, gcc-internal-format, gfc-internal-format
msgid ""
"Passing coarray at %L to allocatable, noncoarray dummy argument '%s', which "
"is invalid if the allocation status is modified"
msgstr ""
-#: fortran/interface.c:1902
+#: fortran/interface.c:2072
#, gcc-internal-format, gfc-internal-format
msgid "Polymorphic scalar passed to array dummy argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:1911
+#: fortran/interface.c:2081
#, gcc-internal-format, gfc-internal-format
msgid ""
"Element of assumed-shaped or pointer array passed to array dummy argument "
"'%s' at %L"
msgstr ""
-#: fortran/interface.c:1923
+#: fortran/interface.c:2093
#, gcc-internal-format, gfc-internal-format
msgid ""
"Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual "
"argument with array dummy argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:1931
+#: fortran/interface.c:2101
#, gcc-internal-format, gfc-internal-format
msgid ""
"Fortran 2003: Scalar CHARACTER actual argument with array dummy argument "
"'%s' at %L"
msgstr ""
-#: fortran/interface.c:2231
+#: fortran/interface.c:2400
#, gcc-internal-format, gfc-internal-format
msgid "Keyword argument '%s' at %L is not in the procedure"
msgstr ""
-#: fortran/interface.c:2239
+#: fortran/interface.c:2408
#, gcc-internal-format, gfc-internal-format
msgid ""
"Keyword argument '%s' at %L is already associated with another actual "
"argument"
msgstr ""
-#: fortran/interface.c:2249
+#: fortran/interface.c:2418
#, gcc-internal-format, gfc-internal-format
msgid "More actual than formal arguments in procedure call at %L"
msgstr ""
-#: fortran/interface.c:2261 fortran/interface.c:2610
+#: fortran/interface.c:2430 fortran/interface.c:2789
#, gcc-internal-format, gfc-internal-format
msgid "Missing alternate return spec in subroutine call at %L"
msgstr ""
-#: fortran/interface.c:2269
+#: fortran/interface.c:2438
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected alternate return spec in subroutine call at %L"
msgstr ""
-#: fortran/interface.c:2279
+#: fortran/interface.c:2458
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected NULL() intrinsic at %L to dummy '%s'"
msgstr ""
-#: fortran/interface.c:2282
+#: fortran/interface.c:2461
#, gcc-internal-format, gfc-internal-format
msgid "Fortran 2008: Null pointer at %L to non-pointer dummy '%s'"
msgstr ""
-#: fortran/interface.c:2306
+#: fortran/interface.c:2485
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument at %L to assumed-type dummy is of derived type with type-"
"bound or FINAL procedures"
msgstr ""
-#: fortran/interface.c:2327
+#: fortran/interface.c:2506
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character length mismatch (%ld/%ld) between actual argument and pointer or "
"allocatable dummy argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:2334
+#: fortran/interface.c:2513
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character length mismatch (%ld/%ld) between actual argument and assumed-"
"shape dummy argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:2348
+#: fortran/interface.c:2527
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument at %L to allocatable or pointer dummy argument '%s' must "
"have a deferred length type parameter if and only if the dummy has one"
msgstr ""
-#: fortran/interface.c:2365
+#: fortran/interface.c:2544
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character length of actual argument shorter than of dummy argument '%s' (%lu/"
"%lu) at %L"
msgstr ""
-#: fortran/interface.c:2370
+#: fortran/interface.c:2549
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument contains too few elements for dummy argument '%s' (%lu/%lu) "
"at %L"
msgstr ""
-#: fortran/interface.c:2389
+#: fortran/interface.c:2568
#, gcc-internal-format, gfc-internal-format
msgid "Expected a procedure pointer for argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:2401
+#: fortran/interface.c:2580
#, gcc-internal-format, gfc-internal-format
msgid "Expected a procedure for argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:2415
+#: fortran/interface.c:2594
#, gcc-internal-format, gfc-internal-format
msgid "Actual argument for '%s' cannot be an assumed-size array at %L"
msgstr ""
-#: fortran/interface.c:2424
+#: fortran/interface.c:2603
#, gcc-internal-format, gfc-internal-format
msgid "Actual argument for '%s' must be a pointer at %L"
msgstr ""
-#: fortran/interface.c:2434
+#: fortran/interface.c:2613
#, gcc-internal-format, gfc-internal-format
msgid "Fortran 2008: Non-pointer actual argument at %L to pointer dummy '%s'"
msgstr ""
-#: fortran/interface.c:2444
+#: fortran/interface.c:2623
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed actual argument at %L to pointer dummy '%s'"
msgstr ""
-#: fortran/interface.c:2457
+#: fortran/interface.c:2636
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed actual argument at %L to allocatable dummy '%s' requires INTENT(IN)"
msgstr ""
-#: fortran/interface.c:2471
+#: fortran/interface.c:2650
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed ASYNCHRONOUS or VOLATILE actual argument at %L requires that dummy "
"'%s' has neither ASYNCHRONOUS nor VOLATILE"
msgstr ""
-#: fortran/interface.c:2485
+#: fortran/interface.c:2664
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed actual argument at %L with allocatable ultimate component to dummy "
"'%s' requires either VALUE or INTENT(IN)"
msgstr ""
-#: fortran/interface.c:2497
+#: fortran/interface.c:2676
#, gcc-internal-format, gfc-internal-format
msgid "Actual CLASS array argument for '%s' must be a full array at %L"
msgstr ""
-#: fortran/interface.c:2507
+#: fortran/interface.c:2686
#, gcc-internal-format, gfc-internal-format
msgid "Actual argument for '%s' must be ALLOCATABLE at %L"
msgstr ""
-#: fortran/interface.c:2538
+#: fortran/interface.c:2717
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array-section actual argument with vector subscripts at %L is incompatible "
@@ -39758,247 +40048,238 @@ msgid ""
"dummy argument '%s'"
msgstr ""
-#: fortran/interface.c:2556
+#: fortran/interface.c:2735
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed-shape actual argument at %L is incompatible with the non-assumed-"
"shape dummy argument '%s' due to VOLATILE attribute"
msgstr ""
-#: fortran/interface.c:2568
+#: fortran/interface.c:2747
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array-section actual argument at %L is incompatible with the non-assumed-"
"shape dummy argument '%s' due to VOLATILE attribute"
msgstr ""
-#: fortran/interface.c:2587
+#: fortran/interface.c:2766
#, gcc-internal-format, gfc-internal-format
msgid ""
"Pointer-array actual argument at %L requires an assumed-shape or pointer-"
"array dummy argument '%s' due to VOLATILE attribute"
msgstr ""
-#: fortran/interface.c:2617
+#: fortran/interface.c:2796
#, gcc-internal-format, gfc-internal-format
msgid "Missing actual argument for argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:2803
+#: fortran/interface.c:2982
#, gcc-internal-format, gfc-internal-format
msgid ""
"Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) "
"argument '%s' at %L"
msgstr ""
-#: fortran/interface.c:2844
+#: fortran/interface.c:3023
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure argument at %L is local to a PURE procedure and has the POINTER "
"attribute"
msgstr ""
-#: fortran/interface.c:2856
+#: fortran/interface.c:3035
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed actual argument at %L in PURE procedure is passed to an INTENT(%s) "
"argument"
msgstr ""
-#: fortran/interface.c:2866
+#: fortran/interface.c:3045
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed actual argument at %L in PURE procedure is passed to a POINTER "
"dummy argument"
msgstr ""
-#: fortran/interface.c:2877
+#: fortran/interface.c:3056
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed polymorphic actual argument at %L is passed polymorphic dummy "
"argument '%s'"
msgstr ""
-#: fortran/interface.c:2902
+#: fortran/interface.c:3081
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' called with an implicit interface at %L"
msgstr ""
-#: fortran/interface.c:2906
+#: fortran/interface.c:3085
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' called at %L is not explicitly declared"
msgstr ""
-#: fortran/interface.c:2916
+#: fortran/interface.c:3095
#, gcc-internal-format, gfc-internal-format
msgid ""
"The pointer object '%s' at %L must have an explicit function interface or be "
"declared as array"
msgstr ""
-#: fortran/interface.c:2924
+#: fortran/interface.c:3103
#, gcc-internal-format, gfc-internal-format
msgid ""
"The allocatable object '%s' at %L must have an explicit function interface "
"or be declared as array"
msgstr ""
-#: fortran/interface.c:2932
+#: fortran/interface.c:3111
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocatable function '%s' at %L must have an explicit function interface"
msgstr ""
-#: fortran/interface.c:2942
+#: fortran/interface.c:3121
#, gcc-internal-format, gfc-internal-format
msgid "Keyword argument requires explicit interface for procedure '%s' at %L"
msgstr ""
-#: fortran/interface.c:2951
+#: fortran/interface.c:3130
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type argument %s at %L requires an explicit interface"
msgstr ""
-#: fortran/interface.c:2964
+#: fortran/interface.c:3143
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument of LOCK_TYPE or with LOCK_TYPE component at %L requires an "
"explicit interface for procedure '%s'"
msgstr ""
-#: fortran/interface.c:2973
+#: fortran/interface.c:3152
#, gcc-internal-format, gfc-internal-format
msgid "MOLD argument to NULL required at %L"
msgstr ""
-#: fortran/interface.c:3004
+#: fortran/interface.c:3160
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank argument requires an explicit interface at %L"
+msgstr ""
+
+#: fortran/interface.c:3196
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure pointer component '%s' called with an implicit interface at %L"
msgstr ""
-#: fortran/interface.c:3015
+#: fortran/interface.c:3207
#, gcc-internal-format, gfc-internal-format
msgid ""
"Keyword argument requires explicit interface for procedure pointer component "
"'%s' at %L"
msgstr ""
-#: fortran/interface.c:3095
+#: fortran/interface.c:3287
#, gcc-internal-format, gfc-internal-format
msgid ""
"MOLD= required in NULL() argument at %L: Ambiguity between specific "
"functions %s and %s"
msgstr ""
-#: fortran/interface.c:3546
+#: fortran/interface.c:3738
#, gcc-internal-format, gfc-internal-format
-msgid "Entity '%s' at %C is already present in the interface"
+msgid "Entity '%s' at %L is already present in the interface"
msgstr ""
-#: fortran/interface.c:3743
+#: fortran/interface.c:3949
#, gcc-internal-format, gfc-internal-format
msgid "Can't overwrite GENERIC '%s' at %L"
msgstr ""
-#: fortran/interface.c:3755
+#: fortran/interface.c:3961
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE"
msgstr ""
-#: fortran/interface.c:3763
+#: fortran/interface.c:3969
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L must not be DEFERRED as it overrides a non-DEFERRED binding"
msgstr ""
-#: fortran/interface.c:3771
+#: fortran/interface.c:3977
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides a PURE procedure and must also be PURE"
msgstr ""
-#: fortran/interface.c:3780
+#: fortran/interface.c:3986
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
msgstr ""
-#: fortran/interface.c:3786
+#: fortran/interface.c:3992
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, "
"either"
msgstr ""
-#: fortran/interface.c:3795
+#: fortran/interface.c:4001
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
msgstr ""
-#: fortran/interface.c:3806
+#: fortran/interface.c:4012
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides a FUNCTION and must also be a FUNCTION"
msgstr ""
-#: fortran/interface.c:3816
+#: fortran/interface.c:4020
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"'%s' at %L and the overridden FUNCTION should have matching result types and "
-"ranks"
-msgstr ""
-
-#: fortran/interface.c:3832
-#, gcc-internal-format, gfc-internal-format
-msgid "Character length mismatch between '%s' at '%L' and overridden FUNCTION"
-msgstr ""
-
-#: fortran/interface.c:3837
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Possible character length mismatch between '%s' at '%L' and overridden "
-"FUNCTION"
+msgid "Result mismatch for the overriding procedure '%s' at %L: %s"
msgstr ""
-#: fortran/interface.c:3857
+#: fortran/interface.c:4031
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides a PUBLIC procedure and must not be PRIVATE"
msgstr ""
-#: fortran/interface.c:3886
+#: fortran/interface.c:4060
#, gcc-internal-format, gfc-internal-format
msgid ""
"Dummy argument '%s' of '%s' at %L should be named '%s' as to match the "
"corresponding argument of the overridden procedure"
msgstr ""
-#: fortran/interface.c:3897
+#: fortran/interface.c:4071
#, gcc-internal-format, gfc-internal-format
msgid "Argument mismatch for the overriding procedure '%s' at %L: %s"
msgstr ""
-#: fortran/interface.c:3906
+#: fortran/interface.c:4080
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L must have the same number of formal arguments as the overridden "
"procedure"
msgstr ""
-#: fortran/interface.c:3915
+#: fortran/interface.c:4089
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS"
msgstr ""
-#: fortran/interface.c:3926
+#: fortran/interface.c:4100
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L overrides a binding with PASS and must also be PASS"
msgstr ""
-#: fortran/interface.c:3933
+#: fortran/interface.c:4107
#, gcc-internal-format, gfc-internal-format
msgid ""
"Passed-object dummy argument of '%s' at %L must be at the same position as "
"the passed-object dummy argument of the overridden procedure"
msgstr ""
-#: fortran/intrinsic.c:935
+#: fortran/intrinsic.c:939
#, gcc-internal-format, gfc-internal-format
msgid ""
"The intrinsic '%s' at %L is not included in the selected standard but %s and "
@@ -40006,1133 +40287,1138 @@ msgid ""
"option or define -fall-intrinsics to allow this intrinsic."
msgstr ""
-#: fortran/intrinsic.c:3518
+#: fortran/intrinsic.c:3522
#, gcc-internal-format, gfc-internal-format
msgid "Too many arguments in call to '%s' at %L"
msgstr ""
-#: fortran/intrinsic.c:3533
+#: fortran/intrinsic.c:3537
#, gcc-internal-format, gfc-internal-format
msgid ""
"The argument list functions %%VAL, %%LOC or %%REF are not allowed in this "
"context at %L"
msgstr ""
-#: fortran/intrinsic.c:3536
+#: fortran/intrinsic.c:3540
#, gcc-internal-format, gfc-internal-format
msgid "Can't find keyword named '%s' in call to '%s' at %L"
msgstr ""
-#: fortran/intrinsic.c:3543
+#: fortran/intrinsic.c:3547
#, gcc-internal-format, gfc-internal-format
msgid "Argument '%s' appears twice in call to '%s' at %L"
msgstr ""
-#: fortran/intrinsic.c:3557
+#: fortran/intrinsic.c:3561
#, gcc-internal-format, gfc-internal-format
msgid "Missing actual argument '%s' in call to '%s' at %L"
msgstr ""
-#: fortran/intrinsic.c:3572
+#: fortran/intrinsic.c:3576
#, gcc-internal-format, gfc-internal-format
msgid "ALTERNATE RETURN not permitted at %L"
msgstr ""
-#: fortran/intrinsic.c:3629
+#: fortran/intrinsic.c:3633
#, gcc-internal-format, gfc-internal-format
msgid "Type of argument '%s' in call to '%s' at %L should be %s, not %s"
msgstr ""
-#: fortran/intrinsic.c:4014
+#: fortran/intrinsic.c:4018
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic '%s' (is %s) is used at %L"
msgstr ""
-#: fortran/intrinsic.c:4085
+#: fortran/intrinsic.c:4089
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Function '%s' as initialization expression at %L"
+msgid "Function '%s' as initialization expression at %L"
msgstr ""
-#: fortran/intrinsic.c:4161
+#: fortran/intrinsic.c:4165
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: Elemental function as initialization expression with non-"
-"integer/non-character arguments at %L"
+"Elemental function as initialization expression with non-integer/non-"
+"character arguments at %L"
msgstr ""
-#: fortran/intrinsic.c:4222
+#: fortran/intrinsic.c:4226
#, gcc-internal-format, gfc-internal-format
msgid "Subroutine call to intrinsic '%s' at %L is not PURE"
msgstr ""
-#: fortran/intrinsic.c:4295
+#: fortran/intrinsic.c:4299
#, gcc-internal-format, gfc-internal-format
msgid "Extension: Conversion from %s to %s at %L"
msgstr ""
-#: fortran/intrinsic.c:4409
+#: fortran/intrinsic.c:4413
#, gcc-internal-format, gfc-internal-format
msgid "Can't convert %s to %s at %L"
msgstr ""
-#: fortran/intrinsic.c:4503
+#: fortran/intrinsic.c:4507
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' declared at %L may shadow the intrinsic of the same name. In order to "
"call the intrinsic, explicit INTRINSIC declarations may be required."
msgstr ""
-#: fortran/intrinsic.c:4508
+#: fortran/intrinsic.c:4512
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' declared at %L is also the name of an intrinsic. It can only be called "
"via an explicit interface or if declared EXTERNAL."
msgstr ""
-#: fortran/io.c:168 fortran/primary.c:872
+#: fortran/io.c:169 fortran/primary.c:873
#, gcc-internal-format, gfc-internal-format
msgid "Extension: backslash character at %C"
msgstr ""
-#: fortran/io.c:204 fortran/io.c:207
+#: fortran/io.c:205 fortran/io.c:208
#, gcc-internal-format, gfc-internal-format
msgid "Extension: Tab character in format at %C"
msgstr ""
-#: fortran/io.c:453
+#: fortran/io.c:454
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: DP format specifier not allowed at %C"
+msgid "DP format specifier not allowed at %C"
msgstr ""
-#: fortran/io.c:460
+#: fortran/io.c:461
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: DC format specifier not allowed at %C"
+msgid "DC format specifier not allowed at %C"
msgstr ""
-#: fortran/io.c:649
+#: fortran/io.c:650
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: X descriptor requires leading space count at %L"
+msgid "X descriptor requires leading space count at %L"
msgstr ""
-#: fortran/io.c:679
+#: fortran/io.c:680
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: $ descriptor at %L"
+msgid "$ descriptor at %L"
msgstr ""
-#: fortran/io.c:684
+#: fortran/io.c:685
#, gcc-internal-format, gfc-internal-format
msgid "$ should be the last specifier in format at %L"
msgstr ""
-#: fortran/io.c:782
+#: fortran/io.c:783
#, gcc-internal-format, gfc-internal-format
msgid "Extension: Missing positive width after L descriptor at %L"
msgstr ""
-#: fortran/io.c:826
+#: fortran/io.c:827
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: 'G0' in format at %L"
+msgid "'G0' in format at %L"
msgstr ""
-#: fortran/io.c:854
+#: fortran/io.c:855
#, gcc-internal-format, gfc-internal-format
msgid "Positive width required in format specifier %s at %L"
msgstr ""
-#: fortran/io.c:870 fortran/io.c:877
+#: fortran/io.c:871 fortran/io.c:878
#, gcc-internal-format, gfc-internal-format
msgid "Period required in format specifier %s at %L"
msgstr ""
-#: fortran/io.c:949
+#: fortran/io.c:950
#, gcc-internal-format, gfc-internal-format
msgid "Period required in format specifier at %L"
msgstr ""
-#: fortran/io.c:971
+#: fortran/io.c:972
#, gcc-internal-format, gfc-internal-format
msgid "The H format specifier at %L is a Fortran 95 deleted feature"
msgstr ""
-#: fortran/io.c:1059 fortran/io.c:1122
+#: fortran/io.c:1060 fortran/io.c:1123
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Missing comma at %L"
+msgid "Missing comma at %L"
msgstr ""
-#: fortran/io.c:1141
+#: fortran/io.c:1142
#, gcc-internal-format, gfc-internal-format
msgid "%s in format string at %L"
msgstr ""
-#: fortran/io.c:1178
+#: fortran/io.c:1179
#, gcc-internal-format, gfc-internal-format
msgid "Extraneous characters in format at %L"
msgstr ""
-#: fortran/io.c:1200
+#: fortran/io.c:1201
#, gcc-internal-format, gfc-internal-format
msgid "Format statement in module main block at %C"
msgstr ""
-#: fortran/io.c:1206
+#: fortran/io.c:1207
#, gcc-internal-format, gfc-internal-format
msgid "Missing format label at %C"
msgstr ""
-#: fortran/io.c:1261 fortran/io.c:1292 fortran/io.c:1357
+#: fortran/io.c:1262 fortran/io.c:1293 fortran/io.c:1358
#, gcc-internal-format, gfc-internal-format
msgid "Invalid value for %s specification at %C"
msgstr ""
-#: fortran/io.c:1267 fortran/io.c:1298
+#: fortran/io.c:1268 fortran/io.c:1299
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate %s specification at %C"
msgstr ""
-#: fortran/io.c:1305
+#: fortran/io.c:1306
#, gcc-internal-format, gfc-internal-format
msgid "Variable %s cannot be INTENT(IN) at %C"
msgstr ""
-#: fortran/io.c:1312
+#: fortran/io.c:1313
#, gcc-internal-format, gfc-internal-format
msgid "Variable %s cannot be assigned in PURE procedure at %C"
msgstr ""
-#: fortran/io.c:1363
+#: fortran/io.c:1364
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate %s label specification at %C"
msgstr ""
-#: fortran/io.c:1383
+#: fortran/io.c:1384
#, gcc-internal-format, gfc-internal-format
msgid ""
"Constant expression in FORMAT tag at %L must be of type default CHARACTER"
msgstr ""
-#: fortran/io.c:1401
+#: fortran/io.c:1402
#, gcc-internal-format, gfc-internal-format
msgid "FORMAT tag at %L must be of type default-kind CHARACTER or of INTEGER"
msgstr ""
-#: fortran/io.c:1407
+#: fortran/io.c:1408
#, gcc-internal-format, gfc-internal-format
-msgid "Deleted feature: ASSIGNED variable in FORMAT tag at %L"
+msgid "ASSIGNED variable in FORMAT tag at %L"
msgstr ""
-#: fortran/io.c:1413
+#: fortran/io.c:1414
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' at %L has not been assigned a format label"
msgstr ""
-#: fortran/io.c:1420
+#: fortran/io.c:1421
#, gcc-internal-format, gfc-internal-format
msgid "Scalar '%s' in FORMAT tag at %L is not an ASSIGNED variable"
msgstr ""
-#: fortran/io.c:1432
+#: fortran/io.c:1433
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Non-character in FORMAT tag at %L"
+msgid "Non-character in FORMAT tag at %L"
msgstr ""
-#: fortran/io.c:1438
+#: fortran/io.c:1439
#, gcc-internal-format, gfc-internal-format
msgid "Non-character assumed shape array element in FORMAT tag at %L"
msgstr ""
-#: fortran/io.c:1445
+#: fortran/io.c:1446
#, gcc-internal-format, gfc-internal-format
msgid "Non-character assumed size array element in FORMAT tag at %L"
msgstr ""
-#: fortran/io.c:1452
+#: fortran/io.c:1453
#, gcc-internal-format, gfc-internal-format
msgid "Non-character pointer array element in FORMAT tag at %L"
msgstr ""
-#: fortran/io.c:1478
+#: fortran/io.c:1479
#, gcc-internal-format, gfc-internal-format
msgid "%s tag at %L must be of type %s"
msgstr ""
-#: fortran/io.c:1485
+#: fortran/io.c:1486
#, gcc-internal-format, gfc-internal-format
msgid "%s tag at %L must be a character string of default kind"
msgstr ""
-#: fortran/io.c:1492
+#: fortran/io.c:1493
#, gcc-internal-format, gfc-internal-format
msgid "%s tag at %L must be scalar"
msgstr ""
-#: fortran/io.c:1498
+#: fortran/io.c:1499
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: IOMSG tag at %L"
+msgid "IOMSG tag at %L"
msgstr ""
-#: fortran/io.c:1506
+#: fortran/io.c:1507
#, gcc-internal-format, gfc-internal-format
msgid "Fortran 95 requires default INTEGER in %s tag at %L"
msgstr ""
-#: fortran/io.c:1514
+#: fortran/io.c:1515
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Nondefault LOGICAL in %s tag at %L"
+msgid "Nondefault LOGICAL in %s tag at %L"
msgstr ""
-#: fortran/io.c:1522
+#: fortran/io.c:1523
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: NEWUNIT specifier at %L"
+msgid "NEWUNIT specifier at %L"
msgstr ""
-#: fortran/io.c:1540
+#: fortran/io.c:1541
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: CONVERT tag at %L"
+msgid "CONVERT tag at %L"
msgstr ""
-#: fortran/io.c:1726 fortran/io.c:1734
+#: fortran/io.c:1727
#, gcc-internal-format, gfc-internal-format
msgid "Fortran 2003: %s specifier in %s statement at %C has value '%s'"
msgstr ""
-#: fortran/io.c:1753 fortran/io.c:1761
+#: fortran/io.c:1735 fortran/io.c:1762
+#, gcc-internal-format, gfc-internal-format
+msgid "%s specifier in %s statement at %C has value '%s'"
+msgstr ""
+
+#: fortran/io.c:1754
#, gcc-internal-format, gfc-internal-format
msgid "Extension: %s specifier in %s statement at %C has value '%s'"
msgstr ""
-#: fortran/io.c:1774 fortran/io.c:1782
+#: fortran/io.c:1775 fortran/io.c:1783
#, gcc-internal-format, gfc-internal-format
msgid "%s specifier in %s statement at %C has invalid value '%s'"
msgstr ""
-#: fortran/io.c:1835
+#: fortran/io.c:1836
#, gcc-internal-format, gfc-internal-format
msgid "OPEN statement not allowed in PURE procedure at %C"
msgstr ""
-#: fortran/io.c:1849
+#: fortran/io.c:1850
#, gcc-internal-format, gfc-internal-format
msgid "UNIT specifier not allowed with NEWUNIT at %C"
msgstr ""
-#: fortran/io.c:1857
+#: fortran/io.c:1858
#, gcc-internal-format, gfc-internal-format
msgid "NEWUNIT specifier must have FILE= or STATUS='scratch' at %C"
msgstr ""
-#: fortran/io.c:1864
+#: fortran/io.c:1865
#, gcc-internal-format, gfc-internal-format
msgid "OPEN statement at %C must have UNIT or NEWUNIT specified"
msgstr ""
-#: fortran/io.c:1896
+#: fortran/io.c:1897
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ASYNCHRONOUS= at %C not allowed in Fortran 95"
+msgid "ASYNCHRONOUS= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:1914 fortran/io.c:3363
+#: fortran/io.c:1915 fortran/io.c:3364
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: BLANK= at %C not allowed in Fortran 95"
+msgid "BLANK= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:1932 fortran/io.c:3342
+#: fortran/io.c:1933 fortran/io.c:3343
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: DECIMAL= at %C not allowed in Fortran 95"
+msgid "DECIMAL= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:1964
+#: fortran/io.c:1965
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ENCODING= at %C not allowed in Fortran 95"
+msgid "ENCODING= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:2015 fortran/io.c:3405
+#: fortran/io.c:2016 fortran/io.c:3406
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95"
+msgid "ROUND= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:2035
+#: fortran/io.c:2036
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: SIGN= at %C not allowed in Fortran 95"
+msgid "SIGN= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:2248
+#: fortran/io.c:2249
#, gcc-internal-format, gfc-internal-format
msgid "CLOSE statement not allowed in PURE procedure at %C"
msgstr ""
-#: fortran/io.c:2308
+#: fortran/io.c:2309
#, gcc-internal-format, gfc-internal-format
msgid "CLOSE statement at %L requires a UNIT number"
msgstr ""
-#: fortran/io.c:2316
+#: fortran/io.c:2317
#, gcc-internal-format, gfc-internal-format
msgid "UNIT number in CLOSE statement at %L must be non-negative"
msgstr ""
-#: fortran/io.c:2414 fortran/match.c:2682
+#: fortran/io.c:2415 fortran/match.c:2683
#, gcc-internal-format, gfc-internal-format
msgid "%s statement not allowed in PURE procedure at %C"
msgstr ""
-#: fortran/io.c:2449 fortran/io.c:2881
+#: fortran/io.c:2450 fortran/io.c:2882
#, gcc-internal-format, gfc-internal-format
msgid "UNIT number in statement at %L must be non-negative"
msgstr ""
-#: fortran/io.c:2481
+#: fortran/io.c:2482
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: FLUSH statement at %C"
+msgid "FLUSH statement at %C"
msgstr ""
-#: fortran/io.c:2537
+#: fortran/io.c:2538
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate UNIT specification at %C"
msgstr ""
-#: fortran/io.c:2611
+#: fortran/io.c:2612
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate format specification at %C"
msgstr ""
-#: fortran/io.c:2628
+#: fortran/io.c:2629
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C"
msgstr ""
-#: fortran/io.c:2664
+#: fortran/io.c:2665
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate NML specification at %C"
msgstr ""
-#: fortran/io.c:2673
+#: fortran/io.c:2674
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %C must be a NAMELIST group name"
msgstr ""
-#: fortran/io.c:2738
+#: fortran/io.c:2739
#, gcc-internal-format, gfc-internal-format
msgid "END tag at %C not allowed in output statement"
msgstr ""
-#: fortran/io.c:2815
+#: fortran/io.c:2816
#, gcc-internal-format, gfc-internal-format
msgid "UNIT not specified at %L"
msgstr ""
-#: fortran/io.c:2827
+#: fortran/io.c:2828
#, gcc-internal-format, gfc-internal-format
msgid ""
"UNIT specification at %L must be an INTEGER expression or a CHARACTER "
"variable"
msgstr ""
-#: fortran/io.c:2849
+#: fortran/io.c:2850
#, gcc-internal-format, gfc-internal-format
msgid "Invalid form of WRITE statement at %L, UNIT required"
msgstr ""
-#: fortran/io.c:2860
+#: fortran/io.c:2861
#, gcc-internal-format, gfc-internal-format
msgid "Internal unit with vector subscript at %L"
msgstr ""
-#: fortran/io.c:2874
+#: fortran/io.c:2875
#, gcc-internal-format, gfc-internal-format
msgid "External IO UNIT cannot be an array at %L"
msgstr ""
-#: fortran/io.c:2902
+#: fortran/io.c:2903
#, gcc-internal-format, gfc-internal-format
msgid ""
"NAMELIST '%s' in READ statement at %L contains the symbol '%s' which may not "
"appear in a variable definition context"
msgstr ""
-#: fortran/io.c:2912
+#: fortran/io.c:2913
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Comma before i/o item list at %L"
+msgid "Comma before i/o item list at %L"
msgstr ""
-#: fortran/io.c:2922
+#: fortran/io.c:2923
#, gcc-internal-format, gfc-internal-format
msgid "ERR tag label %d at %L not defined"
msgstr ""
-#: fortran/io.c:2934
+#: fortran/io.c:2935
#, gcc-internal-format, gfc-internal-format
msgid "END tag label %d at %L not defined"
msgstr ""
-#: fortran/io.c:2946
+#: fortran/io.c:2947
#, gcc-internal-format, gfc-internal-format
msgid "EOR tag label %d at %L not defined"
msgstr ""
-#: fortran/io.c:2956
+#: fortran/io.c:2957
#, gcc-internal-format, gfc-internal-format
msgid "FORMAT label %d at %L not defined"
msgstr ""
-#: fortran/io.c:3078
+#: fortran/io.c:3079
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in I/O iterator at %C"
msgstr ""
-#: fortran/io.c:3109
+#: fortran/io.c:3110
#, gcc-internal-format, gfc-internal-format
msgid "Expected variable in READ statement at %C"
msgstr ""
-#: fortran/io.c:3115
+#: fortran/io.c:3116
#, gcc-internal-format, gfc-internal-format
msgid "Expected expression in %s statement at %C"
msgstr ""
#. A general purpose syntax error.
-#: fortran/io.c:3173 fortran/io.c:3772 fortran/gfortran.h:2471
+#: fortran/io.c:3174 fortran/io.c:3773 fortran/gfortran.h:2482
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in %s statement at %C"
msgstr ""
-#: fortran/io.c:3258
+#: fortran/io.c:3259
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Internal file at %L with namelist"
+msgid "Internal file at %L with namelist"
msgstr ""
-#: fortran/io.c:3316
+#: fortran/io.c:3317
#, gcc-internal-format, gfc-internal-format
msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
msgstr ""
-#: fortran/io.c:3384
+#: fortran/io.c:3385
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: PAD= at %C not allowed in Fortran 95"
+msgid "PAD= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:3450
+#: fortran/io.c:3451
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95"
+msgid "DELIM= at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:3599
+#: fortran/io.c:3600
#, gcc-internal-format, gfc-internal-format
msgid "PRINT namelist at %C is an extension"
msgstr ""
-#: fortran/io.c:3742
+#: fortran/io.c:3743
#, gcc-internal-format, gfc-internal-format
msgid "Expected comma in I/O list at %C"
msgstr ""
-#: fortran/io.c:3806
+#: fortran/io.c:3807
#, gcc-internal-format, gfc-internal-format
msgid "PRINT statement at %C not allowed within PURE procedure"
msgstr ""
-#: fortran/io.c:3965 fortran/io.c:4019
+#: fortran/io.c:3966 fortran/io.c:4020
#, gcc-internal-format, gfc-internal-format
msgid "INQUIRE statement not allowed in PURE procedure at %C"
msgstr ""
-#: fortran/io.c:3995
+#: fortran/io.c:3996
#, gcc-internal-format, gfc-internal-format
msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
msgstr ""
-#: fortran/io.c:4005 fortran/trans-io.c:1230
+#: fortran/io.c:4006 fortran/trans-io.c:1228
#, gcc-internal-format, gfc-internal-format
msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
msgstr ""
-#: fortran/io.c:4012
+#: fortran/io.c:4013
#, gcc-internal-format, gfc-internal-format
msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
msgstr ""
-#: fortran/io.c:4028
+#: fortran/io.c:4029
#, gcc-internal-format, gfc-internal-format
msgid ""
"INQUIRE statement at %L requires a PENDING= specifier with the ID= specifier"
msgstr ""
-#: fortran/io.c:4199
+#: fortran/io.c:4200
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: WAIT at %C not allowed in Fortran 95"
+msgid "WAIT at %C not allowed in Fortran 95"
msgstr ""
-#: fortran/io.c:4205
+#: fortran/io.c:4206
#, gcc-internal-format, gfc-internal-format
msgid "WAIT statement not allowed in PURE procedure at %C"
msgstr ""
-#: fortran/match.c:165
+#: fortran/match.c:166
#, gcc-internal-format, gfc-internal-format
msgid "Missing ')' in statement at or before %L"
msgstr ""
-#: fortran/match.c:170
+#: fortran/match.c:171
#, gcc-internal-format, gfc-internal-format
msgid "Missing '(' in statement at or before %L"
msgstr ""
-#: fortran/match.c:367
+#: fortran/match.c:368
#, gcc-internal-format, gfc-internal-format
msgid "Integer too large at %C"
msgstr ""
-#: fortran/match.c:460 fortran/parse.c:693
+#: fortran/match.c:461 fortran/parse.c:694
#, gcc-internal-format, gfc-internal-format
msgid "Too many digits in statement label at %C"
msgstr ""
-#: fortran/match.c:466
+#: fortran/match.c:467
#, gcc-internal-format, gfc-internal-format
msgid "Statement label at %C is zero"
msgstr ""
-#: fortran/match.c:499
+#: fortran/match.c:500
#, gcc-internal-format, gfc-internal-format
msgid "Label name '%s' at %C is ambiguous"
msgstr ""
-#: fortran/match.c:505
+#: fortran/match.c:506
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate construct label '%s' at %C"
msgstr ""
-#: fortran/match.c:536
+#: fortran/match.c:537
#, gcc-internal-format, gfc-internal-format
msgid "Invalid character in name at %C"
msgstr ""
-#: fortran/match.c:549
+#: fortran/match.c:550
#, gcc-internal-format, gfc-internal-format
msgid "Name at %C is too long"
msgstr ""
-#: fortran/match.c:560
+#: fortran/match.c:561
#, gcc-internal-format, gfc-internal-format
msgid ""
"Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension"
msgstr ""
-#: fortran/match.c:610 fortran/match.c:657
+#: fortran/match.c:611 fortran/match.c:658
#, gcc-internal-format, gfc-internal-format
msgid "Invalid C name in NAME= specifier at %C"
msgstr ""
-#: fortran/match.c:648
+#: fortran/match.c:649
#, gcc-internal-format, gfc-internal-format
msgid "Embedded space in NAME= specifier at %C"
msgstr ""
-#: fortran/match.c:972
+#: fortran/match.c:973
#, gcc-internal-format, gfc-internal-format
msgid "Loop variable at %C cannot be a coarray"
msgstr ""
-#: fortran/match.c:978
+#: fortran/match.c:979
#, gcc-internal-format, gfc-internal-format
msgid "Loop variable at %C cannot be a sub-component"
msgstr ""
-#: fortran/match.c:1012
+#: fortran/match.c:1013
#, gcc-internal-format, gfc-internal-format
msgid "Expected a step value in iterator at %C"
msgstr ""
-#: fortran/match.c:1024
+#: fortran/match.c:1025
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in iterator at %C"
msgstr ""
-#: fortran/match.c:1265
+#: fortran/match.c:1266
#, gcc-internal-format, gfc-internal-format
msgid "Invalid form of PROGRAM statement at %C"
msgstr ""
-#: fortran/match.c:1395 fortran/match.c:1476
+#: fortran/match.c:1396 fortran/match.c:1477
#, gcc-internal-format, gfc-internal-format
-msgid "Obsolescent feature: Arithmetic IF statement at %C"
+msgid "Arithmetic IF statement at %C"
msgstr ""
-#: fortran/match.c:1451
+#: fortran/match.c:1452
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in IF-expression at %C"
msgstr ""
-#: fortran/match.c:1462
+#: fortran/match.c:1463
#, gcc-internal-format, gfc-internal-format
msgid "Block label not appropriate for arithmetic IF statement at %C"
msgstr ""
-#: fortran/match.c:1500
+#: fortran/match.c:1501
#, gcc-internal-format, gfc-internal-format
msgid "Block label is not appropriate for IF statement at %C"
msgstr ""
-#: fortran/match.c:1586
+#: fortran/match.c:1587
#, gcc-internal-format, gfc-internal-format
msgid "Cannot assign to a named constant at %C"
msgstr ""
-#: fortran/match.c:1596
+#: fortran/match.c:1597
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable statement in IF-clause at %C"
msgstr ""
-#: fortran/match.c:1603
+#: fortran/match.c:1604
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in IF-clause at %C"
msgstr ""
-#: fortran/match.c:1647
+#: fortran/match.c:1648
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after ELSE statement at %C"
msgstr ""
-#: fortran/match.c:1653 fortran/match.c:1688
+#: fortran/match.c:1654 fortran/match.c:1689
#, gcc-internal-format, gfc-internal-format
msgid "Label '%s' at %C doesn't match IF label '%s'"
msgstr ""
-#: fortran/match.c:1682
+#: fortran/match.c:1683
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after ELSE IF statement at %C"
msgstr ""
-#: fortran/match.c:1746
+#: fortran/match.c:1747
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement CRITICAL at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:1752
+#: fortran/match.c:1753
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement CRITICAL at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:1760
+#: fortran/match.c:1761
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: CRITICAL statement at %C"
+msgid "CRITICAL statement at %C"
msgstr ""
-#: fortran/match.c:1772
+#: fortran/match.c:1773
#, gcc-internal-format, gfc-internal-format
msgid "Nested CRITICAL block at %C"
msgstr ""
-#: fortran/match.c:1824
+#: fortran/match.c:1825
#, gcc-internal-format, gfc-internal-format
msgid "Expected association list at %C"
msgstr ""
-#: fortran/match.c:1837
+#: fortran/match.c:1838
#, gcc-internal-format, gfc-internal-format
msgid "Expected association at %C"
msgstr ""
-#: fortran/match.c:1846
+#: fortran/match.c:1847
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate name '%s' in association at %C"
msgstr ""
-#: fortran/match.c:1854
+#: fortran/match.c:1855
#, gcc-internal-format, gfc-internal-format
msgid "Association target at %C must not be coindexed"
msgstr ""
-#: fortran/match.c:1872
+#: fortran/match.c:1873
#, gcc-internal-format, gfc-internal-format
msgid "Expected ')' or ',' at %C"
msgstr ""
-#: fortran/match.c:1890
+#: fortran/match.c:1891
#, gcc-internal-format, gfc-internal-format
msgid "Junk after ASSOCIATE statement at %C"
msgstr ""
-#: fortran/match.c:1959
+#: fortran/match.c:1960
#, gcc-internal-format, gfc-internal-format
msgid "Derived type '%s' at %L may not be ABSTRACT"
msgstr ""
-#: fortran/match.c:2022
+#: fortran/match.c:2023
#, gcc-internal-format, gfc-internal-format
msgid "Invalid type-spec at %C"
msgstr ""
-#: fortran/match.c:2116
+#: fortran/match.c:2117
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in FORALL iterator at %C"
msgstr ""
-#: fortran/match.c:2384
+#: fortran/match.c:2385
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: DO CONCURRENT construct at %C"
+msgid "DO CONCURRENT construct at %C"
msgstr ""
-#: fortran/match.c:2510
+#: fortran/match.c:2511
#, gcc-internal-format, gfc-internal-format
msgid "Name '%s' in %s statement at %C is unknown"
msgstr ""
-#: fortran/match.c:2518
+#: fortran/match.c:2519
#, gcc-internal-format, gfc-internal-format
msgid "Name '%s' in %s statement at %C is not a construct name"
msgstr ""
-#: fortran/match.c:2530
+#: fortran/match.c:2531
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C leaves CRITICAL construct"
msgstr ""
#. F2008, C821 & C845.
-#: fortran/match.c:2538
+#: fortran/match.c:2539
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C leaves DO CONCURRENT construct"
msgstr ""
-#: fortran/match.c:2550
+#: fortran/match.c:2551
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C is not within a construct"
msgstr ""
-#: fortran/match.c:2553
+#: fortran/match.c:2554
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C is not within construct '%s'"
msgstr ""
-#: fortran/match.c:2578
+#: fortran/match.c:2579
#, gcc-internal-format, gfc-internal-format
msgid "CYCLE statement at %C is not applicable to non-loop construct '%s'"
msgstr ""
-#: fortran/match.c:2583
+#: fortran/match.c:2584
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: EXIT statement with no do-construct-name at %C"
+msgid "EXIT statement with no do-construct-name at %C"
msgstr ""
-#: fortran/match.c:2589
+#: fortran/match.c:2590
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C is not applicable to construct '%s'"
msgstr ""
-#: fortran/match.c:2596
+#: fortran/match.c:2597
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C leaving OpenMP structured block"
msgstr ""
-#: fortran/match.c:2620
+#: fortran/match.c:2621
#, gcc-internal-format, gfc-internal-format
msgid "EXIT statement at %C terminating !$OMP DO loop"
msgstr ""
-#: fortran/match.c:2625
+#: fortran/match.c:2626
#, gcc-internal-format, gfc-internal-format
msgid "CYCLE statement at %C to non-innermost collapsed !$OMP DO loop"
msgstr ""
-#: fortran/match.c:2692
+#: fortran/match.c:2693
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement STOP at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:2697
+#: fortran/match.c:2698
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement STOP at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:2705
+#: fortran/match.c:2706
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be either INTEGER or CHARACTER type"
msgstr ""
-#: fortran/match.c:2712
+#: fortran/match.c:2713
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be scalar"
msgstr ""
-#: fortran/match.c:2720
+#: fortran/match.c:2721
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be default character KIND=%d"
msgstr ""
-#: fortran/match.c:2728
+#: fortran/match.c:2729
#, gcc-internal-format, gfc-internal-format
msgid "STOP code at %L must be default integer KIND=%d"
msgstr ""
-#: fortran/match.c:2774
+#: fortran/match.c:2775
#, gcc-internal-format, gfc-internal-format
-msgid "Deleted feature: PAUSE statement at %C"
+msgid "PAUSE statement at %C"
msgstr ""
-#: fortran/match.c:2797
+#: fortran/match.c:2798
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: ERROR STOP statement at %C"
+msgid "ERROR STOP statement at %C"
msgstr ""
-#: fortran/match.c:2823
+#: fortran/match.c:2824
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:2839
+#: fortran/match.c:2840
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:2846
+#: fortran/match.c:2847
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement %s at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:2876 fortran/match.c:3087 fortran/match.c:3602
-#: fortran/match.c:3926
+#: fortran/match.c:2877 fortran/match.c:3092 fortran/match.c:3607
+#: fortran/match.c:3931
#, gcc-internal-format, gfc-internal-format
msgid "Redundant STAT tag found at %L "
msgstr ""
-#: fortran/match.c:2897 fortran/match.c:3107 fortran/match.c:3629
-#: fortran/match.c:3952
+#: fortran/match.c:2898 fortran/match.c:3112 fortran/match.c:3634
+#: fortran/match.c:3957
#, gcc-internal-format, gfc-internal-format
msgid "Redundant ERRMSG tag found at %L "
msgstr ""
-#: fortran/match.c:2918
+#: fortran/match.c:2919
#, gcc-internal-format, gfc-internal-format
msgid "Redundant ACQUIRED_LOCK tag found at %L "
msgstr ""
-#: fortran/match.c:2979
+#: fortran/match.c:2984
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: LOCK statement at %C"
+msgid "LOCK statement at %C"
msgstr ""
-#: fortran/match.c:2990
+#: fortran/match.c:2995
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: UNLOCK statement at %C"
+msgid "UNLOCK statement at %C"
msgstr ""
-#: fortran/match.c:3016
+#: fortran/match.c:3021
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in PURE procedure"
msgstr ""
-#: fortran/match.c:3023
+#: fortran/match.c:3028
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: SYNC statement at %C"
+msgid "SYNC statement at %C"
msgstr ""
-#: fortran/match.c:3035
+#: fortran/match.c:3040
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:3041
+#: fortran/match.c:3046
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement SYNC at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:3221
+#: fortran/match.c:3226
#, gcc-internal-format, gfc-internal-format
-msgid "Deleted feature: ASSIGN statement at %C"
+msgid "ASSIGN statement at %C"
msgstr ""
-#: fortran/match.c:3267
+#: fortran/match.c:3272
#, gcc-internal-format, gfc-internal-format
-msgid "Deleted feature: Assigned GOTO statement at %C"
+msgid "Assigned GOTO statement at %C"
msgstr ""
-#: fortran/match.c:3314 fortran/match.c:3367
+#: fortran/match.c:3319 fortran/match.c:3372
#, gcc-internal-format, gfc-internal-format
msgid "Statement label list in GOTO at %C cannot be empty"
msgstr ""
-#: fortran/match.c:3377
+#: fortran/match.c:3382
#, gcc-internal-format, gfc-internal-format
-msgid "Obsolescent feature: Computed GOTO at %C"
+msgid "Computed GOTO at %C"
msgstr ""
-#: fortran/match.c:3449
+#: fortran/match.c:3454
#, gcc-internal-format, gfc-internal-format
msgid "Error in type-spec at %L"
msgstr ""
-#: fortran/match.c:3459
+#: fortran/match.c:3464
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: typespec in ALLOCATE at %L"
+msgid "typespec in ALLOCATE at %L"
msgstr ""
-#: fortran/match.c:3501
+#: fortran/match.c:3506
#, gcc-internal-format, gfc-internal-format
msgid "Bad allocate-object at %C for a PURE procedure"
msgstr ""
-#: fortran/match.c:3526
+#: fortran/match.c:3531
#, gcc-internal-format, gfc-internal-format
msgid "ALLOCATE of coarray at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:3531
+#: fortran/match.c:3536
#, gcc-internal-format, gfc-internal-format
msgid "ALLOCATE of coarray at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:3553
+#: fortran/match.c:3558
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocate-object at %L is neither a data pointer nor an allocatable variable"
msgstr ""
-#: fortran/match.c:3565
+#: fortran/match.c:3570
#, gcc-internal-format, gfc-internal-format
msgid "Type of entity at %L is type incompatible with typespec"
msgstr ""
-#: fortran/match.c:3573
+#: fortran/match.c:3578
#, gcc-internal-format, gfc-internal-format
msgid ""
"Kind type parameter for entity at %L differs from the kind type parameter of "
"the typespec"
msgstr ""
-#: fortran/match.c:3585
+#: fortran/match.c:3590
#, gcc-internal-format, gfc-internal-format
msgid "Shape specification for allocatable scalar at %C"
msgstr ""
-#: fortran/match.c:3622
+#: fortran/match.c:3627
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ERRMSG tag at %L"
+msgid "ERRMSG tag at %L"
msgstr ""
-#: fortran/match.c:3646
+#: fortran/match.c:3651
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: SOURCE tag at %L"
+msgid "SOURCE tag at %L"
msgstr ""
-#: fortran/match.c:3653
+#: fortran/match.c:3658
#, gcc-internal-format, gfc-internal-format
msgid "Redundant SOURCE tag found at %L "
msgstr ""
-#: fortran/match.c:3660
+#: fortran/match.c:3665
#, gcc-internal-format, gfc-internal-format
msgid "SOURCE tag at %L conflicts with the typespec at %L"
msgstr ""
-#: fortran/match.c:3666
+#: fortran/match.c:3671
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: SOURCE tag at %L with more than a single allocate object"
+msgid "SOURCE tag at %L with more than a single allocate object"
msgstr ""
-#: fortran/match.c:3684
+#: fortran/match.c:3689
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: MOLD tag at %L"
+msgid "MOLD tag at %L"
msgstr ""
-#: fortran/match.c:3691
+#: fortran/match.c:3696
#, gcc-internal-format, gfc-internal-format
msgid "Redundant MOLD tag found at %L "
msgstr ""
-#: fortran/match.c:3698
+#: fortran/match.c:3703
#, gcc-internal-format, gfc-internal-format
msgid "MOLD tag at %L conflicts with the typespec at %L"
msgstr ""
-#: fortran/match.c:3724
+#: fortran/match.c:3729
#, gcc-internal-format, gfc-internal-format
msgid "MOLD tag at %L conflicts with SOURCE tag at %L"
msgstr ""
-#: fortran/match.c:3732
+#: fortran/match.c:3737
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocate-object at %L with a deferred type parameter requires either a type-"
"spec or SOURCE tag or a MOLD tag"
msgstr ""
-#: fortran/match.c:3793
+#: fortran/match.c:3798
#, gcc-internal-format, gfc-internal-format
msgid "Pointer object at %C shall not be coindexed"
msgstr ""
-#: fortran/match.c:3876
+#: fortran/match.c:3881
#, gcc-internal-format, gfc-internal-format
msgid "Illegal allocate-object at %C for a PURE procedure"
msgstr ""
-#: fortran/match.c:3886
+#: fortran/match.c:3891
#, gcc-internal-format, gfc-internal-format
msgid "DEALLOCATE of coarray at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:3893
+#: fortran/match.c:3898
#, gcc-internal-format, gfc-internal-format
msgid "DEALLOCATE of coarray at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:3909
+#: fortran/match.c:3914
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocate-object at %C is not a nonprocedure pointer nor an allocatable "
"variable"
msgstr ""
-#: fortran/match.c:3946
+#: fortran/match.c:3951
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ERRMSG at %L"
+msgid "ERRMSG at %L"
msgstr ""
-#: fortran/match.c:4004
+#: fortran/match.c:4009
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement RETURN at %C in CRITICAL block"
msgstr ""
-#: fortran/match.c:4010
+#: fortran/match.c:4015
#, gcc-internal-format, gfc-internal-format
msgid "Image control statement RETURN at %C in DO CONCURRENT block"
msgstr ""
-#: fortran/match.c:4019
+#: fortran/match.c:4024
#, gcc-internal-format, gfc-internal-format
msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
msgstr ""
-#: fortran/match.c:4024
+#: fortran/match.c:4029
#, gcc-internal-format, gfc-internal-format
-msgid "Obsolescent feature: Alternate RETURN at %C"
+msgid "Alternate RETURN at %C"
msgstr ""
-#: fortran/match.c:4054
+#: fortran/match.c:4059
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: RETURN statement in main program at %C"
+msgid "RETURN statement in main program at %C"
msgstr ""
-#: fortran/match.c:4082
+#: fortran/match.c:4087
#, gcc-internal-format, gfc-internal-format
msgid "Expected component reference at %C"
msgstr ""
-#: fortran/match.c:4088
+#: fortran/match.c:4093
#, gcc-internal-format, gfc-internal-format
msgid "Junk after CALL at %C"
msgstr ""
-#: fortran/match.c:4098
+#: fortran/match.c:4103
#, gcc-internal-format, gfc-internal-format
msgid "Expected type-bound procedure or procedure pointer component at %C"
msgstr ""
-#: fortran/match.c:4318
+#: fortran/match.c:4323
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in common block name at %C"
msgstr ""
-#: fortran/match.c:4354
+#: fortran/match.c:4359
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %C is already an external symbol that is not COMMON"
msgstr ""
@@ -41140,991 +41426,991 @@ msgstr ""
#. If we find an error, just print it and continue,
#. cause it's just semantic, and we can see if there
#. are more errors.
-#: fortran/match.c:4413
+#: fortran/match.c:4419
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L in common block '%s' at %C must be declared with a C "
"interoperable kind since common block '%s' is bind(c)"
msgstr ""
-#: fortran/match.c:4422
+#: fortran/match.c:4428
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' in common block '%s' at %C can not be bind(c) since it is not "
"global"
msgstr ""
-#: fortran/match.c:4429
+#: fortran/match.c:4435
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %C is already in a COMMON block"
msgstr ""
-#: fortran/match.c:4437
+#: fortran/match.c:4443
#, gcc-internal-format, gfc-internal-format
msgid "Initialized symbol '%s' at %C can only be COMMON in BLOCK DATA"
msgstr ""
-#: fortran/match.c:4464
+#: fortran/match.c:4470
#, gcc-internal-format, gfc-internal-format
msgid "Array specification for symbol '%s' in COMMON at %C must be explicit"
msgstr ""
-#: fortran/match.c:4474
+#: fortran/match.c:4480
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array"
msgstr ""
-#: fortran/match.c:4506
+#: fortran/match.c:4512
#, gcc-internal-format, gfc-internal-format
msgid ""
"Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to "
"another COMMON block '%s'"
msgstr ""
-#: fortran/match.c:4614
+#: fortran/match.c:4620
#, gcc-internal-format, gfc-internal-format
msgid "Namelist group name '%s' at %C already has a basic type of %s"
msgstr ""
-#: fortran/match.c:4622
+#: fortran/match.c:4628
#, gcc-internal-format, gfc-internal-format
msgid ""
"Namelist group name '%s' at %C already is USE associated and cannot be "
"respecified."
msgstr ""
-#: fortran/match.c:4649
+#: fortran/match.c:4655
#, gcc-internal-format, gfc-internal-format
msgid "Assumed size array '%s' in namelist '%s' at %C is not allowed"
msgstr ""
-#: fortran/match.c:4783
+#: fortran/match.c:4789
#, gcc-internal-format, gfc-internal-format
msgid "Derived type component %C is not a permitted EQUIVALENCE member"
msgstr ""
-#: fortran/match.c:4791
+#: fortran/match.c:4797
#, gcc-internal-format, gfc-internal-format
msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
msgstr ""
-#: fortran/match.c:4819
+#: fortran/match.c:4825
#, gcc-internal-format, gfc-internal-format
msgid "EQUIVALENCE at %C requires two or more objects"
msgstr ""
-#: fortran/match.c:4833
+#: fortran/match.c:4839
#, gcc-internal-format, gfc-internal-format
msgid ""
"Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
msgstr ""
-#: fortran/match.c:4846
+#: fortran/match.c:4852
#, gcc-internal-format, gfc-internal-format
msgid "Expecting a comma in EQUIVALENCE at %C"
msgstr ""
-#: fortran/match.c:4962
+#: fortran/match.c:4968
#, gcc-internal-format, gfc-internal-format
msgid "Statement function at %L is recursive"
msgstr ""
-#: fortran/match.c:4968
+#: fortran/match.c:4975
#, gcc-internal-format, gfc-internal-format
-msgid "Obsolescent feature: Statement function at %C"
+msgid "Statement function at %C"
msgstr ""
-#: fortran/match.c:5054
+#: fortran/match.c:5060
#, gcc-internal-format, gfc-internal-format
msgid "Expected initialization expression in CASE at %C"
msgstr ""
-#: fortran/match.c:5086
+#: fortran/match.c:5092
#, gcc-internal-format, gfc-internal-format
msgid "Expected block name '%s' of SELECT construct at %C"
msgstr ""
-#: fortran/match.c:5385
+#: fortran/match.c:5391
#, gcc-internal-format, gfc-internal-format
msgid ""
"Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
msgstr ""
-#: fortran/match.c:5418
+#: fortran/match.c:5424
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected CASE statement at %C"
msgstr ""
-#: fortran/match.c:5470
+#: fortran/match.c:5476
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in CASE specification at %C"
msgstr ""
-#: fortran/match.c:5488
+#: fortran/match.c:5494
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected TYPE IS statement at %C"
msgstr ""
-#: fortran/match.c:5521
+#: fortran/match.c:5527
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in TYPE IS specification at %C"
msgstr ""
-#: fortran/match.c:5594
+#: fortran/match.c:5600
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in CLASS IS specification at %C"
msgstr ""
-#: fortran/match.c:5716
+#: fortran/match.c:5722
#, gcc-internal-format, gfc-internal-format
msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
msgstr ""
-#: fortran/match.c:5754
+#: fortran/match.c:5760
#, gcc-internal-format, gfc-internal-format
msgid "Label '%s' at %C doesn't match WHERE label '%s'"
msgstr ""
-#: fortran/matchexp.c:72
+#: fortran/matchexp.c:73
#, gcc-internal-format, gfc-internal-format
msgid "Bad character '%c' in OPERATOR name at %C"
msgstr ""
-#: fortran/matchexp.c:80
+#: fortran/matchexp.c:81
#, gcc-internal-format, gfc-internal-format
msgid "The name '%s' cannot be used as a defined operator at %C"
msgstr ""
-#: fortran/matchexp.c:173
+#: fortran/matchexp.c:174
#, gcc-internal-format, gfc-internal-format
msgid "Expected a right parenthesis in expression at %C"
msgstr ""
-#: fortran/matchexp.c:279
+#: fortran/matchexp.c:280
#, gcc-internal-format, gfc-internal-format
msgid "Expected exponent in expression at %C"
msgstr ""
-#: fortran/matchexp.c:317 fortran/matchexp.c:322 fortran/matchexp.c:426
-#: fortran/matchexp.c:431
+#: fortran/matchexp.c:318 fortran/matchexp.c:323 fortran/matchexp.c:427
+#: fortran/matchexp.c:432
#, gcc-internal-format, gfc-internal-format
msgid ""
"Extension: Unary operator following arithmetic operator (use parentheses) at "
"%C"
msgstr ""
-#: fortran/module.c:555
+#: fortran/module.c:556
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: module nature in USE statement at %C"
+msgid "module nature in USE statement at %C"
msgstr ""
-#: fortran/module.c:567
+#: fortran/module.c:568
#, gcc-internal-format, gfc-internal-format
msgid ""
"Module nature in USE statement at %C shall be either INTRINSIC or "
"NON_INTRINSIC"
msgstr ""
-#: fortran/module.c:580
+#: fortran/module.c:581
#, gcc-internal-format, gfc-internal-format
msgid "\"::\" was expected after module nature at %C but was not found"
msgstr ""
-#: fortran/module.c:590
+#: fortran/module.c:592
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: \"USE :: module\" at %C"
+msgid "\"USE :: module\" at %C"
msgstr ""
-#: fortran/module.c:650
+#: fortran/module.c:651
#, gcc-internal-format, gfc-internal-format
msgid "Missing generic specification in USE statement at %C"
msgstr ""
-#: fortran/module.c:658
+#: fortran/module.c:659
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Renaming operators in USE statements at %C"
+msgid "Renaming operators in USE statements at %C"
msgstr ""
-#: fortran/module.c:700
+#: fortran/module.c:701
#, gcc-internal-format, gfc-internal-format
msgid "The name '%s' at %C has already been used as an external module name."
msgstr ""
-#: fortran/module.c:1013
+#: fortran/module.c:1014
#, gcc-internal-format, gfc-internal-format
msgid "Reading module %s at line %d column %d: %s"
msgstr ""
-#: fortran/module.c:1017
+#: fortran/module.c:1018
#, gcc-internal-format, gfc-internal-format
msgid "Writing module %s at line %d column %d: %s"
msgstr ""
-#: fortran/module.c:1021
+#: fortran/module.c:1022
#, gcc-internal-format, gfc-internal-format
msgid "Module %s at line %d column %d: %s"
msgstr ""
-#: fortran/module.c:1469
+#: fortran/module.c:1470
#, gcc-internal-format, gfc-internal-format
msgid "Error writing modules file: %s"
msgstr ""
-#: fortran/module.c:3417
+#: fortran/module.c:3434
#, gcc-internal-format, gfc-internal-format
msgid "Namelist %s cannot be renamed by USE association to %s"
msgstr ""
-#: fortran/module.c:4477
+#: fortran/module.c:4491
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' of module '%s', imported at %C, is also the name of the current program "
"unit"
msgstr ""
-#: fortran/module.c:4776
+#: fortran/module.c:4790
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' referenced at %L not found in module '%s'"
msgstr ""
-#: fortran/module.c:4783
+#: fortran/module.c:4797
#, gcc-internal-format, gfc-internal-format
msgid "User operator '%s' referenced at %L not found in module '%s'"
msgstr ""
-#: fortran/module.c:4788
+#: fortran/module.c:4802
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'"
msgstr ""
-#: fortran/module.c:5425
+#: fortran/module.c:5439
#, gcc-internal-format, gfc-internal-format
msgid "Can't open module file '%s' for writing at %C: %s"
msgstr ""
-#: fortran/module.c:5458
+#: fortran/module.c:5472
#, gcc-internal-format, gfc-internal-format
msgid "Error writing module file '%s' for writing: %s"
msgstr ""
-#: fortran/module.c:5467
+#: fortran/module.c:5481
#, gcc-internal-format, gfc-internal-format
msgid "Can't delete module file '%s': %s"
msgstr ""
-#: fortran/module.c:5470
+#: fortran/module.c:5484
#, gcc-internal-format, gfc-internal-format
msgid "Can't rename module file '%s' to '%s': %s"
msgstr ""
-#: fortran/module.c:5476
+#: fortran/module.c:5490
#, gcc-internal-format, gfc-internal-format
msgid "Can't delete temporary module file '%s': %s"
msgstr ""
-#: fortran/module.c:5495 fortran/module.c:5707 fortran/module.c:5740
-#: fortran/module.c:5782
+#: fortran/module.c:5509 fortran/module.c:5721 fortran/module.c:5754
+#: fortran/module.c:5796
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' already declared"
msgstr ""
-#: fortran/module.c:5599 fortran/module.c:5878
+#: fortran/module.c:5613 fortran/module.c:5892
#, gcc-internal-format, gfc-internal-format
msgid "The symbol '%s', referenced at %L, is not in the selected standard"
msgstr ""
-#: fortran/module.c:5686
+#: fortran/module.c:5700
#, gcc-internal-format, gfc-internal-format
msgid ""
"Symbol '%s' referenced at %L not found in intrinsic module ISO_C_BINDING"
msgstr ""
-#: fortran/module.c:5863
+#: fortran/module.c:5877
#, gcc-internal-format, gfc-internal-format
msgid ""
"Use of intrinsic module '%s' at %C conflicts with non-intrinsic module name "
"used previously"
msgstr ""
-#: fortran/module.c:5886
+#: fortran/module.c:5900
#, gcc-internal-format, gfc-internal-format
msgid ""
"Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module "
"ISO_FORTRAN_ENV at %L is incompatible with option %s"
msgstr ""
-#: fortran/module.c:5956
+#: fortran/module.c:5970
#, gcc-internal-format, gfc-internal-format
msgid ""
"Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module "
"ISO_FORTRAN_ENV at %C is incompatible with option %s"
msgstr ""
-#: fortran/module.c:6014
+#: fortran/module.c:6028
#, gcc-internal-format, gfc-internal-format
msgid ""
"Symbol '%s' referenced at %L not found in intrinsic module ISO_FORTRAN_ENV"
msgstr ""
-#: fortran/module.c:6053
+#: fortran/module.c:6067
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ISO_FORTRAN_ENV intrinsic module at %C"
+msgid "ISO_FORTRAN_ENV intrinsic module at %C"
msgstr ""
-#: fortran/module.c:6063
+#: fortran/module.c:6078
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ISO_C_BINDING module at %C"
+msgid "ISO_C_BINDING module at %C"
msgstr ""
-#: fortran/module.c:6075
+#: fortran/module.c:6089
#, gcc-internal-format, gfc-internal-format
msgid "Can't find an intrinsic module named '%s' at %C"
msgstr ""
-#: fortran/module.c:6080
+#: fortran/module.c:6094
#, gcc-internal-format, gfc-internal-format
msgid "Can't open module file '%s' for reading at %C: %s"
msgstr ""
-#: fortran/module.c:6088
+#: fortran/module.c:6102
#, gcc-internal-format, gfc-internal-format
msgid ""
"Use of non-intrinsic module '%s' at %C conflicts with intrinsic module name "
"used previously"
msgstr ""
-#: fortran/module.c:6108
+#: fortran/module.c:6122
#, gcc-internal-format, gfc-internal-format
msgid "File '%s' opened at %C is not a GNU Fortran module file"
msgstr ""
-#: fortran/module.c:6116
+#: fortran/module.c:6130
#, gcc-internal-format, gfc-internal-format
msgid ""
"Cannot read module file '%s' opened at %C, because it was created by a "
"different version of GNU Fortran"
msgstr ""
-#: fortran/module.c:6130
+#: fortran/module.c:6144
#, gcc-internal-format
msgid "Can't USE the same module we're building!"
msgstr ""
-#: fortran/openmp.c:133 fortran/openmp.c:595
+#: fortran/openmp.c:134 fortran/openmp.c:596
#, gcc-internal-format, gfc-internal-format
msgid "COMMON block /%s/ not found at %C"
msgstr ""
-#: fortran/openmp.c:164
+#: fortran/openmp.c:165
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in OpenMP variable list at %C"
msgstr ""
-#: fortran/openmp.c:297
+#: fortran/openmp.c:298
#, gcc-internal-format, gfc-internal-format
msgid "%s is not INTRINSIC procedure name at %C"
msgstr ""
-#: fortran/openmp.c:414
+#: fortran/openmp.c:415
#, gcc-internal-format, gfc-internal-format
msgid "COLLAPSE clause argument not constant positive integer at %C"
msgstr ""
-#: fortran/openmp.c:482
+#: fortran/openmp.c:483
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after TASKWAIT clause at %C"
msgstr ""
-#: fortran/openmp.c:496
+#: fortran/openmp.c:497
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after TASKYIELD clause at %C"
msgstr ""
-#: fortran/openmp.c:514
+#: fortran/openmp.c:515
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP CRITICAL statement at %C"
msgstr ""
-#: fortran/openmp.c:542
+#: fortran/openmp.c:543
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP FLUSH statement at %C"
msgstr ""
-#: fortran/openmp.c:574
+#: fortran/openmp.c:575
#, gcc-internal-format, gfc-internal-format
msgid "Threadprivate variable at %C is an element of a COMMON block"
msgstr ""
-#: fortran/openmp.c:614
+#: fortran/openmp.c:615
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in !$OMP THREADPRIVATE list at %C"
msgstr ""
-#: fortran/openmp.c:690
+#: fortran/openmp.c:691
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP WORKSHARE statement at %C"
msgstr ""
-#: fortran/openmp.c:704
+#: fortran/openmp.c:705
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP MASTER statement at %C"
msgstr ""
-#: fortran/openmp.c:718
+#: fortran/openmp.c:719
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP ORDERED statement at %C"
msgstr ""
-#: fortran/openmp.c:741
+#: fortran/openmp.c:742
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP ATOMIC statement at %C"
msgstr ""
-#: fortran/openmp.c:755
+#: fortran/openmp.c:756
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after $OMP BARRIER statement at %C"
msgstr ""
-#: fortran/openmp.c:772
+#: fortran/openmp.c:773
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected junk after NOWAIT clause at %C"
msgstr ""
-#: fortran/openmp.c:819 fortran/resolve.c:9049 fortran/resolve.c:9527
+#: fortran/openmp.c:820 fortran/resolve.c:9262 fortran/resolve.c:9740
#, gcc-internal-format, gfc-internal-format
msgid "IF clause at %L requires a scalar LOGICAL expression"
msgstr ""
-#: fortran/openmp.c:827
+#: fortran/openmp.c:828
#, gcc-internal-format, gfc-internal-format
msgid "FINAL clause at %L requires a scalar LOGICAL expression"
msgstr ""
-#: fortran/openmp.c:835
+#: fortran/openmp.c:836
#, gcc-internal-format, gfc-internal-format
msgid "NUM_THREADS clause at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:843
+#: fortran/openmp.c:844
#, gcc-internal-format, gfc-internal-format
msgid "SCHEDULE clause's chunk_size at %L requires a scalar INTEGER expression"
msgstr ""
-#: fortran/openmp.c:885
+#: fortran/openmp.c:886
#, gcc-internal-format, gfc-internal-format
msgid "Object '%s' is not a variable at %L"
msgstr ""
-#: fortran/openmp.c:894 fortran/openmp.c:905 fortran/openmp.c:913
-#: fortran/openmp.c:924
+#: fortran/openmp.c:895 fortran/openmp.c:906 fortran/openmp.c:914
+#: fortran/openmp.c:925
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' present on multiple clauses at %L"
msgstr ""
-#: fortran/openmp.c:947
+#: fortran/openmp.c:948
#, gcc-internal-format, gfc-internal-format
msgid "Non-THREADPRIVATE object '%s' in COPYIN clause at %L"
msgstr ""
-#: fortran/openmp.c:950
+#: fortran/openmp.c:951
#, gcc-internal-format, gfc-internal-format
msgid "COPYIN clause object '%s' at %L has ALLOCATABLE components"
msgstr ""
-#: fortran/openmp.c:958
+#: fortran/openmp.c:959
#, gcc-internal-format, gfc-internal-format
msgid "Assumed size array '%s' in COPYPRIVATE clause at %L"
msgstr ""
-#: fortran/openmp.c:961
+#: fortran/openmp.c:962
#, gcc-internal-format, gfc-internal-format
msgid "COPYPRIVATE clause object '%s' at %L has ALLOCATABLE components"
msgstr ""
-#: fortran/openmp.c:969
+#: fortran/openmp.c:970
#, gcc-internal-format, gfc-internal-format
msgid "THREADPRIVATE object '%s' in SHARED clause at %L"
msgstr ""
-#: fortran/openmp.c:972
+#: fortran/openmp.c:973
#, gcc-internal-format, gfc-internal-format
msgid "Cray pointee '%s' in SHARED clause at %L"
msgstr ""
-#: fortran/openmp.c:980
+#: fortran/openmp.c:981
#, gcc-internal-format, gfc-internal-format
msgid "THREADPRIVATE object '%s' in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:983
+#: fortran/openmp.c:984
#, gcc-internal-format, gfc-internal-format
msgid "Cray pointee '%s' in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:990
+#: fortran/openmp.c:991
#, gcc-internal-format, gfc-internal-format
msgid "POINTER object '%s' in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:996
+#: fortran/openmp.c:997
#, gcc-internal-format, gfc-internal-format
msgid "%s clause object '%s' has ALLOCATABLE components at %L"
msgstr ""
-#: fortran/openmp.c:1001
+#: fortran/openmp.c:1002
#, gcc-internal-format, gfc-internal-format
msgid "Cray pointer '%s' in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:1005
+#: fortran/openmp.c:1006
#, gcc-internal-format, gfc-internal-format
msgid "Assumed size array '%s' in %s clause at %L"
msgstr ""
-#: fortran/openmp.c:1010
+#: fortran/openmp.c:1011
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' in %s clause is used in NAMELIST statement at %L"
msgstr ""
-#: fortran/openmp.c:1019
+#: fortran/openmp.c:1020
#, gcc-internal-format, gfc-internal-format
msgid "%c REDUCTION variable '%s' at %L must be of numeric type, got %s"
msgstr ""
-#: fortran/openmp.c:1030
+#: fortran/openmp.c:1031
#, gcc-internal-format, gfc-internal-format
msgid "%s REDUCTION variable '%s' must be LOGICAL at %L"
msgstr ""
-#: fortran/openmp.c:1041
+#: fortran/openmp.c:1042
#, gcc-internal-format, gfc-internal-format
msgid "%s REDUCTION variable '%s' must be INTEGER or REAL at %L"
msgstr ""
-#: fortran/openmp.c:1050
+#: fortran/openmp.c:1051
#, gcc-internal-format, gfc-internal-format
msgid "%s REDUCTION variable '%s' must be INTEGER at %L"
msgstr ""
-#: fortran/openmp.c:1168
+#: fortran/openmp.c:1169
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC statement must set a scalar variable of intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:1194
+#: fortran/openmp.c:1195
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC READ statement must read from a scalar variable of intrinsic "
"type at %L"
msgstr ""
-#: fortran/openmp.c:1199
+#: fortran/openmp.c:1200
#, gcc-internal-format, gfc-internal-format
msgid ""
"expr in !$OMP ATOMIC WRITE assignment var = expr must be scalar and cannot "
"reference var at %L"
msgstr ""
-#: fortran/openmp.c:1221 fortran/openmp.c:1491
+#: fortran/openmp.c:1222 fortran/openmp.c:1492
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE capture statement must read from a scalar variable of "
"intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:1236
+#: fortran/openmp.c:1237
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE update statement must set a scalar variable of "
"intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:1243 fortran/openmp.c:1498
+#: fortran/openmp.c:1244 fortran/openmp.c:1499
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE capture statement reads from different variable than "
"update statement writes into at %L"
msgstr ""
-#: fortran/openmp.c:1287
+#: fortran/openmp.c:1288
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment operator must be +, *, -, /, .AND., .OR., .EQV. or ."
"NEQV. at %L"
msgstr ""
-#: fortran/openmp.c:1335
+#: fortran/openmp.c:1336
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment must be var = var op expr or var = expr op var at %L"
msgstr ""
-#: fortran/openmp.c:1349
+#: fortran/openmp.c:1350
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC var = var op expr not mathematically equivalent to var = var op "
"(expr) at %L"
msgstr ""
-#: fortran/openmp.c:1381
+#: fortran/openmp.c:1382
#, gcc-internal-format, gfc-internal-format
msgid ""
"expr in !$OMP ATOMIC assignment var = var op expr must be scalar and cannot "
"reference var at %L"
msgstr ""
-#: fortran/openmp.c:1405
+#: fortran/openmp.c:1406
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment intrinsic IAND, IOR or IEOR must have two arguments "
"at %L"
msgstr ""
-#: fortran/openmp.c:1412
+#: fortran/openmp.c:1413
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment intrinsic must be MIN, MAX, IAND, IOR or IEOR at %L"
msgstr ""
-#: fortran/openmp.c:1428
+#: fortran/openmp.c:1429
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC intrinsic arguments except one must not reference '%s' at %L"
msgstr ""
-#: fortran/openmp.c:1431
+#: fortran/openmp.c:1432
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP ATOMIC intrinsic arguments must be scalar at %L"
msgstr ""
-#: fortran/openmp.c:1437
+#: fortran/openmp.c:1438
#, gcc-internal-format, gfc-internal-format
msgid "First or last !$OMP ATOMIC intrinsic argument must be '%s' at %L"
msgstr ""
-#: fortran/openmp.c:1455
+#: fortran/openmp.c:1456
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC assignment must have an operator or intrinsic on right hand "
"side at %L"
msgstr ""
-#: fortran/openmp.c:1469
+#: fortran/openmp.c:1470
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP ATOMIC CAPTURE capture statement must set a scalar variable of "
"intrinsic type at %L"
msgstr ""
-#: fortran/openmp.c:1661
+#: fortran/openmp.c:1662
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP DO cannot be a DO WHILE or DO without loop control at %L"
msgstr ""
-#: fortran/openmp.c:1667
+#: fortran/openmp.c:1668
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP DO iteration variable must be of type integer at %L"
msgstr ""
-#: fortran/openmp.c:1671
+#: fortran/openmp.c:1672
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP DO iteration variable must not be THREADPRIVATE at %L"
msgstr ""
-#: fortran/openmp.c:1679
+#: fortran/openmp.c:1680
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP DO iteration variable present on clause other than PRIVATE or "
"LASTPRIVATE at %L"
msgstr ""
-#: fortran/openmp.c:1697
+#: fortran/openmp.c:1698
#, gcc-internal-format, gfc-internal-format
msgid "!$OMP DO collapsed loops don't form rectangular iteration space at %L"
msgstr ""
-#: fortran/openmp.c:1711
+#: fortran/openmp.c:1712
#, gcc-internal-format, gfc-internal-format
msgid "collapsed !$OMP DO loops not perfectly nested at %L"
msgstr ""
-#: fortran/openmp.c:1720 fortran/openmp.c:1728
+#: fortran/openmp.c:1721 fortran/openmp.c:1729
#, gcc-internal-format, gfc-internal-format
msgid "not enough DO loops for collapsed !$OMP DO at %L"
msgstr ""
-#: fortran/options.c:264
+#: fortran/options.c:266
#, gcc-internal-format
msgid "-fexcess-precision=standard for Fortran"
msgstr ""
-#: fortran/options.c:359
+#: fortran/options.c:361
#, gcc-internal-format, gfc-internal-format
msgid "Reading file '%s' as free form"
msgstr ""
-#: fortran/options.c:369
+#: fortran/options.c:371
#, gcc-internal-format
msgid "'-fd-lines-as-comments' has no effect in free form"
msgstr ""
-#: fortran/options.c:372
+#: fortran/options.c:374
#, gcc-internal-format
msgid "'-fd-lines-as-code' has no effect in free form"
msgstr ""
-#: fortran/options.c:390
+#: fortran/options.c:392
#, gcc-internal-format, gfc-internal-format
msgid "Flag -fno-automatic overwrites -fmax-stack-var-size=%d"
msgstr ""
-#: fortran/options.c:393
+#: fortran/options.c:395
#, gcc-internal-format
msgid "Flag -fno-automatic overwrites -frecursive"
msgstr ""
-#: fortran/options.c:395
+#: fortran/options.c:397
#, gcc-internal-format
msgid "Flag -fno-automatic overwrites -frecursive implied by -fopenmp"
msgstr ""
-#: fortran/options.c:399
+#: fortran/options.c:401
#, gcc-internal-format, gfc-internal-format
msgid "Flag -frecursive overwrites -fmax-stack-var-size=%d"
msgstr ""
-#: fortran/options.c:403
+#: fortran/options.c:405
#, gcc-internal-format, gfc-internal-format
msgid "Flag -fmax-stack-var-size=%d overwrites -frecursive implied by -fopenmp"
msgstr ""
-#: fortran/options.c:489
+#: fortran/options.c:492
#, gcc-internal-format
msgid "gfortran: Only one -J option allowed"
msgstr ""
-#: fortran/options.c:535
+#: fortran/options.c:538
#, gcc-internal-format, gfc-internal-format
msgid "Argument to -ffpe-trap is not valid: %s"
msgstr ""
-#: fortran/options.c:550
+#: fortran/options.c:553
#, gcc-internal-format, gfc-internal-format
msgid "Argument to -fcoarray is not valid: %s"
msgstr ""
-#: fortran/options.c:588
+#: fortran/options.c:591
#, gcc-internal-format, gfc-internal-format
msgid "Argument to -fcheck is not valid: %s"
msgstr ""
-#: fortran/options.c:776
+#: fortran/options.c:787
#, gcc-internal-format
msgid "Fixed line length must be at least seven."
msgstr ""
-#: fortran/options.c:794
+#: fortran/options.c:805
#, gcc-internal-format
msgid "Free line length must be at least three."
msgstr ""
-#: fortran/options.c:812
+#: fortran/options.c:823
#, gcc-internal-format
msgid "-static-libgfortran is not supported in this configuration"
msgstr ""
-#: fortran/options.c:860
+#: fortran/options.c:870
#, gcc-internal-format, gfc-internal-format
msgid "Maximum supported identifier length is %d"
msgstr ""
-#: fortran/options.c:920
+#: fortran/options.c:930
#, gcc-internal-format, gfc-internal-format
msgid "Unrecognized option to -finit-logical: %s"
msgstr ""
-#: fortran/options.c:936
+#: fortran/options.c:946
#, gcc-internal-format, gfc-internal-format
msgid "Unrecognized option to -finit-real: %s"
msgstr ""
-#: fortran/options.c:952
+#: fortran/options.c:962
#, gcc-internal-format
msgid "The value of n in -finit-character=n must be between 0 and 127"
msgstr ""
-#: fortran/options.c:1054
+#: fortran/options.c:1064
#, gcc-internal-format, gfc-internal-format
msgid "Maximum subrecord length cannot exceed %d"
msgstr ""
-#: fortran/parse.c:520
+#: fortran/parse.c:521
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable statement at %C"
msgstr ""
-#: fortran/parse.c:542
+#: fortran/parse.c:543
#, gcc-internal-format, gfc-internal-format
msgid "OpenMP directives at %C may not appear in PURE or ELEMENTAL procedures"
msgstr ""
-#: fortran/parse.c:628
+#: fortran/parse.c:629
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable OpenMP directive at %C"
msgstr ""
-#: fortran/parse.c:654
+#: fortran/parse.c:655
#, gcc-internal-format, gfc-internal-format
msgid "Unclassifiable GCC directive at %C"
msgstr ""
-#: fortran/parse.c:696 fortran/parse.c:870
+#: fortran/parse.c:697 fortran/parse.c:871
#, gcc-internal-format, gfc-internal-format
msgid "Zero is not a valid statement label at %C"
msgstr ""
-#: fortran/parse.c:703 fortran/parse.c:862
+#: fortran/parse.c:704 fortran/parse.c:863
#, gcc-internal-format, gfc-internal-format
msgid "Non-numeric character in statement label at %C"
msgstr ""
-#: fortran/parse.c:715 fortran/parse.c:911
+#: fortran/parse.c:716 fortran/parse.c:912
#, gcc-internal-format, gfc-internal-format
msgid "Semicolon at %C needs to be preceded by statement"
msgstr ""
-#: fortran/parse.c:723 fortran/parse.c:926
+#: fortran/parse.c:724 fortran/parse.c:927
#, gcc-internal-format, gfc-internal-format
msgid "Ignoring statement label in empty statement at %L"
msgstr ""
-#: fortran/parse.c:772 fortran/parse.c:913
+#: fortran/parse.c:773 fortran/parse.c:914
#, gcc-internal-format, gfc-internal-format
msgid "Fortran 2008: Semicolon at %C without preceding statement"
msgstr ""
-#: fortran/parse.c:848 fortran/parse.c:889
+#: fortran/parse.c:849 fortran/parse.c:890
#, gcc-internal-format, gfc-internal-format
msgid "Bad continuation line at %C"
msgstr ""
-#: fortran/parse.c:1152
+#: fortran/parse.c:1153
#, gcc-internal-format, gfc-internal-format
msgid "FORMAT statement at %L does not have a statement label"
msgstr ""
-#: fortran/parse.c:1755
+#: fortran/parse.c:1759
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement at %C"
msgstr ""
-#: fortran/parse.c:1902
+#: fortran/parse.c:1906
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C cannot follow %s statement at %L"
msgstr ""
-#: fortran/parse.c:1919
+#: fortran/parse.c:1923
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected end of file in '%s'"
msgstr ""
-#: fortran/parse.c:1951
+#: fortran/parse.c:1955
#, gcc-internal-format, gfc-internal-format
msgid "Derived-type '%s' with SEQUENCE must not have a CONTAINS section at %C"
msgstr ""
-#: fortran/parse.c:1954
+#: fortran/parse.c:1958
#, gcc-internal-format, gfc-internal-format
msgid "Derived-type '%s' with BIND(C) must not have a CONTAINS section at %C"
msgstr ""
-#: fortran/parse.c:1974
+#: fortran/parse.c:1978
#, gcc-internal-format, gfc-internal-format
msgid "Components in TYPE at %C must precede CONTAINS"
msgstr ""
-#: fortran/parse.c:1978
+#: fortran/parse.c:1982
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Type-bound procedure at %C"
+msgid "Type-bound procedure at %C"
msgstr ""
-#: fortran/parse.c:1987
+#: fortran/parse.c:1991
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: GENERIC binding at %C"
+msgid "GENERIC binding at %C"
msgstr ""
-#: fortran/parse.c:1997
+#: fortran/parse.c:2001
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: FINAL procedure declaration at %C"
+msgid "FINAL procedure declaration at %C"
msgstr ""
-#: fortran/parse.c:2009
+#: fortran/parse.c:2013
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Derived type definition at %C with empty CONTAINS section"
+msgid "Derived type definition at %C with empty CONTAINS section"
msgstr ""
-#: fortran/parse.c:2020 fortran/parse.c:2123
+#: fortran/parse.c:2024 fortran/parse.c:2127
#, gcc-internal-format, gfc-internal-format
msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
msgstr ""
-#: fortran/parse.c:2027
+#: fortran/parse.c:2031
#, gcc-internal-format, gfc-internal-format
msgid "PRIVATE statement at %C must precede procedure bindings"
msgstr ""
-#: fortran/parse.c:2034 fortran/parse.c:2136
+#: fortran/parse.c:2038 fortran/parse.c:2140
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate PRIVATE statement at %C"
msgstr ""
-#: fortran/parse.c:2044
+#: fortran/parse.c:2048
#, gcc-internal-format, gfc-internal-format
msgid "SEQUENCE statement at %C must precede CONTAINS"
msgstr ""
-#: fortran/parse.c:2048
+#: fortran/parse.c:2052
#, gcc-internal-format, gfc-internal-format
msgid "Already inside a CONTAINS block at %C"
msgstr ""
-#: fortran/parse.c:2106
+#: fortran/parse.c:2110
#, gcc-internal-format, gfc-internal-format
msgid "FINAL declaration at %C must be inside CONTAINS"
msgstr ""
-#: fortran/parse.c:2114
+#: fortran/parse.c:2118
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Derived type definition at %C without components"
+msgid "Derived type definition at %C without components"
msgstr ""
-#: fortran/parse.c:2130
+#: fortran/parse.c:2134
#, gcc-internal-format, gfc-internal-format
msgid "PRIVATE statement at %C must precede structure components"
msgstr ""
-#: fortran/parse.c:2147
+#: fortran/parse.c:2151
#, gcc-internal-format, gfc-internal-format
msgid "SEQUENCE statement at %C must precede structure components"
msgstr ""
-#: fortran/parse.c:2153
+#: fortran/parse.c:2157
#, gcc-internal-format, gfc-internal-format
msgid "SEQUENCE attribute at %C already specified in TYPE statement"
msgstr ""
-#: fortran/parse.c:2158
+#: fortran/parse.c:2162
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate SEQUENCE statement at %C"
msgstr ""
-#: fortran/parse.c:2168
+#: fortran/parse.c:2172
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: CONTAINS block in derived type definition at %C"
+msgid "CONTAINS block in derived type definition at %C"
msgstr ""
-#: fortran/parse.c:2255
+#: fortran/parse.c:2259
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component %s at %L of type LOCK_TYPE must have a codimension or be a "
@@ -42132,27 +42418,27 @@ msgid ""
"pointer attribute"
msgstr ""
-#: fortran/parse.c:2261
+#: fortran/parse.c:2265
#, gcc-internal-format, gfc-internal-format
msgid ""
"Pointer component %s at %L has a noncoarray subcomponent of type LOCK_TYPE, "
"which must have a codimension or be a subcomponent of a coarray"
msgstr ""
-#: fortran/parse.c:2266
+#: fortran/parse.c:2270
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocatable component %s at %L of type LOCK_TYPE must have a codimension"
msgstr ""
-#: fortran/parse.c:2270
+#: fortran/parse.c:2274
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocatable component %s at %L must have a codimension as it has a "
"noncoarray subcomponent of type LOCK_TYPE"
msgstr ""
-#: fortran/parse.c:2275
+#: fortran/parse.c:2279
#, gcc-internal-format, gfc-internal-format
msgid ""
"Noncoarray component %s at %L of type LOCK_TYPE or with subcomponent of type "
@@ -42161,7 +42447,7 @@ msgid ""
"subcomponent exists)"
msgstr ""
-#: fortran/parse.c:2282
+#: fortran/parse.c:2286
#, gcc-internal-format, gfc-internal-format
msgid ""
"Noncoarray component %s at %L of type LOCK_TYPE or with subcomponent of type "
@@ -42170,188 +42456,191 @@ msgid ""
"codimension or a coarray subcomponent)"
msgstr ""
-#: fortran/parse.c:2334
+#: fortran/parse.c:2338
#, gcc-internal-format, gfc-internal-format
msgid "ENUM declaration at %C has no ENUMERATORS"
msgstr ""
-#: fortran/parse.c:2418
+#: fortran/parse.c:2421
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in INTERFACE block at %C"
msgstr ""
-#: fortran/parse.c:2442
+#: fortran/parse.c:2445
#, gcc-internal-format, gfc-internal-format
msgid ""
"Name '%s' of ABSTRACT INTERFACE at %C cannot be the same as an intrinsic type"
msgstr ""
-#: fortran/parse.c:2473
+#: fortran/parse.c:2478
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement at %C in INTERFACE body"
msgstr ""
-#: fortran/parse.c:2491
+#: fortran/parse.c:2496
#, gcc-internal-format, gfc-internal-format
msgid ""
"INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
msgstr ""
-#: fortran/parse.c:2615
+#: fortran/parse.c:2621
#, gcc-internal-format, gfc-internal-format
msgid "%s statement is not allowed inside of BLOCK at %C"
msgstr ""
-#: fortran/parse.c:2702
+#: fortran/parse.c:2708
#, gcc-internal-format, gfc-internal-format
msgid "%s statement must appear in a MODULE"
msgstr ""
-#: fortran/parse.c:2710
+#: fortran/parse.c:2716
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C follows another accessibility specification"
msgstr ""
-#: fortran/parse.c:2761
+#: fortran/parse.c:2767
#, gcc-internal-format, gfc-internal-format
msgid "Bad kind expression for function '%s' at %L"
msgstr ""
-#: fortran/parse.c:2765
+#: fortran/parse.c:2771
#, gcc-internal-format, gfc-internal-format
msgid "The type for function '%s' at %L is not accessible"
msgstr ""
-#: fortran/parse.c:2823
+#: fortran/parse.c:2829
#, gcc-internal-format, gfc-internal-format
msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
msgstr ""
-#: fortran/parse.c:2845
+#: fortran/parse.c:2851
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in WHERE block at %C"
msgstr ""
-#: fortran/parse.c:2904
+#: fortran/parse.c:2910
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in FORALL block at %C"
msgstr ""
-#: fortran/parse.c:2955
+#: fortran/parse.c:2961
#, gcc-internal-format, gfc-internal-format
msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
msgstr ""
-#: fortran/parse.c:2973
+#: fortran/parse.c:2979
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate ELSE statements at %L and %C"
msgstr ""
-#: fortran/parse.c:3034
+#: fortran/parse.c:3040
#, gcc-internal-format, gfc-internal-format
msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
msgstr ""
-#: fortran/parse.c:3117
+#: fortran/parse.c:3123
#, gcc-internal-format, gfc-internal-format
msgid ""
"Expected TYPE IS, CLASS IS or END SELECT statement following SELECT TYPE at "
"%C"
msgstr ""
-#: fortran/parse.c:3179
+#: fortran/parse.c:3185
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' at %C cannot be redefined inside loop beginning at %L"
msgstr ""
-#: fortran/parse.c:3212
+#: fortran/parse.c:3218
#, gcc-internal-format, gfc-internal-format
msgid "End of nonblock DO statement at %C is within another block"
msgstr ""
-#: fortran/parse.c:3222
+#: fortran/parse.c:3228
#, gcc-internal-format, gfc-internal-format
msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
msgstr ""
-#: fortran/parse.c:3269
+#: fortran/parse.c:3275
#, gcc-internal-format, gfc-internal-format
-msgid "Statement label in END CRITICAL at %C does not match CRITIAL label"
+msgid "Statement label in END CRITICAL at %C does not match CRITICAL label"
msgstr ""
-#: fortran/parse.c:3337
+#: fortran/parse.c:3343
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: BLOCK construct at %C"
+msgid "BLOCK construct at %C"
msgstr ""
-#: fortran/parse.c:3367
+#: fortran/parse.c:3373
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: ASSOCIATE construct at %C"
+msgid "ASSOCIATE construct at %C"
msgstr ""
-#: fortran/parse.c:3467
+#: fortran/parse.c:3473
#, gcc-internal-format, gfc-internal-format
msgid "Statement label in ENDDO at %C doesn't match DO label"
msgstr ""
-#: fortran/parse.c:3483
+#: fortran/parse.c:3489
#, gcc-internal-format, gfc-internal-format
msgid "Named block DO at %L requires matching ENDDO name"
msgstr ""
-#: fortran/parse.c:3606
+#: fortran/parse.c:3612
#, gcc-internal-format, gfc-internal-format
msgid "Missing !$OMP END ATOMIC after !$OMP ATOMIC CAPTURE at %C"
msgstr ""
-#: fortran/parse.c:3757
+#: fortran/parse.c:3763
#, gcc-internal-format, gfc-internal-format
msgid "Name after !$omp critical and !$omp end critical does not match at %C"
msgstr ""
-#: fortran/parse.c:3814
+#: fortran/parse.c:3820
#, gcc-internal-format, gfc-internal-format
msgid "%s statement at %C cannot terminate a non-block DO loop"
msgstr ""
-#: fortran/parse.c:4017
+#: fortran/parse.c:3834
+#, gcc-internal-format, gfc-internal-format
+msgid "DATA statement at %C after the first executable statement"
+msgstr ""
+
+#: fortran/parse.c:4027
#, gcc-internal-format, gfc-internal-format
msgid "Contained procedure '%s' at %C is already ambiguous"
msgstr ""
-#: fortran/parse.c:4073
+#: fortran/parse.c:4084
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in CONTAINS section at %C"
msgstr ""
-#: fortran/parse.c:4097
+#: fortran/parse.c:4108
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Fortran 2008: CONTAINS statement without FUNCTION or SUBROUTINE statement at "
-"%C"
+msgid "CONTAINS statement without FUNCTION or SUBROUTINE statement at %C"
msgstr ""
-#: fortran/parse.c:4174
+#: fortran/parse.c:4185
#, gcc-internal-format, gfc-internal-format
msgid "CONTAINS statement at %C is already in a contained program unit"
msgstr ""
-#: fortran/parse.c:4224
+#: fortran/parse.c:4235
#, gcc-internal-format, gfc-internal-format
msgid "Global name '%s' at %L is already being used as a %s at %L"
msgstr ""
-#: fortran/parse.c:4245
+#: fortran/parse.c:4256
#, gcc-internal-format, gfc-internal-format
msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
msgstr ""
-#: fortran/parse.c:4271
+#: fortran/parse.c:4282
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in BLOCK DATA at %C"
msgstr ""
-#: fortran/parse.c:4314
+#: fortran/parse.c:4325
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected %s statement in MODULE at %C"
msgstr ""
@@ -42359,227 +42648,232 @@ msgstr ""
#. If we see a duplicate main program, shut down. If the second
#. instance is an implied main program, i.e. data decls or executable
#. statements, we're in for lots of errors.
-#: fortran/parse.c:4679
+#: fortran/parse.c:4691
#, gcc-internal-format, gfc-internal-format
msgid "Two main PROGRAMs at %L and %C"
msgstr ""
-#: fortran/primary.c:106
+#: fortran/primary.c:107
#, gcc-internal-format, gfc-internal-format
msgid "Missing kind-parameter at %C"
msgstr ""
-#: fortran/primary.c:233
+#: fortran/primary.c:234
#, gcc-internal-format, gfc-internal-format
msgid "Integer kind %d at %C not available"
msgstr ""
-#: fortran/primary.c:242
+#: fortran/primary.c:243
#, gcc-internal-format, gfc-internal-format
msgid ""
"Integer too big for its kind at %C. This check can be disabled with the "
"option -fno-range-check"
msgstr ""
-#: fortran/primary.c:271
+#: fortran/primary.c:272
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Hollerith constant at %C"
+msgid "Hollerith constant at %C"
msgstr ""
-#: fortran/primary.c:283
+#: fortran/primary.c:284
#, gcc-internal-format, gfc-internal-format
msgid "Invalid Hollerith constant: %L must contain at least one character"
msgstr ""
-#: fortran/primary.c:289
+#: fortran/primary.c:290
#, gcc-internal-format, gfc-internal-format
msgid "Invalid Hollerith constant: Integer kind at %L should be default"
msgstr ""
-#: fortran/primary.c:309
+#: fortran/primary.c:310
#, gcc-internal-format, gfc-internal-format
msgid "Invalid Hollerith constant at %L contains a wide character"
msgstr ""
-#: fortran/primary.c:395
+#: fortran/primary.c:396
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Hexadecimal constant at %C uses non-standard syntax"
+msgid "Hexadecimal constant at %C uses non-standard syntax"
msgstr ""
-#: fortran/primary.c:405
+#: fortran/primary.c:406
#, gcc-internal-format, gfc-internal-format
msgid "Empty set of digits in BOZ constant at %C"
msgstr ""
-#: fortran/primary.c:411
+#: fortran/primary.c:412
#, gcc-internal-format, gfc-internal-format
msgid "Illegal character in BOZ constant at %C"
msgstr ""
-#: fortran/primary.c:434
+#: fortran/primary.c:435
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: BOZ constant at %C uses non-standard postfix syntax"
+msgid "BOZ constant at %C uses non-standard postfix syntax"
msgstr ""
-#: fortran/primary.c:465
+#: fortran/primary.c:466
#, gcc-internal-format, gfc-internal-format
msgid "Integer too big for integer kind %i at %C"
msgstr ""
-#: fortran/primary.c:471
+#: fortran/primary.c:472
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ used outside a DATA statement at %C"
+msgstr ""
+
+#: fortran/primary.c:563
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: BOZ used outside a DATA statement at %C"
+msgid "exponent-letter 'q' in real-literal-constant at %C"
msgstr ""
-#: fortran/primary.c:562 fortran/primary.c:566
+#: fortran/primary.c:567
#, gcc-internal-format, gfc-internal-format
msgid "Extension: exponent-letter 'q' in real-literal-constant at %C"
msgstr ""
-#: fortran/primary.c:582
+#: fortran/primary.c:583
#, gcc-internal-format, gfc-internal-format
msgid "Missing exponent in real number at %C"
msgstr ""
-#: fortran/primary.c:638
+#: fortran/primary.c:639
#, gcc-internal-format, gfc-internal-format
msgid "Real number at %C has a 'd' exponent and an explicit kind"
msgstr ""
-#: fortran/primary.c:668
+#: fortran/primary.c:669
#, gcc-internal-format, gfc-internal-format
msgid "Real number at %C has a 'q' exponent and an explicit kind"
msgstr ""
-#: fortran/primary.c:682
+#: fortran/primary.c:683
#, gcc-internal-format, gfc-internal-format
msgid "Invalid exponent-letter 'q' in real-literal-constant at %C"
msgstr ""
-#: fortran/primary.c:715
+#: fortran/primary.c:716
#, gcc-internal-format, gfc-internal-format
msgid "Invalid real kind %d at %C"
msgstr ""
-#: fortran/primary.c:730
+#: fortran/primary.c:731
#, gcc-internal-format, gfc-internal-format
msgid "Real constant overflows its kind at %C"
msgstr ""
-#: fortran/primary.c:735
+#: fortran/primary.c:736
#, gcc-internal-format, gfc-internal-format
msgid "Real constant underflows its kind at %C"
msgstr ""
-#: fortran/primary.c:827
+#: fortran/primary.c:828
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in SUBSTRING specification at %C"
msgstr ""
-#: fortran/primary.c:1039
+#: fortran/primary.c:1040
#, gcc-internal-format, gfc-internal-format
msgid "Invalid kind %d for CHARACTER constant at %C"
msgstr ""
-#: fortran/primary.c:1060
+#: fortran/primary.c:1061
#, gcc-internal-format, gfc-internal-format
msgid "Unterminated character constant beginning at %C"
msgstr ""
-#: fortran/primary.c:1089
+#: fortran/primary.c:1090
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character '%s' in string at %C is not representable in character kind %d"
msgstr ""
-#: fortran/primary.c:1172
+#: fortran/primary.c:1173
#, gcc-internal-format, gfc-internal-format
msgid "Bad kind for logical constant at %C"
msgstr ""
-#: fortran/primary.c:1204
+#: fortran/primary.c:1205
#, gcc-internal-format, gfc-internal-format
msgid "Expected PARAMETER symbol in complex constant at %C"
msgstr ""
-#: fortran/primary.c:1210
+#: fortran/primary.c:1211
#, gcc-internal-format, gfc-internal-format
msgid "Numeric PARAMETER required in complex constant at %C"
msgstr ""
-#: fortran/primary.c:1216
+#: fortran/primary.c:1217
#, gcc-internal-format, gfc-internal-format
msgid "Scalar PARAMETER required in complex constant at %C"
msgstr ""
-#: fortran/primary.c:1220
+#: fortran/primary.c:1221
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: PARAMETER symbol in complex constant at %C"
+msgid "PARAMETER symbol in complex constant at %C"
msgstr ""
-#: fortran/primary.c:1250
+#: fortran/primary.c:1251
#, gcc-internal-format, gfc-internal-format
msgid "Error converting PARAMETER constant in complex constant at %C"
msgstr ""
-#: fortran/primary.c:1378
+#: fortran/primary.c:1379
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in COMPLEX constant at %C"
msgstr ""
-#: fortran/primary.c:1584
+#: fortran/primary.c:1585
#, gcc-internal-format, gfc-internal-format
msgid "Keyword '%s' at %C has already appeared in the current argument list"
msgstr ""
-#: fortran/primary.c:1648
+#: fortran/primary.c:1649
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: argument list function at %C"
+msgid "argument list function at %C"
msgstr ""
-#: fortran/primary.c:1717
+#: fortran/primary.c:1718
#, gcc-internal-format, gfc-internal-format
msgid "Expected alternate return label at %C"
msgstr ""
-#: fortran/primary.c:1735
+#: fortran/primary.c:1736
#, gcc-internal-format, gfc-internal-format
msgid "Missing keyword name in actual argument list at %C"
msgstr ""
-#: fortran/primary.c:1781
+#: fortran/primary.c:1782
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in argument list at %C"
msgstr ""
-#: fortran/primary.c:1840
+#: fortran/primary.c:1841
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array section designator, e.g. '(:)', is required besides the coarray "
"designator '[...]' at %C"
msgstr ""
-#: fortran/primary.c:1848
+#: fortran/primary.c:1849
#, gcc-internal-format, gfc-internal-format
msgid "Coarray designator at %C but '%s' is not a coarray"
msgstr ""
-#: fortran/primary.c:1915
+#: fortran/primary.c:1916
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %C has no IMPLICIT type"
msgstr ""
-#: fortran/primary.c:1921
+#: fortran/primary.c:1922
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected '%%' for nonderived-type variable '%s' at %C"
msgstr ""
-#: fortran/primary.c:1939
+#: fortran/primary.c:1940
#, gcc-internal-format, gfc-internal-format
msgid "Expected structure component name at %C"
msgstr ""
-#: fortran/primary.c:1986
+#: fortran/primary.c:1987
#, gcc-internal-format, gfc-internal-format
msgid "Expected argument list at %C"
msgstr ""
@@ -42596,8 +42890,7 @@ msgstr ""
#: fortran/primary.c:2355
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Fortran 2003: Structure constructor with missing optional arguments at %C"
+msgid "Structure constructor with missing optional arguments at %C"
msgstr ""
#: fortran/primary.c:2363
@@ -42613,7 +42906,7 @@ msgstr ""
#: fortran/primary.c:2431
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Structure constructor with named arguments at %C"
+msgid "Structure constructor with named arguments at %C"
msgstr ""
#: fortran/primary.c:2447
@@ -42652,368 +42945,381 @@ msgid ""
"variable. Use an explicit RESULT variable for direct recursion (12.5.2.1)"
msgstr ""
-#: fortran/primary.c:2857
+#: fortran/primary.c:2862
#, gcc-internal-format, gfc-internal-format
msgid "Unexpected use of subroutine name '%s' at %C"
msgstr ""
-#: fortran/primary.c:2888
+#: fortran/primary.c:2893
#, gcc-internal-format, gfc-internal-format
msgid "Statement function '%s' requires argument list at %C"
msgstr ""
-#: fortran/primary.c:2891
+#: fortran/primary.c:2896
#, gcc-internal-format, gfc-internal-format
msgid "Function '%s' requires an argument list at %C"
msgstr ""
-#: fortran/primary.c:2941
+#: fortran/primary.c:2946
#, gcc-internal-format, gfc-internal-format
msgid "Missing argument to '%s' at %C"
msgstr ""
-#: fortran/primary.c:3100
+#: fortran/primary.c:3105
#, gcc-internal-format, gfc-internal-format
msgid "Missing argument list in function '%s' at %C"
msgstr ""
-#: fortran/primary.c:3134
+#: fortran/primary.c:3139
#, gcc-internal-format, gfc-internal-format
msgid "Symbol at %C is not appropriate for an expression"
msgstr ""
-#: fortran/primary.c:3233
+#: fortran/primary.c:3238
#, gcc-internal-format, gfc-internal-format
msgid "Named constant at %C in an EQUIVALENCE"
msgstr ""
-#: fortran/primary.c:3267
+#: fortran/primary.c:3272
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %C is not a variable"
msgstr ""
-#: fortran/resolve.c:119
+#: fortran/resolve.c:127
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L is of the ABSTRACT type '%s'"
msgstr ""
-#: fortran/resolve.c:122
+#: fortran/resolve.c:130
#, gcc-internal-format, gfc-internal-format
msgid "ABSTRACT type '%s' used at %L"
msgstr ""
-#: fortran/resolve.c:144
+#: fortran/resolve.c:147
#, gcc-internal-format, gfc-internal-format
-msgid "PROCEDURE '%s' at %L may not be used as its own interface"
+msgid "Interface '%s' at %L is declared in a later PROCEDURE statement"
msgstr ""
-#: fortran/resolve.c:150
+#: fortran/resolve.c:160
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Interface '%s', used by procedure '%s' at %L, is declared in a later "
-"PROCEDURE statement"
+msgid "Interface '%s' at %L may not be generic"
msgstr ""
-#: fortran/resolve.c:210
+#: fortran/resolve.c:167
#, gcc-internal-format, gfc-internal-format
-msgid "Interface '%s' of procedure '%s' at %L must be explicit"
+msgid "Interface '%s' at %L may not be a statement function"
msgstr ""
-#: fortran/resolve.c:258
+#: fortran/resolve.c:176
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic procedure '%s' not allowed in PROCEDURE statement at %L"
+msgstr ""
+
+#: fortran/resolve.c:182
+#, gcc-internal-format, gfc-internal-format
+msgid "Interface '%s' at %L must be explicit"
+msgstr ""
+
+#: fortran/resolve.c:204
+#, gcc-internal-format, gfc-internal-format
+msgid "PROCEDURE '%s' at %L may not be used as its own interface"
+msgstr ""
+
+#: fortran/resolve.c:308
#, gcc-internal-format, gfc-internal-format
msgid ""
"Alternate return specifier in elemental subroutine '%s' at %L is not allowed"
msgstr ""
-#: fortran/resolve.c:262
+#: fortran/resolve.c:312
#, gcc-internal-format, gfc-internal-format
msgid "Alternate return specifier in function '%s' at %L is not allowed"
msgstr ""
-#: fortran/resolve.c:323
+#: fortran/resolve.c:384
#, gcc-internal-format, gfc-internal-format
msgid "Dummy procedure '%s' of PURE procedure at %L must also be PURE"
msgstr ""
-#: fortran/resolve.c:333
+#: fortran/resolve.c:394
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2008: Argument '%s' of pure function '%s' at %L with VALUE attribute "
-"but without INTENT(IN)"
+"Argument '%s' of pure function '%s' at %L with VALUE attribute but without "
+"INTENT(IN)"
msgstr ""
-#: fortran/resolve.c:338
+#: fortran/resolve.c:399
#, gcc-internal-format, gfc-internal-format
msgid "Argument '%s' of pure function '%s' at %L must be INTENT(IN) or VALUE"
msgstr ""
-#: fortran/resolve.c:346
+#: fortran/resolve.c:407
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2008: Argument '%s' of pure subroutine '%s' at %L with VALUE "
-"attribute but without INTENT"
+"Argument '%s' of pure subroutine '%s' at %L with VALUE attribute but without "
+"INTENT"
msgstr ""
-#: fortran/resolve.c:351
+#: fortran/resolve.c:412
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument '%s' of pure subroutine '%s' at %L must have its INTENT specified "
"or have the VALUE attribute"
msgstr ""
-#: fortran/resolve.c:383
+#: fortran/resolve.c:446
#, gcc-internal-format, gfc-internal-format
msgid "Coarray dummy argument '%s' at %L to elemental procedure"
msgstr ""
-#: fortran/resolve.c:391
+#: fortran/resolve.c:454
#, gcc-internal-format, gfc-internal-format
msgid "Argument '%s' of elemental procedure at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:400
+#: fortran/resolve.c:463
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument '%s' of elemental procedure at %L cannot have the ALLOCATABLE "
"attribute"
msgstr ""
-#: fortran/resolve.c:410
+#: fortran/resolve.c:473
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
msgstr ""
-#: fortran/resolve.c:418
+#: fortran/resolve.c:481
#, gcc-internal-format, gfc-internal-format
msgid "Dummy procedure '%s' not allowed in elemental procedure '%s' at %L"
msgstr ""
-#: fortran/resolve.c:426
+#: fortran/resolve.c:489
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument '%s' of elemental procedure '%s' at %L must have its INTENT "
"specified"
msgstr ""
-#: fortran/resolve.c:438
+#: fortran/resolve.c:501
#, gcc-internal-format, gfc-internal-format
msgid "Argument '%s' of statement function at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:448
+#: fortran/resolve.c:511
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character-valued argument '%s' of statement function at %L must have "
"constant length"
msgstr ""
-#: fortran/resolve.c:506
+#: fortran/resolve.c:569
#, gcc-internal-format, gfc-internal-format
msgid "Contained function '%s' at %L has no IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:509
+#: fortran/resolve.c:572
#, gcc-internal-format, gfc-internal-format
msgid "Result '%s' of contained function '%s' at %L has no IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:533
+#: fortran/resolve.c:596
#, gcc-internal-format, gfc-internal-format
msgid "Character-valued %s '%s' at %L must not be assumed length"
msgstr ""
-#: fortran/resolve.c:708
+#: fortran/resolve.c:771
#, gcc-internal-format, gfc-internal-format
msgid "Function %s at %L has entries with mismatched array specifications"
msgstr ""
-#: fortran/resolve.c:725
+#: fortran/resolve.c:788
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Extension: Function %s at %L with entries returning variables of different "
-"string lengths"
+"Function %s at %L with entries returning variables of different string "
+"lengths"
msgstr ""
-#: fortran/resolve.c:752
+#: fortran/resolve.c:815
#, gcc-internal-format, gfc-internal-format
msgid "FUNCTION result %s can't be an array in FUNCTION %s at %L"
msgstr ""
-#: fortran/resolve.c:756
+#: fortran/resolve.c:819
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY result %s can't be an array in FUNCTION %s at %L"
msgstr ""
-#: fortran/resolve.c:763
+#: fortran/resolve.c:826
#, gcc-internal-format, gfc-internal-format
msgid "FUNCTION result %s can't be a POINTER in FUNCTION %s at %L"
msgstr ""
-#: fortran/resolve.c:767
+#: fortran/resolve.c:830
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY result %s can't be a POINTER in FUNCTION %s at %L"
msgstr ""
-#: fortran/resolve.c:805
+#: fortran/resolve.c:868
#, gcc-internal-format, gfc-internal-format
msgid "FUNCTION result %s can't be of type %s in FUNCTION %s at %L"
msgstr ""
-#: fortran/resolve.c:810
+#: fortran/resolve.c:873
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY result %s can't be of type %s in FUNCTION %s at %L"
msgstr ""
-#: fortran/resolve.c:853
+#: fortran/resolve.c:916
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L is in COMMON but only in BLOCK DATA initialization is "
"allowed"
msgstr ""
-#: fortran/resolve.c:857
+#: fortran/resolve.c:920
#, gcc-internal-format, gfc-internal-format
msgid ""
"Initialized variable '%s' at %L is in a blank COMMON but initialization is "
"only allowed in named common blocks"
msgstr ""
-#: fortran/resolve.c:868
+#: fortran/resolve.c:931
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type variable '%s' in COMMON at %L has neither the SEQUENCE nor the "
"BIND(C) attribute"
msgstr ""
-#: fortran/resolve.c:872
+#: fortran/resolve.c:935
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type variable '%s' in COMMON at %L has an ultimate component that is "
"allocatable"
msgstr ""
-#: fortran/resolve.c:876
+#: fortran/resolve.c:939
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type variable '%s' in COMMON at %L may not have default initializer"
msgstr ""
-#: fortran/resolve.c:906
+#: fortran/resolve.c:969
#, gcc-internal-format, gfc-internal-format
msgid "COMMON block '%s' at %L is used as PARAMETER at %L"
msgstr ""
-#: fortran/resolve.c:910
+#: fortran/resolve.c:973
#, gcc-internal-format, gfc-internal-format
msgid "COMMON block '%s' at %L can not have the EXTERNAL attribute"
msgstr ""
-#: fortran/resolve.c:914
+#: fortran/resolve.c:977
#, gcc-internal-format, gfc-internal-format
msgid "COMMON block '%s' at %L is also an intrinsic procedure"
msgstr ""
-#: fortran/resolve.c:918
+#: fortran/resolve.c:981
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: COMMON block '%s' at %L that is also a function result"
+msgid "COMMON block '%s' at %L that is also a function result"
msgstr ""
-#: fortran/resolve.c:923
+#: fortran/resolve.c:986
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: COMMON block '%s' at %L that is also a global procedure"
+msgid "COMMON block '%s' at %L that is also a global procedure"
msgstr ""
-#: fortran/resolve.c:987
+#: fortran/resolve.c:1050
#, gcc-internal-format, gfc-internal-format
msgid "Components of structure constructor '%s' at %L are PRIVATE"
msgstr ""
-#: fortran/resolve.c:1023
+#: fortran/resolve.c:1086
#, gcc-internal-format, gfc-internal-format
msgid ""
"The rank of the element in the structure constructor at %L does not match "
"that of the component (%d/%d)"
msgstr ""
-#: fortran/resolve.c:1045
+#: fortran/resolve.c:1108
#, gcc-internal-format, gfc-internal-format
msgid ""
"The element in the structure constructor at %L, for pointer component '%s', "
"is %s but should be %s"
msgstr ""
-#: fortran/resolve.c:1124
+#: fortran/resolve.c:1187
#, gcc-internal-format, gfc-internal-format
msgid ""
"The NULL in the structure constructor at %L is being applied to component "
"'%s', which is neither a POINTER nor ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:1157
+#: fortran/resolve.c:1221
#, gcc-internal-format, gfc-internal-format
msgid ""
"Interface mismatch for procedure-pointer component '%s' in structure "
"constructor at %L: %s"
msgstr ""
-#: fortran/resolve.c:1173
+#: fortran/resolve.c:1237
#, gcc-internal-format, gfc-internal-format
msgid ""
"The element in the structure constructor at %L, for pointer component '%s' "
"should be a POINTER or a TARGET"
msgstr ""
-#: fortran/resolve.c:1184
+#: fortran/resolve.c:1248
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %L must not be ALLOCATABLE "
msgstr ""
-#: fortran/resolve.c:1190
+#: fortran/resolve.c:1254
#, gcc-internal-format, gfc-internal-format
msgid "Pointer initialization target at %L must have the SAVE attribute"
msgstr ""
-#: fortran/resolve.c:1201
+#: fortran/resolve.c:1265
#, gcc-internal-format, gfc-internal-format
msgid ""
"Invalid expression in the structure constructor for pointer component '%s' "
"at %L in PURE procedure"
msgstr ""
-#: fortran/resolve.c:1330
+#: fortran/resolve.c:1394
#, gcc-internal-format, gfc-internal-format
msgid ""
"The upper bound in the last dimension must appear in the reference to the "
"assumed size array '%s' at %L"
msgstr ""
-#: fortran/resolve.c:1392
+#: fortran/resolve.c:1456
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L is ambiguous"
msgstr ""
-#: fortran/resolve.c:1396
+#: fortran/resolve.c:1460
#, gcc-internal-format, gfc-internal-format
msgid "GENERIC procedure '%s' is not allowed as an actual argument at %L"
msgstr ""
-#: fortran/resolve.c:1508
+#: fortran/resolve.c:1572
#, gcc-internal-format, gfc-internal-format
msgid "Type specified for intrinsic function '%s' at %L is ignored"
msgstr ""
-#: fortran/resolve.c:1521
+#: fortran/resolve.c:1585
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic subroutine '%s' at %L shall not have a type specifier"
msgstr ""
-#: fortran/resolve.c:1532
+#: fortran/resolve.c:1596
#, gcc-internal-format, gfc-internal-format
msgid "'%s' declared INTRINSIC at %L does not exist"
msgstr ""
-#: fortran/resolve.c:1543
+#: fortran/resolve.c:1607
#, gcc-internal-format, gfc-internal-format
msgid ""
"The intrinsic '%s' declared INTRINSIC at %L is not available in the current "
@@ -43021,77 +43327,77 @@ msgid ""
"intrinsics in order to use it."
msgstr ""
-#: fortran/resolve.c:1579
+#: fortran/resolve.c:1643
#, gcc-internal-format, gfc-internal-format
msgid ""
"Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively. "
"Declare it RECURSIVE or use -frecursive"
msgstr ""
-#: fortran/resolve.c:1614 fortran/resolve.c:8585 fortran/resolve.c:9474
+#: fortran/resolve.c:1681 fortran/resolve.c:8798 fortran/resolve.c:9687
#, gcc-internal-format, gfc-internal-format
msgid "Label %d referenced at %L is never defined"
msgstr ""
-#: fortran/resolve.c:1659
+#: fortran/resolve.c:1724
#, gcc-internal-format, gfc-internal-format
msgid "Statement function '%s' at %L is not allowed as an actual argument"
msgstr ""
-#: fortran/resolve.c:1667
+#: fortran/resolve.c:1732
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic '%s' at %L is not allowed as an actual argument"
msgstr ""
-#: fortran/resolve.c:1675
+#: fortran/resolve.c:1740
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2008: Internal procedure '%s' is used as actual argument at %L"
+msgid "Internal procedure '%s' is used as actual argument at %L"
msgstr ""
-#: fortran/resolve.c:1683
+#: fortran/resolve.c:1748
#, gcc-internal-format, gfc-internal-format
msgid ""
"ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument "
"at %L"
msgstr ""
-#: fortran/resolve.c:1710
+#: fortran/resolve.c:1775
#, gcc-internal-format, gfc-internal-format
msgid ""
"Unable to find a specific INTRINSIC procedure for the reference '%s' at %L"
msgstr ""
-#: fortran/resolve.c:1732
+#: fortran/resolve.c:1797
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %L is ambiguous"
msgstr ""
-#: fortran/resolve.c:1787
+#: fortran/resolve.c:1852
#, gcc-internal-format, gfc-internal-format
msgid "By-value argument at %L is not of numeric type"
msgstr ""
-#: fortran/resolve.c:1794
+#: fortran/resolve.c:1859
#, gcc-internal-format, gfc-internal-format
msgid "By-value argument at %L cannot be an array or an array section"
msgstr ""
-#: fortran/resolve.c:1808
+#: fortran/resolve.c:1873
#, gcc-internal-format, gfc-internal-format
msgid "By-value argument at %L is not allowed in this context"
msgstr ""
-#: fortran/resolve.c:1820
+#: fortran/resolve.c:1885
#, gcc-internal-format, gfc-internal-format
msgid "Passing internal procedure at %L by location not allowed"
msgstr ""
-#: fortran/resolve.c:1831
+#: fortran/resolve.c:1896
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed actual argument at %L with ultimate pointer component"
msgstr ""
-#: fortran/resolve.c:1955
+#: fortran/resolve.c:2027
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the "
@@ -43099,731 +43405,792 @@ msgid ""
"argument with the same rank (12.4.1.5)"
msgstr ""
-#: fortran/resolve.c:1994
+#: fortran/resolve.c:2065
#, gcc-internal-format, gfc-internal-format
msgid ""
"Actual argument at %L for INTENT(%s) dummy '%s' of ELEMENTAL subroutine '%s' "
"is a scalar, but another actual argument is an array"
msgstr ""
-#: fortran/resolve.c:2156
+#: fortran/resolve.c:2227
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character length mismatch in return type of function '%s' at %L (%ld/%ld)"
msgstr ""
-#: fortran/resolve.c:2164
+#: fortran/resolve.c:2235
#, gcc-internal-format, gfc-internal-format
msgid "Return type mismatch of function '%s' at %L (%s/%s)"
msgstr ""
-#: fortran/resolve.c:2183
+#: fortran/resolve.c:2254
#, gcc-internal-format, gfc-internal-format
msgid ""
"Dummy argument '%s' of procedure '%s' at %L has an attribute that requires "
"an explicit interface for this procedure"
msgstr ""
-#: fortran/resolve.c:2193
+#: fortran/resolve.c:2264
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %L with assumed-shape dummy argument '%s' must have an "
"explicit interface"
msgstr ""
-#: fortran/resolve.c:2201
+#: fortran/resolve.c:2273
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Procedure '%s' at %L with assumed-rank dummy argument '%s' must have an "
+"explicit interface"
+msgstr ""
+
+#: fortran/resolve.c:2281
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %L with coarray dummy argument '%s' must have an explicit "
"interface"
msgstr ""
-#: fortran/resolve.c:2209
+#: fortran/resolve.c:2289
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %L with parametrized derived type argument '%s' must have "
"an explicit interface"
msgstr ""
-#: fortran/resolve.c:2218
+#: fortran/resolve.c:2298
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %L with polymorphic dummy argument '%s' must have an "
"explicit interface"
msgstr ""
-#: fortran/resolve.c:2230
+#: fortran/resolve.c:2307
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Procedure '%s' at %L with assumed-type dummy argument '%s' must have an "
+"explicit interface"
+msgstr ""
+
+#: fortran/resolve.c:2319
#, gcc-internal-format, gfc-internal-format
msgid ""
"The reference to function '%s' at %L either needs an explicit INTERFACE or "
"the rank is incorrect"
msgstr ""
-#: fortran/resolve.c:2242
+#: fortran/resolve.c:2331
#, gcc-internal-format, gfc-internal-format
msgid ""
"Function '%s' at %L with a POINTER or ALLOCATABLE result must have an "
"explicit interface"
msgstr ""
-#: fortran/resolve.c:2255
+#: fortran/resolve.c:2344
#, gcc-internal-format, gfc-internal-format
msgid ""
"Nonconstant character-length function '%s' at %L must have an explicit "
"interface"
msgstr ""
-#: fortran/resolve.c:2265
+#: fortran/resolve.c:2354
#, gcc-internal-format, gfc-internal-format
msgid "ELEMENTAL procedure '%s' at %L must have an explicit interface"
msgstr ""
-#: fortran/resolve.c:2272
+#: fortran/resolve.c:2361
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %L with BIND(C) attribute must have an explicit interface"
msgstr ""
-#: fortran/resolve.c:2378
+#: fortran/resolve.c:2467
#, gcc-internal-format, gfc-internal-format
msgid "There is no specific function for the generic '%s' at %L"
msgstr ""
-#: fortran/resolve.c:2396
+#: fortran/resolve.c:2485
#, gcc-internal-format, gfc-internal-format
msgid ""
"Generic function '%s' at %L is not consistent with a specific intrinsic "
"interface"
msgstr ""
-#: fortran/resolve.c:2434
+#: fortran/resolve.c:2523
#, gcc-internal-format, gfc-internal-format
msgid ""
"Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
msgstr ""
-#: fortran/resolve.c:2483
+#: fortran/resolve.c:2572
#, gcc-internal-format, gfc-internal-format
msgid "Unable to resolve the specific function '%s' at %L"
msgstr ""
-#: fortran/resolve.c:2539 fortran/resolve.c:13802
+#: fortran/resolve.c:2628 fortran/resolve.c:14070
#, gcc-internal-format, gfc-internal-format
msgid "Function '%s' at %L has no IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:2740
+#: fortran/resolve.c:2828
#, gcc-internal-format, gfc-internal-format
msgid "Argument to '%s' at %L is not a variable"
msgstr ""
-#: fortran/resolve.c:2784
+#: fortran/resolve.c:2872
#, gcc-internal-format, gfc-internal-format
msgid "More actual than formal arguments in '%s' call at %L"
msgstr ""
-#: fortran/resolve.c:2796
+#: fortran/resolve.c:2884
#, gcc-internal-format, gfc-internal-format
msgid ""
"Parameter '%s' to '%s' at %L must be either a TARGET or an associated pointer"
msgstr ""
-#: fortran/resolve.c:2805
+#: fortran/resolve.c:2893
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed argument not permitted in '%s' call at %L"
msgstr ""
-#: fortran/resolve.c:2828
+#: fortran/resolve.c:2916
#, gcc-internal-format, gfc-internal-format
msgid "Array section not permitted in '%s' call at %L"
msgstr ""
-#: fortran/resolve.c:2839
+#: fortran/resolve.c:2927
#, gcc-internal-format, gfc-internal-format
msgid "Array section in '%s' call at %L"
msgstr ""
-#: fortran/resolve.c:2858
+#: fortran/resolve.c:2946
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocatable variable '%s' used as a parameter to '%s' at %L must not be an "
"array of zero size"
msgstr ""
-#: fortran/resolve.c:2875
+#: fortran/resolve.c:2963
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' "
"because it is not C interoperable"
msgstr ""
-#: fortran/resolve.c:2885
+#: fortran/resolve.c:2973
#, gcc-internal-format, gfc-internal-format
msgid ""
"Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' "
"because it is not C interoperable"
msgstr ""
-#: fortran/resolve.c:2908 fortran/resolve.c:2945
+#: fortran/resolve.c:2996 fortran/resolve.c:3033
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER argument '%s' to '%s' at %L must have a length of 1"
msgstr ""
#. Case 1c, section 15.1.2.5, J3/04-007: an associated
#. scalar pointer.
-#: fortran/resolve.c:2921
+#: fortran/resolve.c:3009
#, gcc-internal-format, gfc-internal-format
msgid "Argument '%s' to '%s' at %L must be an associated scalar POINTER"
msgstr ""
-#: fortran/resolve.c:2937
+#: fortran/resolve.c:3025
#, gcc-internal-format, gfc-internal-format
msgid "Parameter '%s' to '%s' at %L must be a scalar"
msgstr ""
-#: fortran/resolve.c:2953
+#: fortran/resolve.c:3041
#, gcc-internal-format, gfc-internal-format
msgid "Parameter '%s' to '%s' at %L must not be polymorphic"
msgstr ""
#. TODO: Update this error message to allow for procedure
#. pointers once they are implemented.
-#: fortran/resolve.c:2966
+#: fortran/resolve.c:3054
#, gcc-internal-format, gfc-internal-format
-msgid "Parameter '%s' to '%s' at %L must be a procedure"
+msgid "Argument '%s' to '%s' at %L must be a procedure"
msgstr ""
-#: fortran/resolve.c:2974
+#: fortran/resolve.c:3061
#, gcc-internal-format, gfc-internal-format
-msgid "Parameter '%s' to '%s' at %L must be BIND(C)"
+msgid "Noninteroperable argument '%s' to '%s' at %L"
msgstr ""
-#: fortran/resolve.c:3023
+#: fortran/resolve.c:3109
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L is not a function"
msgstr ""
-#: fortran/resolve.c:3031 fortran/resolve.c:3662
+#: fortran/resolve.c:3117 fortran/resolve.c:3780
#, gcc-internal-format, gfc-internal-format
msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L"
msgstr ""
#. Internal procedures are taken care of in resolve_contained_fntype.
-#: fortran/resolve.c:3086
+#: fortran/resolve.c:3172
#, gcc-internal-format, gfc-internal-format
msgid ""
"Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is "
"not a dummy argument"
msgstr ""
-#: fortran/resolve.c:3139
+#: fortran/resolve.c:3225
#, gcc-internal-format, gfc-internal-format
msgid ""
"User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE "
"construct"
msgstr ""
-#: fortran/resolve.c:3189
+#: fortran/resolve.c:3275
#, gcc-internal-format, gfc-internal-format
msgid "Reference to non-PURE function '%s' at %L inside a FORALL %s"
msgstr ""
-#: fortran/resolve.c:3196
+#: fortran/resolve.c:3282
#, gcc-internal-format, gfc-internal-format
msgid "Reference to non-PURE function '%s' at %L inside a DO CONCURRENT %s"
msgstr ""
-#: fortran/resolve.c:3203
+#: fortran/resolve.c:3289
#, gcc-internal-format, gfc-internal-format
msgid ""
"Function reference to '%s' at %L is to a non-PURE procedure within a PURE "
"procedure"
msgstr ""
-#: fortran/resolve.c:3222
+#: fortran/resolve.c:3308
#, gcc-internal-format, gfc-internal-format
msgid ""
"ENTRY '%s' at %L cannot be called recursively, as function '%s' is not "
"RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3226
+#: fortran/resolve.c:3312
#, gcc-internal-format, gfc-internal-format
msgid ""
"Function '%s' at %L cannot be called recursively, as it is not RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3265
+#: fortran/resolve.c:3351
#, gcc-internal-format, gfc-internal-format
msgid "Subroutine call to '%s' in FORALL block at %L is not PURE"
msgstr ""
-#: fortran/resolve.c:3268
+#: fortran/resolve.c:3354
#, gcc-internal-format, gfc-internal-format
msgid "Subroutine call to '%s' in DO CONCURRENT block at %L is not PURE"
msgstr ""
-#: fortran/resolve.c:3271
+#: fortran/resolve.c:3357
#, gcc-internal-format, gfc-internal-format
msgid "Subroutine call to '%s' at %L is not PURE"
msgstr ""
-#: fortran/resolve.c:3337
+#: fortran/resolve.c:3423
#, gcc-internal-format, gfc-internal-format
msgid "There is no specific subroutine for the generic '%s' at %L"
msgstr ""
-#: fortran/resolve.c:3346
+#: fortran/resolve.c:3432
#, gcc-internal-format, gfc-internal-format
msgid ""
"Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine "
"interface"
msgstr ""
-#: fortran/resolve.c:3455
+#: fortran/resolve.c:3539
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument at %L to C_F_POINTER shall have the type C_PTR"
+msgstr ""
+
+#: fortran/resolve.c:3554
#, gcc-internal-format, gfc-internal-format
msgid "Missing SHAPE parameter for call to %s at %L"
msgstr ""
-#: fortran/resolve.c:3463
+#: fortran/resolve.c:3562
#, gcc-internal-format, gfc-internal-format
msgid "SHAPE parameter for call to %s at %L must be a rank 1 INTEGER array"
msgstr ""
-#: fortran/resolve.c:3530
+#: fortran/resolve.c:3576
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument at %L to C_F_FUNPOINTER shall have the type C_FUNPTR"
+msgstr ""
+
+#: fortran/resolve.c:3582
+#, gcc-internal-format, gfc-internal-format
+msgid "Noninteroperable procedure-pointer at %L to C_F_FUNPOINTER"
+msgstr ""
+
+#: fortran/resolve.c:3648
#, gcc-internal-format, gfc-internal-format
msgid ""
"Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic"
msgstr ""
-#: fortran/resolve.c:3574
+#: fortran/resolve.c:3692
#, gcc-internal-format, gfc-internal-format
msgid "Unable to resolve the specific subroutine '%s' at %L"
msgstr ""
-#: fortran/resolve.c:3634
+#: fortran/resolve.c:3752
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L has a type, which is not consistent with the CALL at %L"
msgstr ""
-#: fortran/resolve.c:3672
+#: fortran/resolve.c:3790
#, gcc-internal-format, gfc-internal-format
msgid ""
"ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not "
"RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3676
+#: fortran/resolve.c:3794
#, gcc-internal-format, gfc-internal-format
msgid ""
"SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE"
msgstr ""
-#: fortran/resolve.c:3752
+#: fortran/resolve.c:3870
#, gcc-internal-format, gfc-internal-format
msgid "Shapes for operands at %L and %L are not conformable"
msgstr ""
-#: fortran/resolve.c:4250
+#: fortran/resolve.c:4390
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4255
+#: fortran/resolve.c:4395
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d"
msgstr ""
-#: fortran/resolve.c:4265
+#: fortran/resolve.c:4405
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4270
+#: fortran/resolve.c:4410
#, gcc-internal-format, gfc-internal-format
msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d"
msgstr ""
-#: fortran/resolve.c:4290
+#: fortran/resolve.c:4430
#, gcc-internal-format, gfc-internal-format
msgid "Illegal stride of zero at %L"
msgstr ""
-#: fortran/resolve.c:4307
+#: fortran/resolve.c:4447
#, gcc-internal-format, gfc-internal-format
msgid ""
"Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4315
+#: fortran/resolve.c:4455
#, gcc-internal-format, gfc-internal-format
msgid ""
"Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4331
+#: fortran/resolve.c:4471
#, gcc-internal-format, gfc-internal-format
msgid ""
"Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4340
+#: fortran/resolve.c:4480
#, gcc-internal-format, gfc-internal-format
msgid ""
"Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d"
msgstr ""
-#: fortran/resolve.c:4379
+#: fortran/resolve.c:4519
#, gcc-internal-format, gfc-internal-format
msgid "Rightmost upper bound of assumed size array section not specified at %L"
msgstr ""
-#: fortran/resolve.c:4389
+#: fortran/resolve.c:4529
#, gcc-internal-format, gfc-internal-format
msgid "Rank mismatch in array reference at %L (%d/%d)"
msgstr ""
-#: fortran/resolve.c:4397
+#: fortran/resolve.c:4537
#, gcc-internal-format, gfc-internal-format
msgid "Coindex rank mismatch in array reference at %L (%d/%d)"
msgstr ""
-#: fortran/resolve.c:4413
+#: fortran/resolve.c:4553
#, gcc-internal-format, gfc-internal-format
msgid "Coindex of codimension %d must be a scalar at %L"
msgstr ""
-#: fortran/resolve.c:4441
+#: fortran/resolve.c:4581
#, gcc-internal-format, gfc-internal-format
msgid "Array index at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4447
+#: fortran/resolve.c:4587
#, gcc-internal-format, gfc-internal-format
msgid "Array index at %L must be of INTEGER type, found %s"
msgstr ""
-#: fortran/resolve.c:4453
+#: fortran/resolve.c:4593
#, gcc-internal-format, gfc-internal-format
-msgid "Extension: REAL array index at %L"
+msgid "REAL array index at %L"
msgstr ""
-#: fortran/resolve.c:4492
+#: fortran/resolve.c:4632
#, gcc-internal-format, gfc-internal-format
msgid "Argument dim at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4499
+#: fortran/resolve.c:4639
#, gcc-internal-format, gfc-internal-format
msgid "Argument dim at %L must be of INTEGER type"
msgstr ""
-#: fortran/resolve.c:4609
+#: fortran/resolve.c:4749
#, gcc-internal-format, gfc-internal-format
msgid "Array index at %L is an array of rank %d"
msgstr ""
-#: fortran/resolve.c:4707
+#: fortran/resolve.c:4847
#, gcc-internal-format, gfc-internal-format
msgid "Substring start index at %L must be of type INTEGER"
msgstr ""
-#: fortran/resolve.c:4714
+#: fortran/resolve.c:4854
#, gcc-internal-format, gfc-internal-format
msgid "Substring start index at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4723
+#: fortran/resolve.c:4863
#, gcc-internal-format, gfc-internal-format
msgid "Substring start index at %L is less than one"
msgstr ""
-#: fortran/resolve.c:4736
+#: fortran/resolve.c:4876
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L must be of type INTEGER"
msgstr ""
-#: fortran/resolve.c:4743
+#: fortran/resolve.c:4883
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:4753
+#: fortran/resolve.c:4893
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L exceeds the string length"
msgstr ""
-#: fortran/resolve.c:4763
+#: fortran/resolve.c:4903
#, gcc-internal-format, gfc-internal-format
msgid "Substring end index at %L is too large"
msgstr ""
-#: fortran/resolve.c:4911
+#: fortran/resolve.c:5051
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component to the right of a part reference with nonzero rank must not have "
"the POINTER attribute at %L"
msgstr ""
-#: fortran/resolve.c:4921
+#: fortran/resolve.c:5061
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component to the right of a part reference with nonzero rank must not have "
"the ALLOCATABLE attribute at %L"
msgstr ""
-#: fortran/resolve.c:4940
+#: fortran/resolve.c:5080
#, gcc-internal-format, gfc-internal-format
msgid ""
"Two or more part references with nonzero rank must not be specified at %L"
msgstr ""
-#: fortran/resolve.c:5073
+#: fortran/resolve.c:5215
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L may only be used as actual argument"
+msgstr ""
+
+#. FIXME: It doesn't work reliably as inquiry_argument is not set
+#. for all inquiry functions in resolve_function; the reason is
+#. that the function-name resolution happens too late in that
+#. function.
+#: fortran/resolve.c:5225
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Assumed-type variable %s at %L as actual argument to an inquiry function "
+"shall be the first argument"
+msgstr ""
+
+#: fortran/resolve.c:5241
#, gcc-internal-format, gfc-internal-format
-msgid "Invalid expression with assumed-type variable %s at %L"
+msgid "Assumed-rank variable %s at %L may only be used as actual argument"
msgstr ""
-#: fortran/resolve.c:5083
+#. FIXME: It doesn't work reliably as inquiry_argument is not set
+#. for all inquiry functions in resolve_function; the reason is
+#. that the function-name resolution happens too late in that
+#. function.
+#: fortran/resolve.c:5251
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Assumed-rank variable %s at %L as actual argument to an inquiry function "
+"shall be the first argument"
+msgstr ""
+
+#: fortran/resolve.c:5263
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L shall not have a subobject reference"
+msgstr ""
+
+#: fortran/resolve.c:5278
#, gcc-internal-format, gfc-internal-format
-msgid "Assumed-type variable %s with designator at %L"
+msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
msgstr ""
-#: fortran/resolve.c:5182
+#: fortran/resolve.c:5378
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s', used in a specification expression, is referenced at %L "
"before the ENTRY statement in which it is a parameter"
msgstr ""
-#: fortran/resolve.c:5187
+#: fortran/resolve.c:5383
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' is used at %L before the ENTRY statement in which it is a "
"parameter"
msgstr ""
-#: fortran/resolve.c:5251
+#: fortran/resolve.c:5447
#, gcc-internal-format, gfc-internal-format
msgid "Polymorphic subobject of coindexed object at %L"
msgstr ""
-#: fortran/resolve.c:5264
+#: fortran/resolve.c:5460
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
msgstr ""
-#: fortran/resolve.c:5590
+#: fortran/resolve.c:5792
#, gcc-internal-format, gfc-internal-format
msgid "Passed-object at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:5597
+#: fortran/resolve.c:5799
#, gcc-internal-format, gfc-internal-format
msgid ""
"Base object for procedure-pointer component call at %L is of ABSTRACT type "
"'%s'"
msgstr ""
-#: fortran/resolve.c:5629
+#: fortran/resolve.c:5834
#, gcc-internal-format, gfc-internal-format
msgid ""
"Base object for type-bound procedure call at %L is of ABSTRACT type '%s'"
msgstr ""
-#: fortran/resolve.c:5638
+#: fortran/resolve.c:5843
#, gcc-internal-format, gfc-internal-format
msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
msgstr ""
#. Nothing matching found!
-#: fortran/resolve.c:5822
+#: fortran/resolve.c:6027
#, gcc-internal-format, gfc-internal-format
msgid ""
"Found no matching specific binding for the call to the GENERIC '%s' at %L"
msgstr ""
-#: fortran/resolve.c:5849
+#: fortran/resolve.c:6054
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L should be a SUBROUTINE"
msgstr ""
-#: fortran/resolve.c:5896
+#: fortran/resolve.c:6101
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L should be a FUNCTION"
msgstr ""
-#: fortran/resolve.c:6413
+#: fortran/resolve.c:6625
#, gcc-internal-format, gfc-internal-format
msgid "%s at %L must be a scalar"
msgstr ""
-#: fortran/resolve.c:6423
+#: fortran/resolve.c:6635
#, gcc-internal-format, gfc-internal-format
-msgid "Deleted feature: %s at %L must be integer"
+msgid "%s at %L must be integer"
msgstr ""
-#: fortran/resolve.c:6427 fortran/resolve.c:6434
+#: fortran/resolve.c:6639 fortran/resolve.c:6646
#, gcc-internal-format, gfc-internal-format
msgid "%s at %L must be INTEGER"
msgstr ""
-#: fortran/resolve.c:6475
+#: fortran/resolve.c:6687
#, gcc-internal-format, gfc-internal-format
msgid "Step expression in DO loop at %L cannot be zero"
msgstr ""
-#: fortran/resolve.c:6510
+#: fortran/resolve.c:6722
#, gcc-internal-format, gfc-internal-format
msgid "DO loop at %L will be executed zero times"
msgstr ""
-#: fortran/resolve.c:6571
+#: fortran/resolve.c:6783
#, gcc-internal-format, gfc-internal-format
msgid "FORALL index-name at %L must be a scalar INTEGER"
msgstr ""
-#: fortran/resolve.c:6576
+#: fortran/resolve.c:6788
#, gcc-internal-format, gfc-internal-format
msgid "FORALL start expression at %L must be a scalar INTEGER"
msgstr ""
-#: fortran/resolve.c:6583
+#: fortran/resolve.c:6795
#, gcc-internal-format, gfc-internal-format
msgid "FORALL end expression at %L must be a scalar INTEGER"
msgstr ""
-#: fortran/resolve.c:6591
+#: fortran/resolve.c:6803
#, gcc-internal-format, gfc-internal-format
msgid "FORALL stride expression at %L must be a scalar %s"
msgstr ""
-#: fortran/resolve.c:6596
+#: fortran/resolve.c:6808
#, gcc-internal-format, gfc-internal-format
msgid "FORALL stride expression at %L cannot be zero"
msgstr ""
-#: fortran/resolve.c:6612
+#: fortran/resolve.c:6824
#, gcc-internal-format, gfc-internal-format
msgid "FORALL index '%s' may not appear in triplet specification at %L"
msgstr ""
-#: fortran/resolve.c:6708 fortran/resolve.c:6992
+#: fortran/resolve.c:6920 fortran/resolve.c:7204
#, gcc-internal-format, gfc-internal-format
msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
msgstr ""
-#: fortran/resolve.c:6716 fortran/resolve.c:6957
+#: fortran/resolve.c:6928 fortran/resolve.c:7169
#, gcc-internal-format, gfc-internal-format
msgid "Coindexed allocatable object at %L"
msgstr ""
-#: fortran/resolve.c:6821
+#: fortran/resolve.c:7033
#, gcc-internal-format, gfc-internal-format
msgid ""
"Source-expr at %L must be scalar or have the same rank as the allocate-"
"object at %L"
msgstr ""
-#: fortran/resolve.c:6849
+#: fortran/resolve.c:7061
#, gcc-internal-format, gfc-internal-format
msgid "Source-expr at %L and allocate-object at %L must have the same shape"
msgstr ""
-#: fortran/resolve.c:7003
+#: fortran/resolve.c:7215
#, gcc-internal-format, gfc-internal-format
msgid "Type of entity at %L is type incompatible with source-expr at %L"
msgstr ""
-#: fortran/resolve.c:7016
+#: fortran/resolve.c:7228
#, gcc-internal-format, gfc-internal-format
msgid ""
"The allocate-object at %L and the source-expr at %L shall have the same kind "
"type parameter"
msgstr ""
-#: fortran/resolve.c:7030
+#: fortran/resolve.c:7242
#, gcc-internal-format, gfc-internal-format
msgid ""
"The source-expr at %L shall neither be of type LOCK_TYPE nor have a "
"LOCK_TYPE component if allocate-object at %L is a coarray"
msgstr ""
-#: fortran/resolve.c:7043
+#: fortran/resolve.c:7255
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
msgstr ""
-#: fortran/resolve.c:7054
+#: fortran/resolve.c:7266
#, gcc-internal-format, gfc-internal-format
msgid ""
"Allocating %s at %L with type-spec requires the same character-length "
"parameter as in the declaration"
msgstr ""
-#: fortran/resolve.c:7139
+#: fortran/resolve.c:7351
#, gcc-internal-format, gfc-internal-format
msgid "Array specification required in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7153
+#: fortran/resolve.c:7365
#, gcc-internal-format, gfc-internal-format
msgid "Coarray specification required in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7180
+#: fortran/resolve.c:7392
#, gcc-internal-format, gfc-internal-format
msgid "Bad array specification in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7199
+#: fortran/resolve.c:7411
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' must not appear in the array specification at %L in the same ALLOCATE "
"statement where it is itself allocated"
msgstr ""
-#: fortran/resolve.c:7214
+#: fortran/resolve.c:7426
#, gcc-internal-format, gfc-internal-format
msgid "Expected '*' in coindex specification in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7225
+#: fortran/resolve.c:7437
#, gcc-internal-format, gfc-internal-format
msgid "Bad coarray specification in ALLOCATE statement at %L"
msgstr ""
-#: fortran/resolve.c:7255
+#: fortran/resolve.c:7467
#, gcc-internal-format, gfc-internal-format
msgid "Stat-variable at %L must be a scalar INTEGER variable"
msgstr ""
-#: fortran/resolve.c:7278
+#: fortran/resolve.c:7490
#, gcc-internal-format, gfc-internal-format
msgid "Stat-variable at %L shall not be %sd within the same %s statement"
msgstr ""
-#: fortran/resolve.c:7289
+#: fortran/resolve.c:7501
#, gcc-internal-format, gfc-internal-format
msgid "ERRMSG at %L is useless without a STAT tag"
msgstr ""
-#: fortran/resolve.c:7299
+#: fortran/resolve.c:7511
#, gcc-internal-format, gfc-internal-format
msgid "Errmsg-variable at %L must be a scalar CHARACTER variable"
msgstr ""
-#: fortran/resolve.c:7322
+#: fortran/resolve.c:7534
#, gcc-internal-format, gfc-internal-format
msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
msgstr ""
-#: fortran/resolve.c:7352
+#: fortran/resolve.c:7564
#, gcc-internal-format, gfc-internal-format
msgid "Allocate-object at %L also appears at %L"
msgstr ""
-#: fortran/resolve.c:7358 fortran/resolve.c:7364
+#: fortran/resolve.c:7570 fortran/resolve.c:7576
#, gcc-internal-format, gfc-internal-format
msgid "Allocate-object at %L is subobject of object at %L"
msgstr ""
@@ -43832,193 +44199,193 @@ msgstr ""
#. element in the list. Either way, we must
#. issue an error and get the next case from P.
#. FIXME: Sort P and Q by line number.
-#: fortran/resolve.c:7559
+#: fortran/resolve.c:7772
#, gcc-internal-format, gfc-internal-format
msgid "CASE label at %L overlaps with CASE label at %L"
msgstr ""
-#: fortran/resolve.c:7610
+#: fortran/resolve.c:7823
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L must be of type %s"
msgstr ""
-#: fortran/resolve.c:7621
+#: fortran/resolve.c:7834
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L must be of kind %d"
msgstr ""
-#: fortran/resolve.c:7634
+#: fortran/resolve.c:7847
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:7680
+#: fortran/resolve.c:7893
#, gcc-internal-format, gfc-internal-format
msgid ""
"Selection expression in computed GOTO statement at %L must be a scalar "
"integer expression"
msgstr ""
-#: fortran/resolve.c:7698
+#: fortran/resolve.c:7911
#, gcc-internal-format, gfc-internal-format
msgid "Argument of SELECT statement at %L cannot be %s"
msgstr ""
-#: fortran/resolve.c:7716 fortran/resolve.c:7724
+#: fortran/resolve.c:7929 fortran/resolve.c:7937
#, gcc-internal-format, gfc-internal-format
msgid "Expression in CASE statement at %L is not in the range of %s"
msgstr ""
-#: fortran/resolve.c:7786 fortran/resolve.c:8113
+#: fortran/resolve.c:7999 fortran/resolve.c:8326
#, gcc-internal-format, gfc-internal-format
msgid ""
"The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
msgstr ""
-#: fortran/resolve.c:7812
+#: fortran/resolve.c:8025
#, gcc-internal-format, gfc-internal-format
msgid "Logical range in CASE statement at %L is not allowed"
msgstr ""
-#: fortran/resolve.c:7824
+#: fortran/resolve.c:8037
#, gcc-internal-format, gfc-internal-format
msgid "Constant logical value in CASE statement is repeated at %L"
msgstr ""
-#: fortran/resolve.c:7838
+#: fortran/resolve.c:8051
#, gcc-internal-format, gfc-internal-format
msgid "Range specification at %L can never be matched"
msgstr ""
-#: fortran/resolve.c:7941
+#: fortran/resolve.c:8154
#, gcc-internal-format, gfc-internal-format
msgid "Logical SELECT CASE block at %L has more that two cases"
msgstr ""
-#: fortran/resolve.c:8006
+#: fortran/resolve.c:8219
#, gcc-internal-format, gfc-internal-format
msgid "Associate-name '%s' at %L is used as array"
msgstr ""
-#: fortran/resolve.c:8016
+#: fortran/resolve.c:8229
#, gcc-internal-format, gfc-internal-format
msgid "CLASS selector at %L needs a temporary which is not yet implemented"
msgstr ""
-#: fortran/resolve.c:8065
+#: fortran/resolve.c:8278
#, gcc-internal-format, gfc-internal-format
msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
msgstr ""
-#: fortran/resolve.c:8091
+#: fortran/resolve.c:8304
#, gcc-internal-format, gfc-internal-format
msgid "Derived type '%s' at %L must be extensible"
msgstr ""
-#: fortran/resolve.c:8101
+#: fortran/resolve.c:8314
#, gcc-internal-format, gfc-internal-format
msgid "Derived type '%s' at %L must be an extension of '%s'"
msgstr ""
-#: fortran/resolve.c:8273
+#: fortran/resolve.c:8486
#, gcc-internal-format, gfc-internal-format
msgid "Double CLASS IS block in SELECT TYPE statement at %L"
msgstr ""
-#: fortran/resolve.c:8364
+#: fortran/resolve.c:8577
#, gcc-internal-format, gfc-internal-format
msgid "NULL intrinsic at %L in data transfer statement requires MOLD="
msgstr ""
#. FIXME: Test for defined input/output.
-#: fortran/resolve.c:8392
+#: fortran/resolve.c:8605
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot be polymorphic unless it is processed by "
"a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:8404
+#: fortran/resolve.c:8617
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot have POINTER components unless it is "
"processed by a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:8413
+#: fortran/resolve.c:8626
#, gcc-internal-format, gfc-internal-format
msgid "Data transfer element at %L cannot have procedure pointer components"
msgstr ""
-#: fortran/resolve.c:8420
+#: fortran/resolve.c:8633
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot have ALLOCATABLE components unless it is "
"processed by a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:8428
+#: fortran/resolve.c:8641
#, gcc-internal-format, gfc-internal-format
msgid "Data transfer element at %L cannot have PRIVATE components"
msgstr ""
-#: fortran/resolve.c:8437
+#: fortran/resolve.c:8650
#, gcc-internal-format, gfc-internal-format
msgid ""
"Data transfer element at %L cannot be a full reference to an assumed-size "
"array"
msgstr ""
-#: fortran/resolve.c:8487
+#: fortran/resolve.c:8700
#, gcc-internal-format, gfc-internal-format
msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
msgstr ""
-#: fortran/resolve.c:8494 fortran/resolve.c:8558
+#: fortran/resolve.c:8707 fortran/resolve.c:8771
#, gcc-internal-format, gfc-internal-format
msgid "STAT= argument at %L must be a scalar INTEGER variable"
msgstr ""
-#: fortran/resolve.c:8506 fortran/resolve.c:8565
+#: fortran/resolve.c:8719 fortran/resolve.c:8778
#, gcc-internal-format, gfc-internal-format
msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
msgstr ""
-#: fortran/resolve.c:8518
+#: fortran/resolve.c:8731
#, gcc-internal-format, gfc-internal-format
msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
msgstr ""
-#: fortran/resolve.c:8535
+#: fortran/resolve.c:8748
#, gcc-internal-format, gfc-internal-format
msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
msgstr ""
-#: fortran/resolve.c:8539 fortran/resolve.c:8549
+#: fortran/resolve.c:8752 fortran/resolve.c:8762
#, gcc-internal-format, gfc-internal-format
msgid "Imageset argument at %L must between 1 and num_images()"
msgstr ""
-#: fortran/resolve.c:8592
+#: fortran/resolve.c:8805
#, gcc-internal-format, gfc-internal-format
msgid ""
"Statement at %L is not a valid branch target statement for the branch "
"statement at %L"
msgstr ""
-#: fortran/resolve.c:8601
+#: fortran/resolve.c:8814
#, gcc-internal-format, gfc-internal-format
msgid "Branch at %L may result in an infinite loop"
msgstr ""
#. Note: A label at END CRITICAL does not leave the CRITICAL
#. construct as END CRITICAL is still part of it.
-#: fortran/resolve.c:8618 fortran/resolve.c:8641
+#: fortran/resolve.c:8831 fortran/resolve.c:8854
#, gcc-internal-format, gfc-internal-format
msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
msgstr ""
-#: fortran/resolve.c:8622 fortran/resolve.c:8647
+#: fortran/resolve.c:8835 fortran/resolve.c:8860
#, gcc-internal-format, gfc-internal-format
msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
msgstr ""
@@ -44026,129 +44393,129 @@ msgstr ""
#. The label is not in an enclosing block, so illegal. This was
#. allowed in Fortran 66, so we allow it as extension. No
#. further checks are necessary in this case.
-#: fortran/resolve.c:8662
+#: fortran/resolve.c:8875
#, gcc-internal-format, gfc-internal-format
msgid "Label at %L is not in the same block as the GOTO statement at %L"
msgstr ""
-#: fortran/resolve.c:8734
+#: fortran/resolve.c:8947
#, gcc-internal-format, gfc-internal-format
msgid "WHERE mask at %L has inconsistent shape"
msgstr ""
-#: fortran/resolve.c:8750
+#: fortran/resolve.c:8963
#, gcc-internal-format, gfc-internal-format
msgid "WHERE assignment target at %L has inconsistent shape"
msgstr ""
-#: fortran/resolve.c:8758 fortran/resolve.c:8845
+#: fortran/resolve.c:8971 fortran/resolve.c:9058
#, gcc-internal-format, gfc-internal-format
msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
msgstr ""
-#: fortran/resolve.c:8768 fortran/resolve.c:8855
+#: fortran/resolve.c:8981 fortran/resolve.c:9068
#, gcc-internal-format, gfc-internal-format
msgid "Unsupported statement inside WHERE at %L"
msgstr ""
-#: fortran/resolve.c:8799
+#: fortran/resolve.c:9012
#, gcc-internal-format, gfc-internal-format
msgid "Assignment to a FORALL index variable at %L"
msgstr ""
-#: fortran/resolve.c:8808
+#: fortran/resolve.c:9021
#, gcc-internal-format, gfc-internal-format
msgid ""
"The FORALL with index '%s' is not used on the left side of the assignment at "
"%L and so might cause multiple assignment to this object"
msgstr ""
-#: fortran/resolve.c:8977
+#: fortran/resolve.c:9190
#, gcc-internal-format, gfc-internal-format
msgid "An outer FORALL construct already has an index with this name %L"
msgstr ""
-#: fortran/resolve.c:9057
+#: fortran/resolve.c:9270
#, gcc-internal-format, gfc-internal-format
msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
msgstr ""
-#: fortran/resolve.c:9211
+#: fortran/resolve.c:9424
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
msgstr ""
-#: fortran/resolve.c:9243
+#: fortran/resolve.c:9456
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed expression at %L is assigned to a derived type variable with a "
"POINTER component in a PURE procedure"
msgstr ""
-#: fortran/resolve.c:9248
+#: fortran/resolve.c:9461
#, gcc-internal-format, gfc-internal-format
msgid ""
"The impure variable at %L is assigned to a derived type variable with a "
"POINTER component in a PURE procedure (12.6)"
msgstr ""
-#: fortran/resolve.c:9258
+#: fortran/resolve.c:9471
#, gcc-internal-format, gfc-internal-format
msgid "Assignment to coindexed variable at %L in a PURE procedure"
msgstr ""
-#: fortran/resolve.c:9289
+#: fortran/resolve.c:9502
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable must not be polymorphic in intrinsic assignment at %L - check that "
"there is a matching specific subroutine for '=' operator"
msgstr ""
-#: fortran/resolve.c:9298
+#: fortran/resolve.c:9511
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coindexed variable must not be have an allocatable ultimate component in "
"assignment at %L"
msgstr ""
-#: fortran/resolve.c:9433
+#: fortran/resolve.c:9646
#, gcc-internal-format, gfc-internal-format
msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
msgstr ""
-#: fortran/resolve.c:9436
+#: fortran/resolve.c:9649
#, gcc-internal-format, gfc-internal-format
msgid "Variable '%s' has not been assigned a target label at %L"
msgstr ""
-#: fortran/resolve.c:9447
+#: fortran/resolve.c:9660
#, gcc-internal-format, gfc-internal-format
msgid ""
"Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
msgstr ""
-#: fortran/resolve.c:9482
+#: fortran/resolve.c:9695
#, gcc-internal-format, gfc-internal-format
msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
msgstr ""
-#: fortran/resolve.c:9515
+#: fortran/resolve.c:9728
#, gcc-internal-format, gfc-internal-format
msgid "Arithmetic IF statement at %L requires a numeric expression"
msgstr ""
-#: fortran/resolve.c:9574
+#: fortran/resolve.c:9787
#, gcc-internal-format, gfc-internal-format
msgid ""
"Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
msgstr ""
-#: fortran/resolve.c:9658
+#: fortran/resolve.c:9871
#, gcc-internal-format, gfc-internal-format
msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
msgstr ""
-#: fortran/resolve.c:9740 fortran/resolve.c:9793
+#: fortran/resolve.c:9953 fortran/resolve.c:10006
#, gcc-internal-format, gfc-internal-format
msgid ""
"Binding label '%s' for common block '%s' at %L collides with the global "
@@ -44156,14 +44523,14 @@ msgid ""
msgstr ""
#. Common block names match but binding labels do not.
-#: fortran/resolve.c:9758
+#: fortran/resolve.c:9971
#, gcc-internal-format, gfc-internal-format
msgid ""
"Binding label '%s' for common block '%s' at %L does not match the binding "
"label '%s' for common block '%s' at %L"
msgstr ""
-#: fortran/resolve.c:9805
+#: fortran/resolve.c:10018
#, gcc-internal-format, gfc-internal-format
msgid ""
"Binding label '%s' for common block '%s' at %L collides with global entity "
@@ -44171,278 +44538,278 @@ msgid ""
msgstr ""
#. Make sure global procedures don't collide with anything.
-#: fortran/resolve.c:9857
+#: fortran/resolve.c:10070
#, gcc-internal-format, gfc-internal-format
msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
msgstr ""
#. Make sure procedures in interface bodies don't collide.
-#: fortran/resolve.c:9870
+#: fortran/resolve.c:10083
#, gcc-internal-format, gfc-internal-format
msgid ""
"Binding label '%s' in interface body at %L collides with the global entity "
"'%s' at %L"
msgstr ""
-#: fortran/resolve.c:9883
+#: fortran/resolve.c:10096
#, gcc-internal-format, gfc-internal-format
msgid "Binding label '%s' at %L collides with global entity '%s' at %L"
msgstr ""
-#: fortran/resolve.c:9974
+#: fortran/resolve.c:10187
#, gcc-internal-format, gfc-internal-format
msgid ""
"CHARACTER variable at %L has negative length %d, the length has been set to "
"zero"
msgstr ""
-#: fortran/resolve.c:9987
+#: fortran/resolve.c:10200
#, gcc-internal-format, gfc-internal-format
msgid "String length at %L is too large"
msgstr ""
-#: fortran/resolve.c:10325
+#: fortran/resolve.c:10538
#, gcc-internal-format, gfc-internal-format
-msgid "Allocatable array '%s' at %L must have a deferred shape"
+msgid "Allocatable array '%s' at %L must have a deferred shape or assumed rank"
msgstr ""
-#: fortran/resolve.c:10329
+#: fortran/resolve.c:10542
#, gcc-internal-format, gfc-internal-format
msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:10337
+#: fortran/resolve.c:10550
#, gcc-internal-format, gfc-internal-format
-msgid "Array pointer '%s' at %L must have a deferred shape"
+msgid "Array pointer '%s' at %L must have a deferred shape or assumed rank"
msgstr ""
-#: fortran/resolve.c:10347
+#: fortran/resolve.c:10560
#, gcc-internal-format, gfc-internal-format
msgid "Array '%s' at %L cannot have a deferred shape"
msgstr ""
-#: fortran/resolve.c:10360
+#: fortran/resolve.c:10573
#, gcc-internal-format, gfc-internal-format
msgid "Type '%s' of CLASS variable '%s' at %L is not extensible"
msgstr ""
-#: fortran/resolve.c:10372
+#: fortran/resolve.c:10585
#, gcc-internal-format, gfc-internal-format
msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer"
msgstr ""
-#: fortran/resolve.c:10403
+#: fortran/resolve.c:10616
#, gcc-internal-format, gfc-internal-format
msgid ""
"The type '%s' cannot be host associated at %L because it is blocked by an "
"incompatible object of the same name declared at %L"
msgstr ""
-#: fortran/resolve.c:10425
+#: fortran/resolve.c:10638
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the "
-"default initialization"
+"Implied SAVE for module variable '%s' at %L, needed due to the default "
+"initialization"
msgstr ""
#. The shape of a main program or module array needs to be
#. constant.
-#: fortran/resolve.c:10472
+#: fortran/resolve.c:10685
#, gcc-internal-format, gfc-internal-format
msgid "The module or main program array '%s' at %L must have constant shape"
msgstr ""
-#: fortran/resolve.c:10481
+#: fortran/resolve.c:10694
#, gcc-internal-format, gfc-internal-format
msgid ""
"Entity '%s' at %L has a deferred type parameter and requires either the "
"pointer or allocatable attribute"
msgstr ""
-#: fortran/resolve.c:10495
+#: fortran/resolve.c:10708
#, gcc-internal-format, gfc-internal-format
msgid ""
"Entity with assumed character length at %L must be a dummy argument or a "
"PARAMETER"
msgstr ""
-#: fortran/resolve.c:10514
+#: fortran/resolve.c:10727
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L must have constant character length in this context"
msgstr ""
-#: fortran/resolve.c:10520
+#: fortran/resolve.c:10733
#, gcc-internal-format, gfc-internal-format
msgid "COMMON variable '%s' at %L must have constant character length"
msgstr ""
-#: fortran/resolve.c:10565
+#: fortran/resolve.c:10778
#, gcc-internal-format, gfc-internal-format
msgid "Allocatable '%s' at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:10568
+#: fortran/resolve.c:10781
#, gcc-internal-format, gfc-internal-format
msgid "External '%s' at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:10572
+#: fortran/resolve.c:10785
#, gcc-internal-format, gfc-internal-format
msgid "Dummy '%s' at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:10575
+#: fortran/resolve.c:10788
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic '%s' at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:10578
+#: fortran/resolve.c:10791
#, gcc-internal-format, gfc-internal-format
msgid "Function result '%s' at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:10581
+#: fortran/resolve.c:10794
#, gcc-internal-format, gfc-internal-format
msgid "Automatic array '%s' at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:10618
+#: fortran/resolve.c:10831
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character-valued statement function '%s' at %L must have constant length"
msgstr ""
-#: fortran/resolve.c:10640
+#: fortran/resolve.c:10853
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of "
-"'%s', which is PUBLIC at %L"
+"'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is "
+"PUBLIC at %L"
msgstr ""
-#: fortran/resolve.c:10662 fortran/resolve.c:10686
+#: fortran/resolve.c:10875 fortran/resolve.c:10899
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy "
-"arguments of '%s' which is PRIVATE"
+"Procedure '%s' in PUBLIC interface '%s' at %L takes dummy arguments of '%s' "
+"which is PRIVATE"
msgstr ""
-#: fortran/resolve.c:10704
+#: fortran/resolve.c:10917
#, gcc-internal-format, gfc-internal-format
msgid "Function '%s' at %L cannot have an initializer"
msgstr ""
-#: fortran/resolve.c:10713
+#: fortran/resolve.c:10926
#, gcc-internal-format, gfc-internal-format
msgid "External object '%s' at %L may not have an initializer"
msgstr ""
-#: fortran/resolve.c:10721
+#: fortran/resolve.c:10934
#, gcc-internal-format, gfc-internal-format
msgid "ELEMENTAL function '%s' at %L must have a scalar result"
msgstr ""
-#: fortran/resolve.c:10731
+#: fortran/resolve.c:10944
#, gcc-internal-format, gfc-internal-format
msgid ""
"Statement function '%s' at %L may not have pointer or allocatable attribute"
msgstr ""
-#: fortran/resolve.c:10750
+#: fortran/resolve.c:10963
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
msgstr ""
-#: fortran/resolve.c:10754
+#: fortran/resolve.c:10967
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
msgstr ""
-#: fortran/resolve.c:10758
+#: fortran/resolve.c:10971
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER(*) function '%s' at %L cannot be pure"
msgstr ""
-#: fortran/resolve.c:10762
+#: fortran/resolve.c:10975
#, gcc-internal-format, gfc-internal-format
msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
msgstr ""
-#: fortran/resolve.c:10774
+#: fortran/resolve.c:10988
#, gcc-internal-format, gfc-internal-format
-msgid "Obsolescent feature: CHARACTER(*) function '%s' at %L"
+msgid "CHARACTER(*) function '%s' at %L"
msgstr ""
-#: fortran/resolve.c:10829
+#: fortran/resolve.c:11042
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
msgstr ""
-#: fortran/resolve.c:10835
+#: fortran/resolve.c:11048
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
msgstr ""
-#: fortran/resolve.c:10841
+#: fortran/resolve.c:11054
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L"
msgstr ""
-#: fortran/resolve.c:10849
+#: fortran/resolve.c:11062
#, gcc-internal-format, gfc-internal-format
msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L"
msgstr ""
-#: fortran/resolve.c:10855
+#: fortran/resolve.c:11068
#, gcc-internal-format, gfc-internal-format
msgid "Procedure pointer result '%s' at %L is missing the pointer attribute"
msgstr ""
-#: fortran/resolve.c:10901
+#: fortran/resolve.c:11114
#, gcc-internal-format, gfc-internal-format
msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
msgstr ""
-#: fortran/resolve.c:10909
+#: fortran/resolve.c:11122
#, gcc-internal-format, gfc-internal-format
msgid "FINAL procedure at %L must have exactly one argument"
msgstr ""
-#: fortran/resolve.c:10918
+#: fortran/resolve.c:11131
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must be of type '%s'"
msgstr ""
-#: fortran/resolve.c:10926
+#: fortran/resolve.c:11139
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be a POINTER"
msgstr ""
-#: fortran/resolve.c:10932
+#: fortran/resolve.c:11145
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:10938
+#: fortran/resolve.c:11151
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
msgstr ""
-#: fortran/resolve.c:10946
+#: fortran/resolve.c:11159
#, gcc-internal-format, gfc-internal-format
msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
msgstr ""
-#: fortran/resolve.c:10954
+#: fortran/resolve.c:11167
#, gcc-internal-format, gfc-internal-format
msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
msgstr ""
-#: fortran/resolve.c:10973
+#: fortran/resolve.c:11186
#, gcc-internal-format, gfc-internal-format
msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
msgstr ""
-#: fortran/resolve.c:11006
+#: fortran/resolve.c:11219
#, gcc-internal-format, gfc-internal-format
msgid ""
"Only array FINAL procedures declared for derived type '%s' defined at %L, "
@@ -44450,872 +44817,886 @@ msgid ""
msgstr ""
#. TODO: Remove this error when finalization is finished.
-#: fortran/resolve.c:11011
+#: fortran/resolve.c:11224
#, gcc-internal-format, gfc-internal-format
msgid "Finalization at %L is not yet implemented"
msgstr ""
-#: fortran/resolve.c:11042
+#: fortran/resolve.c:11256
#, gcc-internal-format, gfc-internal-format
msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
msgstr ""
-#: fortran/resolve.c:11052
+#: fortran/resolve.c:11278
#, gcc-internal-format, gfc-internal-format
msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
msgstr ""
-#: fortran/resolve.c:11111
+#: fortran/resolve.c:11337
#, gcc-internal-format, gfc-internal-format
msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
msgstr ""
-#: fortran/resolve.c:11123
+#: fortran/resolve.c:11349
#, gcc-internal-format, gfc-internal-format
msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
msgstr ""
-#: fortran/resolve.c:11153
+#: fortran/resolve.c:11379
#, gcc-internal-format, gfc-internal-format
msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
msgstr ""
-#: fortran/resolve.c:11209
+#: fortran/resolve.c:11435
#, gcc-internal-format, gfc-internal-format
msgid "Type-bound operator at %L can't be NOPASS"
msgstr ""
-#: fortran/resolve.c:11373
+#: fortran/resolve.c:11621
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' must be a module procedure or an external procedure with an explicit "
"interface at %L"
msgstr ""
-#: fortran/resolve.c:11410
+#: fortran/resolve.c:11660
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
msgstr ""
-#: fortran/resolve.c:11424
+#: fortran/resolve.c:11674
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' with PASS at %L must have at least one argument"
msgstr ""
-#: fortran/resolve.c:11438 fortran/resolve.c:11901
+#: fortran/resolve.c:11688 fortran/resolve.c:12145
#, gcc-internal-format, gfc-internal-format
msgid "Non-polymorphic passed-object dummy argument of '%s' at %L"
msgstr ""
-#: fortran/resolve.c:11446
+#: fortran/resolve.c:11696
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
msgstr ""
-#: fortran/resolve.c:11455
+#: fortran/resolve.c:11705
#, gcc-internal-format, gfc-internal-format
msgid "Passed-object dummy argument of '%s' at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:11461
+#: fortran/resolve.c:11711
#, gcc-internal-format, gfc-internal-format
msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:11467
+#: fortran/resolve.c:11717
#, gcc-internal-format, gfc-internal-format
msgid "Passed-object dummy argument of '%s' at %L must not be POINTER"
msgstr ""
-#: fortran/resolve.c:11496
+#: fortran/resolve.c:11746
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' at %L has the same name as a component of '%s'"
msgstr ""
-#: fortran/resolve.c:11505
+#: fortran/resolve.c:11755
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure '%s' at %L has the same name as an inherited component of '%s'"
msgstr ""
-#: fortran/resolve.c:11600
+#: fortran/resolve.c:11850
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED "
"and not overridden"
msgstr ""
-#: fortran/resolve.c:11658
+#: fortran/resolve.c:11908
#, gcc-internal-format, gfc-internal-format
msgid ""
"As extending type '%s' at %L has a coarray component, parent type '%s' shall "
"also have one"
msgstr ""
-#: fortran/resolve.c:11671
+#: fortran/resolve.c:11921
#, gcc-internal-format, gfc-internal-format
msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
msgstr ""
-#: fortran/resolve.c:11684
+#: fortran/resolve.c:11937
#, gcc-internal-format, gfc-internal-format
msgid "Deferred-length character component '%s' at %L is not yet supported"
msgstr ""
-#: fortran/resolve.c:11694
+#: fortran/resolve.c:11947
#, gcc-internal-format, gfc-internal-format
msgid "Coarray component '%s' at %L must be allocatable with deferred shape"
msgstr ""
-#: fortran/resolve.c:11703
+#: fortran/resolve.c:11956
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
msgstr ""
-#: fortran/resolve.c:11713
+#: fortran/resolve.c:11966
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component '%s' at %L with coarray component shall be a nonpointer, "
"nonallocatable scalar"
msgstr ""
-#: fortran/resolve.c:11722
+#: fortran/resolve.c:11975
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer"
msgstr ""
-#: fortran/resolve.c:11730
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Interface '%s', used by procedure pointer component '%s' at %L, is declared "
-"in a later PROCEDURE statement"
-msgstr ""
-
-#: fortran/resolve.c:11795
-#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Interface '%s' of procedure pointer component '%s' at %L must be explicit"
-msgstr ""
-
-#: fortran/resolve.c:11835
+#: fortran/resolve.c:12079
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'"
msgstr ""
-#: fortran/resolve.c:11849
+#: fortran/resolve.c:12093
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure pointer component '%s' with PASS at %L must have at least one "
"argument"
msgstr ""
-#: fortran/resolve.c:11865
+#: fortran/resolve.c:12109
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'"
msgstr ""
-#: fortran/resolve.c:11875
+#: fortran/resolve.c:12119
#, gcc-internal-format, gfc-internal-format
msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar"
msgstr ""
-#: fortran/resolve.c:11884
+#: fortran/resolve.c:12128
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute"
msgstr ""
-#: fortran/resolve.c:11893
+#: fortran/resolve.c:12137
#, gcc-internal-format, gfc-internal-format
msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:11930
+#: fortran/resolve.c:12174
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component '%s' of '%s' at %L has the same name as an inherited type-bound "
"procedure"
msgstr ""
-#: fortran/resolve.c:11943
+#: fortran/resolve.c:12187
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character length of component '%s' needs to be a constant specification "
"expression at %L"
msgstr ""
-#: fortran/resolve.c:11954
+#: fortran/resolve.c:12198
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character component '%s' of '%s' at %L with deferred length must be a "
"POINTER or ALLOCATABLE"
msgstr ""
-#: fortran/resolve.c:11966
+#: fortran/resolve.c:12210
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component "
-"of '%s', which is PUBLIC at %L"
+"the component '%s' is a PRIVATE type and cannot be a component of '%s', "
+"which is PUBLIC at %L"
msgstr ""
-#: fortran/resolve.c:11974
+#: fortran/resolve.c:12218
#, gcc-internal-format, gfc-internal-format
msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
msgstr ""
-#: fortran/resolve.c:11983
+#: fortran/resolve.c:12227
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component %s of SEQUENCE type declared at %L does not have the SEQUENCE "
"attribute"
msgstr ""
-#: fortran/resolve.c:12001 fortran/resolve.c:12012
+#: fortran/resolve.c:12245 fortran/resolve.c:12256
#, gcc-internal-format, gfc-internal-format
msgid ""
"The pointer component '%s' of '%s' at %L is a type that has not been declared"
msgstr ""
-#: fortran/resolve.c:12024
+#: fortran/resolve.c:12268
#, gcc-internal-format, gfc-internal-format
msgid "Component '%s' with CLASS at %L must be allocatable or pointer"
msgstr ""
-#: fortran/resolve.c:12074
+#: fortran/resolve.c:12318
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: Generic name '%s' of function '%s' at %L being the same name "
-"as derived type at %L"
+"Generic name '%s' of function '%s' at %L being the same name as derived type "
+"at %L"
msgstr ""
-#: fortran/resolve.c:12126
+#: fortran/resolve.c:12370
#, gcc-internal-format, gfc-internal-format
msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed"
msgstr ""
-#: fortran/resolve.c:12132
+#: fortran/resolve.c:12376
#, gcc-internal-format, gfc-internal-format
-msgid ""
-"Fortran 2003: NAMELIST array object '%s' with assumed shape in namelist '%s' "
-"at %L"
+msgid "NAMELIST array object '%s' with assumed shape in namelist '%s' at %L"
msgstr ""
-#: fortran/resolve.c:12139
+#: fortran/resolve.c:12383
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: NAMELIST array object '%s' with nonconstant shape in namelist "
-"'%s' at %L"
+"NAMELIST array object '%s' with nonconstant shape in namelist '%s' at %L"
msgstr ""
-#: fortran/resolve.c:12148
+#: fortran/resolve.c:12392
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: NAMELIST object '%s' with nonconstant character length in "
-"namelist '%s' at %L"
+"NAMELIST object '%s' with nonconstant character length in namelist '%s' at %L"
msgstr ""
-#: fortran/resolve.c:12158
+#: fortran/resolve.c:12402
#, gcc-internal-format, gfc-internal-format
msgid ""
"NAMELIST object '%s' in namelist '%s' at %L is polymorphic and requires a "
"defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:12168
+#: fortran/resolve.c:12412
#, gcc-internal-format, gfc-internal-format
msgid ""
-"Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE "
-"or POINTER components"
+"NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER "
+"components"
msgstr ""
#. FIXME: Once UDDTIO is implemented, the following can be
#. removed.
-#: fortran/resolve.c:12176
+#: fortran/resolve.c:12420
#, gcc-internal-format, gfc-internal-format
msgid ""
"NAMELIST object '%s' in namelist '%s' at %L has ALLOCATABLE or POINTER "
"components and thus requires a defined input/output procedure"
msgstr ""
-#: fortran/resolve.c:12193
+#: fortran/resolve.c:12437
#, gcc-internal-format, gfc-internal-format
msgid ""
"NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC "
"namelist '%s' at %L"
msgstr ""
-#: fortran/resolve.c:12203
+#: fortran/resolve.c:12447
#, gcc-internal-format, gfc-internal-format
msgid ""
"NAMELIST object '%s' has use-associated PRIVATE components and cannot be "
"member of namelist '%s' at %L"
msgstr ""
-#: fortran/resolve.c:12214
+#: fortran/resolve.c:12458
#, gcc-internal-format, gfc-internal-format
msgid ""
"NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC "
"namelist '%s' at %L"
msgstr ""
-#: fortran/resolve.c:12241
+#: fortran/resolve.c:12485
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
msgstr ""
-#: fortran/resolve.c:12260
+#: fortran/resolve.c:12504
#, gcc-internal-format, gfc-internal-format
msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape"
msgstr ""
-#: fortran/resolve.c:12272
+#: fortran/resolve.c:12516
#, gcc-internal-format, gfc-internal-format
msgid ""
"Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:12283
+#: fortran/resolve.c:12527
#, gcc-internal-format, gfc-internal-format
msgid "Incompatible derived type in PARAMETER at %L"
msgstr ""
-#: fortran/resolve.c:12356
+#: fortran/resolve.c:12602
#, gcc-internal-format, gfc-internal-format
msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
msgstr ""
-#: fortran/resolve.c:12359
+#: fortran/resolve.c:12605
#, gcc-internal-format, gfc-internal-format
msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
msgstr ""
-#: fortran/resolve.c:12442
+#: fortran/resolve.c:12689
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an "
-"assumed-shape array"
+"assumed-shape or assumed-rank array"
msgstr ""
-#: fortran/resolve.c:12460
+#: fortran/resolve.c:12707
#, gcc-internal-format, gfc-internal-format
msgid "Assumed size array at %L must be a dummy argument"
msgstr ""
-#: fortran/resolve.c:12463
+#: fortran/resolve.c:12710
#, gcc-internal-format, gfc-internal-format
msgid "Assumed shape array at %L must be a dummy argument"
msgstr ""
-#: fortran/resolve.c:12476
+#: fortran/resolve.c:12717
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank array at %L must be a dummy argument"
+msgstr ""
+
+#: fortran/resolve.c:12724
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
+msgstr ""
+
+#: fortran/resolve.c:12737
#, gcc-internal-format, gfc-internal-format
msgid "Symbol at %L is not a DUMMY variable"
msgstr ""
-#: fortran/resolve.c:12482
+#: fortran/resolve.c:12743
#, gcc-internal-format, gfc-internal-format
msgid ""
"'%s' at %L cannot have the VALUE attribute because it is not a dummy argument"
msgstr ""
-#: fortran/resolve.c:12492
+#: fortran/resolve.c:12753
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character dummy variable '%s' at %L with VALUE attribute must have constant "
"length"
msgstr ""
-#: fortran/resolve.c:12501
+#: fortran/resolve.c:12762
#, gcc-internal-format, gfc-internal-format
msgid ""
"C interoperable character dummy variable '%s' at %L with VALUE attribute "
"must have length one"
msgstr ""
-#: fortran/resolve.c:12514 fortran/resolve.c:12620
+#: fortran/resolve.c:12775 fortran/resolve.c:12888
#, gcc-internal-format, gfc-internal-format
msgid "The derived type '%s' at %L is of type '%s', which has not been defined"
msgstr ""
-#: fortran/resolve.c:12527
+#: fortran/resolve.c:12788
#, gcc-internal-format, gfc-internal-format
msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
msgstr ""
-#: fortran/resolve.c:12534
+#: fortran/resolve.c:12795
#, gcc-internal-format, gfc-internal-format
msgid ""
"Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, "
"POINTER or VALUE attribute"
msgstr ""
-#: fortran/resolve.c:12541
+#: fortran/resolve.c:12802
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
+msgstr ""
+
+#: fortran/resolve.c:12809
#, gcc-internal-format, gfc-internal-format
msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
msgstr ""
-#: fortran/resolve.c:12566
+#: fortran/resolve.c:12834
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block "
"nor declared at the module level scope"
msgstr ""
-#: fortran/resolve.c:12646
+#: fortran/resolve.c:12914
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
+msgid "PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
msgstr ""
-#: fortran/resolve.c:12660
+#: fortran/resolve.c:12928
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE "
"must be a coarray"
msgstr ""
-#: fortran/resolve.c:12678
+#: fortran/resolve.c:12946
#, gcc-internal-format, gfc-internal-format
msgid ""
"The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have "
"a default initializer"
msgstr ""
-#: fortran/resolve.c:12690
+#: fortran/resolve.c:12958
#, gcc-internal-format, gfc-internal-format
msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)"
msgstr ""
-#: fortran/resolve.c:12702
+#: fortran/resolve.c:12970
#, gcc-internal-format, gfc-internal-format
msgid ""
"Function result '%s' at %L shall not be a coarray or have a coarray component"
msgstr ""
-#: fortran/resolve.c:12711
+#: fortran/resolve.c:12979
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
msgstr ""
-#: fortran/resolve.c:12723
+#: fortran/resolve.c:12991
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L with coarray component shall be a nonpointer, "
"nonallocatable scalar"
msgstr ""
-#: fortran/resolve.c:12738
+#: fortran/resolve.c:13006
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy "
"argument"
msgstr ""
-#: fortran/resolve.c:12746
+#: fortran/resolve.c:13014
#, gcc-internal-format, gfc-internal-format
msgid ""
"Coarray variable '%s' at %L shall not have codimensions with deferred shape"
msgstr ""
-#: fortran/resolve.c:12753
+#: fortran/resolve.c:13021
#, gcc-internal-format, gfc-internal-format
msgid "Allocatable coarray variable '%s' at %L must have deferred shape"
msgstr ""
-#: fortran/resolve.c:12765
+#: fortran/resolve.c:13033
#, gcc-internal-format, gfc-internal-format
msgid ""
"Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable "
"coarray or have coarray components"
msgstr ""
-#: fortran/resolve.c:12774
+#: fortran/resolve.c:13042
#, gcc-internal-format, gfc-internal-format
msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'"
msgstr ""
-#: fortran/resolve.c:12846
+#: fortran/resolve.c:13115
#, gcc-internal-format, gfc-internal-format
msgid "Threadprivate at %L isn't SAVEd"
msgstr ""
-#: fortran/resolve.c:12940
+#: fortran/resolve.c:13209
#, gcc-internal-format, gfc-internal-format
msgid "BLOCK DATA element '%s' at %L must be in COMMON"
msgstr ""
-#: fortran/resolve.c:12946
+#: fortran/resolve.c:13215
#, gcc-internal-format, gfc-internal-format
msgid "DATA array '%s' at %L must be specified in a previous declaration"
msgstr ""
-#: fortran/resolve.c:12955
+#: fortran/resolve.c:13224
#, gcc-internal-format, gfc-internal-format
msgid "DATA element '%s' at %L cannot have a coindex"
msgstr ""
-#: fortran/resolve.c:12969
+#: fortran/resolve.c:13238
#, gcc-internal-format, gfc-internal-format
msgid "DATA element '%s' at %L is a pointer and so must be a full array"
msgstr ""
-#: fortran/resolve.c:13015
+#: fortran/resolve.c:13284
#, gcc-internal-format, gfc-internal-format
msgid "Nonconstant array section at %L in DATA statement"
msgstr ""
-#: fortran/resolve.c:13028
+#: fortran/resolve.c:13297
#, gcc-internal-format, gfc-internal-format
msgid "DATA statement at %L has more variables than values"
msgstr ""
-#: fortran/resolve.c:13127
+#: fortran/resolve.c:13396
#, gcc-internal-format, gfc-internal-format
msgid ""
"start of implied-do loop at %L could not be simplified to a constant value"
msgstr ""
-#: fortran/resolve.c:13135
+#: fortran/resolve.c:13404
#, gcc-internal-format, gfc-internal-format
msgid ""
"end of implied-do loop at %L could not be simplified to a constant value"
msgstr ""
-#: fortran/resolve.c:13143
+#: fortran/resolve.c:13412
#, gcc-internal-format, gfc-internal-format
msgid ""
"step of implied-do loop at %L could not be simplified to a constant value"
msgstr ""
-#: fortran/resolve.c:13268
+#: fortran/resolve.c:13537
#, gcc-internal-format, gfc-internal-format
msgid "DATA statement at %L has more values than variables"
msgstr ""
-#: fortran/resolve.c:13407
+#: fortran/resolve.c:13675
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %L defined but not used"
msgstr ""
-#: fortran/resolve.c:13412
+#: fortran/resolve.c:13680
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %L defined but cannot be used"
msgstr ""
-#: fortran/resolve.c:13496
+#: fortran/resolve.c:13764
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type variable '%s' at %L must have SEQUENCE attribute to be an "
"EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:13505
+#: fortran/resolve.c:13773
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an "
"EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:13513
+#: fortran/resolve.c:13781
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type variable '%s' at %L with default initialization cannot be in "
"EQUIVALENCE with a variable in COMMON"
msgstr ""
-#: fortran/resolve.c:13529
+#: fortran/resolve.c:13797
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type variable '%s' at %L with pointer component(s) cannot be an "
"EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:13632
+#: fortran/resolve.c:13900
#, gcc-internal-format, gfc-internal-format
msgid "Syntax error in EQUIVALENCE statement at %L"
msgstr ""
-#: fortran/resolve.c:13647
+#: fortran/resolve.c:13915
#, gcc-internal-format, gfc-internal-format
msgid ""
"Either all or none of the objects in the EQUIVALENCE set at %L shall have "
"the PROTECTED attribute"
msgstr ""
-#: fortran/resolve.c:13659
+#: fortran/resolve.c:13927
#, gcc-internal-format, gfc-internal-format
msgid ""
"Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure "
"procedure '%s'"
msgstr ""
-#: fortran/resolve.c:13668
+#: fortran/resolve.c:13936
#, gcc-internal-format, gfc-internal-format
msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:13747
+#: fortran/resolve.c:14015
#, gcc-internal-format, gfc-internal-format
msgid ""
"Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:13758
+#: fortran/resolve.c:14026
#, gcc-internal-format, gfc-internal-format
msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
msgstr ""
-#: fortran/resolve.c:13769
+#: fortran/resolve.c:14037
#, gcc-internal-format, gfc-internal-format
msgid "Substring at %L has length zero"
msgstr ""
-#: fortran/resolve.c:13812
+#: fortran/resolve.c:14080
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'"
+msgid "PUBLIC function '%s' at %L of PRIVATE type '%s'"
msgstr ""
-#: fortran/resolve.c:13825
+#: fortran/resolve.c:14093
#, gcc-internal-format, gfc-internal-format
msgid "ENTRY '%s' at %L has no IMPLICIT type"
msgstr ""
-#: fortran/resolve.c:13842
+#: fortran/resolve.c:14110
#, gcc-internal-format, gfc-internal-format
msgid "User operator procedure '%s' at %L must be a FUNCTION"
msgstr ""
-#: fortran/resolve.c:13852
+#: fortran/resolve.c:14120
#, gcc-internal-format, gfc-internal-format
msgid "User operator procedure '%s' at %L cannot be assumed character length"
msgstr ""
-#: fortran/resolve.c:13860
+#: fortran/resolve.c:14128
#, gcc-internal-format, gfc-internal-format
msgid "User operator procedure '%s' at %L must have at least one argument"
msgstr ""
-#: fortran/resolve.c:13874
+#: fortran/resolve.c:14142
#, gcc-internal-format, gfc-internal-format
msgid "First argument of operator interface at %L cannot be optional"
msgstr ""
-#: fortran/resolve.c:13892
+#: fortran/resolve.c:14160
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of operator interface at %L cannot be optional"
msgstr ""
-#: fortran/resolve.c:13899
+#: fortran/resolve.c:14167
#, gcc-internal-format, gfc-internal-format
msgid "Operator interface at %L must have, at most, two arguments"
msgstr ""
-#: fortran/resolve.c:13975
+#: fortran/resolve.c:14243
#, gcc-internal-format, gfc-internal-format
msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
msgstr ""
-#: fortran/scanner.c:773
+#: fortran/scanner.c:324
+#, gcc-internal-format, gfc-internal-format
+msgid "Include directory \"%s\": %s"
+msgstr ""
+
+#: fortran/scanner.c:330
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonexistent include directory \"%s\""
+msgstr ""
+
+#: fortran/scanner.c:336
+#, gcc-internal-format, gfc-internal-format
+msgid "\"%s\" is not a directory"
+msgstr ""
+
+#: fortran/scanner.c:794
#, gcc-internal-format, gfc-internal-format
msgid ""
"!$OMP at %C starts a commented line as it neither is followed by a space nor "
"is a continuation line"
msgstr ""
-#: fortran/scanner.c:1052 fortran/scanner.c:1190
+#: fortran/scanner.c:1073 fortran/scanner.c:1211
#, gcc-internal-format, gfc-internal-format
msgid "Line truncated at %L"
msgstr ""
-#: fortran/scanner.c:1102 fortran/scanner.c:1234
+#: fortran/scanner.c:1123 fortran/scanner.c:1255
#, gcc-internal-format, gfc-internal-format
msgid "Limit of %d continuations exceeded in statement at %C"
msgstr ""
-#: fortran/scanner.c:1151
+#: fortran/scanner.c:1172
#, gcc-internal-format, gfc-internal-format
msgid "Missing '&' in continued character constant at %C"
msgstr ""
-#: fortran/scanner.c:1384
+#: fortran/scanner.c:1405
#, gcc-internal-format, gfc-internal-format
msgid "Nonconforming tab character at %C"
msgstr ""
-#: fortran/scanner.c:1472 fortran/scanner.c:1475
+#: fortran/scanner.c:1493 fortran/scanner.c:1496
#, gcc-internal-format, gfc-internal-format
msgid "'&' not allowed by itself in line %d"
msgstr ""
-#: fortran/scanner.c:1534
+#: fortran/scanner.c:1555
#, gcc-internal-format, gfc-internal-format
msgid "Nonconforming tab character in column %d of line %d"
msgstr ""
-#: fortran/scanner.c:1759
+#: fortran/scanner.c:1780
#, gcc-internal-format, gfc-internal-format
msgid "%s:%d: file %s left but not entered"
msgstr ""
-#: fortran/scanner.c:1793
+#: fortran/scanner.c:1814
#, gcc-internal-format, gfc-internal-format
msgid "%s:%d: Illegal preprocessor directive"
msgstr ""
-#: fortran/scanner.c:1918
+#: fortran/scanner.c:1939
#, gcc-internal-format, gfc-internal-format
msgid "Can't open file '%s'"
msgstr ""
-#: fortran/simplify.c:86
+#: fortran/simplify.c:87
#, gcc-internal-format, gfc-internal-format
msgid "Result of %s overflows its kind at %L"
msgstr ""
-#: fortran/simplify.c:91
+#: fortran/simplify.c:92
#, gcc-internal-format, gfc-internal-format
msgid "Result of %s underflows its kind at %L"
msgstr ""
-#: fortran/simplify.c:96
+#: fortran/simplify.c:97
#, gcc-internal-format, gfc-internal-format
msgid "Result of %s is NaN at %L"
msgstr ""
-#: fortran/simplify.c:100
+#: fortran/simplify.c:101
#, gcc-internal-format, gfc-internal-format
msgid "Result of %s gives range error for its kind at %L"
msgstr ""
-#: fortran/simplify.c:123
+#: fortran/simplify.c:124
#, gcc-internal-format, gfc-internal-format
msgid "KIND parameter of %s at %L must be an initialization expression"
msgstr ""
-#: fortran/simplify.c:131
+#: fortran/simplify.c:132
#, gcc-internal-format, gfc-internal-format
msgid "Invalid KIND parameter of %s at %L"
msgstr ""
-#: fortran/simplify.c:701
+#: fortran/simplify.c:702
#, gcc-internal-format, gfc-internal-format
msgid "Argument of %s function at %L is negative"
msgstr ""
-#: fortran/simplify.c:708
+#: fortran/simplify.c:709
#, gcc-internal-format, gfc-internal-format
msgid "Argument of %s function at %L outside of range [0,127]"
msgstr ""
-#: fortran/simplify.c:726
+#: fortran/simplify.c:727
#, gcc-internal-format, gfc-internal-format
msgid ""
"Argument of %s function at %L is too large for the collating sequence of "
"kind %d"
msgstr ""
-#: fortran/simplify.c:763
+#: fortran/simplify.c:764
#, gcc-internal-format, gfc-internal-format
msgid "Argument of ACOS at %L must be between -1 and 1"
msgstr ""
-#: fortran/simplify.c:796
+#: fortran/simplify.c:797
#, gcc-internal-format, gfc-internal-format
msgid "Argument of ACOSH at %L must not be less than 1"
msgstr ""
-#: fortran/simplify.c:1040
+#: fortran/simplify.c:1041
#, gcc-internal-format, gfc-internal-format
msgid "Argument of ASIN at %L must be between -1 and 1"
msgstr ""
-#: fortran/simplify.c:1131
+#: fortran/simplify.c:1132
#, gcc-internal-format, gfc-internal-format
msgid "Argument of ATANH at %L must be inside the range -1 to 1"
msgstr ""
-#: fortran/simplify.c:1162
+#: fortran/simplify.c:1163
#, gcc-internal-format, gfc-internal-format
msgid ""
"If first argument of ATAN2 %L is zero, then the second argument must not be "
"zero"
msgstr ""
-#: fortran/simplify.c:1254
+#: fortran/simplify.c:1255
#, gcc-internal-format, gfc-internal-format
msgid "Result of BESSEL_YN is -INF at %L"
msgstr ""
-#: fortran/simplify.c:2439
+#: fortran/simplify.c:2444
#, gcc-internal-format, gfc-internal-format
msgid "Argument of IACHAR at %L must be of length one"
msgstr ""
-#: fortran/simplify.c:2446
+#: fortran/simplify.c:2451
#, gcc-internal-format, gfc-internal-format
msgid "Argument of IACHAR function at %L outside of range 0..127"
msgstr ""
-#: fortran/simplify.c:2561
+#: fortran/simplify.c:2566
#, gcc-internal-format, gfc-internal-format
msgid "Sum of second and third arguments of IBITS exceeds bit size at %L"
msgstr ""
-#: fortran/simplify.c:2636
+#: fortran/simplify.c:2641
#, gcc-internal-format, gfc-internal-format
msgid "Argument of ICHAR at %L must be of length one"
msgstr ""
#. Left shift, as in SHIFTL.
-#: fortran/simplify.c:3002 fortran/simplify.c:3010
+#: fortran/simplify.c:3006 fortran/simplify.c:3014
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of %s is negative at %L"
msgstr ""
-#: fortran/simplify.c:3022
+#: fortran/simplify.c:3026
#, gcc-internal-format, gfc-internal-format
msgid "Magnitude of second argument of %s exceeds bit size at %L"
msgstr ""
-#: fortran/simplify.c:3148
+#: fortran/simplify.c:3152
#, gcc-internal-format, gfc-internal-format
msgid ""
"Magnitude of second argument of ISHFTC exceeds BIT_SIZE of first argument at "
"%L"
msgstr ""
-#: fortran/simplify.c:3448 fortran/simplify.c:3580
+#: fortran/simplify.c:3456 fortran/simplify.c:3591
#, gcc-internal-format, gfc-internal-format
msgid "DIM argument at %L is out of bounds"
msgstr ""
-#: fortran/simplify.c:3751
+#: fortran/simplify.c:3762
#, gcc-internal-format, gfc-internal-format
msgid "Argument of LOG at %L cannot be less than or equal to zero"
msgstr ""
-#: fortran/simplify.c:3764
+#: fortran/simplify.c:3775
#, gcc-internal-format, gfc-internal-format
msgid "Complex argument of LOG at %L cannot be zero"
msgstr ""
-#: fortran/simplify.c:3792
+#: fortran/simplify.c:3803
#, gcc-internal-format, gfc-internal-format
msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
msgstr ""
#. Result is processor-dependent.
-#: fortran/simplify.c:4239
+#: fortran/simplify.c:4250
#, gcc-internal-format, gfc-internal-format
msgid "Second argument MOD at %L is zero"
msgstr ""
#. Result is processor-dependent.
-#: fortran/simplify.c:4250
+#: fortran/simplify.c:4261
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of MOD at %L is zero"
msgstr ""
@@ -45323,83 +45704,83 @@ msgstr ""
#. Result is processor-dependent. This processor just opts
#. to not handle it at all.
#. Result is processor-dependent.
-#: fortran/simplify.c:4287 fortran/simplify.c:4299
+#: fortran/simplify.c:4298 fortran/simplify.c:4310
#, gcc-internal-format, gfc-internal-format
msgid "Second argument of MODULO at %L is zero"
msgstr ""
-#: fortran/simplify.c:4379
+#: fortran/simplify.c:4390
#, gcc-internal-format, gfc-internal-format
msgid "Result of NEAREST is NaN at %L"
msgstr ""
-#: fortran/simplify.c:4843
+#: fortran/simplify.c:4858
#, gcc-internal-format, gfc-internal-format
msgid "Argument NCOPIES of REPEAT intrinsic is negative at %L"
msgstr ""
-#: fortran/simplify.c:4898
+#: fortran/simplify.c:4913
#, gcc-internal-format, gfc-internal-format
msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L"
msgstr ""
-#: fortran/simplify.c:5150
+#: fortran/simplify.c:5160
#, gcc-internal-format, gfc-internal-format
msgid "Result of SCALE overflows its kind at %L"
msgstr ""
-#: fortran/simplify.c:5861
+#: fortran/simplify.c:5875
#, gcc-internal-format, gfc-internal-format
msgid "Argument of SQRT at %L has a negative value"
msgstr ""
-#: fortran/simplify.c:6172
+#: fortran/simplify.c:6186
#, gcc-internal-format, gfc-internal-format
msgid ""
"Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY "
"lower bound is %ld)"
msgstr ""
-#: fortran/simplify.c:6195
+#: fortran/simplify.c:6209
#, gcc-internal-format, gfc-internal-format
msgid ""
"Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY "
"upper bound is %ld)"
msgstr ""
-#: fortran/simplify.c:6612
+#: fortran/simplify.c:6627
#, gcc-internal-format, gfc-internal-format
msgid ""
"Character '%s' in string at %L cannot be converted into character kind %d"
msgstr ""
-#: fortran/symbol.c:135
+#: fortran/symbol.c:136
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate IMPLICIT NONE statement at %C"
msgstr ""
-#: fortran/symbol.c:175
+#: fortran/symbol.c:176
#, gcc-internal-format, gfc-internal-format
msgid "Letter '%c' already set in IMPLICIT statement at %C"
msgstr ""
-#: fortran/symbol.c:197
+#: fortran/symbol.c:198
#, gcc-internal-format, gfc-internal-format
msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE"
msgstr ""
-#: fortran/symbol.c:207
+#: fortran/symbol.c:208
#, gcc-internal-format, gfc-internal-format
msgid "Letter %c already has an IMPLICIT type at %C"
msgstr ""
-#: fortran/symbol.c:263
+#: fortran/symbol.c:264
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %L has no IMPLICIT type"
msgstr ""
#. BIND(C) variables should not be implicitly declared.
-#: fortran/symbol.c:280
+#: fortran/symbol.c:281
#, gcc-internal-format, gfc-internal-format
msgid ""
"Implicitly declared BIND(C) variable '%s' at %L may not be C interoperable"
@@ -45407,301 +45788,312 @@ msgstr ""
#. Dummy args to a BIND(C) routine may not be interoperable if
#. they are implicitly typed.
-#: fortran/symbol.c:295
+#: fortran/symbol.c:296
#, gcc-internal-format, gfc-internal-format
msgid ""
"Implicitly declared variable '%s' at %L may not be C interoperable but it is "
"a dummy argument to the BIND(C) procedure '%s' at %L"
msgstr ""
-#: fortran/symbol.c:336
+#: fortran/symbol.c:337
#, gcc-internal-format, gfc-internal-format
msgid "Function result '%s' at %L has no IMPLICIT type"
msgstr ""
-#: fortran/symbol.c:425
+#: fortran/symbol.c:426
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
msgstr ""
-#: fortran/symbol.c:449
+#: fortran/symbol.c:450
#, gcc-internal-format, gfc-internal-format
msgid "Namelist group name at %L cannot have the SAVE attribute"
msgstr ""
-#: fortran/symbol.c:483
+#: fortran/symbol.c:484
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: Procedure pointer at %C"
+msgid "Procedure pointer at %C"
msgstr ""
-#: fortran/symbol.c:645
+#: fortran/symbol.c:646
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute applied to %s %s at %L"
msgstr ""
-#: fortran/symbol.c:652
+#: fortran/symbol.c:653
#, gcc-internal-format, gfc-internal-format
msgid "BIND(C) applied to %s %s at %L"
msgstr ""
-#: fortran/symbol.c:763 fortran/symbol.c:1486
+#: fortran/symbol.c:764 fortran/symbol.c:1487
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute conflicts with %s attribute at %L"
msgstr ""
-#: fortran/symbol.c:766
+#: fortran/symbol.c:767
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute conflicts with %s attribute in '%s' at %L"
msgstr ""
-#: fortran/symbol.c:774
+#: fortran/symbol.c:775
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: %s attribute with %s attribute at %L"
+msgid "%s attribute with %s attribute at %L"
msgstr ""
-#: fortran/symbol.c:780
+#: fortran/symbol.c:781
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: %s attribute with %s attribute in '%s' at %L"
+msgid "%s attribute with %s attribute in '%s' at %L"
msgstr ""
-#: fortran/symbol.c:824
+#: fortran/symbol.c:825
#, gcc-internal-format, gfc-internal-format
msgid "Cannot change attributes of USE-associated symbol at %L"
msgstr ""
-#: fortran/symbol.c:827
+#: fortran/symbol.c:828
#, gcc-internal-format, gfc-internal-format
msgid "Cannot change attributes of USE-associated symbol %s at %L"
msgstr ""
-#: fortran/symbol.c:843
+#: fortran/symbol.c:844
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate %s attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:885
+#: fortran/symbol.c:886
#, gcc-internal-format, gfc-internal-format
msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
msgstr ""
-#: fortran/symbol.c:911
+#: fortran/symbol.c:912
#, gcc-internal-format, gfc-internal-format
msgid "CODIMENSION specified for '%s' outside its INTERFACE body at %L"
msgstr ""
-#: fortran/symbol.c:937
+#: fortran/symbol.c:938
#, gcc-internal-format, gfc-internal-format
msgid "DIMENSION specified for '%s' outside its INTERFACE body at %L"
msgstr ""
-#: fortran/symbol.c:1067
+#: fortran/symbol.c:1068
#, gcc-internal-format, gfc-internal-format
msgid "Cray Pointee at %L appears in multiple pointer() statements"
msgstr ""
-#: fortran/symbol.c:1086
+#: fortran/symbol.c:1087
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate PROTECTED attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1120
+#: fortran/symbol.c:1121
#, gcc-internal-format, gfc-internal-format
msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
msgstr ""
-#: fortran/symbol.c:1131
+#: fortran/symbol.c:1132
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate SAVE attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1152
+#: fortran/symbol.c:1153
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate VALUE attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1172
+#: fortran/symbol.c:1173
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate VOLATILE attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1191
+#: fortran/symbol.c:1192
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1482
+#: fortran/symbol.c:1483
#, gcc-internal-format, gfc-internal-format
msgid "%s attribute of '%s' conflicts with %s attribute at %L"
msgstr ""
-#: fortran/symbol.c:1516
+#: fortran/symbol.c:1517
#, gcc-internal-format, gfc-internal-format
msgid "%s procedure at %L is already declared as %s procedure"
msgstr ""
-#: fortran/symbol.c:1551
+#: fortran/symbol.c:1552
#, gcc-internal-format, gfc-internal-format
msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
msgstr ""
-#: fortran/symbol.c:1575
+#: fortran/symbol.c:1576
#, gcc-internal-format, gfc-internal-format
msgid "ACCESS specification at %L was already specified"
msgstr ""
-#: fortran/symbol.c:1592
+#: fortran/symbol.c:1593
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate BIND attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1599
+#: fortran/symbol.c:1600
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: BIND(C) at %L"
+msgid "BIND(C) at %L"
msgstr ""
-#: fortran/symbol.c:1616
+#: fortran/symbol.c:1617
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate EXTENDS attribute specified at %L"
msgstr ""
-#: fortran/symbol.c:1620
+#: fortran/symbol.c:1621
#, gcc-internal-format, gfc-internal-format
-msgid "Fortran 2003: EXTENDS at %L"
+msgid "EXTENDS at %L"
msgstr ""
-#: fortran/symbol.c:1642
+#: fortran/symbol.c:1643
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %L already has an explicit interface"
msgstr ""
-#: fortran/symbol.c:1649
+#: fortran/symbol.c:1650
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %L has attributes specified outside its INTERFACE body"
msgstr ""
-#: fortran/symbol.c:1683
+#: fortran/symbol.c:1684
#, gcc-internal-format, gfc-internal-format
msgid ""
"Symbol '%s' at %L conflicts with symbol from module '%s', use-associated at "
"%L"
msgstr ""
-#: fortran/symbol.c:1687
+#: fortran/symbol.c:1688
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %L already has basic type of %s"
msgstr ""
-#: fortran/symbol.c:1694
+#: fortran/symbol.c:1695
#, gcc-internal-format, gfc-internal-format
msgid "Procedure '%s' at %L may not have basic type of %s"
msgstr ""
-#: fortran/symbol.c:1706
+#: fortran/symbol.c:1707
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %L cannot have a type"
msgstr ""
-#: fortran/symbol.c:1875
+#: fortran/symbol.c:1876
#, gcc-internal-format, gfc-internal-format
msgid "Component '%s' at %C already declared at %L"
msgstr ""
-#: fortran/symbol.c:1886
+#: fortran/symbol.c:1887
#, gcc-internal-format, gfc-internal-format
msgid "Component '%s' at %C already in the parent type at %L"
msgstr ""
-#: fortran/symbol.c:1968
+#: fortran/symbol.c:1969
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %C is ambiguous"
msgstr ""
-#: fortran/symbol.c:2000
+#: fortran/symbol.c:2001
#, gcc-internal-format, gfc-internal-format
msgid "Derived type '%s' at %C is being used before it is defined"
msgstr ""
-#: fortran/symbol.c:2038
+#: fortran/symbol.c:2039
#, gcc-internal-format, gfc-internal-format
msgid "Component '%s' at %C is a PRIVATE component of '%s'"
msgstr ""
-#: fortran/symbol.c:2056
+#: fortran/symbol.c:2057
#, gcc-internal-format, gfc-internal-format
msgid "'%s' at %C is not a member of the '%s' structure"
msgstr ""
-#: fortran/symbol.c:2197
+#: fortran/symbol.c:2198
#, gcc-internal-format, gfc-internal-format
msgid "Duplicate statement label %d at %L and %L"
msgstr ""
-#: fortran/symbol.c:2207
+#: fortran/symbol.c:2209
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C already referenced as branch target"
msgstr ""
-#: fortran/symbol.c:2216
+#: fortran/symbol.c:2219
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C already referenced as a format label"
msgstr ""
-#: fortran/symbol.c:2258
+#: fortran/symbol.c:2225
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"DO termination statement which is not END DO or CONTINUE with label %d at %C"
+msgstr ""
+
+#: fortran/symbol.c:2267
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C previously used as a FORMAT label"
msgstr ""
-#: fortran/symbol.c:2266
+#: fortran/symbol.c:2276
#, gcc-internal-format, gfc-internal-format
msgid "Label %d at %C previously used as branch target"
msgstr ""
-#: fortran/symbol.c:2577
+#: fortran/symbol.c:2282
+#, gcc-internal-format, gfc-internal-format
+msgid "Shared DO termination label %d at %C"
+msgstr ""
+
+#: fortran/symbol.c:2602
#, gcc-internal-format, gfc-internal-format
msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
msgstr ""
-#: fortran/symbol.c:2580
+#: fortran/symbol.c:2605
#, gcc-internal-format, gfc-internal-format
msgid ""
"Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
msgstr ""
#. Symbol is from another namespace.
-#: fortran/symbol.c:2760
+#: fortran/symbol.c:2785
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' at %C has already been host associated"
msgstr ""
-#: fortran/symbol.c:3603
+#: fortran/symbol.c:3665
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type '%s' declared at %L must have the BIND attribute to be C "
"interoperable"
msgstr ""
-#: fortran/symbol.c:3621
+#: fortran/symbol.c:3683
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type '%s' with BIND(C) attribute at %L is empty, and may be "
"inaccessible by the C companion processor"
msgstr ""
-#: fortran/symbol.c:3642
+#: fortran/symbol.c:3704
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component '%s' at %L cannot have the POINTER attribute because it is a "
"member of the BIND(C) derived type '%s' at %L"
msgstr ""
-#: fortran/symbol.c:3652
+#: fortran/symbol.c:3714
#, gcc-internal-format, gfc-internal-format
msgid ""
"Procedure pointer component '%s' at %L cannot be a member of the BIND(C) "
"derived type '%s' at %L"
msgstr ""
-#: fortran/symbol.c:3663
+#: fortran/symbol.c:3725
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a "
@@ -45710,7 +46102,7 @@ msgstr ""
#. If the derived type is bind(c), all fields must be
#. interop.
-#: fortran/symbol.c:3702
+#: fortran/symbol.c:3764
#, gcc-internal-format, gfc-internal-format
msgid ""
"Component '%s' in derived type '%s' at %L may not be C interoperable, even "
@@ -45720,58 +46112,53 @@ msgstr ""
#. If derived type is param to bind(c) routine, or to one
#. of the iso_c_binding procs, it must be interoperable, so
#. all fields must interop too.
-#: fortran/symbol.c:3711
+#: fortran/symbol.c:3773
#, gcc-internal-format, gfc-internal-format
msgid "Component '%s' in derived type '%s' at %L may not be C interoperable"
msgstr ""
-#: fortran/symbol.c:3725
+#: fortran/symbol.c:3787
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type '%s' at %L cannot be declared with both PRIVATE and BIND(C) "
"attributes"
msgstr ""
-#: fortran/symbol.c:3733
+#: fortran/symbol.c:3795
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived type '%s' at %L cannot have the SEQUENCE attribute because it is BIND"
"(C)"
msgstr ""
-#: fortran/symbol.c:4741
+#: fortran/symbol.c:4805 fortran/symbol.c:4811
#, gcc-internal-format, gfc-internal-format
msgid "Symbol '%s' is used before it is typed at %L"
msgstr ""
-#: fortran/symbol.c:4747
-#, gcc-internal-format, gfc-internal-format
-msgid "Extension: Symbol '%s' is used before it is typed at %L"
-msgstr ""
-
-#: fortran/target-memory.c:643
+#: fortran/target-memory.c:654
#, gcc-internal-format, gfc-internal-format
msgid "Overlapping unequal initializers in EQUIVALENCE at %L"
msgstr ""
-#: fortran/target-memory.c:731
+#: fortran/target-memory.c:742
#, gcc-internal-format, gfc-internal-format
msgid "BOZ constant at %L is too large (%ld vs %ld bits)"
msgstr ""
-#: fortran/trans-array.c:7027
+#: fortran/trans-array.c:7148
#, gcc-internal-format, gfc-internal-format
msgid "Creating array temporary at %L for argument '%s'"
msgstr ""
-#: fortran/trans-array.c:8151
+#: fortran/trans-array.c:8272
#, gcc-internal-format
msgid ""
"Possible front-end bug: Deferred array size without pointer, allocatable "
"attribute or derived type without allocatable components."
msgstr ""
-#: fortran/trans-array.c:8649
+#: fortran/trans-array.c:8770
#, gcc-internal-format, gfc-internal-format
msgid "bad expression type during walk (%d)"
msgstr ""
@@ -45865,120 +46252,120 @@ msgstr ""
msgid "non-constant initialization expression at %L"
msgstr ""
-#: fortran/trans-decl.c:1355
+#: fortran/trans-decl.c:1362
#, gcc-internal-format
msgid "intrinsic variable which isn't a procedure"
msgstr ""
-#: fortran/trans-decl.c:3514 fortran/trans-decl.c:5384
+#: fortran/trans-decl.c:3527 fortran/trans-decl.c:5399
#, gcc-internal-format, gfc-internal-format
msgid "Return value of function '%s' at %L not set"
msgstr ""
-#: fortran/trans-decl.c:3833
+#: fortran/trans-decl.c:3847
#, gcc-internal-format
msgid "Deferred type parameter not yet supported"
msgstr ""
-#: fortran/trans-decl.c:4040
+#: fortran/trans-decl.c:4054
#, gcc-internal-format, gfc-internal-format
msgid "backend decl for module variable %s already exists"
msgstr ""
-#: fortran/trans-decl.c:4564
+#: fortran/trans-decl.c:4578
#, gcc-internal-format, gfc-internal-format
msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set"
msgstr ""
-#: fortran/trans-decl.c:4568
+#: fortran/trans-decl.c:4582
#, gcc-internal-format, gfc-internal-format
msgid ""
"Derived-type dummy argument '%s' at %L was declared INTENT(OUT) but was not "
"set and does not have a default initializer"
msgstr ""
-#: fortran/trans-decl.c:4577 fortran/trans-decl.c:4689
+#: fortran/trans-decl.c:4591 fortran/trans-decl.c:4703
#, gcc-internal-format, gfc-internal-format
msgid "Unused dummy argument '%s' at %L"
msgstr ""
-#: fortran/trans-decl.c:4590
+#: fortran/trans-decl.c:4604
#, gcc-internal-format, gfc-internal-format
msgid "Unused variable '%s' declared at %L"
msgstr ""
-#: fortran/trans-decl.c:4597
+#: fortran/trans-decl.c:4611
#, gcc-internal-format, gfc-internal-format
msgid "Unused module variable '%s' which has been explicitly imported at %L"
msgstr ""
-#: fortran/trans-decl.c:4644
+#: fortran/trans-decl.c:4658
#, gcc-internal-format, gfc-internal-format
msgid "Unused parameter '%s' declared at %L"
msgstr ""
-#: fortran/trans-decl.c:4647
+#: fortran/trans-decl.c:4661
#, gcc-internal-format, gfc-internal-format
msgid "Unused parameter '%s' which has been explicitly imported at %L"
msgstr ""
-#: fortran/trans-decl.c:4662
+#: fortran/trans-decl.c:4676
#, gcc-internal-format, gfc-internal-format
msgid "Return value '%s' of function '%s' declared at %L not set"
msgstr ""
-#: fortran/trans-expr.c:611
+#: fortran/trans-expr.c:730
#, gcc-internal-format, gfc-internal-format
msgid "Code for reallocating the allocatable array at %L will be added"
msgstr ""
-#: fortran/trans-expr.c:614
+#: fortran/trans-expr.c:733
#, gcc-internal-format, gfc-internal-format
msgid "Code for reallocating the allocatable variable at %L will be added"
msgstr ""
-#: fortran/trans-expr.c:2020
+#: fortran/trans-expr.c:2141
#, gcc-internal-format
msgid "Unknown intrinsic op"
msgstr ""
-#: fortran/trans-expr.c:3249
+#: fortran/trans-expr.c:3369
#, gcc-internal-format, gfc-internal-format
msgid "Unknown argument list function at %L"
msgstr ""
-#: fortran/trans-intrinsic.c:856
+#: fortran/trans-intrinsic.c:855
#, gcc-internal-format, gfc-internal-format
msgid "Intrinsic function %s(%d) not recognized"
msgstr ""
-#: fortran/trans-intrinsic.c:1035 fortran/trans-intrinsic.c:1385
-#: fortran/trans-intrinsic.c:1563
+#: fortran/trans-intrinsic.c:994 fortran/trans-intrinsic.c:1358
+#: fortran/trans-intrinsic.c:1557
#, gcc-internal-format, gfc-internal-format
msgid "'dim' argument of %s intrinsic at %L is not a valid dimension index"
msgstr ""
-#: fortran/trans-io.c:2032
+#: fortran/trans-io.c:2030
#, gcc-internal-format, gfc-internal-format
msgid "Derived type '%s' at %L has PRIVATE components"
msgstr ""
-#: fortran/trans-io.c:2180
+#: fortran/trans-io.c:2181
#, gcc-internal-format, gfc-internal-format
msgid "Bad IO basetype (%d)"
msgstr ""
-#: fortran/trans-openmp.c:1837
+#: fortran/trans-openmp.c:1836
#, gcc-internal-format
msgid "gfc_trans_omp_workshare(): Bad statement code"
msgstr ""
-#: fortran/trans-stmt.c:539
+#: fortran/trans-stmt.c:540
#, gcc-internal-format, gfc-internal-format
msgid "An alternate return at %L without a * dummy argument"
msgstr ""
-#: fortran/trans-stmt.c:862
+#: fortran/trans-stmt.c:863
#, gcc-internal-format, gfc-internal-format
msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
msgstr ""
@@ -46033,7 +46420,7 @@ msgstr ""
msgid "REAL(KIND=10) is not available for -freal-8-real-16 option"
msgstr ""
-#: fortran/trans-types.c:1440
+#: fortran/trans-types.c:1453
#, gcc-internal-format, gfc-internal-format
msgid "Array element size too big at %C"
msgstr ""
@@ -46043,27 +46430,27 @@ msgstr ""
msgid "gfc_trans_code(): Bad statement code"
msgstr ""
-#: java/class.c:836
+#: java/class.c:835
#, gcc-internal-format
msgid "bad method signature"
msgstr ""
-#: java/class.c:895
+#: java/class.c:894
#, gcc-internal-format
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr ""
-#: java/class.c:898
+#: java/class.c:897
#, gcc-internal-format, gfc-internal-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr ""
-#: java/class.c:909
+#: java/class.c:908
#, gcc-internal-format, gfc-internal-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr ""
-#: java/class.c:1635
+#: java/class.c:1634
#, gcc-internal-format
msgid "abstract method in non-abstract class"
msgstr ""
@@ -46073,22 +46460,22 @@ msgstr ""
msgid "non-static method %q+D overrides static method"
msgstr ""
-#: java/decl.c:1206
+#: java/decl.c:1205
#, gcc-internal-format
msgid "%q+D used prior to declaration"
msgstr ""
-#: java/decl.c:1629
+#: java/decl.c:1628
#, gcc-internal-format
msgid "In %+D: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1680
+#: java/decl.c:1679
#, gcc-internal-format
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1689
+#: java/decl.c:1688
#, gcc-internal-format
msgid "bad PC range for debug info for local %q+D"
msgstr ""
@@ -46123,63 +46510,63 @@ msgstr ""
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2442
+#: java/expr.c:2441
#, gcc-internal-format, gfc-internal-format
msgid "failed to find class '%s'"
msgstr ""
-#: java/expr.c:2483
+#: java/expr.c:2482
#, gcc-internal-format, gfc-internal-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2514
+#: java/expr.c:2513
#, gcc-internal-format
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2519
+#: java/expr.c:2518
#, gcc-internal-format
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2527
+#: java/expr.c:2526
#, gcc-internal-format
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2885
+#: java/expr.c:2884
#, gcc-internal-format, gfc-internal-format
msgid "missing field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2892
+#: java/expr.c:2891
#, gcc-internal-format, gfc-internal-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2921
+#: java/expr.c:2920
#, gcc-internal-format
msgid "assignment to final field %q+D not in field%'s class"
msgstr ""
-#: java/expr.c:3149
+#: java/expr.c:3148
#, gcc-internal-format
msgid "invalid PC in line number table"
msgstr ""
-#: java/expr.c:3199
+#: java/expr.c:3198
#, gcc-internal-format, gfc-internal-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: java/expr.c:3241
+#: java/expr.c:3240
#, gcc-internal-format, gfc-internal-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3549
+#: java/expr.c:3548
#, gcc-internal-format
msgid "unrecognized wide sub-instruction"
msgstr ""
@@ -46391,102 +46778,102 @@ msgstr ""
msgid "two or more sections for %s"
msgstr ""
-#: lto/lto.c:219
+#: lto/lto.c:218
#, gcc-internal-format, gfc-internal-format
msgid "%s: section %s is missing"
msgstr ""
-#: lto/lto.c:969
+#: lto/lto.c:2074
#, gcc-internal-format
msgid "bytecode stream: garbage at the end of symbols section"
msgstr ""
-#: lto/lto.c:996
+#: lto/lto.c:2101
#, gcc-internal-format
msgid "could not parse hex number"
msgstr ""
-#: lto/lto.c:1029
+#: lto/lto.c:2133
#, gcc-internal-format, gfc-internal-format
msgid "unexpected file name %s in linker resolution file. Expected %s"
msgstr ""
-#: lto/lto.c:1038
+#: lto/lto.c:2142
#, gcc-internal-format
msgid "could not parse file offset"
msgstr ""
-#: lto/lto.c:1041
+#: lto/lto.c:2145
#, gcc-internal-format
msgid "unexpected offset"
msgstr ""
-#: lto/lto.c:1062
+#: lto/lto.c:2167
#, gcc-internal-format
msgid "invalid line in the resolution file"
msgstr ""
-#: lto/lto.c:1075
+#: lto/lto.c:2178
#, gcc-internal-format
msgid "invalid resolution in the resolution file"
msgstr ""
-#: lto/lto.c:1081
+#: lto/lto.c:2184
#, gcc-internal-format
msgid "resolution sub id "
msgstr ""
-#: lto/lto.c:1176
+#: lto/lto.c:2293
#, gcc-internal-format, gfc-internal-format
msgid "cannot read LTO decls from %s"
msgstr ""
-#: lto/lto.c:1280
+#: lto/lto.c:2398
#, gcc-internal-format, gfc-internal-format
msgid "Cannot open %s"
msgstr ""
-#: lto/lto.c:1301
+#: lto/lto.c:2419
#, gcc-internal-format, gfc-internal-format
msgid "Cannot map %s"
msgstr ""
-#: lto/lto.c:1312
+#: lto/lto.c:2430
#, gcc-internal-format, gfc-internal-format
msgid "Cannot read %s"
msgstr ""
-#: lto/lto.c:1440
+#: lto/lto.c:2552
#, gcc-internal-format
msgid "no LTRANS output list filename provided"
msgstr ""
-#: lto/lto.c:1443
+#: lto/lto.c:2555
#, gcc-internal-format
msgid "opening LTRANS output list %s: %m"
msgstr ""
-#: lto/lto.c:1489
+#: lto/lto.c:2597
#, gcc-internal-format
msgid "lto_obj_file_open() failed"
msgstr ""
-#: lto/lto.c:1515
+#: lto/lto.c:2645
#, gcc-internal-format
msgid "writing to LTRANS output list %s: %m"
msgstr ""
-#: lto/lto.c:1523
+#: lto/lto.c:2653
#, gcc-internal-format
msgid "closing LTRANS output list %s: %m"
msgstr ""
-#: lto/lto.c:1750
+#: lto/lto.c:2880
#, gcc-internal-format
msgid "could not open symbol resolution file: %m"
msgstr ""
-#: lto/lto.c:1825
+#: lto/lto.c:2961
#, gcc-internal-format
msgid "errors during merging of translation units"
msgstr ""
@@ -47424,7 +47811,7 @@ msgstr ""
msgid "non-objective-c type '%T' cannot be caught"
msgstr ""
-#: objc/objc-next-runtime-abi-01.c:152
+#: objc/objc-next-runtime-abi-01.c:151
#, gcc-internal-format
msgid ""
"%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-"
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index 57d531d87..c2a04a8be 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -416,10 +416,10 @@ print_rtx (const_rtx in_rtx)
if (i == 5 && INSN_P (in_rtx))
{
#ifndef GENERATOR_FILE
- /* Pretty-print insn locators. Ignore scoping as it is mostly
+ /* Pretty-print insn locations. Ignore scoping as it is mostly
redundant with line number information and do not print anything
when there is no location information available. */
- if (INSN_LOCATOR (in_rtx) && insn_file (in_rtx))
+ if (INSN_LOCATION (in_rtx) && insn_file (in_rtx))
fprintf(outfile, " %s:%i", insn_file (in_rtx), insn_line (in_rtx));
#endif
}
@@ -427,16 +427,16 @@ print_rtx (const_rtx in_rtx)
{
#ifndef GENERATOR_FILE
fprintf (outfile, " %s:%i",
- locator_file (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)),
- locator_line (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)));
+ LOCATION_FILE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)),
+ LOCATION_LINE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)));
#endif
}
else if (i == 1 && GET_CODE (in_rtx) == ASM_INPUT)
{
#ifndef GENERATOR_FILE
fprintf (outfile, " %s:%i",
- locator_file (ASM_INPUT_SOURCE_LOCATION (in_rtx)),
- locator_line (ASM_INPUT_SOURCE_LOCATION (in_rtx)));
+ LOCATION_FILE (ASM_INPUT_SOURCE_LOCATION (in_rtx)),
+ LOCATION_LINE (ASM_INPUT_SOURCE_LOCATION (in_rtx)));
#endif
}
else if (i == 6 && NOTE_P (in_rtx))
diff --git a/gcc/profile.c b/gcc/profile.c
index a5029a103..dd9c389fa 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -1123,7 +1123,7 @@ branch_prob (void)
is not computed twice. */
if (last
&& gimple_has_location (last)
- && e->goto_locus != UNKNOWN_LOCATION
+ && !IS_UNKNOWN_LOCATION (e->goto_locus)
&& !single_succ_p (bb)
&& (LOCATION_FILE (e->goto_locus)
!= LOCATION_FILE (gimple_location (last))
@@ -1133,7 +1133,6 @@ branch_prob (void)
basic_block new_bb = split_edge (e);
edge ne = single_succ_edge (new_bb);
ne->goto_locus = e->goto_locus;
- ne->goto_block = e->goto_block;
}
if ((e->flags & (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL))
&& e->dest != EXIT_BLOCK_PTR)
@@ -1345,7 +1344,7 @@ branch_prob (void)
/* Notice GOTO expressions eliminated while constructing the CFG. */
if (single_succ_p (bb)
- && single_succ_edge (bb)->goto_locus != UNKNOWN_LOCATION)
+ && !IS_UNKNOWN_LOCATION (single_succ_edge (bb)->goto_locus))
{
expanded_location curr_location
= expand_location (single_succ_edge (bb)->goto_locus);
diff --git a/gcc/recog.c b/gcc/recog.c
index 555bd75cd..5058da2e1 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -3326,7 +3326,7 @@ peep2_attempt (basic_block bb, rtx insn, int match_len, rtx attempt)
/* Replace the old sequence with the new. */
last = emit_insn_after_setloc (attempt,
peep2_insn_data[i].insn,
- INSN_LOCATOR (peep2_insn_data[i].insn));
+ INSN_LOCATION (peep2_insn_data[i].insn));
before_try = PREV_INSN (insn);
delete_insn_chain (insn, peep2_insn_data[i].insn, false);
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 1bcdfad93..c4c1426b4 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -6352,6 +6352,20 @@ choose_reload_regs_init (struct insn_chain *chain, rtx *save_reload_reg_rtx)
rld[i].when_needed, rld[i].mode);
}
+#ifdef SECONDARY_MEMORY_NEEDED
+/* If X is not a subreg, return it unmodified. If it is a subreg,
+ look up whether we made a replacement for the SUBREG_REG. Return
+ either the replacement or the SUBREG_REG. */
+
+static rtx
+replaced_subreg (rtx x)
+{
+ if (GET_CODE (x) == SUBREG)
+ return find_replacement (&SUBREG_REG (x));
+ return x;
+}
+#endif
+
/* Assign hard reg targets for the pseudo-registers we must reload
into hard regs for this insn.
Also output the instructions to copy them in and out of the hard regs.
@@ -6943,6 +6957,9 @@ choose_reload_regs (struct insn_chain *chain)
{
int r = reload_order[j];
rtx check_reg;
+#ifdef SECONDARY_MEMORY_NEEDED
+ rtx tem;
+#endif
if (reload_inherited[r] && rld[r].reg_rtx)
check_reg = rld[r].reg_rtx;
else if (reload_override_in[r]
@@ -6976,8 +6993,28 @@ choose_reload_regs (struct insn_chain *chain)
removal of one reload might allow us to inherit another one. */
else if (rld[r].in
&& rld[r].out != rld[r].in
- && remove_address_replacements (rld[r].in) && pass)
- pass = 2;
+ && remove_address_replacements (rld[r].in))
+ {
+ if (pass)
+ pass = 2;
+ }
+#ifdef SECONDARY_MEMORY_NEEDED
+ /* If we needed a memory location for the reload, we also have to
+ remove its related reloads. */
+ else if (rld[r].in
+ && rld[r].out != rld[r].in
+ && (tem = replaced_subreg (rld[r].in), REG_P (tem))
+ && REGNO (tem) < FIRST_PSEUDO_REGISTER
+ && SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (REGNO (tem)),
+ rld[r].rclass, rld[r].inmode)
+ && remove_address_replacements
+ (get_secondary_mem (tem, rld[r].inmode, rld[r].opnum,
+ rld[r].when_needed)))
+ {
+ if (pass)
+ pass = 2;
+ }
+#endif
}
}
@@ -8458,20 +8495,6 @@ emit_insn_if_valid_for_reload (rtx insn)
return NULL;
}
-#ifdef SECONDARY_MEMORY_NEEDED
-/* If X is not a subreg, return it unmodified. If it is a subreg,
- look up whether we made a replacement for the SUBREG_REG. Return
- either the replacement or the SUBREG_REG. */
-
-static rtx
-replaced_subreg (rtx x)
-{
- if (GET_CODE (x) == SUBREG)
- return find_replacement (&SUBREG_REG (x));
- return x;
-}
-#endif
-
/* Emit code to perform a reload from IN (which may be a reload register) to
OUT (which may also be a reload register). IN or OUT is from operand
OPNUM with reload type TYPE.
diff --git a/gcc/reorg.c b/gcc/reorg.c
index d71802676..f3bf15a4d 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -545,7 +545,7 @@ emit_delay_sequence (rtx insn, rtx list, int length)
INSN_DELETED_P (delay_insn) = 0;
PREV_INSN (delay_insn) = PREV_INSN (seq_insn);
- INSN_LOCATOR (seq_insn) = INSN_LOCATOR (delay_insn);
+ INSN_LOCATION (seq_insn) = INSN_LOCATION (delay_insn);
for (li = list; li; li = XEXP (li, 1), i++)
{
@@ -561,9 +561,9 @@ emit_delay_sequence (rtx insn, rtx list, int length)
/* SPARC assembler, for instance, emit warning when debug info is output
into the delay slot. */
- if (INSN_LOCATOR (tem) && !INSN_LOCATOR (seq_insn))
- INSN_LOCATOR (seq_insn) = INSN_LOCATOR (tem);
- INSN_LOCATOR (tem) = 0;
+ if (INSN_LOCATION (tem) && !INSN_LOCATION (seq_insn))
+ INSN_LOCATION (seq_insn) = INSN_LOCATION (tem);
+ INSN_LOCATION (tem) = 0;
for (note = REG_NOTES (tem); note; note = next)
{
@@ -4065,7 +4065,7 @@ dbr_schedule (rtx first)
for (link = crtl->epilogue_delay_list;
link;
link = XEXP (link, 1))
- INSN_LOCATOR (XEXP (link, 0)) = 0;
+ INSN_LOCATION (XEXP (link, 0)) = 0;
}
#endif
diff --git a/gcc/rtl.c b/gcc/rtl.c
index 2edc49703..c42abda1e 100644
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -435,7 +435,7 @@ rtx_equal_p_cb (const_rtx x, const_rtx y, rtx_equal_p_callback_function cb)
#ifndef GENERATOR_FILE
if (((code == ASM_OPERANDS && i == 6)
|| (code == ASM_INPUT && i == 1))
- && locator_eq (XINT (x, i), XINT (y, i)))
+ && XINT (x, i) == XINT (y, i))
break;
#endif
return 0;
@@ -572,7 +572,7 @@ rtx_equal_p (const_rtx x, const_rtx y)
#ifndef GENERATOR_FILE
if (((code == ASM_OPERANDS && i == 6)
|| (code == ASM_INPUT && i == 1))
- && locator_eq (XINT (x, i), XINT (y, i)))
+ && XINT (x, i) == XINT (y, i))
break;
#endif
return 0;
diff --git a/gcc/rtl.h b/gcc/rtl.h
index cf52efb63..f0daf44ab 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -419,6 +419,9 @@ struct GTY((variable_size)) rtvec_def {
/* Predicate yielding nonzero iff X is an rtx for a constant integer. */
#define CONST_INT_P(X) (GET_CODE (X) == CONST_INT)
+/* Predicate yielding nonzero iff X is an rtx for a constant fixed-point. */
+#define CONST_FIXED_P(X) (GET_CODE (X) == CONST_FIXED)
+
/* Predicate yielding true iff X is an rtx for a double-int
or floating point constant. */
#define CONST_DOUBLE_P(X) (GET_CODE (X) == CONST_DOUBLE)
@@ -760,6 +763,7 @@ extern void rtl_check_failed_flag (const char *, const_rtx, const char *,
#endif
#define XINT(RTX, N) (RTL_CHECK2 (RTX, N, 'i', 'n').rt_int)
+#define XUINT(RTX, N) (RTL_CHECK2 (RTX, N, 'i', 'n').rt_uint)
#define XSTR(RTX, N) (RTL_CHECK2 (RTX, N, 's', 'S').rt_str)
#define XEXP(RTX, N) (RTL_CHECK2 (RTX, N, 'e', 'u').rt_rtx)
#define XVEC(RTX, N) (RTL_CHECK2 (RTX, N, 'E', 'V').rt_rtvec)
@@ -823,13 +827,13 @@ extern void rtl_check_failed_flag (const char *, const_rtx, const char *,
/* The body of an insn. */
#define PATTERN(INSN) XEXP (INSN, 4)
-#define INSN_LOCATOR(INSN) XINT (INSN, 5)
+#define INSN_LOCATION(INSN) XUINT (INSN, 5)
+
+#define INSN_HAS_LOCATION(INSN) (!IS_UNKNOWN_LOCATION (INSN_LOCATION (INSN)))
+
/* LOCATION of an RTX if relevant. */
#define RTL_LOCATION(X) (INSN_P (X) ? \
- locator_location (INSN_LOCATOR (X)) \
- : UNKNOWN_LOCATION)
-/* LOCATION of current INSN. */
-#define CURR_INSN_LOCATION (locator_location (curr_insn_locator ()))
+ INSN_LOCATION (X) : UNKNOWN_LOCATION)
/* Code number of instruction, from when it was recognized.
-1 means this instruction has not been recognized yet. */
@@ -1828,12 +1832,8 @@ extern rtx prev_cc0_setter (rtx);
/* In emit-rtl.c */
extern int insn_line (const_rtx);
extern const char * insn_file (const_rtx);
-extern location_t locator_location (int);
-extern int locator_line (int);
-extern const char * locator_file (int);
-extern bool locator_eq (int, int);
-extern int prologue_locator, epilogue_locator;
extern tree insn_scope (const_rtx);
+extern location_t prologue_location, epilogue_location;
/* In jump.c */
extern enum rtx_code reverse_condition (enum rtx_code);
@@ -2671,14 +2671,10 @@ extern const struct rtl_hooks general_rtl_hooks;
/* Keep this for the nonce. */
#define gen_lowpart rtl_hooks.gen_lowpart
-extern void insn_locators_alloc (void);
-extern void insn_locators_free (void);
-extern void insn_locators_finalize (void);
-extern void set_curr_insn_source_location (location_t);
-extern location_t get_curr_insn_source_location (void);
-extern void set_curr_insn_block (tree);
-extern tree get_curr_insn_block (void);
-extern int curr_insn_locator (void);
+extern void insn_locations_init (void);
+extern void insn_locations_finalize (void);
+extern void set_curr_insn_location (location_t);
+extern location_t curr_insn_location (void);
extern bool optimize_insn_for_size_p (void);
extern bool optimize_insn_for_speed_p (void);
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 89ca226cc..fb7d45cfb 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -1701,8 +1701,9 @@ dead_or_set_regno_p (const_rtx insn, unsigned int test_regno)
pattern = PATTERN (insn);
+ /* If a COND_EXEC is not executed, the value survives. */
if (GET_CODE (pattern) == COND_EXEC)
- pattern = COND_EXEC_CODE (pattern);
+ return 0;
if (GET_CODE (pattern) == SET)
return covers_regno_p (SET_DEST (pattern), test_regno);
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 1055ef4bb..f53caddf7 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h"
#include "except.h"
#include "recog.h"
+#include "emit-rtl.h"
#include "sched-int.h"
#include "params.h"
#include "cselib.h"
@@ -109,6 +110,9 @@ init_dep_1 (dep_t dep, rtx pro, rtx con, enum reg_note type, ds_t ds)
DEP_TYPE (dep) = type;
DEP_STATUS (dep) = ds;
DEP_COST (dep) = UNKNOWN_DEP_COST;
+ DEP_NONREG (dep) = 0;
+ DEP_MULTIPLE (dep) = 0;
+ DEP_REPLACE (dep) = NULL;
}
/* Init DEP with the arguments.
@@ -434,6 +438,8 @@ dep_spec_p (dep_t dep)
if (DEP_TYPE (dep) == REG_DEP_CONTROL)
return true;
}
+ if (DEP_REPLACE (dep) != NULL)
+ return true;
return false;
}
@@ -472,11 +478,14 @@ static bitmap_head *control_dependency_cache = NULL;
static bitmap_head *spec_dependency_cache = NULL;
static int cache_size;
+/* True if we should mark added dependencies as a non-register deps. */
+static bool mark_as_hard;
+
static int deps_may_trap_p (const_rtx);
static void add_dependence_1 (rtx, rtx, enum reg_note);
-static void add_dependence_list (rtx, rtx, int, enum reg_note);
+static void add_dependence_list (rtx, rtx, int, enum reg_note, bool);
static void add_dependence_list_and_free (struct deps_desc *, rtx,
- rtx *, int, enum reg_note);
+ rtx *, int, enum reg_note, bool);
static void delete_all_dependences (rtx);
static void chain_to_prev_insn (rtx);
@@ -1136,6 +1145,9 @@ update_dep (dep_t dep, dep_t new_dep,
enum reg_note old_type = DEP_TYPE (dep);
bool was_spec = dep_spec_p (dep);
+ DEP_NONREG (dep) |= DEP_NONREG (new_dep);
+ DEP_MULTIPLE (dep) = 1;
+
/* If this is a more restrictive type of dependence than the
existing one, then change the existing dependence to this
type. */
@@ -1538,33 +1550,38 @@ add_dependence (rtx con, rtx pro, enum reg_note dep_type)
fprintf (sched_dump, "making DEP_CONTROL for %d\n",
INSN_UID (real_pro));
add_dependence_list (con, INSN_COND_DEPS (real_pro), 0,
- REG_DEP_TRUE);
+ REG_DEP_TRUE, false);
}
}
add_dependence_1 (con, pro, dep_type);
}
-/* A convenience wrapper to operate on an entire list. */
+/* A convenience wrapper to operate on an entire list. HARD should be
+ true if DEP_NONREG should be set on newly created dependencies. */
static void
-add_dependence_list (rtx insn, rtx list, int uncond, enum reg_note dep_type)
+add_dependence_list (rtx insn, rtx list, int uncond, enum reg_note dep_type,
+ bool hard)
{
+ mark_as_hard = hard;
for (; list; list = XEXP (list, 1))
{
if (uncond || ! sched_insns_conditions_mutex_p (insn, XEXP (list, 0)))
add_dependence (insn, XEXP (list, 0), dep_type);
}
+ mark_as_hard = false;
}
/* Similar, but free *LISTP at the same time, when the context
- is not readonly. */
+ is not readonly. HARD should be true if DEP_NONREG should be set on
+ newly created dependencies. */
static void
add_dependence_list_and_free (struct deps_desc *deps, rtx insn, rtx *listp,
- int uncond, enum reg_note dep_type)
+ int uncond, enum reg_note dep_type, bool hard)
{
- add_dependence_list (insn, *listp, uncond, dep_type);
+ add_dependence_list (insn, *listp, uncond, dep_type, hard);
/* We don't want to short-circuit dependencies involving debug
insns, because they may cause actual dependencies to be
@@ -1738,7 +1755,7 @@ flush_pending_lists (struct deps_desc *deps, rtx insn, int for_read,
if (for_write)
{
add_dependence_list_and_free (deps, insn, &deps->pending_read_insns,
- 1, REG_DEP_ANTI);
+ 1, REG_DEP_ANTI, true);
if (!deps->readonly)
{
free_EXPR_LIST_list (&deps->pending_read_mems);
@@ -1747,14 +1764,16 @@ flush_pending_lists (struct deps_desc *deps, rtx insn, int for_read,
}
add_dependence_list_and_free (deps, insn, &deps->pending_write_insns, 1,
- for_read ? REG_DEP_ANTI : REG_DEP_OUTPUT);
+ for_read ? REG_DEP_ANTI : REG_DEP_OUTPUT,
+ true);
add_dependence_list_and_free (deps, insn,
&deps->last_pending_memory_flush, 1,
- for_read ? REG_DEP_ANTI : REG_DEP_OUTPUT);
+ for_read ? REG_DEP_ANTI : REG_DEP_OUTPUT,
+ true);
add_dependence_list_and_free (deps, insn, &deps->pending_jump_insns, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
if (DEBUG_INSN_P (insn))
{
@@ -1773,6 +1792,7 @@ flush_pending_lists (struct deps_desc *deps, rtx insn, int for_read,
deps->last_pending_memory_flush = alloc_INSN_LIST (insn, NULL_RTX);
deps->pending_flush_length = 1;
}
+ mark_as_hard = false;
}
/* Instruction which dependencies we are analyzing. */
@@ -1828,6 +1848,7 @@ haifa_note_mem_dep (rtx mem, rtx pending_mem, rtx pending_insn, ds_t ds)
init_dep_1 (dep, pending_insn, cur_insn, ds_to_dt (ds),
current_sched_info->flags & USE_DEPS_LIST ? ds : 0);
+ DEP_NONREG (dep) = 1;
maybe_add_or_update_dep_1 (dep, false, pending_mem, mem);
}
@@ -1840,6 +1861,8 @@ haifa_note_dep (rtx elem, ds_t ds)
dep_t dep = &_dep;
init_dep (dep, elem, cur_insn, ds_to_dt (ds));
+ if (mark_as_hard)
+ DEP_NONREG (dep) = 1;
maybe_add_or_update_dep_1 (dep, false, NULL_RTX, NULL_RTX);
}
@@ -2344,7 +2367,7 @@ sched_analyze_reg (struct deps_desc *deps, int regno, enum machine_mode mode,
= alloc_INSN_LIST (insn, deps->sched_before_next_call);
else
add_dependence_list (insn, deps->last_function_call, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
}
}
}
@@ -2500,9 +2523,9 @@ sched_analyze_1 (struct deps_desc *deps, rtx x, rtx insn)
}
add_dependence_list (insn, deps->last_pending_memory_flush, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
add_dependence_list (insn, deps->pending_jump_insns, 1,
- REG_DEP_CONTROL);
+ REG_DEP_CONTROL, true);
if (!deps->readonly)
add_insn_mem_dependence (deps, false, insn, dest);
@@ -2799,7 +2822,7 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
/* Avoid moving trapping instructions across function calls that might
not always return. */
add_dependence_list (insn, deps->last_function_call_may_noreturn,
- 1, REG_DEP_ANTI);
+ 1, REG_DEP_ANTI, true);
/* We must avoid creating a situation in which two successors of the
current block have different unwind info after scheduling. If at any
@@ -2816,7 +2839,8 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
= alloc_INSN_LIST (insn, deps->sched_before_next_jump);
/* Make sure epilogue insn is scheduled after preceding jumps. */
- add_dependence_list (insn, deps->pending_jump_insns, 1, REG_DEP_ANTI);
+ add_dependence_list (insn, deps->pending_jump_insns, 1, REG_DEP_ANTI,
+ true);
}
if (code == COND_EXEC)
@@ -2837,7 +2861,7 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
instruction so that reg-stack won't get confused. */
if (code == CLOBBER)
add_dependence_list (insn, deps->last_function_call, 1,
- REG_DEP_OUTPUT);
+ REG_DEP_OUTPUT, true);
}
else if (code == PARALLEL)
{
@@ -2898,11 +2922,12 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
EXECUTE_IF_SET_IN_REG_SET (reg_pending_control_uses, 0, i, rsi)
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->sets, 0, REG_DEP_ANTI);
+ add_dependence_list (insn, reg_last->sets, 0, REG_DEP_ANTI,
+ false);
add_dependence_list (insn, reg_last->implicit_sets,
- 0, REG_DEP_ANTI);
+ 0, REG_DEP_ANTI, false);
add_dependence_list (insn, reg_last->clobbers, 0,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
}
}
@@ -2932,9 +2957,9 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
}
add_dependence_list (insn, deps->last_pending_memory_flush, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
add_dependence_list (insn, deps->pending_jump_insns, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
}
}
@@ -2967,19 +2992,20 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
add_dependence (insn, prev, REG_DEP_ANTI);
add_dependence_list (insn, deps->last_function_call, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
- for (u = deps->last_pending_memory_flush; u; u = XEXP (u, 1))
- if (!sel_sched_p ())
+ if (!sel_sched_p ())
+ for (u = deps->last_pending_memory_flush; u; u = XEXP (u, 1))
add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
EXECUTE_IF_SET_IN_REG_SET (reg_pending_uses, 0, i, rsi)
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->sets, 1, REG_DEP_ANTI);
+ add_dependence_list (insn, reg_last->sets, 1, REG_DEP_ANTI, false);
/* There's no point in making REG_DEP_CONTROL dependencies for
debug insns. */
- add_dependence_list (insn, reg_last->clobbers, 1, REG_DEP_ANTI);
+ add_dependence_list (insn, reg_last->clobbers, 1, REG_DEP_ANTI,
+ false);
if (!deps->readonly)
reg_last->uses = alloc_INSN_LIST (insn, reg_last->uses);
@@ -3005,9 +3031,11 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
EXECUTE_IF_SET_IN_REG_SET (reg_pending_uses, 0, i, rsi)
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->sets, 0, REG_DEP_TRUE);
- add_dependence_list (insn, reg_last->implicit_sets, 0, REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_TRUE);
+ add_dependence_list (insn, reg_last->sets, 0, REG_DEP_TRUE, false);
+ add_dependence_list (insn, reg_last->implicit_sets, 0, REG_DEP_ANTI,
+ false);
+ add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_TRUE,
+ false);
if (!deps->readonly)
{
@@ -3020,10 +3048,11 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
if (TEST_HARD_REG_BIT (implicit_reg_pending_uses, i))
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->sets, 0, REG_DEP_TRUE);
+ add_dependence_list (insn, reg_last->sets, 0, REG_DEP_TRUE, false);
add_dependence_list (insn, reg_last->implicit_sets, 0,
- REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_TRUE);
+ REG_DEP_ANTI, false);
+ add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_TRUE,
+ false);
if (!deps->readonly)
{
@@ -3058,12 +3087,14 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
EXECUTE_IF_SET_IN_REG_SET (reg_pending_clobbers, 0, i, rsi)
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->sets, 0, REG_DEP_OUTPUT);
+ add_dependence_list (insn, reg_last->sets, 0, REG_DEP_OUTPUT,
+ false);
add_dependence_list (insn, reg_last->implicit_sets, 0,
- REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
+ add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI,
+ false);
add_dependence_list (insn, reg_last->control_uses, 0,
- REG_DEP_CONTROL);
+ REG_DEP_CONTROL, false);
if (!deps->readonly)
{
@@ -3075,13 +3106,16 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
EXECUTE_IF_SET_IN_REG_SET (reg_pending_sets, 0, i, rsi)
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->sets, 0, REG_DEP_OUTPUT);
+ add_dependence_list (insn, reg_last->sets, 0, REG_DEP_OUTPUT,
+ false);
add_dependence_list (insn, reg_last->implicit_sets, 0,
- REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_OUTPUT);
- add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
+ add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_OUTPUT,
+ false);
+ add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI,
+ false);
add_dependence_list (insn, reg_last->control_uses, 0,
- REG_DEP_CONTROL);
+ REG_DEP_CONTROL, false);
if (!deps->readonly)
reg_last->sets = alloc_INSN_LIST (insn, reg_last->sets);
@@ -3096,17 +3130,18 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
|| reg_last->clobbers_length > MAX_PENDING_LIST_LENGTH)
{
add_dependence_list_and_free (deps, insn, &reg_last->sets, 0,
- REG_DEP_OUTPUT);
+ REG_DEP_OUTPUT, false);
add_dependence_list_and_free (deps, insn,
&reg_last->implicit_sets, 0,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
add_dependence_list_and_free (deps, insn, &reg_last->uses, 0,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
add_dependence_list_and_free (deps, insn,
&reg_last->control_uses, 0,
- REG_DEP_ANTI);
- add_dependence_list_and_free
- (deps, insn, &reg_last->clobbers, 0, REG_DEP_OUTPUT);
+ REG_DEP_ANTI, false);
+ add_dependence_list_and_free (deps, insn,
+ &reg_last->clobbers, 0,
+ REG_DEP_OUTPUT, false);
if (!deps->readonly)
{
@@ -3117,12 +3152,14 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
}
else
{
- add_dependence_list (insn, reg_last->sets, 0, REG_DEP_OUTPUT);
+ add_dependence_list (insn, reg_last->sets, 0, REG_DEP_OUTPUT,
+ false);
add_dependence_list (insn, reg_last->implicit_sets, 0,
- REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
+ add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI,
+ false);
add_dependence_list (insn, reg_last->control_uses, 0,
- REG_DEP_CONTROL);
+ REG_DEP_CONTROL, false);
}
if (!deps->readonly)
@@ -3137,16 +3174,16 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
struct deps_reg *reg_last = &deps->reg_last[i];
add_dependence_list_and_free (deps, insn, &reg_last->sets, 0,
- REG_DEP_OUTPUT);
+ REG_DEP_OUTPUT, false);
add_dependence_list_and_free (deps, insn,
&reg_last->implicit_sets,
- 0, REG_DEP_ANTI);
+ 0, REG_DEP_ANTI, false);
add_dependence_list_and_free (deps, insn, &reg_last->clobbers, 0,
- REG_DEP_OUTPUT);
+ REG_DEP_OUTPUT, false);
add_dependence_list_and_free (deps, insn, &reg_last->uses, 0,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, false);
add_dependence_list (insn, reg_last->control_uses, 0,
- REG_DEP_CONTROL);
+ REG_DEP_CONTROL, false);
if (!deps->readonly)
{
@@ -3171,10 +3208,11 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
if (TEST_HARD_REG_BIT (implicit_reg_pending_clobbers, i))
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->sets, 0, REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI);
- add_dependence_list (insn, reg_last->control_uses, 0, REG_DEP_ANTI);
+ add_dependence_list (insn, reg_last->sets, 0, REG_DEP_ANTI, false);
+ add_dependence_list (insn, reg_last->clobbers, 0, REG_DEP_ANTI, false);
+ add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI, false);
+ add_dependence_list (insn, reg_last->control_uses, 0, REG_DEP_ANTI,
+ false);
if (!deps->readonly)
reg_last->implicit_sets
@@ -3212,15 +3250,16 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
EXECUTE_IF_SET_IN_REG_SET (&deps->reg_last_in_use, 0, i, rsi)
{
struct deps_reg *reg_last = &deps->reg_last[i];
- add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI);
+ add_dependence_list (insn, reg_last->uses, 0, REG_DEP_ANTI,
+ true);
add_dependence_list (insn, reg_last->sets, 0,
reg_pending_barrier == TRUE_BARRIER
- ? REG_DEP_TRUE : REG_DEP_ANTI);
+ ? REG_DEP_TRUE : REG_DEP_ANTI, true);
add_dependence_list (insn, reg_last->implicit_sets, 0,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
add_dependence_list (insn, reg_last->clobbers, 0,
reg_pending_barrier == TRUE_BARRIER
- ? REG_DEP_TRUE : REG_DEP_ANTI);
+ ? REG_DEP_TRUE : REG_DEP_ANTI, true);
}
}
else
@@ -3229,19 +3268,21 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx insn)
{
struct deps_reg *reg_last = &deps->reg_last[i];
add_dependence_list_and_free (deps, insn, &reg_last->uses, 0,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
add_dependence_list_and_free (deps, insn,
&reg_last->control_uses, 0,
- REG_DEP_CONTROL);
+ REG_DEP_CONTROL, true);
add_dependence_list_and_free (deps, insn, &reg_last->sets, 0,
reg_pending_barrier == TRUE_BARRIER
- ? REG_DEP_TRUE : REG_DEP_ANTI);
+ ? REG_DEP_TRUE : REG_DEP_ANTI,
+ true);
add_dependence_list_and_free (deps, insn,
&reg_last->implicit_sets, 0,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
add_dependence_list_and_free (deps, insn, &reg_last->clobbers, 0,
reg_pending_barrier == TRUE_BARRIER
- ? REG_DEP_TRUE : REG_DEP_ANTI);
+ ? REG_DEP_TRUE : REG_DEP_ANTI,
+ true);
if (!deps->readonly)
{
@@ -3526,7 +3567,7 @@ deps_analyze_insn (struct deps_desc *deps, rtx insn)
/* For each insn which shouldn't cross a jump, add a dependence. */
add_dependence_list_and_free (deps, insn,
&deps->sched_before_next_jump, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
sched_analyze_insn (deps, PATTERN (insn), insn);
}
@@ -3582,7 +3623,7 @@ deps_analyze_insn (struct deps_desc *deps, rtx insn)
between that insn and this call insn. */
add_dependence_list_and_free (deps, insn,
&deps->sched_before_next_call, 1,
- REG_DEP_ANTI);
+ REG_DEP_ANTI, true);
sched_analyze_insn (deps, PATTERN (insn), insn);
@@ -4476,4 +4517,318 @@ check_dep (dep_t dep, bool relaxed_p)
}
#endif /* ENABLE_CHECKING */
+/* The following code discovers opportunities to switch a memory reference
+ and an increment by modifying the address. We ensure that this is done
+ only for dependencies that are only used to show a single register
+ dependence (using DEP_NONREG and DEP_MULTIPLE), and so that every memory
+ instruction involved is subject to only one dep that can cause a pattern
+ change.
+
+ When we discover a suitable dependency, we fill in the dep_replacement
+ structure to show how to modify the memory reference. */
+
+/* Holds information about a pair of memory reference and register increment
+ insns which depend on each other, but could possibly be interchanged. */
+struct mem_inc_info
+{
+ rtx inc_insn;
+ rtx mem_insn;
+
+ rtx *mem_loc;
+ /* A register occurring in the memory address for which we wish to break
+ the dependence. This must be identical to the destination register of
+ the increment. */
+ rtx mem_reg0;
+ /* Any kind of index that is added to that register. */
+ rtx mem_index;
+ /* The constant offset used in the memory address. */
+ HOST_WIDE_INT mem_constant;
+ /* The constant added in the increment insn. Negated if the increment is
+ after the memory address. */
+ HOST_WIDE_INT inc_constant;
+ /* The source register used in the increment. May be different from mem_reg0
+ if the increment occurs before the memory address. */
+ rtx inc_input;
+};
+
+/* Verify that the memory location described in MII can be replaced with
+ one using NEW_ADDR. Return the new memory reference or NULL_RTX. The
+ insn remains unchanged by this function. */
+
+static rtx
+attempt_change (struct mem_inc_info *mii, rtx new_addr)
+{
+ rtx mem = *mii->mem_loc;
+ rtx new_mem;
+
+ /* Jump thru a lot of hoops to keep the attributes up to date. We
+ do not want to call one of the change address variants that take
+ an offset even though we know the offset in many cases. These
+ assume you are changing where the address is pointing by the
+ offset. */
+ new_mem = replace_equiv_address_nv (mem, new_addr);
+ if (! validate_change (mii->mem_insn, mii->mem_loc, new_mem, 0))
+ {
+ if (sched_verbose >= 5)
+ fprintf (sched_dump, "validation failure\n");
+ return NULL_RTX;
+ }
+
+ /* Put back the old one. */
+ validate_change (mii->mem_insn, mii->mem_loc, mem, 0);
+
+ return new_mem;
+}
+
+/* Return true if INSN is of a form "a = b op c" where a and b are
+ regs. op is + if c is a reg and +|- if c is a const. Fill in
+ informantion in MII about what is found.
+ BEFORE_MEM indicates whether the increment is found before or after
+ a corresponding memory reference. */
+
+static bool
+parse_add_or_inc (struct mem_inc_info *mii, rtx insn, bool before_mem)
+{
+ rtx pat = single_set (insn);
+ rtx src, cst;
+ bool regs_equal;
+
+ if (RTX_FRAME_RELATED_P (insn) || !pat)
+ return false;
+
+ /* Result must be single reg. */
+ if (!REG_P (SET_DEST (pat)))
+ return false;
+
+ if (GET_CODE (SET_SRC (pat)) != PLUS
+ && GET_CODE (SET_SRC (pat)) != MINUS)
+ return false;
+
+ mii->inc_insn = insn;
+ src = SET_SRC (pat);
+ mii->inc_input = XEXP (src, 0);
+
+ if (!REG_P (XEXP (src, 0)))
+ return false;
+
+ if (!rtx_equal_p (SET_DEST (pat), mii->mem_reg0))
+ return false;
+
+ cst = XEXP (src, 1);
+ if (!CONST_INT_P (cst))
+ return false;
+ mii->inc_constant = INTVAL (cst);
+
+ regs_equal = rtx_equal_p (mii->inc_input, mii->mem_reg0);
+
+ if (!before_mem)
+ {
+ mii->inc_constant = -mii->inc_constant;
+ if (!regs_equal)
+ return false;
+ }
+
+ if (regs_equal && REGNO (SET_DEST (pat)) == STACK_POINTER_REGNUM)
+ /* Note that the sign has already been reversed for !before_mem. */
+ return mii->inc_constant > 0;
+
+ return true;
+}
+
+/* Once a suitable mem reference has been found and the corresponding data
+ in MII has been filled in, this function is called to find a suitable
+ add or inc insn involving the register we found in the memory
+ reference. */
+
+static bool
+find_inc (struct mem_inc_info *mii, bool backwards)
+{
+ sd_iterator_def sd_it;
+ dep_t dep;
+
+ sd_it = sd_iterator_start (mii->mem_insn,
+ backwards ? SD_LIST_HARD_BACK : SD_LIST_FORW);
+ while (sd_iterator_cond (&sd_it, &dep))
+ {
+ dep_node_t node = DEP_LINK_NODE (*sd_it.linkp);
+ rtx pro = DEP_PRO (dep);
+ rtx con = DEP_CON (dep);
+ rtx inc_cand = backwards ? pro : con;
+ if (DEP_NONREG (dep) || DEP_MULTIPLE (dep))
+ goto next;
+ if (parse_add_or_inc (mii, inc_cand, backwards))
+ {
+ struct dep_replacement *desc;
+ df_ref *def_rec;
+ rtx newaddr, newmem;
+
+ if (sched_verbose >= 5)
+ fprintf (sched_dump, "candidate mem/inc pair: %d %d\n",
+ INSN_UID (mii->mem_insn), INSN_UID (inc_cand));
+
+ /* Need to assure that none of the operands of the inc
+ instruction are assigned to by the mem insn. */
+ for (def_rec = DF_INSN_DEFS (mii->mem_insn); *def_rec; def_rec++)
+ {
+ df_ref def = *def_rec;
+ if (reg_overlap_mentioned_p (DF_REF_REG (def), mii->inc_input)
+ || reg_overlap_mentioned_p (DF_REF_REG (def), mii->mem_reg0))
+ {
+ if (sched_verbose >= 5)
+ fprintf (sched_dump,
+ "inc conflicts with store failure.\n");
+ goto next;
+ }
+ }
+ newaddr = mii->inc_input;
+ if (mii->mem_index != NULL_RTX)
+ newaddr = gen_rtx_PLUS (GET_MODE (newaddr), newaddr,
+ mii->mem_index);
+ newaddr = plus_constant (GET_MODE (newaddr), newaddr,
+ mii->mem_constant + mii->inc_constant);
+ newmem = attempt_change (mii, newaddr);
+ if (newmem == NULL_RTX)
+ goto next;
+ if (sched_verbose >= 5)
+ fprintf (sched_dump, "successful address replacement\n");
+ desc = XCNEW (struct dep_replacement);
+ DEP_REPLACE (dep) = desc;
+ desc->loc = mii->mem_loc;
+ desc->newval = newmem;
+ desc->orig = *desc->loc;
+ desc->insn = mii->mem_insn;
+ move_dep_link (DEP_NODE_BACK (node), INSN_HARD_BACK_DEPS (con),
+ INSN_SPEC_BACK_DEPS (con));
+ if (backwards)
+ {
+ FOR_EACH_DEP (mii->inc_insn, SD_LIST_BACK, sd_it, dep)
+ if (modified_in_p (mii->inc_input, DEP_PRO (dep)))
+ add_dependence_1 (mii->mem_insn, DEP_PRO (dep),
+ REG_DEP_TRUE);
+ }
+ else
+ {
+ FOR_EACH_DEP (mii->inc_insn, SD_LIST_FORW, sd_it, dep)
+ if (modified_in_p (mii->inc_input, DEP_CON (dep)))
+ add_dependence_1 (DEP_CON (dep), mii->mem_insn,
+ REG_DEP_ANTI);
+ }
+ return true;
+ }
+ next:
+ sd_iterator_next (&sd_it);
+ }
+ return false;
+}
+
+/* A recursive function that walks ADDRESS_OF_X to find memory references
+ which could be modified during scheduling. We call find_inc for each
+ one we find that has a recognizable form. MII holds information about
+ the pair of memory/increment instructions.
+ We ensure that every instruction with a memory reference (which will be
+ the location of the replacement) is assigned at most one breakable
+ dependency. */
+
+static bool
+find_mem (struct mem_inc_info *mii, rtx *address_of_x)
+{
+ rtx x = *address_of_x;
+ enum rtx_code code = GET_CODE (x);
+ const char *const fmt = GET_RTX_FORMAT (code);
+ int i;
+
+ if (code == MEM)
+ {
+ rtx reg0 = XEXP (x, 0);
+
+ mii->mem_loc = address_of_x;
+ mii->mem_index = NULL_RTX;
+ mii->mem_constant = 0;
+ if (GET_CODE (reg0) == PLUS && CONST_INT_P (XEXP (reg0, 1)))
+ {
+ mii->mem_constant = INTVAL (XEXP (reg0, 1));
+ reg0 = XEXP (reg0, 0);
+ }
+ if (GET_CODE (reg0) == PLUS)
+ {
+ mii->mem_index = XEXP (reg0, 1);
+ reg0 = XEXP (reg0, 0);
+ }
+ if (REG_P (reg0))
+ {
+ df_ref *def_rec;
+ int occurrences = 0;
+
+ /* Make sure this reg appears only once in this insn. Can't use
+ count_occurrences since that only works for pseudos. */
+ for (def_rec = DF_INSN_USES (mii->mem_insn); *def_rec; def_rec++)
+ {
+ df_ref def = *def_rec;
+ if (reg_overlap_mentioned_p (reg0, DF_REF_REG (def)))
+ if (++occurrences > 1)
+ {
+ if (sched_verbose >= 5)
+ fprintf (sched_dump, "mem count failure\n");
+ return false;
+ }
+ }
+
+ mii->mem_reg0 = reg0;
+ return find_inc (mii, true) || find_inc (mii, false);
+ }
+ return false;
+ }
+
+ if (code == SIGN_EXTRACT || code == ZERO_EXTRACT)
+ {
+ /* If REG occurs inside a MEM used in a bit-field reference,
+ that is unacceptable. */
+ return false;
+ }
+
+ /* Time for some deep diving. */
+ for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
+ {
+ if (fmt[i] == 'e')
+ {
+ if (find_mem (mii, &XEXP (x, i)))
+ return true;
+ }
+ else if (fmt[i] == 'E')
+ {
+ int j;
+ for (j = XVECLEN (x, i) - 1; j >= 0; j--)
+ if (find_mem (mii, &XVECEXP (x, i, j)))
+ return true;
+ }
+ }
+ return false;
+}
+
+
+/* Examine the instructions between HEAD and TAIL and try to find
+ dependencies that can be broken by modifying one of the patterns. */
+
+void
+find_modifiable_mems (rtx head, rtx tail)
+{
+ rtx insn;
+ int success_in_block = 0;
+
+ for (insn = head; insn != tail; insn = NEXT_INSN (insn))
+ {
+ struct mem_inc_info mii;
+
+ if (!NONDEBUG_INSN_P (insn) || RTX_FRAME_RELATED_P (insn))
+ continue;
+
+ mii.mem_insn = insn;
+ if (find_mem (&mii, &PATTERN (insn)))
+ success_in_block++;
+ }
+ if (success_in_block && sched_verbose >= 5)
+ fprintf (sched_dump, "%d candidates for address modification found.\n",
+ success_in_block);
+}
+
#endif /* INSN_SCHEDULING */
diff --git a/gcc/sched-int.h b/gcc/sched-int.h
index 2e462380b..32bdeb42a 100644
--- a/gcc/sched-int.h
+++ b/gcc/sched-int.h
@@ -206,6 +206,18 @@ typedef int dw_t;
extern enum reg_note ds_to_dk (ds_t);
extern ds_t dk_to_ds (enum reg_note);
+/* Describe a dependency that can be broken by making a replacement
+ in one of the patterns. LOC is the location, ORIG and NEWVAL the
+ two alternative contents, and INSN the instruction that must be
+ changed. */
+struct dep_replacement
+{
+ rtx *loc;
+ rtx orig;
+ rtx newval;
+ rtx insn;
+};
+
/* Information about the dependency. */
struct _dep
{
@@ -215,18 +227,30 @@ struct _dep
/* Consumer. */
rtx con;
- /* Dependency major type. This field is superseded by STATUS below.
- Though, it is still in place because some targets use it. */
- enum reg_note type;
+ /* If nonnull, holds a pointer to information about how to break the
+ dependency by making a replacement in one of the insns. There is
+ only one such dependency for each insn that must be modified in
+ order to break such a dependency. */
+ struct dep_replacement *replace;
/* Dependency status. This field holds all dependency types and additional
information for speculative dependencies. */
ds_t status;
- /* Cached cost of the dependency. */
- int cost;
+ /* Dependency major type. This field is superseded by STATUS above.
+ Though, it is still in place because some targets use it. */
+ ENUM_BITFIELD(reg_note) type:6;
+
+ unsigned nonreg:1;
+ unsigned multiple:1;
+
+ /* Cached cost of the dependency. Make sure to update UNKNOWN_DEP_COST
+ when changing the size of this field. */
+ int cost:20;
};
+#define UNKNOWN_DEP_COST (-1<<19)
+
typedef struct _dep dep_def;
typedef dep_def *dep_t;
@@ -235,8 +259,9 @@ typedef dep_def *dep_t;
#define DEP_TYPE(D) ((D)->type)
#define DEP_STATUS(D) ((D)->status)
#define DEP_COST(D) ((D)->cost)
-
-#define UNKNOWN_DEP_COST INT_MIN
+#define DEP_NONREG(D) ((D)->nonreg)
+#define DEP_MULTIPLE(D) ((D)->multiple)
+#define DEP_REPLACE(D) ((D)->replace)
/* Functions to work with dep. */
@@ -1047,7 +1072,11 @@ enum SPEC_TYPES_OFFSETS {
Therefore, it can appear only in TODO_SPEC field of an instruction. */
#define HARD_DEP (DEP_CONTROL << 1)
-#define DEP_CANCELLED (HARD_DEP << 1)
+/* Set in the TODO_SPEC field of an instruction for which new_ready
+ has decided not to schedule it speculatively. */
+#define DEP_POSTPONED (HARD_DEP << 1)
+
+#define DEP_CANCELLED (DEP_POSTPONED << 1)
/* This represents the results of calling sched-deps.c functions,
which modify dependencies. */
@@ -1074,7 +1103,8 @@ enum SCHED_FLAGS {
DO_SPECULATION = USE_DEPS_LIST << 1,
DO_BACKTRACKING = DO_SPECULATION << 1,
DO_PREDICATION = DO_BACKTRACKING << 1,
- SCHED_RGN = DO_PREDICATION << 1,
+ DONT_BREAK_DEPENDENCIES = DO_PREDICATION << 1,
+ SCHED_RGN = DONT_BREAK_DEPENDENCIES << 1,
SCHED_EBB = SCHED_RGN << 1,
/* Scheduler can possibly create new basic blocks. Used for assertions. */
NEW_BBS = SCHED_EBB << 1,
@@ -1406,6 +1436,8 @@ extern void dump_region_dot_file (const char *, int);
extern void haifa_sched_init (void);
extern void haifa_sched_finish (void);
+extern void find_modifiable_mems (rtx, rtx);
+
/* sched-deps.c interface to walk, add, search, update, resolve, delete
and debug instruction dependencies. */
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 4a277f4a2..5d39a36d7 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -2103,6 +2103,8 @@ init_ready_list (void)
Count number of insns in the target block being scheduled. */
for (insn = NEXT_INSN (prev_head); insn != next_tail; insn = NEXT_INSN (insn))
{
+ gcc_assert (TODO_SPEC (insn) == HARD_DEP || TODO_SPEC (insn) == DEP_POSTPONED);
+ TODO_SPEC (insn) = HARD_DEP;
try_ready (insn);
target_n_insns++;
@@ -2126,7 +2128,11 @@ init_ready_list (void)
for (insn = src_head; insn != src_next_tail; insn = NEXT_INSN (insn))
if (INSN_P (insn))
- try_ready (insn);
+ {
+ gcc_assert (TODO_SPEC (insn) == HARD_DEP || TODO_SPEC (insn) == DEP_POSTPONED);
+ TODO_SPEC (insn) = HARD_DEP;
+ try_ready (insn);
+ }
}
}
@@ -2218,11 +2224,11 @@ new_ready (rtx next, ds_t ts)
ts = new_ds;
else
/* NEXT isn't ready yet. */
- ts = (ts & ~SPECULATIVE) | HARD_DEP;
+ ts = DEP_POSTPONED;
}
else
/* NEXT isn't ready yet. */
- ts = (ts & ~SPECULATIVE) | HARD_DEP;
+ ts = DEP_POSTPONED;
}
}
@@ -2826,7 +2832,9 @@ void debug_dependencies (rtx head, rtx tail)
dep_t dep;
FOR_EACH_DEP (insn, SD_LIST_FORW, sd_it, dep)
- fprintf (sched_dump, "%d ", INSN_UID (DEP_CON (dep)));
+ fprintf (sched_dump, "%d%s%s ", INSN_UID (DEP_CON (dep)),
+ DEP_NONREG (dep) ? "n" : "",
+ DEP_MULTIPLE (dep) ? "m" : "");
}
fprintf (sched_dump, "\n");
}
diff --git a/gcc/statistics.h b/gcc/statistics.h
index 8ec0a9900..6bb816616 100644
--- a/gcc/statistics.h
+++ b/gcc/statistics.h
@@ -38,6 +38,11 @@
#define PASS_MEM_STAT , ALONE_PASS_MEM_STAT
#define FINAL_PASS_MEM_STAT , ALONE_FINAL_PASS_MEM_STAT
#define MEM_STAT_INFO , ALONE_MEM_STAT_INFO
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
+#define CXX_MEM_STAT_INFO , const char * _loc_name = __builtin_FILE (), int _loc_line = __builtin_LINE (), const char * _loc_function = __builtin_FUNCTION ()
+#else
+#define CXX_MEM_STAT_INFO , const char * _loc_name = __FILE__, int _loc_line = __LINE__, const char * _loc_function = NULL
+#endif
#else
#define ALONE_MEM_STAT_DECL void
#define ALONE_FINAL_MEM_STAT_DECL GCC_MEM_STAT_ARGUMENTS
@@ -49,6 +54,7 @@
#define PASS_MEM_STAT
#define FINAL_PASS_MEM_STAT , ALONE_FINAL_PASS_MEM_STAT
#define MEM_STAT_INFO ALONE_MEM_STAT_INFO
+#define CXX_MEM_STAT_INFO
#endif
struct function;
diff --git a/gcc/stmt.c b/gcc/stmt.c
index b64b08074..fb3323e19 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -2483,7 +2483,7 @@ emit_case_nodes (rtx index, case_node_ptr node, rtx default_label,
then emit the code for one side at a time. */
tree test_label
- = build_decl (CURR_INSN_LOCATION,
+ = build_decl (curr_insn_location (),
LABEL_DECL, NULL_TREE, NULL_TREE);
/* See if the value is on the right. */
@@ -2607,7 +2607,7 @@ emit_case_nodes (rtx index, case_node_ptr node, rtx default_label,
/* Right hand node requires testing.
Branch to a label where we will handle it later. */
- test_label = build_decl (CURR_INSN_LOCATION,
+ test_label = build_decl (curr_insn_location (),
LABEL_DECL, NULL_TREE, NULL_TREE);
emit_cmp_and_jump_insns (index,
convert_modes
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 1dceb799d..c21edcbb7 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -104,6 +104,8 @@ eq_assembler_name (const void *p1, const void *p2)
static void
insert_to_assembler_name_hash (symtab_node node)
{
+ if (symtab_variable_p (node) && DECL_HARD_REGISTER (node->symbol.decl))
+ return;
gcc_checking_assert (!node->symbol.previous_sharing_asm_name
&& !node->symbol.next_sharing_asm_name);
if (assembler_name_hash)
@@ -151,9 +153,20 @@ unlink_from_assembler_name_hash (symtab_node node)
else
*slot = node->symbol.next_sharing_asm_name;
}
+ node->symbol.next_sharing_asm_name = NULL;
+ node->symbol.previous_sharing_asm_name = NULL;
}
}
+/* Arrange node to be first in its entry of assembler_name_hash. */
+
+void
+symtab_prevail_in_asm_name_hash (symtab_node node)
+{
+ unlink_from_assembler_name_hash (node);
+ insert_to_assembler_name_hash (node);
+}
+
/* Add node into symbol table. This function is not used directly, but via
cgraph/varpool node creation routines. */
@@ -287,15 +300,12 @@ symtab_remove_node (symtab_node node)
varpool_remove_node (varpool (node));
}
-/* Return the cgraph node that has ASMNAME for its DECL_ASSEMBLER_NAME.
- Return NULL if there's no such node. */
+/* Initalize asm name hash unless. */
-symtab_node
-symtab_node_for_asm (const_tree asmname)
+void
+symtab_initialize_asm_name_hash (void)
{
symtab_node node;
- void **slot;
-
if (!assembler_name_hash)
{
assembler_name_hash =
@@ -304,7 +314,18 @@ symtab_node_for_asm (const_tree asmname)
FOR_EACH_SYMBOL (node)
insert_to_assembler_name_hash (node);
}
+}
+/* Return the cgraph node that has ASMNAME for its DECL_ASSEMBLER_NAME.
+ Return NULL if there's no such node. */
+
+symtab_node
+symtab_node_for_asm (const_tree asmname)
+{
+ symtab_node node;
+ void **slot;
+
+ symtab_initialize_asm_name_hash ();
slot = htab_find_slot_with_hash (assembler_name_hash, asmname,
decl_assembler_name_hash (asmname),
NO_INSERT);
@@ -507,6 +528,9 @@ dump_symtab_base (FILE *f, symtab_node node)
ipa_dump_references (f, &node->symbol.ref_list);
fprintf (f, " Referring: ");
ipa_dump_referring (f, &node->symbol.ref_list);
+ if (node->symbol.lto_file_data)
+ fprintf (f, " Read from file: %s\n",
+ node->symbol.lto_file_data->file_name);
}
/* Dump symtab node. */
@@ -597,7 +621,8 @@ verify_symtab_base (symtab_node node)
break;
hashed_node = hashed_node->symbol.next_sharing_asm_name;
}
- if (!hashed_node)
+ if (!hashed_node
+ && !(symtab_variable_p (node) || DECL_HARD_REGISTER (node->symbol.decl)))
{
error ("node not found in symtab assembler name hash");
error_found = true;
@@ -733,6 +758,8 @@ symtab_make_decl_local (tree decl)
DECL_COMDAT_GROUP (decl) = 0;
DECL_WEAK (decl) = 0;
DECL_EXTERNAL (decl) = 0;
+ DECL_VISIBILITY_SPECIFIED (decl) = 0;
+ DECL_VISIBILITY (decl) = VISIBILITY_DEFAULT;
TREE_PUBLIC (decl) = 0;
DECL_VISIBILITY_SPECIFIED (decl) = 0;
DECL_VISIBILITY (decl) = VISIBILITY_DEFAULT;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4b68ef8d9..a67785966 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,224 @@
+2012-09-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/pr54669.c: New test.
+
+2012-09-23 Paolo Carlini <paolo.carlini@oracle.com>
+ Dominique Dhumieres <dominiq@lps.ens.fr>
+
+ PR testsuite/54677
+ * g++.dg/cpp0x/decltype32.C: Add -ftemplate-depth=10.
+
+2012-09-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54618
+ * gfortran.dg/class_array_14.f90: New.
+
+2012-09-22 Kai Tietz <ktietz@redhat.com>
+
+ * gcc.dg/tree-ssa/scev-3.c: Add llp64 to xfail.
+ * gcc.dg/tree-ssa/scev-4.c: Likewise.
+
+2012-09-21 Dehao Chen <dehao@google.com>
+
+ PR go/54649
+ PR tree-optimization/54655
+ * g++.dg/pr54655.C: New testcase.
+
+2012-09-21 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/54647
+ * g++.dg/torture/pr54647.C: New testcase.
+
+2012-09-21 Marc Glisse <marc.glisse@inria.fr>
+
+ PR c++/54427
+ * c-c++-common/torture/vector-compare-2.c: Add -w.
+
+2012-09-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/opt20.ads: Move dg directive to...
+ * gnat.dg/opt20.adb: ...here.
+ * gnat.dg/addr1.ad[sb]: Likewise.
+ * gnat.dg/concat2.ad[sb]: Likewise.
+ * gnat.dg/array16.ad[sb]: Likewise.
+ * gnat.dg/atomic5.ad[sb]: Likewise.
+ * gnat.dg/discr29.ad[sb]: Likewise.
+ * gnat.dg/noreturn5.ad[sb]: Likewise.
+ * gnat.dg/vect8.ad[sb]: Likewise. Add dg-options.
+ * gnat.dg/discr23.ads: Remove dg directive.
+ * gnat.dg/nested_float_packed.ads: Likewise.
+ * gnat.dg/oconst6.ads: Move to...
+ * gnat.dg/specs/oconst6.ads: ...here.
+
+2012-09-20 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/52432
+ * g++.dg/cpp0x/decltype32.C: Tweak.
+
+2012-09-20 Marc Glisse <marc.glisse@inria.fr>
+
+ * gcc.dg/tree-ssa/forwprop-19.c: Check in forwprop1.
+ * gcc.dg/tree-ssa/forwprop-20.c: Check in forwprop1.
+ * gcc.dg/tree-ssa/forwprop-21.c: Check in copyprop1.
+ * gcc.dg/tree-ssa/forwprop-22.c: Check in copyprop1.
+
+2012-09-19 Marc Glisse <marc.glisse@inria.fr>
+
+ PR c++/54581
+ * g++.dg/cpp0x/decltype-54581.C: New testcase.
+
+2012-09-19 Steve Ellcey <sellcey@mips.com>
+
+ * gcc.target/mips/pr37362.c: Add mips*-mti-elf exception.
+
+2012-09-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * gcc.target/powerpc/ppc-get-timebase.c: New file.
+ * gcc.target/powerpc/ppc-mftb.c: New file.
+
+2012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54089
+ * gcc.target/sh/pr54089-1.c (test_11, test_12, test_13, test_14): New
+ functions.
+
+2012-09-19 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54236
+ * gcc.target/sh/pr54236-1.c (test_08): Add one bit left shift case.
+
+2012-09-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c-torture/execute/20120919-1.c: New test.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ * lib/c-torture.exp (TORTURE_OPTIONS): Add -Og -g.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/builtin-unreachable-6.c: Adjust.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ * gcc.dg/builtin-object-size-10.c: Adjust.
+ * gcc.dg/builtin-unreachable-5.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-fprintf-1.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-fprintf-chk-1.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-printf-1.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-printf-chk-1.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-vfprintf-1.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-vprintf-1.c: Adjust.
+ * gcc.dg/tree-ssa/builtin-vprintf-chk-1.c: Adjust.
+ * gcc.dg/tree-ssa/ssa-ccp-10.c: Adjust.
+ * gcc.dg/vect/vec-scal-opt.c: Adjust.
+ * gcc.dg/vect/vec-scal-opt1.c: Adjust.
+ * gcc.dg/vect/vec-scal-opt2.c: Adjust.
+
+2012-09-19 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/54132
+ * gcc.dg/tree-ssa/ldist-21.c: New testcase.
+ * gcc.dg/torture/pr54132.c: Likewise.
+
+2012-09-19 Terry Guo <terry.guo@arm.com>
+
+ * lib/gcc-dg.exp (dg_runtest_extra_prunes): New variable to define
+ extra prune rules that will be applied to all tests in a .exp file.
+ (gcc-dg-prune): Use rules defined by the above variable.
+ * gcc.target/arm/arm.exp (dg_runtest_extra_prunes): Skip all the
+ harmless warnings on architecture switch conflict.
+
+2012-09-19 Hans-Peter Nilsson <hp@axis.com>
+
+ * g++.dg/debug/dwarf2/nested-3.C: Match a sequence
+ of asm-comment characters instead of a single one.
+ * g++.dg/debug/dwarf2/nested-2.C: Similar.
+
+2012-09-18 Janis Johnson <janisjo@codesourcery.com>
+
+ * gcc.dg/vect/fast-math-pr35982.c: Skip check instead of xfail.
+
+ * gcc.dg/vect/no-vfa-vect-101.c: Skip a check for an irrelevant
+ target instead of xfailing it.
+ * gcc.dg/vect/no-vfa-vect-102.c: Likewise.
+ * gcc.dg/vect/no-vfa-vect-102a.c: Likewise.
+ * gcc.dg/vect/no-vfa-vect-37.c: Likewise.
+ * gcc.dg/vect/no-vfa-vect-79.c: Likewise.
+ * gcc.dg/vect/vect-104.c: Likewise.
+ * gcc.dg/vect/vect-outer-1-big-array.c: Likewise.
+ * gcc.dg/vect/vect-outer-1.c: Likewise.
+ * gcc.dg/vect/vect-outer-1a-big-array.c: Likewise.
+ * gcc.dg/vect/vect-outer-1a.c: Likewise.
+ * gcc.dg/vect/vect-outer-1b-big-array.c: Likewise.
+ * gcc.dg/vect/vect-outer-1b.c: Likewise.
+ * gcc.dg/vect/vect-outer-2b.c: Likewise.
+ * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
+ * gcc.dg/vect/vect-outer-3a.c: Likewise.
+ * gcc.dg/vect/vect-outer-3b.c: Likewise.
+ * gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.
+
+ * lib/target-supports.exp
+ (check_effective_target_vect_widen_mult_qi_to_hi,
+ check_effective_target_vect_widen_mult_hi_to_si,
+ check_effective_target_vect_widen_mult_qi_to_hi_pattern,
+ check_effective_target_vect_widen_mult_hi_to_si_pattern,
+ check_effective_target_vect_pack_trunc,
+ check_effective_target_vect_unpack,
+ check_effective_target_vect_multiple_sizes): Check arm_neon_ok
+ instead of arm_none.
+
+ * gcc.dg/vect/pr52298.c: Remove "dg-do run".
+
+2012-09-18 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ * lib/target-supports-dg.exp (check-flags): Add cflags from board
+ config to compiler_flags.
+
+2012-09-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/54592
+ * gcc.target/i386/pr54592.c: New test.
+
+ PR tree-optimization/54610
+ * gcc.target/i386/pr54610.c: New test.
+
+2012-09-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/54575
+ * g++.dg/cpp0x/alias-decl-21.C: New.
+ * g++.dg/cpp0x/alias-decl-22.C: New.
+
+2012-09-17 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54608
+ * gfortran.dg/scan_2.f90: New.
+
+2012-09-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/53661
+ * g++.dg/init/aggr9.C: New.
+
+2012-09-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/loop_optimization12.ad[sb]: New test.
+
+2012-09-17 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/54285
+ * gfortran.dg/proc_ptr_result_7.f90: New.
+
+2012-09-17 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/54603
+ * gfortran.dg/structure_constructor_11.f90: New.
+
+2012-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/54563
+ * g++.dg/torture/pr54563.C: New test.
+
2012-09-16 Janus Weil <janus@gcc.gnu.org>
PR fortran/54594
@@ -111,13 +332,6 @@
* gcc.dg/pr44194-1.c: Check that there are no memory accesses left.
-2012-09-14 Jakub Jelinek <jakub@redhat.com>
-
- PR target/54564
- * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
- _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
- of the first.
-
2012-09-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54565
diff --git a/gcc/testsuite/c-c++-common/torture/vector-compare-2.c b/gcc/testsuite/c-c++-common/torture/vector-compare-2.c
index 45453e6b9..628a69903 100644
--- a/gcc/testsuite/c-c++-common/torture/vector-compare-2.c
+++ b/gcc/testsuite/c-c++-common/torture/vector-compare-2.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-options "-Wno-psabi" } */
+/* { dg-options "-Wno-psabi -w" } */
#define vector(elcount, type) \
__attribute__((vector_size((elcount)*sizeof(type)))) type
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-21.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-21.C
new file mode 100644
index 000000000..463f539d3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-21.C
@@ -0,0 +1,23 @@
+// PR c++/54575
+// { dg-do compile { target c++11 } }
+
+template<typename _From, typename _To>
+struct is_convertible { static const bool value = true; };
+
+template<bool> struct enable_if { };
+template<> struct enable_if<true> { typedef int type; };
+
+template<typename _InIter>
+using _RequireInputIter
+= typename enable_if<is_convertible<_InIter,bool>::value>::type;
+
+template<typename _Tp> struct X {
+ template<typename _InputIterator,
+ typename = _RequireInputIter<_InputIterator>>
+ void insert(_InputIterator) {}
+};
+
+template<typename> void foo() {
+ X<int> subdomain_indices;
+ subdomain_indices.insert(0);
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-22.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-22.C
new file mode 100644
index 000000000..1f6cb8f40
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-22.C
@@ -0,0 +1,12 @@
+// The standard is unclear about whether this testcase is well-formed.
+// Clang considers it well-formed, EDG not. Let's go with EDG for now.
+// { dg-do compile { target c++11 } }
+
+template <class T>
+using foo = typename T::bar; // { dg-error "this context" }
+
+class B
+{
+ typedef int bar; // { dg-error "private" }
+ foo<B> f; // { dg-message "required" }
+};
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype-54581.C b/gcc/testsuite/g++.dg/cpp0x/decltype-54581.C
new file mode 100644
index 000000000..5747e5c7e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype-54581.C
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-std=gnu++11 -Wall" } */
+
+typedef float v4f __attribute__((vector_size(4*sizeof(float))));
+
+template <class T> void eat (T&&) {}
+
+void test1 ()
+{
+ v4f x = {0,1,2,3};
+ typedef decltype (x < x) v4i;
+ v4i y = {4,5,6,7}; // v4i is not opaque
+ eat (y);
+}
+
+template<class V>
+void test2 ()
+{
+ V x = {0,1,2,3};
+ typedef decltype (x < x) v4i;
+ v4i y = {4,5,6,7}; // v4i is not opaque
+ eat (y);
+}
+
+int main(){
+ test1();
+ test2<v4f>();
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype32.C b/gcc/testsuite/g++.dg/cpp0x/decltype32.C
index 6cb637bb2..c5f3a55c6 100644
--- a/gcc/testsuite/g++.dg/cpp0x/decltype32.C
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype32.C
@@ -1,12 +1,12 @@
// PR c++/50075
-// { dg-options -std=c++0x }
+// { dg-options "-std=c++0x -ftemplate-depth=10" }
template <typename T>
auto make_array(const T& il) ->
-decltype(make_array(il)) // { dg-error "not declared" }
+decltype(make_array(il)) // { dg-error "not declared|no matching|exceeds" }
{ }
int main()
{
- int z = make_array(1); // { dg-error "no match" }
+ int z = make_array(1); // { dg-error "no matching" }
}
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C b/gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C
index 3e6f6b591..cec703492 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C
@@ -32,6 +32,6 @@ We want to express that the DIE of S::T<int> must be a child of the DIE of S, li
Hence the slightly odd regexp:
- { dg-final { scan-assembler "\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_structure_type\\)\[\n\r\]+\[^\n\r\]*\"S\\\\0\"\[ \t\]+\(\[@|#;!\]|//?\)\[ \t\]+DW_AT_name\[\n\r\]+\(.*\)?\\(DIE\[^\n\r\]*DW_TAG_structure_type\\)\[\n\r\]+\[^\n\r\]*\"T<int>\\\\0\"\[ \t\]+\(.*\)?\\(DIE\[^\n\r\]*DW_TAG_template_type_param\\)\[\n\r\]+\[^\n\r\]*\[\n\r\]+\[^\n\r\]*\[\n\r\]+\[^\n\r\]*\(\[@|#;!\]|//?\)\[ \t\]+end of children of DIE\[^\n\r\]*\[\n\r\]+\[^\n\r\]*end of children of DIE\[^\n\r\]*" } }
+ { dg-final { scan-assembler "\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_structure_type\\)\[\n\r\]+\[^\n\r\]*\"S\\\\0\"\[ \t\]+\(\[@|#;!\]+|//?\)\[ \t\]+DW_AT_name\[\n\r\]+\(.*\)?\\(DIE\[^\n\r\]*DW_TAG_structure_type\\)\[\n\r\]+\[^\n\r\]*\"T<int>\\\\0\"\[ \t\]+\(.*\)?\\(DIE\[^\n\r\]*DW_TAG_template_type_param\\)\[\n\r\]+\[^\n\r\]*\[\n\r\]+\[^\n\r\]*\[\n\r\]+\[^\n\r\]*\(\[@|#;!\]+|//?\)\[ \t\]+end of children of DIE\[^\n\r\]*\[\n\r\]+\[^\n\r\]*end of children of DIE\[^\n\r\]*" } }
*/
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/nested-3.C b/gcc/testsuite/g++.dg/debug/dwarf2/nested-3.C
index 47c6d0b1c..de59637d6 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/nested-3.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/nested-3.C
@@ -59,4 +59,4 @@ main ()
//
// Hence the scary regexp:
//
-// { dg-final { scan-assembler "\[^\n\r\]*\\(DIE \\(0x(\[0-9a-f\]+)\\) DW_TAG_namespace\\)\[\n\r\]+\[^\n\r\]*\"thread\[\^\n\r]+\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*\\(DIE \\(0x(\[0-9a-f\]+)\\) DW_TAG_class_type\\)(\[\n\r\]+\[^\n\r\]*)+\"Executor\[^\n\r\]+\[\n\r\]+\[^\n\r\]*DW_AT_declaration\[\n\r\]+\[^\n\r\]*DW_AT_signature\[^#;/!|@\]*\[#;/!|@\] \[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_subprogram\\)\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*\"CurrentExecutor\[^\n\r\]+\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*end of children of DIE 0x\\3\[\n\r]+\[^\n\r\]*end of children of DIE 0x\\1\[\n\r]+" } }
+// { dg-final { scan-assembler "\[^\n\r\]*\\(DIE \\(0x(\[0-9a-f\]+)\\) DW_TAG_namespace\\)\[\n\r\]+\[^\n\r\]*\"thread\[\^\n\r]+\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*\\(DIE \\(0x(\[0-9a-f\]+)\\) DW_TAG_class_type\\)(\[\n\r\]+\[^\n\r\]*)+\"Executor\[^\n\r\]+\[\n\r\]+\[^\n\r\]*DW_AT_declaration\[\n\r\]+\[^\n\r\]*DW_AT_signature\[^#;/!|@\]*\[#;/!|@\]+ \[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_subprogram\\)\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*\"CurrentExecutor\[^\n\r\]+\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*end of children of DIE 0x\\3\[\n\r]+\[^\n\r\]*end of children of DIE 0x\\1\[\n\r]+" } }
diff --git a/gcc/testsuite/g++.dg/init/aggr9.C b/gcc/testsuite/g++.dg/init/aggr9.C
new file mode 100644
index 000000000..67d829912
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/aggr9.C
@@ -0,0 +1,9 @@
+// PR c++/53661
+
+enum Code {
+ SUCCESS = 0
+};
+
+Code a;
+
+int r[] = {a};
diff --git a/gcc/testsuite/g++.dg/pr54655.C b/gcc/testsuite/g++.dg/pr54655.C
new file mode 100644
index 000000000..5fd5aee9b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr54655.C
@@ -0,0 +1,35 @@
+// { dg-do compile }
+/* { dg-options "-O1" } */
+
+extern "C" class A
+{
+};
+
+template <typename T> class B:A
+{
+public:
+ B (int *, T);
+ ~B ()
+ {
+ }
+};
+
+bool a;
+
+inline void
+fn1 ()
+{
+ switch (0)
+ case 0:
+ {
+ B <int*> b (0, 0);
+ if (a)
+ break;
+ }
+}
+
+void
+fn2 ()
+{
+ fn1 ();
+}
diff --git a/gcc/testsuite/g++.dg/torture/pr54563.C b/gcc/testsuite/g++.dg/torture/pr54563.C
new file mode 100644
index 000000000..2980320f6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr54563.C
@@ -0,0 +1,14 @@
+// PR tree-optimization/54563
+// { dg-do compile }
+
+extern "C" float powf (float, float);
+struct S { ~S (); };
+double bar ();
+double x;
+
+void
+foo ()
+{
+ S s;
+ x = powf (bar (), 2.);
+}
diff --git a/gcc/testsuite/g++.dg/torture/pr54647.C b/gcc/testsuite/g++.dg/torture/pr54647.C
new file mode 100644
index 000000000..2177ecd67
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr54647.C
@@ -0,0 +1,25 @@
+// { dg-do compile }
+
+class A
+{
+};
+template <class type> struct D:A
+{
+ type & operator[](int);
+};
+struct B
+{
+ typedef D <int *>Row;
+ struct C
+ {
+ Row *row;
+ };
+};
+B::C a;
+B::Row & b = *a.row;
+void
+fn1 ()
+{
+ while (1)
+ b[0] = b[0] ? (int *) -1 : 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20120919-1.c b/gcc/testsuite/gcc.c-torture/execute/20120919-1.c
new file mode 100644
index 000000000..e7f329538
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20120919-1.c
@@ -0,0 +1,37 @@
+/* PR rtl-optimization/54290 */
+/* Testcase by Eric Volk <eriksnga@gmail.com> */
+
+double vd[2] = {1., 0.};
+int vi[2] = {1234567890, 0};
+double *pd = vd;
+int *pi = vi;
+
+extern void abort(void);
+
+void init (int *n, int *dummy) __attribute__ ((noinline,noclone));
+
+void init (int *n, int *dummy)
+{
+ if(0 == n) dummy[0] = 0;
+}
+
+int main (void)
+{
+ int dummy[1532];
+ int i = -1, n = 1, s = 0;
+ init (&n, dummy);
+ while (i < n) {
+ if (i == 0) {
+ if (pd[i] > 0) {
+ if (pi[i] > 0) {
+ s += pi[i];
+ }
+ }
+ pd[i] = pi[i];
+ }
+ ++i;
+ }
+ if (s != 1234567890)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/builtin-object-size-10.c b/gcc/testsuite/gcc.dg/builtin-object-size-10.c
index 6c7ed45b6..96c523e36 100644
--- a/gcc/testsuite/gcc.dg/builtin-object-size-10.c
+++ b/gcc/testsuite/gcc.dg/builtin-object-size-10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-objsz-details" } */
+/* { dg-options "-O2 -fdump-tree-objsz1-details" } */
typedef struct {
char sentinel[4];
@@ -21,6 +21,6 @@ foo(char *x)
return dpkt;
}
-/* { dg-final { scan-tree-dump "maximum object size 21" "objsz" } } */
-/* { dg-final { scan-tree-dump "maximum subobject size 16" "objsz" } } */
-/* { dg-final { cleanup-tree-dump "objsz" } } */
+/* { dg-final { scan-tree-dump "maximum object size 21" "objsz1" } } */
+/* { dg-final { scan-tree-dump "maximum subobject size 16" "objsz1" } } */
+/* { dg-final { cleanup-tree-dump "objsz1" } } */
diff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-5.c b/gcc/testsuite/gcc.dg/builtin-unreachable-5.c
index f6fb4ac6f..904a474a5 100644
--- a/gcc/testsuite/gcc.dg/builtin-unreachable-5.c
+++ b/gcc/testsuite/gcc.dg/builtin-unreachable-5.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
int
foo (int a)
@@ -16,8 +16,8 @@ foo (int a)
return a > 0;
}
-/* { dg-final { scan-tree-dump-times "if \\(" 0 "fab" } } */
-/* { dg-final { scan-tree-dump-times "goto" 0 "fab" } } */
-/* { dg-final { scan-tree-dump-times "L1:" 0 "fab" } } */
-/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 0 "fab" } } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump-times "if \\(" 0 "fab1" } } */
+/* { dg-final { scan-tree-dump-times "goto" 0 "fab1" } } */
+/* { dg-final { scan-tree-dump-times "L1:" 0 "fab1" } } */
+/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 0 "fab1" } } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-6.c b/gcc/testsuite/gcc.dg/builtin-unreachable-6.c
index 26b5ac753..2fe06ac7a 100644
--- a/gcc/testsuite/gcc.dg/builtin-unreachable-6.c
+++ b/gcc/testsuite/gcc.dg/builtin-unreachable-6.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
void
foo (int b, int c)
@@ -16,6 +16,6 @@ lab2:
goto *x;
}
-/* { dg-final { scan-tree-dump-times "lab:" 1 "fab" } } */
-/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab" } } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */
+/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab1" } } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/pr54669.c b/gcc/testsuite/gcc.dg/pr54669.c
new file mode 100644
index 000000000..3868ae691
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr54669.c
@@ -0,0 +1,22 @@
+/* PR tree-optimization/54669 */
+/* Testcase by Zdenek Sojka <zsojka@seznam.cz> */
+
+/* { dg-compile } */
+/* { dg-options "-O2 -fexceptions -fnon-call-exceptions" } */
+
+int a[10];
+
+void
+foo (void)
+{
+ int x;
+ int i;
+ for (i = 0; i < 1;)
+ {
+ int b[3];
+ for (i = 0; i < 1; i++)
+ b[i] = a[i];
+ if (&x)
+ a[0] = b[0];
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr54132.c b/gcc/testsuite/gcc.dg/torture/pr54132.c
new file mode 100644
index 000000000..97bc01caf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr54132.c
@@ -0,0 +1,18 @@
+/* { dg-do run } */
+
+extern void abort (void);
+void foo(char *p, int n)
+{
+ int i;
+ for (i = 1; i < n; i++)
+ p[i] = p[i - 1];
+}
+int main()
+{
+ char a[1024];
+ a[0] = 1;
+ foo (a, 1024);
+ if (a[1023] != 1)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
index b08e1242b..b69cb9055 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
typedef struct { int i; } FILE;
FILE *fp;
@@ -29,13 +29,13 @@ void test (void)
vi9 = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab"} } */
-/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab"} } */
-/* { dg-final { scan-tree-dump "vi8.*fprintf.*fp.*\"%d%d\".*vi9" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi8.*fprintf.*fp.*\"%d%d\".*vi9" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
index 93e38cb9a..201186bc4 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
typedef struct { int i; } FILE;
FILE *fp;
@@ -29,13 +29,13 @@ void test (void)
vi9 = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab"} } */
-/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab"} } */
-/* { dg-final { scan-tree-dump "vi8.*__fprintf_chk.*fp.*1.*\"%d%d\".*vi9" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi8.*__fprintf_chk.*fp.*1.*\"%d%d\".*vi9" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
index a78d0880c..f6bde472d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
extern int printf (const char *, ...);
volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
@@ -29,14 +29,14 @@ void test (void)
via = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*printf.*\"hello\".*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*printf.*\"hello\".*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab"} } */
-/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab"} } */
-/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*printf.*\"hello\".*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*printf.*\"hello\".*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
index 2f85b28ed..c7e931366 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
extern int __printf_chk (int, const char *, ...);
volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
@@ -29,14 +29,14 @@ void test (void)
via = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*__printf_chk.*1.*\"hello\".*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*__printf_chk.*1.*\"hello\".*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab"} } */
-/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab"} } */
-/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*__printf_chk.*1.*\"hello\".*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*__printf_chk.*1.*\"hello\".*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
index 1083f13bc..60cbe4fc7 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
#include <stdarg.h>
@@ -29,11 +29,11 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
vi7 = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*vfprintf.*\"%s\".*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*vfprintf.*\"%c\".*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*vfprintf.*\"%s\\\\n\".*vi7" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*vfprintf.*\"%s\".*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*vfprintf.*\"%c\".*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*vfprintf.*\"%s\\\\n\".*vi7" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
index ce767d1a1..ead09ceda 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
#include <stdarg.h>
@@ -29,11 +29,11 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
vi7 = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*__vfprintf_chk.*fp.*1.*\"%s\".*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*__vfprintf_chk.*fp.*1.*\"%c\".*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*__vfprintf_chk.*fp.*1.*\"%s\\\\n\".*vi7" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*__vfprintf_chk.*fp.*1.*\"%s\".*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*__vfprintf_chk.*fp.*1.*\"%c\".*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*__vfprintf_chk.*fp.*1.*\"%s\\\\n\".*vi7" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
index 416ee5b54..f87186dd8 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
#include <stdarg.h>
@@ -27,11 +27,11 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
vi7 = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*vprintf.*\"hello\".*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*vprintf.*\"%s\".*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*vprintf.*\"%c\".*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*vprintf.*\"%s\\\\n\".*vi7" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*vprintf.*\"hello\".*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*vprintf.*\"%s\".*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*vprintf.*\"%c\".*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*vprintf.*\"%s\\\\n\".*vi7" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
index 567a3dfd1..3ffb51b8d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-fab" } */
+/* { dg-options "-O2 -fdump-tree-fab1" } */
#include <stdarg.h>
@@ -27,11 +27,11 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
vi7 = 0;
}
-/* { dg-final { scan-tree-dump "vi0.*__vprintf_chk.*1.*\"hello\".*vi1" "fab"} } */
-/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
-/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
-/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab"} } */
-/* { dg-final { scan-tree-dump "vi4.*__vprintf_chk.*1.*\"%s\".*vi5" "fab"} } */
-/* { dg-final { scan-tree-dump "vi5.*__vprintf_chk.*1.*\"%c\".*vi6" "fab"} } */
-/* { dg-final { scan-tree-dump "vi6.*__vprintf_chk.*1.*\"%s\\\\n\".*vi7" "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump "vi0.*__vprintf_chk.*1.*\"hello\".*vi1" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi4.*__vprintf_chk.*1.*\"%s\".*vi5" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi5.*__vprintf_chk.*1.*\"%c\".*vi6" "fab1"} } */
+/* { dg-final { scan-tree-dump "vi6.*__vprintf_chk.*1.*\"%s\\\\n\".*vi7" "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-19.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-19.c
index 6d25c1bb4..f309e3c7b 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-19.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-19.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-forwprop2" } */
+/* { dg-options "-O -fdump-tree-forwprop1" } */
typedef int vec __attribute__((vector_size (4 * sizeof (int))));
void f (vec *x1, vec *x2)
@@ -11,5 +11,5 @@ void f (vec *x1, vec *x2)
*x1 = z;
}
-/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "forwprop2" } } */
-/* { dg-final { cleanup-tree-dump "forwprop2" } } */
+/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "forwprop1" } } */
+/* { dg-final { cleanup-tree-dump "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-20.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-20.c
index 5b0e8ee98..b1daa9133 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-20.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-20.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target double64 } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O -fdump-tree-forwprop1" } */
#include <stdint.h>
@@ -66,5 +66,5 @@ void l (double d, vecf* r)
*r = __builtin_shuffle (x, y, m); // { d, -d }
}
-/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "optimized" } } */
-/* { dg-final { cleanup-tree-dump "optimized" } } */
+/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "forwprop1" } } */
+/* { dg-final { cleanup-tree-dump "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-21.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-21.c
index 4859fa8c3..d92b9b33a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-21.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-21.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-optimized" } */
+/* { dg-options "-O -fdump-tree-copyprop1" } */
typedef int v4si __attribute__ ((vector_size (4 * sizeof(int))));
int
@@ -9,5 +9,8 @@ test (v4si *x, v4si *y)
v4si z = __builtin_shuffle (*x, *y, m);
return z[2];
}
-/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "optimized" } } */
-/* { dg-final { cleanup-tree-dump "optimized" } } */
+
+/* Optimization in forwprop1, cleanup in copyprop1. */
+
+/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "copyprop1" } } */
+/* { dg-final { cleanup-tree-dump "copyprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-22.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-22.c
index 9c66c9972..60c344d05 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-22.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-22.c
@@ -1,7 +1,7 @@
/* { dg-do compile } */
/* { dg-require-effective-target vect_double } */
/* { dg-require-effective-target vect_perm } */
-/* { dg-options "-O -fdump-tree-optimized" } */
+/* { dg-options "-O -fdump-tree-copyprop1" } */
typedef double vec __attribute__((vector_size (2 * sizeof (double))));
void f (vec *px, vec *y, vec *z)
@@ -13,6 +13,8 @@ void f (vec *px, vec *y, vec *z)
*z = t2;
}
-/* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 1 "optimized" } } */
-/* { dg-final { scan-tree-dump-not "BIT_FIELD_REF" "optimized" } } */
-/* { dg-final { cleanup-tree-dump "optimized" } } */
+/* Optimization in forwprop1, cleanup in copyprop1. */
+
+/* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 1 "copyprop1" } } */
+/* { dg-final { scan-tree-dump-not "BIT_FIELD_REF" "copyprop1" } } */
+/* { dg-final { cleanup-tree-dump "copyprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ldist-21.c b/gcc/testsuite/gcc.dg/tree-ssa/ldist-21.c
new file mode 100644
index 000000000..35f01aba2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ldist-21.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -fdump-tree-ldist-details" } */
+
+void bar(char *p, int n)
+{
+ int i;
+ for (i = 1; i < n; i++)
+ p[i-1] = p[i];
+}
+
+/* { dg-final { scan-tree-dump "generated memmove" "ldist" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c b/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c
index ed63a1887..5cac1cefb 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-3.c
@@ -14,5 +14,5 @@ f(int k)
}
}
-/* { dg-final { scan-tree-dump-times "&a" 1 "optimized" { xfail lp64 } } } */
+/* { dg-final { scan-tree-dump-times "&a" 1 "optimized" { xfail { lp64 || llp64 } } } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c b/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c
index a538c32d3..5f15d622d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-4.c
@@ -19,5 +19,5 @@ f(int k)
}
}
-/* { dg-final { scan-tree-dump-times "&a" 1 "optimized" { xfail lp64 } } } */
+/* { dg-final { scan-tree-dump-times "&a" 1 "optimized" { xfail { lp64 || llp64 } } } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
index 7177d991e..9eecf94e2 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-fab" } */
+/* { dg-options "-O1 -fdump-tree-fab1" } */
/* Check that we fold strlen of equally long strings, and that we do not
fail to terminate when there is a nontrivial cycle in the corresponding
@@ -30,5 +30,5 @@ middle:
}
/* There should be no calls to strlen. */
-/* { dg-final { scan-tree-dump-times "strlen" 0 "fab"} } */
-/* { dg-final { cleanup-tree-dump "fab" } } */
+/* { dg-final { scan-tree-dump-times "strlen" 0 "fab1"} } */
+/* { dg-final { cleanup-tree-dump "fab1" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c b/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
index 1da8e7b2c..5b834568a 100644
--- a/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
+++ b/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
@@ -21,5 +21,5 @@ float method2_int16 (struct mem *mem)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_extract_even_odd || vect_strided2 } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail { vect_extract_even_odd || vect_strided2 } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_extract_even_odd || vect_strided2 } } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
index 3a54a7530..6372aabd6 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
@@ -45,7 +45,7 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
index a8d3b042d..2221049d7 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
@@ -53,7 +53,7 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
index 41bbbc15c..d7b68e53a 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
@@ -53,7 +53,7 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
index c8cf2cafb..dff14ff5a 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
@@ -58,6 +58,6 @@ int main (void)
If/when the aliasing problems are resolved, unalignment may
prevent vectorization on some targets. */
/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "can't determine dependence" 4 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
index 3c5ce4be8..1653f3d6c 100644
--- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
+++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
@@ -46,6 +46,6 @@ int main (void)
If/when the aliasing problems are resolved, unalignment may
prevent vectorization on some targets. */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr52298.c b/gcc/testsuite/gcc.dg/vect/pr52298.c
index c2401607c..453d7c8aa 100644
--- a/gcc/testsuite/gcc.dg/vect/pr52298.c
+++ b/gcc/testsuite/gcc.dg/vect/pr52298.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-options "-O1 -ftree-vectorize -fno-tree-pre -fno-tree-loop-im" } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c b/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
index f53e66d4c..86408160c 100644
--- a/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
+++ b/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
@@ -19,5 +19,5 @@ int main (int argc, char *argv[]) {
return vidx(short, r1, 0);
}
-/* { dg-final { scan-tree-dump-times ">> k.\[0-9_\]*" 1 "veclower2" } } */
-/* { dg-final { cleanup-tree-dump "veclower2" } } */
+/* { dg-final { scan-tree-dump-times ">> k.\[0-9_\]*" 1 "veclower21" } } */
+/* { dg-final { cleanup-tree-dump "veclower21" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c b/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
index 4025f6717..33d3bbbe7 100644
--- a/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
+++ b/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
@@ -17,5 +17,5 @@ int main (int argc, char *argv[]) {
return vidx(short, r1, 0);
}
-/* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower2" } } */
-/* { dg-final { cleanup-tree-dump "veclower2" } } */
+/* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower21" } } */
+/* { dg-final { cleanup-tree-dump "veclower21" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c b/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
index 677836da9..397613feb 100644
--- a/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
+++ b/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
@@ -16,5 +16,5 @@ int main (int argc, char *argv[]) {
return vidx(short, r1, 0);
}
-/* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower2" } } */
-/* { dg-final { cleanup-tree-dump "veclower2" } } */
+/* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower21" } } */
+/* { dg-final { cleanup-tree-dump "veclower21" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-104.c b/gcc/testsuite/gcc.dg/vect/vect-104.c
index 2b56ddfb3..107f5a770 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-104.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-104.c
@@ -64,7 +64,7 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c
index b896faa7f..3f23aeedf 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c
@@ -22,6 +22,6 @@ foo (){
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-1.c b/gcc/testsuite/gcc.dg/vect/vect-outer-1.c
index 2abcb1794..623d146d3 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-1.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-1.c
@@ -22,6 +22,6 @@ foo (){
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c
index 0a53c2548..416cce187 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c
@@ -20,6 +20,6 @@ foo (){
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-1a.c b/gcc/testsuite/gcc.dg/vect/vect-outer-1a.c
index acd504c9e..a8dce0512 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-1a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-1a.c
@@ -20,6 +20,6 @@ foo (){
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c
index 551c89fba..7c03540ec 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c
@@ -22,6 +22,6 @@ foo (){
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-1b.c b/gcc/testsuite/gcc.dg/vect/vect-outer-1b.c
index c475a5e44..2c4a7392c 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-1b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-1b.c
@@ -22,6 +22,6 @@ foo (){
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-2b.c b/gcc/testsuite/gcc.dg/vect/vect-outer-2b.c
index 2b3351626..fccd13dcf 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-2b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-2b.c
@@ -37,6 +37,6 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
index 9768a1ed5..c6486db69 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
@@ -49,6 +49,6 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c b/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
index 1759ee38d..3d6e1076e 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
@@ -49,6 +49,6 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-outer-3b.c b/gcc/testsuite/gcc.dg/vect/vect-outer-3b.c
index 4a86af28d..de16fa5cc 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-outer-3b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-outer-3b.c
@@ -49,6 +49,6 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 2 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "grouped access in outer loop" 4 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
index dc9eb6158..2ecb225a8 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
@@ -58,7 +58,7 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { target { ! vect_multiple_sizes } } } } */
/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 2 "vect" { target vect_multiple_sizes } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.target/arm/arm.exp b/gcc/testsuite/gcc.target/arm/arm.exp
index 0838d37b3..de5289210 100644
--- a/gcc/testsuite/gcc.target/arm/arm.exp
+++ b/gcc/testsuite/gcc.target/arm/arm.exp
@@ -30,6 +30,11 @@ if ![info exists DEFAULT_CFLAGS] then {
set DEFAULT_CFLAGS " -ansi -pedantic-errors"
}
+# This variable should only apply to tests called in this exp file.
+global dg_runtest_extra_prunes
+set dg_runtest_extra_prunes ""
+lappend dg_runtest_extra_prunes "warning: switch -m(cpu|arch)=.* conflicts with -m(cpu|arch)=.* switch"
+
# Initialize `dg'.
dg-init
@@ -38,4 +43,5 @@ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
"" $DEFAULT_CFLAGS
# All done.
+set dg_runtest_extra_prunes ""
dg-finish
diff --git a/gcc/testsuite/gcc.target/i386/pr54592.c b/gcc/testsuite/gcc.target/i386/pr54592.c
new file mode 100644
index 000000000..20dc11c23
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr54592.c
@@ -0,0 +1,17 @@
+/* PR target/54592 */
+/* { dg-do compile } */
+/* { dg-options "-Os -msse2" } */
+/* { dg-require-effective-target sse2 } */
+
+#include <emmintrin.h>
+
+void
+func (__m128i * foo, size_t a, size_t b, int *dst)
+{
+ __m128i x = foo[a];
+ __m128i y = foo[b];
+ __m128i sum = _mm_add_epi32 (x, y);
+ *dst = _mm_cvtsi128_si32 (sum);
+}
+
+/* { dg-final { scan-assembler "paddd\[^\n\r\]*(\\(\[^\n\r\]*\\)|XMMWORD PTR)" } } */
diff --git a/gcc/testsuite/gcc.target/mips/pr37362.c b/gcc/testsuite/gcc.target/mips/pr37362.c
index a37836640..da34b9d21 100644
--- a/gcc/testsuite/gcc.target/mips/pr37362.c
+++ b/gcc/testsuite/gcc.target/mips/pr37362.c
@@ -1,5 +1,5 @@
/* mips*-sde-elf doesn't have 128-bit long doubles. */
-/* { dg-do compile { target { ! mips*-sde-elf } } } */
+/* { dg-do compile { target { ! mips*-sde-elf mips*-mti-elf } } } */
/* { dg-options "-march=mips64r2 -mabi=n32" } */
typedef float TFtype __attribute__((mode(TF)));
diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-get-timebase.c b/gcc/testsuite/gcc.target/powerpc/ppc-get-timebase.c
new file mode 100644
index 000000000..9de8929af
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/ppc-get-timebase.c
@@ -0,0 +1,20 @@
+/* { dg-do run { target { powerpc*-*-* } } } */
+
+/* Test if __builtin_ppc_get_timebase () is compatible with the current
+ processor and if it's changing between reads. A read failure might indicate
+ a Power ISA or binutils change. */
+
+#include <inttypes.h>
+
+int
+main (void)
+{
+ uint64_t t = __builtin_ppc_get_timebase ();
+ int j;
+
+ for (j = 0; j < 1000000; j++)
+ if (t != __builtin_ppc_get_timebase ())
+ return 0;
+
+ return 1;
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-mftb.c b/gcc/testsuite/gcc.target/powerpc/ppc-mftb.c
new file mode 100644
index 000000000..f64e45d1d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/ppc-mftb.c
@@ -0,0 +1,18 @@
+/* { dg-do run { target { powerpc*-*-* } } } */
+
+/* Test if __builtin_ppc_mftb () is compatible with the current processor and
+ if it's changing between reads. A read failure might indicate a Power
+ ISA or binutils change. */
+
+int
+main (void)
+{
+ unsigned long t = __builtin_ppc_mftb ();
+ int j;
+
+ for (j = 0; j < 1000000; j++)
+ if (t != __builtin_ppc_mftb ())
+ return 0;
+
+ return 1;
+}
diff --git a/gcc/testsuite/gcc.target/sh/pr54089-1.c b/gcc/testsuite/gcc.target/sh/pr54089-1.c
index 2101c5358..77924554f 100644
--- a/gcc/testsuite/gcc.target/sh/pr54089-1.c
+++ b/gcc/testsuite/gcc.target/sh/pr54089-1.c
@@ -2,7 +2,8 @@
/* { dg-do compile { target "sh*-*-*" } } */
/* { dg-options "-O1" } */
/* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } } */
-/* { dg-final { scan-assembler-times "rotcr" 11 } } */
+/* { dg-final { scan-assembler-times "rotcr" 15 } } */
+/* { dg-final { scan-assembler-times "shll\t" 1 } } */
typedef char bool;
@@ -81,3 +82,30 @@ test_10 (int a, int b)
bool r = a == b;
return r << 31;
}
+
+unsigned int
+test_11 (unsigned int a, int b)
+{
+ /* 1x shlr, 1x rotcr */
+ return (a >> 1) | (b << 31);
+}
+
+unsigned int
+test_12 (unsigned int a, int b)
+{
+ return (a >> 2) | (b << 31);
+}
+
+unsigned int
+test_13 (unsigned int a, int b)
+{
+ return (a >> 3) | (b << 31);
+}
+
+unsigned int
+test_14 (unsigned int a, int b)
+{
+ /* 1x shll, 1x rotcr */
+ bool r = b < 0;
+ return ((a >> 1) | (r << 31));
+}
diff --git a/gcc/testsuite/gcc.target/sh/pr54236-1.c b/gcc/testsuite/gcc.target/sh/pr54236-1.c
index 3a7453c0d..748b6c9f2 100644
--- a/gcc/testsuite/gcc.target/sh/pr54236-1.c
+++ b/gcc/testsuite/gcc.target/sh/pr54236-1.c
@@ -4,9 +4,9 @@
/* { dg-do compile { target "sh*-*-*" } } */
/* { dg-options "-O1" } */
/* { dg-skip-if "" { "sh*-*-*" } { "-m5*"} { "" } } */
-/* { dg-final { scan-assembler-times "addc" 3 } } */
+/* { dg-final { scan-assembler-times "addc" 4 } } */
/* { dg-final { scan-assembler-times "subc" 3 } } */
-/* { dg-final { scan-assembler-times "sett" 4 } } */
+/* { dg-final { scan-assembler-times "sett" 5 } } */
/* { dg-final { scan-assembler-times "negc" 1 } } */
/* { dg-final { scan-assembler-not "movt" } } */
@@ -74,3 +74,10 @@ test_07 (int *vec)
return vi;
}
+
+int
+test_08 (int a)
+{
+ /* 1x addc, 1x sett */
+ return (a << 1) + 1;
+}
diff --git a/gcc/testsuite/gfortran.dg/class_array_14.f90 b/gcc/testsuite/gfortran.dg/class_array_14.f90
new file mode 100644
index 000000000..ad227a907
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/class_array_14.f90
@@ -0,0 +1,53 @@
+! { dg-do run }
+!
+! PR fortran/54618
+!
+! Check whether default initialization works with INTENT(OUT)
+! and ALLOCATABLE and no segfault occurs with OPTIONAL.
+!
+
+subroutine test1()
+ type typ1
+ integer :: i = 6
+ end type typ1
+
+ type(typ1) :: x
+
+ x%i = 77
+ call f(x)
+ if (x%i /= 6) call abort ()
+ call f()
+contains
+ subroutine f(y1)
+ class(typ1), intent(out), optional :: y1
+ end subroutine f
+end subroutine test1
+
+subroutine test2()
+ type mytype
+ end type mytype
+ type, extends(mytype):: mytype2
+ end type mytype2
+
+ class(mytype), allocatable :: x,y
+ allocate (mytype2 :: x)
+ call g(x)
+ if (allocated (x) .or. .not. same_type_as (x,y)) call abort()
+
+ allocate (mytype2 :: x)
+ call h(x)
+ if (allocated (x) .or. .not. same_type_as (x,y)) call abort()
+
+ call h()
+contains
+ subroutine g(y2)
+ class(mytype), intent(out), allocatable :: y2
+ end subroutine g
+ subroutine h(y3)
+ class(mytype), optional, intent(out), allocatable :: y3
+ end subroutine h
+end subroutine test2
+
+call test1()
+call test2()
+end
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_result_7.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_result_7.f90
new file mode 100644
index 000000000..1d810c6b5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_result_7.f90
@@ -0,0 +1,27 @@
+! { dg-do run }
+!
+! PR 54285: [F03] Calling a PPC with proc-ptr result
+!
+! Contributed by Janus Weil <janus@gcc.gnu.org>
+
+type :: t
+ procedure(a), pointer, nopass :: p
+end type
+
+type(t) :: x
+procedure(iabs), pointer :: pp
+
+x%p => a
+
+pp => x%p()
+
+if (pp(-3) /= 3) call abort
+
+contains
+
+ function a() result (b)
+ procedure(iabs), pointer :: b
+ b => iabs
+ end function
+
+end
diff --git a/gcc/testsuite/gfortran.dg/scan_2.f90 b/gcc/testsuite/gfortran.dg/scan_2.f90
new file mode 100644
index 000000000..1e68130c3
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/scan_2.f90
@@ -0,0 +1,35 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! PR fortran/54608
+!
+! Contributed by James Van Buskirk
+!
+module m1
+ implicit none
+ contains
+ subroutine s1(A)
+ logical A
+ integer iscan, iverify
+ character(7), parameter :: tf(2) = ['.FALSE.','.TRUE. ']
+
+ iscan = scan('AA','A',back=A)
+ iverify = verify('xx','A',back=A)
+ if (iscan /= 2 .or. iverify /= 2) call abort ()
+ print *, iverify, iscan
+! write(*,'(a)') 'SCAN test: A = '//trim(tf(iscan)) ! should print true
+! write(*,'(a)') 'VERIFY test: A = '//trim(tf(iverify)) ! should print true
+ end subroutine s1
+end module m1
+
+program p1
+ use m1
+ implicit none
+ logical B
+
+ call s1(.TRUE.)
+end program p1
+
+! { dg-final { scan-tree-dump-times "iscan = _gfortran_string_scan \\(2," 1 "original" } }
+! { dg-final { scan-tree-dump-times "iverify = _gfortran_string_verify \\(2," 1 "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
diff --git a/gcc/testsuite/gfortran.dg/structure_constructor_11.f90 b/gcc/testsuite/gfortran.dg/structure_constructor_11.f90
new file mode 100644
index 000000000..167f8e76c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/structure_constructor_11.f90
@@ -0,0 +1,96 @@
+! { dg-do run}
+! { dg-options "-fdump-tree-original" }
+!
+! PR fortran/54603
+!
+! Contributed by Kacper Kowalik
+!
+module foo
+ implicit none
+
+ interface
+ subroutine cg_ext
+ implicit none
+ end subroutine cg_ext
+ end interface
+
+ type :: ext_ptr
+ procedure(cg_ext), nopass, pointer :: init
+ procedure(cg_ext), nopass, pointer :: cleanup
+ end type ext_ptr
+
+ type :: ext_ptr_array
+ type(ext_ptr) :: a
+ contains
+ procedure :: epa_init
+ end type ext_ptr_array
+
+ type(ext_ptr_array) :: bar
+
+contains
+ subroutine epa_init(this, init, cleanup)
+ implicit none
+ class(ext_ptr_array), intent(inout) :: this
+ procedure(cg_ext), pointer, intent(in) :: init
+ procedure(cg_ext), pointer, intent(in) :: cleanup
+
+ this%a = ext_ptr(null(), null()) ! Wrong code
+ this%a = ext_ptr(init, cleanup) ! Wrong code
+
+ this%a%init => init ! OK
+ this%a%cleanup => cleanup ! OK
+
+ this%a = ext_ptr(this%a%init,this%a%cleanup) ! ICE in fold_convert_loc
+ end subroutine epa_init
+
+end module foo
+
+program ala
+ use foo, only: bar
+ implicit none
+ integer :: count1, count2
+ count1 = 0
+ count2 = 0
+
+ call setme
+ call bar%a%cleanup()
+ call bar%a%init()
+
+ ! They should be called once
+ if (count1 /= 23 .or. count2 /= 42) call abort ()
+
+contains
+
+ subroutine dummy1
+ implicit none
+ !print *, 'dummy1'
+ count1 = 23
+ end subroutine dummy1
+
+ subroutine dummy2
+ implicit none
+ !print *, 'dummy2'
+ count2 = 42
+ end subroutine dummy2
+
+ subroutine setme
+ use foo, only: bar, cg_ext
+ implicit none
+ procedure(cg_ext), pointer :: a_init, a_clean
+
+ a_init => dummy1
+ a_clean => dummy2
+ call bar%epa_init(a_init, a_clean)
+ end subroutine setme
+
+end program ala
+
+! { dg-final { scan-tree-dump-times "ext_ptr.\[0-9\]+.init = 0B;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "ext_ptr.\[0-9\]+.cleanup = 0B;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "ext_ptr.1.init = \\*init;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "ext_ptr.1.cleanup = \\*cleanup;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "this->_data->a.init = \\*init;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "this->_data->a.cleanup = \\*cleanup;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "ext_ptr.\[0-9\]+.init = this->_data->a.init;" 1 "original" } }
+! { dg-final { scan-tree-dump-times "ext_ptr.\[0-9\]+.cleanup = this->_data->a.cleanup;" 1 "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
diff --git a/gcc/testsuite/gnat.dg/addr1.adb b/gcc/testsuite/gnat.dg/addr1.adb
index 521d0495a..5f5ff5356 100644
--- a/gcc/testsuite/gnat.dg/addr1.adb
+++ b/gcc/testsuite/gnat.dg/addr1.adb
@@ -1,3 +1,5 @@
+-- { dg-do compile }
+
with System;
package body addr1 is
task type T is
diff --git a/gcc/testsuite/gnat.dg/addr1.ads b/gcc/testsuite/gnat.dg/addr1.ads
index 51061fde0..99496cd51 100644
--- a/gcc/testsuite/gnat.dg/addr1.ads
+++ b/gcc/testsuite/gnat.dg/addr1.ads
@@ -1,5 +1,3 @@
--- { dg-do compile }
-
package addr1 is
pragma Elaborate_Body;
end;
diff --git a/gcc/testsuite/gnat.dg/array16.adb b/gcc/testsuite/gnat.dg/array16.adb
index 18abf8f81..be61cb93c 100644
--- a/gcc/testsuite/gnat.dg/array16.adb
+++ b/gcc/testsuite/gnat.dg/array16.adb
@@ -1,3 +1,6 @@
+-- { dg-do compile }
+-- { dg-options "-O -gnatn -fdump-tree-optimized" }
+
package body Array16 is
function F1 (A : access My_T1) return My_T1 is
@@ -20,3 +23,6 @@ package body Array16 is
end;
end Array16;
+
+-- { dg-final { scan-tree-dump-not "secondary_stack" "optimized" } }
+-- { dg-final { cleanup-tree-dump "optimized" } }
diff --git a/gcc/testsuite/gnat.dg/array16.ads b/gcc/testsuite/gnat.dg/array16.ads
index 69452c98f..a54a2df45 100644
--- a/gcc/testsuite/gnat.dg/array16.ads
+++ b/gcc/testsuite/gnat.dg/array16.ads
@@ -1,6 +1,3 @@
--- { dg-do compile }
--- { dg-options "-O -gnatn -fdump-tree-optimized" }
-
with Array16_Pkg;
package Array16 is
@@ -26,6 +23,3 @@ package Array16 is
procedure Proc (A : access My_T1; B : access My_T2);
end Array16;
-
--- { dg-final { scan-tree-dump-not "secondary_stack" "optimized" } }
--- { dg-final { cleanup-tree-dump "optimized" } }
diff --git a/gcc/testsuite/gnat.dg/atomic5.adb b/gcc/testsuite/gnat.dg/atomic5.adb
index efbed4e34..d17e6ff1c 100644
--- a/gcc/testsuite/gnat.dg/atomic5.adb
+++ b/gcc/testsuite/gnat.dg/atomic5.adb
@@ -1,3 +1,5 @@
+-- { dg-do compile }
+
package body Atomic5 is
function Create return R is
diff --git a/gcc/testsuite/gnat.dg/atomic5.ads b/gcc/testsuite/gnat.dg/atomic5.ads
index 3f653fa11..ce702ba1c 100644
--- a/gcc/testsuite/gnat.dg/atomic5.ads
+++ b/gcc/testsuite/gnat.dg/atomic5.ads
@@ -1,5 +1,3 @@
--- { dg-do compile }
-
with Unchecked_Conversion;
package Atomic5 is
diff --git a/gcc/testsuite/gnat.dg/concat2.adb b/gcc/testsuite/gnat.dg/concat2.adb
index 221c4a310..a642d2644 100644
--- a/gcc/testsuite/gnat.dg/concat2.adb
+++ b/gcc/testsuite/gnat.dg/concat2.adb
@@ -1,3 +1,6 @@
+-- { dg-do compile }
+-- { dg-options "-O" }
+
with Text_IO; use Text_IO;
package body Concat2 is
@@ -15,4 +18,3 @@ package body Concat2 is
end;
end Concat2;
-
diff --git a/gcc/testsuite/gnat.dg/concat2.ads b/gcc/testsuite/gnat.dg/concat2.ads
index 01e620be0..9f90cbb0e 100644
--- a/gcc/testsuite/gnat.dg/concat2.ads
+++ b/gcc/testsuite/gnat.dg/concat2.ads
@@ -1,6 +1,3 @@
--- { dg-do compile }
--- { dg-options "-O" }
-
package Concat2 is
procedure Browse;
diff --git a/gcc/testsuite/gnat.dg/discr23.ads b/gcc/testsuite/gnat.dg/discr23.ads
index 8e673b382..960dcdaf8 100644
--- a/gcc/testsuite/gnat.dg/discr23.ads
+++ b/gcc/testsuite/gnat.dg/discr23.ads
@@ -1,5 +1,3 @@
--- { dg-do compile }
-
package Discr23 is
procedure Dummy;
diff --git a/gcc/testsuite/gnat.dg/discr29.adb b/gcc/testsuite/gnat.dg/discr29.adb
index 56047c9cf..834437f6f 100644
--- a/gcc/testsuite/gnat.dg/discr29.adb
+++ b/gcc/testsuite/gnat.dg/discr29.adb
@@ -1,3 +1,5 @@
+-- { dg-do compile }
+
package body Discr29 is
procedure Proc (R : out Rec3) is
diff --git a/gcc/testsuite/gnat.dg/discr29.ads b/gcc/testsuite/gnat.dg/discr29.ads
index a205bc1e0..6bbf16725 100644
--- a/gcc/testsuite/gnat.dg/discr29.ads
+++ b/gcc/testsuite/gnat.dg/discr29.ads
@@ -1,5 +1,3 @@
--- { dg-do compile }
-
package Discr29 is
type Rec1 is record
diff --git a/gcc/testsuite/gnat.dg/loop_optimization12.adb b/gcc/testsuite/gnat.dg/loop_optimization12.adb
new file mode 100644
index 000000000..240874654
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/loop_optimization12.adb
@@ -0,0 +1,22 @@
+-- { dg-do compile }
+-- { dg-options "-O2" }
+
+package body Loop_Optimization12 is
+
+ procedure Reset (S : Rec_Ptr) is
+ begin
+ for I in Enum1 loop
+ S.F (I).all := (others =>
+ (others =>
+ (others =>
+ (others =>
+ (others =>
+ (others =>
+ (others =>
+ (others =>
+ (others =>
+ (others => 0))))))))));
+ end loop;
+ end;
+
+end Loop_Optimization12;
diff --git a/gcc/testsuite/gnat.dg/loop_optimization12.ads b/gcc/testsuite/gnat.dg/loop_optimization12.ads
new file mode 100644
index 000000000..0ed4e8b4b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/loop_optimization12.ads
@@ -0,0 +1,27 @@
+package Loop_Optimization12 is
+
+ type Enum1 is (A, B, C, D, E, F, G, H, I, J);
+
+ type Enum2 is (A, B, C);
+
+ type Enum3 is (A, B, C, D, E, F);
+
+ type Enum4 is (A, B, C, D);
+
+ type Enum5 is (A, B, C, D, E);
+
+ type Arr is array (Enum3, Enum4, Enum4, Enum5, Enum5, Enum3,
+ Enum2, Enum3, Enum5, Enum3) of Natural;
+
+ type Arr_Ptr is access Arr;
+ type Ext_Arr is array (Enum1) of Arr_Ptr;
+
+ type Rec is record
+ F : Ext_Arr;
+ end record;
+
+ type Rec_Ptr is access Rec;
+
+ procedure Reset (S : Rec_Ptr);
+
+end Loop_Optimization12;
diff --git a/gcc/testsuite/gnat.dg/nested_float_packed.ads b/gcc/testsuite/gnat.dg/nested_float_packed.ads
index ae7f52390..46b9e803f 100644
--- a/gcc/testsuite/gnat.dg/nested_float_packed.ads
+++ b/gcc/testsuite/gnat.dg/nested_float_packed.ads
@@ -1,5 +1,3 @@
--- { dg-do compile }
-
package Nested_Float_Packed is
type Float_Type is record
@@ -20,5 +18,3 @@ package Nested_Float_Packed is
Data_Block : array (Range_Type)
of Data_Type := (others => Default_Data);
end;
-
-
diff --git a/gcc/testsuite/gnat.dg/noreturn5.adb b/gcc/testsuite/gnat.dg/noreturn5.adb
index 2f7599097..59b05da92 100644
--- a/gcc/testsuite/gnat.dg/noreturn5.adb
+++ b/gcc/testsuite/gnat.dg/noreturn5.adb
@@ -1,3 +1,5 @@
+-- { dg-do compile }
+
with Ada.Characters.Handling; use Ada.Characters.Handling;
with GNAT.OS_Lib; use GNAT.OS_Lib;
with Text_IO; use Text_IO;
diff --git a/gcc/testsuite/gnat.dg/noreturn5.ads b/gcc/testsuite/gnat.dg/noreturn5.ads
index 4da5c1e09..433f0e63b 100644
--- a/gcc/testsuite/gnat.dg/noreturn5.ads
+++ b/gcc/testsuite/gnat.dg/noreturn5.ads
@@ -1,5 +1,3 @@
--- { dg-do compile }
-
package Noreturn5 is
procedure Proc (Arg_Line : Wide_String; Keep_Going : Boolean);
diff --git a/gcc/testsuite/gnat.dg/opt20.adb b/gcc/testsuite/gnat.dg/opt20.adb
index 6d3e240ba..00e41b4a4 100644
--- a/gcc/testsuite/gnat.dg/opt20.adb
+++ b/gcc/testsuite/gnat.dg/opt20.adb
@@ -1,3 +1,6 @@
+-- { dg-do compile }
+-- { dg-options "-O2 -gnatpn" }
+
with Ada.Characters.Handling; use Ada.Characters.Handling;
package body Opt20 is
diff --git a/gcc/testsuite/gnat.dg/opt20.ads b/gcc/testsuite/gnat.dg/opt20.ads
index 58833bfab..ec547ee88 100644
--- a/gcc/testsuite/gnat.dg/opt20.ads
+++ b/gcc/testsuite/gnat.dg/opt20.ads
@@ -1,6 +1,3 @@
--- { dg-do compile }
--- { dg-options "-O2 -gnatpn" }
-
with Opt20_Pkg; use Opt20_Pkg;
package Opt20 is
diff --git a/gcc/testsuite/gnat.dg/oconst6.ads b/gcc/testsuite/gnat.dg/specs/oconst6.ads
index e4c3c50eb..e4c3c50eb 100644
--- a/gcc/testsuite/gnat.dg/oconst6.ads
+++ b/gcc/testsuite/gnat.dg/specs/oconst6.ads
diff --git a/gcc/testsuite/gnat.dg/vect8.adb b/gcc/testsuite/gnat.dg/vect8.adb
index b13555abd..7b1cecf08 100644
--- a/gcc/testsuite/gnat.dg/vect8.adb
+++ b/gcc/testsuite/gnat.dg/vect8.adb
@@ -1,3 +1,6 @@
+-- { dg-do compile }
+-- { dg-options "-w" }
+
package body Vect8 is
function Foo (V : Vec) return Vec is
diff --git a/gcc/testsuite/gnat.dg/vect8.ads b/gcc/testsuite/gnat.dg/vect8.ads
index 5406c70f4..c926cd51f 100644
--- a/gcc/testsuite/gnat.dg/vect8.ads
+++ b/gcc/testsuite/gnat.dg/vect8.ads
@@ -1,5 +1,3 @@
--- { dg-do compile }
-
package Vect8 is
type Vec is array (1 .. 2) of Long_Float;
diff --git a/gcc/testsuite/lib/c-torture.exp b/gcc/testsuite/lib/c-torture.exp
index bb9287193..dfbd5c0a3 100644
--- a/gcc/testsuite/lib/c-torture.exp
+++ b/gcc/testsuite/lib/c-torture.exp
@@ -42,7 +42,8 @@ if [info exists TORTURE_OPTIONS] {
{ -O3 -fomit-frame-pointer -funroll-loops } \
{ -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions } \
{ -O3 -g } \
- { -Os } ]
+ { -Os } \
+ { -Og -g } ]
}
if [info exists ADDITIONAL_TORTURE_OPTIONS] {
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 07a81a5dc..2cc49f7e6 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -212,9 +212,13 @@ proc gcc-dg-test { prog do_what extra_tool_flags } {
proc gcc-dg-prune { system text } {
global additional_prunes
+ # Extra prune rules that will apply to tests defined in a .exp file.
+ # Always remember to clear it in .exp file after executed all tests.
+ global dg_runtest_extra_prunes
+
set text [prune_gcc_output $text]
- foreach p $additional_prunes {
+ foreach p "$additional_prunes $dg_runtest_extra_prunes" {
if { [string length $p] > 0 } {
# Following regexp matches a complete line containing $p.
regsub -all "(^|\n)\[^\n\]*$p\[^\n\]*" $text "" text
@@ -803,3 +807,4 @@ proc gdb-exists { args } {
}
set additional_prunes ""
+set dg_runtest_extra_prunes ""
diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp
index 2f6c4c2ce..5ee4b10ca 100644
--- a/gcc/testsuite/lib/target-supports-dg.exp
+++ b/gcc/testsuite/lib/target-supports-dg.exp
@@ -304,6 +304,9 @@ proc check-flags { args } {
# If running a subset of the test suite, $TEST_ALWAYS_FLAGS may not exist.
catch {append compiler_flags " $TEST_ALWAYS_FLAGS "}
set dest [target_info name]
+ if [board_info $dest exists cflags] {
+ append compiler_flags "[board_info $dest cflags] "
+ }
if [board_info $dest exists multilib_flags] {
append compiler_flags "[board_info $dest multilib_flags] "
}
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index bea6b2924..ca7912bb4 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3118,8 +3118,8 @@ proc check_effective_target_vect_widen_mult_qi_to_hi { } {
set et_vect_widen_mult_qi_to_hi_saved 0
}
if { [istarget powerpc*-*-*]
- || [istarget aarch64*-*-*]
- || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+ || [istarget aarch64*-*-*]
+ || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
set et_vect_widen_mult_qi_to_hi_saved 1
}
}
@@ -3154,7 +3154,7 @@ proc check_effective_target_vect_widen_mult_hi_to_si { } {
|| [istarget aarch64*-*-*]
|| [istarget i?86-*-*]
|| [istarget x86_64-*-*]
- || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+ || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
set et_vect_widen_mult_hi_to_si_saved 1
}
}
@@ -3175,7 +3175,7 @@ proc check_effective_target_vect_widen_mult_qi_to_hi_pattern { } {
} else {
set et_vect_widen_mult_qi_to_hi_pattern_saved 0
if { [istarget powerpc*-*-*]
- || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+ || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
set et_vect_widen_mult_qi_to_hi_pattern_saved 1
}
}
@@ -3200,7 +3200,7 @@ proc check_effective_target_vect_widen_mult_hi_to_si_pattern { } {
|| [istarget ia64-*-*]
|| [istarget i?86-*-*]
|| [istarget x86_64-*-*]
- || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+ || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
set et_vect_widen_mult_hi_to_si_pattern_saved 1
}
}
@@ -3331,7 +3331,7 @@ proc check_effective_target_vect_pack_trunc { } {
|| [istarget x86_64-*-*]
|| [istarget aarch64*-*-*]
|| [istarget spu-*-*]
- || ([istarget arm*-*-*] && [check_effective_target_arm_neon]
+ || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
&& [check_effective_target_arm_little_endian]) } {
set et_vect_pack_trunc_saved 1
}
@@ -3358,7 +3358,7 @@ proc check_effective_target_vect_unpack { } {
|| [istarget spu-*-*]
|| [istarget ia64-*-*]
|| [istarget aarch64*-*-*]
- || ([istarget arm*-*-*] && [check_effective_target_arm_neon]
+ || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
&& [check_effective_target_arm_little_endian]) } {
set et_vect_unpack_saved 1
}
@@ -3780,7 +3780,7 @@ proc check_effective_target_vect_multiple_sizes { } {
global et_vect_multiple_sizes_saved
set et_vect_multiple_sizes_saved 0
- if { ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+ if { ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
set et_vect_multiple_sizes_saved 1
}
if { ([istarget x86_64-*-*] || [istarget i?86-*-*]) } {
diff --git a/gcc/toplev.c b/gcc/toplev.c
index ea43298ee..2aa3e4000 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1946,6 +1946,7 @@ toplev_main (int argc, char **argv)
invoke_plugin_callbacks (PLUGIN_FINISH, NULL);
finalize_plugins ();
+ location_adhoc_data_fini (line_table);
if (seen_error ())
return (FATAL_EXIT_CODE);
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 9ce646a6a..242b470a5 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -3803,7 +3803,6 @@ ipa_tm_scan_irr_block (basic_block bb)
{
tree t = build1 (NOP_EXPR, void_type_node, size_zero_node);
SET_EXPR_LOCATION (t, gimple_location (stmt));
- TREE_BLOCK (t) = gimple_block (stmt);
error ("%Kasm not allowed in %<transaction_safe%> function", t);
}
return true;
@@ -3988,7 +3987,6 @@ ipa_tm_scan_irr_function (struct cgraph_node *node, bool for_clone)
|| DECL_STRUCT_FUNCTION (node->symbol.decl)->cfg == NULL)
return false;
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
@@ -4060,7 +4058,6 @@ ipa_tm_scan_irr_function (struct cgraph_node *node, bool for_clone)
VEC_free (basic_block, heap, queue);
pop_cfun ();
- current_function_decl = NULL;
return ret;
}
@@ -4698,7 +4695,6 @@ ipa_tm_transform_transaction (struct cgraph_node *node)
d = get_cg_data (&node, true);
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
@@ -4723,7 +4719,6 @@ ipa_tm_transform_transaction (struct cgraph_node *node)
update_ssa (TODO_update_ssa_only_virtuals);
pop_cfun ();
- current_function_decl = NULL;
}
/* Transform the calls within the transactional clone of NODE. */
@@ -4742,8 +4737,7 @@ ipa_tm_transform_clone (struct cgraph_node *node)
if (!node->callees && !node->indirect_calls && !d->irrevocable_blocks_clone)
return;
- current_function_decl = d->clone->symbol.decl;
- push_cfun (DECL_STRUCT_FUNCTION (current_function_decl));
+ push_cfun (DECL_STRUCT_FUNCTION (d->clone->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
need_ssa_rename =
@@ -4754,7 +4748,6 @@ ipa_tm_transform_clone (struct cgraph_node *node)
update_ssa (TODO_update_ssa_only_virtuals);
pop_cfun ();
- current_function_decl = NULL;
}
/* Main entry point for the transactional memory IPA pass. */
@@ -4801,7 +4794,6 @@ ipa_tm_execute (void)
continue;
}
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
@@ -4821,7 +4813,6 @@ ipa_tm_execute (void)
}
pop_cfun ();
- current_function_decl = NULL;
}
/* For every local function on the callee list, scan as if we will be
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 1a166cc49..eea9a5cf9 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -809,15 +809,11 @@ make_cond_expr_edges (basic_block bb)
e = make_edge (bb, then_bb, EDGE_TRUE_VALUE);
assign_discriminator (entry_locus, then_bb);
e->goto_locus = gimple_location (then_stmt);
- if (e->goto_locus)
- e->goto_block = gimple_block (then_stmt);
e = make_edge (bb, else_bb, EDGE_FALSE_VALUE);
if (e)
{
assign_discriminator (entry_locus, else_bb);
e->goto_locus = gimple_location (else_stmt);
- if (e->goto_locus)
- e->goto_block = gimple_block (else_stmt);
}
/* We do not need the labels anymore. */
@@ -1027,8 +1023,6 @@ make_goto_expr_edges (basic_block bb)
edge e = make_edge (bb, label_bb, EDGE_FALLTHRU);
e->goto_locus = gimple_location (goto_t);
assign_discriminator (e->goto_locus, label_bb);
- if (e->goto_locus)
- e->goto_block = gimple_block (goto_t);
gsi_remove (&last, true);
return;
}
@@ -6018,9 +6012,10 @@ move_stmt_op (tree *tp, int *walk_subtrees, void *data)
tree t = *tp;
if (EXPR_P (t))
- /* We should never have TREE_BLOCK set on non-statements. */
- gcc_assert (!TREE_BLOCK (t));
-
+ {
+ if (TREE_BLOCK (t))
+ TREE_SET_BLOCK (t, p->new_block);
+ }
else if (DECL_P (t) || TREE_CODE (t) == SSA_NAME)
{
if (TREE_CODE (t) == SSA_NAME)
@@ -6320,12 +6315,14 @@ move_block_to_fn (struct function *dest_cfun, basic_block bb,
}
FOR_EACH_EDGE (e, ei, bb->succs)
- if (e->goto_locus)
+ if (!IS_UNKNOWN_LOCATION (e->goto_locus))
{
- tree block = e->goto_block;
+ tree block = LOCATION_BLOCK (e->goto_locus);
if (d->orig_block == NULL_TREE
|| block == d->orig_block)
- e->goto_block = d->new_block;
+ e->goto_locus = d->new_block ?
+ COMBINE_LOCATION_DATA (line_table, e->goto_locus, d->new_block) :
+ LOCATION_LOCUS (e->goto_locus);
#ifdef ENABLE_CHECKING
else if (block != d->new_block)
{
@@ -7901,13 +7898,14 @@ extern void gt_ggc_mx (basic_block&);
void
gt_ggc_mx (edge_def *e)
{
+ tree block = LOCATION_BLOCK (e->goto_locus);
gt_ggc_mx (e->src);
gt_ggc_mx (e->dest);
if (current_ir_type () == IR_GIMPLE)
gt_ggc_mx (e->insns.g);
else
gt_ggc_mx (e->insns.r);
- gt_ggc_mx (e->goto_block);
+ gt_ggc_mx (block);
}
/* PCH support for edge_def. */
@@ -7920,23 +7918,25 @@ extern void gt_pch_nx (basic_block&);
void
gt_pch_nx (edge_def *e)
{
+ tree block = LOCATION_BLOCK (e->goto_locus);
gt_pch_nx (e->src);
gt_pch_nx (e->dest);
if (current_ir_type () == IR_GIMPLE)
gt_pch_nx (e->insns.g);
else
gt_pch_nx (e->insns.r);
- gt_pch_nx (e->goto_block);
+ gt_pch_nx (block);
}
void
gt_pch_nx (edge_def *e, gt_pointer_operator op, void *cookie)
{
+ tree block = LOCATION_BLOCK (e->goto_locus);
op (&(e->src), cookie);
op (&(e->dest), cookie);
if (current_ir_type () == IR_GIMPLE)
op (&(e->insns.g), cookie);
else
op (&(e->insns.r), cookie);
- op (&(e->goto_block), cookie);
+ op (&(block), cookie);
}
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index 45f33682e..9c5228614 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -88,40 +88,11 @@ cleanup_control_expr_graph (basic_block bb, gimple_stmt_iterator gsi)
switch (gimple_code (stmt))
{
case GIMPLE_COND:
- {
- tree lhs = gimple_cond_lhs (stmt);
- tree rhs = gimple_cond_rhs (stmt);
- /* For conditions try harder and lookup single-argument
- PHI nodes. Only do so from the same basic-block though
- as other basic-blocks may be dead already. */
- if (TREE_CODE (lhs) == SSA_NAME
- && !name_registered_for_update_p (lhs))
- {
- gimple def_stmt = SSA_NAME_DEF_STMT (lhs);
- if (gimple_code (def_stmt) == GIMPLE_PHI
- && gimple_phi_num_args (def_stmt) == 1
- && gimple_bb (def_stmt) == gimple_bb (stmt)
- && (TREE_CODE (PHI_ARG_DEF (def_stmt, 0)) != SSA_NAME
- || !name_registered_for_update_p (PHI_ARG_DEF (def_stmt,
- 0))))
- lhs = PHI_ARG_DEF (def_stmt, 0);
- }
- if (TREE_CODE (rhs) == SSA_NAME
- && !name_registered_for_update_p (rhs))
- {
- gimple def_stmt = SSA_NAME_DEF_STMT (rhs);
- if (gimple_code (def_stmt) == GIMPLE_PHI
- && gimple_phi_num_args (def_stmt) == 1
- && gimple_bb (def_stmt) == gimple_bb (stmt)
- && (TREE_CODE (PHI_ARG_DEF (def_stmt, 0)) != SSA_NAME
- || !name_registered_for_update_p (PHI_ARG_DEF (def_stmt,
- 0))))
- rhs = PHI_ARG_DEF (def_stmt, 0);
- }
- val = fold_binary_loc (loc, gimple_cond_code (stmt),
- boolean_type_node, lhs, rhs);
- break;
- }
+ val = fold_binary_loc (loc, gimple_cond_code (stmt),
+ boolean_type_node,
+ gimple_cond_lhs (stmt),
+ gimple_cond_rhs (stmt));
+ break;
case GIMPLE_SWITCH:
val = gimple_switch_index (stmt);
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 0f68fdf40..0d647d7c5 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -4130,7 +4130,7 @@ ddr_consistent_p (FILE *file,
relation the first time we detect a CHREC_KNOWN element for a given
subscript. */
-static void
+void
compute_affine_dependence (struct data_dependence_relation *ddr,
struct loop *loop_nest)
{
@@ -4307,10 +4307,10 @@ get_references_in_stmt (gimple stmt, VEC (data_ref_loc, heap) **references)
*references = NULL;
/* ASM_EXPR and CALL_EXPR may embed arbitrary side effects.
- Calls have side-effects, except those to const or pure
- functions. */
+ As we cannot model data-references to not spelled out
+ accesses give up if they may occur. */
if ((stmt_code == GIMPLE_CALL
- && !(gimple_call_flags (stmt) & (ECF_CONST | ECF_PURE)))
+ && !(gimple_call_flags (stmt) & ECF_CONST))
|| (stmt_code == GIMPLE_ASM
&& (gimple_asm_volatile_p (stmt) || gimple_vuse (stmt))))
clobbers_memory = true;
diff --git a/gcc/tree-data-ref.h b/gcc/tree-data-ref.h
index db33e328c..b00a4f752 100644
--- a/gcc/tree-data-ref.h
+++ b/gcc/tree-data-ref.h
@@ -396,6 +396,8 @@ struct data_reference *create_data_ref (loop_p, loop_p, tree, gimple, bool);
extern bool find_loop_nest (struct loop *, VEC (loop_p, heap) **);
extern struct data_dependence_relation *initialize_data_dependence_relation
(struct data_reference *, struct data_reference *, VEC (loop_p, heap) *);
+extern void compute_affine_dependence (struct data_dependence_relation *,
+ loop_p);
extern void compute_self_dependence (struct data_dependence_relation *);
extern bool compute_all_dependences (VEC (data_reference_p, heap) *,
VEC (ddr_p, heap) **, VEC (loop_p, heap) *,
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 65f85c946..b0c006b07 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -883,8 +883,15 @@ lower_try_finally_dup_block (gimple_seq seq, struct leh_state *outer_state,
new_seq = copy_gimple_seq_and_replace_locals (seq);
for (gsi = gsi_start (new_seq); !gsi_end_p (gsi); gsi_next (&gsi))
- if (gimple_location (gsi_stmt (gsi)) == UNKNOWN_LOCATION)
- gimple_set_location (gsi_stmt (gsi), loc);
+ {
+ gimple stmt = gsi_stmt (gsi);
+ if (IS_UNKNOWN_LOCATION (gimple_location (stmt)))
+ {
+ tree block = gimple_block (stmt);
+ gimple_set_location (stmt, loc);
+ gimple_set_block (stmt, block);
+ }
+ }
if (outer_state->tf)
region = outer_state->tf->try_finally_expr;
@@ -981,7 +988,7 @@ honor_protect_cleanup_actions (struct leh_state *outer_state,
}
else if (this_state)
finally = lower_try_finally_dup_block (finally, outer_state,
- UNKNOWN_LOCATION);
+ gimple_location (tf->try_finally_expr));
finally_may_fallthru = gimple_seq_may_fallthru (finally);
/* If this cleanup consists of a TRY_CATCH_EXPR with TRY_CATCH_IS_CLEANUP
diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c
index 88e77dace..de71b23f3 100644
--- a/gcc/tree-emutls.c
+++ b/gcc/tree-emutls.c
@@ -618,7 +618,6 @@ lower_emutls_function_body (struct cgraph_node *node)
struct lower_emutls_data d;
bool any_edge_inserts = false;
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
d.cfun_node = node;
@@ -689,7 +688,6 @@ lower_emutls_function_body (struct cgraph_node *node)
gsi_commit_edge_inserts ();
pop_cfun ();
- current_function_decl = NULL;
}
/* Create emutls variable for VAR, DATA is pointer to static
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 05f271fc8..a585c0b88 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -830,10 +830,6 @@ remap_gimple_op_r (tree *tp, int *walk_subtrees, void *data)
/* Otherwise, just copy the node. Note that copy_tree_r already
knows not to copy VAR_DECLs, etc., so this is safe. */
- /* We should never have TREE_BLOCK set on non-statements. */
- if (EXPR_P (*tp))
- gcc_assert (!TREE_BLOCK (*tp));
-
if (TREE_CODE (*tp) == MEM_REF)
{
tree ptr = TREE_OPERAND (*tp, 0);
@@ -872,13 +868,9 @@ remap_gimple_op_r (tree *tp, int *walk_subtrees, void *data)
{
/* Variable substitution need not be simple. In particular,
the MEM_REF substitution above. Make sure that
- TREE_CONSTANT and friends are up-to-date. But make sure
- to not improperly set TREE_BLOCK on some sub-expressions. */
+ TREE_CONSTANT and friends are up-to-date. */
int invariant = is_gimple_min_invariant (*tp);
- tree block = id->block;
- id->block = NULL_TREE;
walk_tree (&TREE_OPERAND (*tp, 0), remap_gimple_op_r, data, NULL);
- id->block = block;
recompute_tree_invariant_for_addr_expr (*tp);
/* If this used to be invariant, but is not any longer,
@@ -890,6 +882,22 @@ remap_gimple_op_r (tree *tp, int *walk_subtrees, void *data)
}
}
+ /* Update the TREE_BLOCK for the cloned expr. */
+ if (EXPR_P (*tp))
+ {
+ tree new_block = id->remapping_type_depth == 0 ? id->block : NULL;
+ tree old_block = TREE_BLOCK (*tp);
+ if (old_block)
+ {
+ tree *n;
+ n = (tree *) pointer_map_contains (id->decl_map,
+ TREE_BLOCK (*tp));
+ if (n)
+ new_block = *n;
+ }
+ TREE_SET_BLOCK (*tp, new_block);
+ }
+
/* Keep iterating. */
return NULL_TREE;
}
@@ -1107,11 +1115,10 @@ copy_tree_body_r (tree *tp, int *walk_subtrees, void *data)
tree *n;
n = (tree *) pointer_map_contains (id->decl_map,
TREE_BLOCK (*tp));
- gcc_assert (n || id->remapping_type_depth != 0);
if (n)
new_block = *n;
}
- TREE_BLOCK (*tp) = new_block;
+ TREE_SET_BLOCK (*tp, new_block);
}
if (TREE_CODE (*tp) != OMP_CLAUSE)
@@ -1982,6 +1989,7 @@ copy_phis_for_bb (basic_block bb, copy_body_data *id)
tree new_arg;
tree block = id->block;
edge_iterator ei2;
+ location_t locus;
/* When doing partial cloning, we allow PHIs on the entry block
as long as all the arguments are the same. Find any input
@@ -1993,9 +2001,7 @@ copy_phis_for_bb (basic_block bb, copy_body_data *id)
arg = PHI_ARG_DEF_FROM_EDGE (phi, old_edge);
new_arg = arg;
- id->block = NULL_TREE;
walk_tree (&new_arg, copy_tree_body_r, id, NULL);
- id->block = block;
gcc_assert (new_arg);
/* With return slot optimization we can end up with
non-gimple (foo *)&this->m, fix that here. */
@@ -2008,8 +2014,20 @@ copy_phis_for_bb (basic_block bb, copy_body_data *id)
gsi_insert_seq_on_edge (new_edge, stmts);
inserted = true;
}
- add_phi_arg (new_phi, new_arg, new_edge,
- gimple_phi_arg_location_from_edge (phi, old_edge));
+ locus = gimple_phi_arg_location_from_edge (phi, old_edge);
+ block = id->block;
+ if (LOCATION_BLOCK (locus))
+ {
+ tree *n;
+ n = (tree *) pointer_map_contains (id->decl_map,
+ LOCATION_BLOCK (locus));
+ gcc_assert (n);
+ block = *n;
+ }
+
+ add_phi_arg (new_phi, new_arg, new_edge, block ?
+ COMBINE_LOCATION_DATA (line_table, locus, block) :
+ LOCATION_LOCUS (locus));
}
}
}
@@ -2030,7 +2048,8 @@ remap_decl_1 (tree decl, void *data)
}
/* Build struct function and associated datastructures for the new clone
- NEW_FNDECL to be build. CALLEE_FNDECL is the original */
+ NEW_FNDECL to be build. CALLEE_FNDECL is the original. Function changes
+ the cfun to the function of new_fndecl (and current_function_decl too). */
static void
initialize_cfun (tree new_fndecl, tree callee_fndecl, gcov_type count)
@@ -2095,7 +2114,6 @@ initialize_cfun (tree new_fndecl, tree callee_fndecl, gcov_type count)
cfun->gimple_df->in_ssa_p = true;
init_ssa_operands (cfun);
}
- pop_cfun ();
}
/* Helper function for copy_cfg_body. Move debug stmts from the end
@@ -3874,7 +3892,8 @@ expand_call_inline (basic_block bb, gimple stmt, copy_body_data *id)
id->block = make_node (BLOCK);
BLOCK_ABSTRACT_ORIGIN (id->block) = fn;
BLOCK_SOURCE_LOCATION (id->block) = input_location;
- prepend_lexical_block (gimple_block (stmt), id->block);
+ if (gimple_block (stmt))
+ prepend_lexical_block (gimple_block (stmt), id->block);
/* Local declarations will be replaced by their equivalents in this
map. */
@@ -5028,8 +5047,6 @@ tree_function_versioning (tree old_decl, tree new_decl,
struct ipa_replace_map *replace_info;
basic_block old_entry_block, bb;
VEC (gimple, heap) *init_stmts = VEC_alloc (gimple, heap, 10);
-
- tree old_current_function_decl = current_function_decl;
tree vars = NULL_TREE;
gcc_assert (TREE_CODE (old_decl) == FUNCTION_DECL
@@ -5100,14 +5117,12 @@ tree_function_versioning (tree old_decl, tree new_decl,
id.transform_return_to_modify = false;
id.transform_lang_insert_block = NULL;
- current_function_decl = new_decl;
old_entry_block = ENTRY_BLOCK_PTR_FOR_FUNCTION
(DECL_STRUCT_FUNCTION (old_decl));
initialize_cfun (new_decl, old_decl,
old_entry_block->count);
DECL_STRUCT_FUNCTION (new_decl)->gimple_df->ipa_pta
= id.src_cfun->gimple_df->ipa_pta;
- push_cfun (DECL_STRUCT_FUNCTION (new_decl));
/* Copy the function's static chain. */
p = DECL_STRUCT_FUNCTION (old_decl)->static_chain_decl;
@@ -5261,9 +5276,6 @@ tree_function_versioning (tree old_decl, tree new_decl,
gcc_assert (!id.debug_stmts);
VEC_free (gimple, heap, init_stmts);
pop_cfun ();
- current_function_decl = old_current_function_decl;
- gcc_assert (!current_function_decl
- || DECL_STRUCT_FUNCTION (current_function_decl) == cfun);
return;
}
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index f340eab2a..d29fe1cd3 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -1011,6 +1011,43 @@ classify_partition (loop_p loop, struct graph *rdg, partition_t partition)
|| !operand_equal_p (DR_STEP (single_store),
DR_STEP (single_load), 0))
return;
+ /* Now check that if there is a dependence this dependence is
+ of a suitable form for memmove. */
+ VEC(loop_p, heap) *loops = NULL;
+ ddr_p ddr;
+ VEC_safe_push (loop_p, heap, loops, loop);
+ ddr = initialize_data_dependence_relation (single_load, single_store,
+ loops);
+ compute_affine_dependence (ddr, loop);
+ if (DDR_ARE_DEPENDENT (ddr) == chrec_dont_know)
+ {
+ free_dependence_relation (ddr);
+ VEC_free (loop_p, heap, loops);
+ return;
+ }
+ if (DDR_ARE_DEPENDENT (ddr) != chrec_known)
+ {
+ if (DDR_NUM_DIST_VECTS (ddr) == 0)
+ {
+ free_dependence_relation (ddr);
+ VEC_free (loop_p, heap, loops);
+ return;
+ }
+ lambda_vector dist_v;
+ FOR_EACH_VEC_ELT (lambda_vector, DDR_DIST_VECTS (ddr), i, dist_v)
+ {
+ int dist = dist_v[index_in_loop_nest (loop->num,
+ DDR_LOOP_NEST (ddr))];
+ if (dist > 0 && !DDR_REVERSED_P (ddr))
+ {
+ free_dependence_relation (ddr);
+ VEC_free (loop_p, heap, loops);
+ return;
+ }
+ }
+ }
+ free_dependence_relation (ddr);
+ VEC_free (loop_p, heap, loops);
partition->kind = PKIND_MEMCPY;
partition->main_dr = single_store;
partition->secondary_dr = single_load;
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index 5c2e93b93..4d0f32083 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -108,8 +108,7 @@ set_location_for_edge (edge e)
{
if (e->goto_locus)
{
- set_curr_insn_source_location (e->goto_locus);
- set_curr_insn_block (e->goto_block);
+ set_curr_insn_location (e->goto_locus);
}
else
{
@@ -125,8 +124,7 @@ set_location_for_edge (edge e)
continue;
if (gimple_has_location (stmt) || gimple_block (stmt))
{
- set_curr_insn_source_location (gimple_location (stmt));
- set_curr_insn_block (gimple_block (stmt));
+ set_curr_insn_location (gimple_location (stmt));
return;
}
}
@@ -191,7 +189,7 @@ insert_partition_copy_on_edge (edge e, int dest, int src, source_location locus)
set_location_for_edge (e);
/* If a locus is provided, override the default. */
if (locus)
- set_curr_insn_source_location (locus);
+ set_curr_insn_location (locus);
var = partition_to_var (SA.map, src);
seq = emit_partition_copy (SA.partition_to_pseudo[dest],
@@ -228,7 +226,7 @@ insert_value_copy_on_edge (edge e, int dest, tree src, source_location locus)
set_location_for_edge (e);
/* If a locus is provided, override the default. */
if (locus)
- set_curr_insn_source_location (locus);
+ set_curr_insn_location (locus);
start_sequence ();
@@ -284,7 +282,7 @@ insert_rtx_to_part_on_edge (edge e, int dest, rtx src, int unsignedsrcp,
set_location_for_edge (e);
/* If a locus is provided, override the default. */
if (locus)
- set_curr_insn_source_location (locus);
+ set_curr_insn_location (locus);
/* We give the destination as sizeexp in case src/dest are BLKmode
mems. Usually we give the source. As we result from SSA names
@@ -320,7 +318,7 @@ insert_part_to_rtx_on_edge (edge e, rtx dest, int src, source_location locus)
set_location_for_edge (e);
/* If a locus is provided, override the default. */
if (locus)
- set_curr_insn_source_location (locus);
+ set_curr_insn_location (locus);
var = partition_to_var (SA.map, src);
seq = emit_partition_copy (dest,
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 76bb26595..41ddf57d6 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -1403,6 +1403,7 @@ create_loop_fn (location_t loc)
struct function *act_cfun = cfun;
static unsigned loopfn_num;
+ loc = LOCATION_LOCUS (loc);
snprintf (buf, 100, "%s.$loopfn", current_function_name ());
ASM_FORMAT_PRIVATE_NAME (tname, buf, loopfn_num++);
clean_symbol_name (tname);
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index a5b6bc802..fa8173ecb 100644
--- a/gcc/tree-profile.c
+++ b/gcc/tree-profile.c
@@ -475,7 +475,6 @@ tree_profiling (void)
continue;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
- current_function_decl = node->symbol.decl;
/* Local pure-const may imply need to fixup the cfg. */
if (execute_fixup_cfg () & TODO_cleanup_cfg)
@@ -497,8 +496,6 @@ tree_profiling (void)
easy to adjust it, if and when there is some. */
free_dominance_info (CDI_DOMINATORS);
free_dominance_info (CDI_POST_DOMINATORS);
-
- current_function_decl = NULL;
pop_cfun ();
}
@@ -533,7 +530,6 @@ tree_profiling (void)
continue;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
- current_function_decl = node->symbol.decl;
FOR_EACH_BB (bb)
{
@@ -550,7 +546,6 @@ tree_profiling (void)
rebuild_cgraph_edges ();
- current_function_decl = NULL;
pop_cfun ();
}
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index ef3f5f99e..5acb61250 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -4616,7 +4616,6 @@ convert_callers_for_node (struct cgraph_node *node,
for (cs = node->callers; cs; cs = cs->next_caller)
{
- current_function_decl = cs->caller->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (cs->caller->symbol.decl));
if (dump_file)
@@ -4645,14 +4644,11 @@ static void
convert_callers (struct cgraph_node *node, tree old_decl,
ipa_parm_adjustment_vec adjustments)
{
- tree old_cur_fndecl = current_function_decl;
basic_block this_block;
cgraph_for_node_and_aliases (node, convert_callers_for_node,
adjustments, false);
- current_function_decl = old_cur_fndecl;
-
if (!encountered_recursive_call)
return;
@@ -4693,15 +4689,12 @@ modify_function (struct cgraph_node *node, ipa_parm_adjustment_vec adjustments)
rebuild_cgraph_edges ();
free_dominance_info (CDI_DOMINATORS);
pop_cfun ();
- current_function_decl = NULL_TREE;
new_node = cgraph_function_versioning (node, redirect_callers, NULL, NULL,
false, NULL, NULL, "isra");
VEC_free (cgraph_edge_p, heap, redirect_callers);
- current_function_decl = new_node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (new_node->symbol.decl));
-
ipa_modify_formal_parameters (current_function_decl, adjustments, "ISRA");
cfg_changed = ipa_sra_modify_function_body (adjustments);
sra_ipa_reset_debug_stmts (adjustments);
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 2d17bfa4d..3b7991f8a 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "expr.h"
#include "cfgloop.h"
-#include "tree-vectorizer.h"
+#include "optabs.h"
/* This pass propagates the RHS of assignment statements into use
sites of the LHS of the assignment. It's basically a specialized
@@ -227,29 +227,15 @@ get_prop_source_stmt (tree name, bool single_use_only, bool *single_use_p)
if (!is_gimple_assign (def_stmt))
return NULL;
- /* If def_stmt is not a simple copy, we possibly found it. */
- if (!gimple_assign_ssa_name_copy_p (def_stmt))
+ /* If def_stmt is a simple copy, continue looking. */
+ if (gimple_assign_rhs_code (def_stmt) == SSA_NAME)
+ name = gimple_assign_rhs1 (def_stmt);
+ else
{
- tree rhs;
-
if (!single_use_only && single_use_p)
*single_use_p = single_use;
- /* We can look through pointer conversions in the search
- for a useful stmt for the comparison folding. */
- rhs = gimple_assign_rhs1 (def_stmt);
- if (CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (def_stmt))
- && TREE_CODE (rhs) == SSA_NAME
- && POINTER_TYPE_P (TREE_TYPE (gimple_assign_lhs (def_stmt)))
- && POINTER_TYPE_P (TREE_TYPE (rhs)))
- name = rhs;
- else
- return def_stmt;
- }
- else
- {
- /* Continue searching the def of the copy source name. */
- name = gimple_assign_rhs1 (def_stmt);
+ return def_stmt;
}
} while (1);
}
@@ -2854,14 +2840,24 @@ simplify_vector_constructor (gimple_stmt_iterator *gsi)
return false;
if (maybe_ident)
- {
- gimple_assign_set_rhs_from_tree (gsi, orig);
- }
+ gimple_assign_set_rhs_from_tree (gsi, orig);
else
{
- op2 = vect_gen_perm_mask (type, sel);
- if (!op2)
+ tree mask_type, *mask_elts;
+
+ if (!can_vec_perm_p (TYPE_MODE (type), false, sel))
+ return false;
+ mask_type
+ = build_vector_type (build_nonstandard_integer_type (elem_size, 1),
+ nelts);
+ if (GET_MODE_CLASS (TYPE_MODE (mask_type)) != MODE_VECTOR_INT
+ || GET_MODE_SIZE (TYPE_MODE (mask_type))
+ != GET_MODE_SIZE (TYPE_MODE (type)))
return false;
+ mask_elts = XALLOCAVEC (tree, nelts);
+ for (i = 0; i < nelts; i++)
+ mask_elts[i] = build_int_cst (TREE_TYPE (mask_type), sel[i]);
+ op2 = build_vector (mask_type, mask_elts);
gimple_assign_set_rhs_with_ops_1 (gsi, VEC_PERM_EXPR, orig, orig, op2);
}
update_stmt (gsi_stmt (*gsi));
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 294a5d498..af09806a2 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -597,7 +597,7 @@ remove_unused_scope_block_p (tree scope)
else
/* Verfify that only blocks with source location set
are entry points to the inlined functions. */
- gcc_assert (BLOCK_SOURCE_LOCATION (scope) == UNKNOWN_LOCATION);
+ gcc_assert (IS_UNKNOWN_LOCATION (BLOCK_SOURCE_LOCATION (scope)));
TREE_USED (scope) = !unused;
return unused;
@@ -612,6 +612,47 @@ mark_all_vars_used (tree *expr_p)
walk_tree (expr_p, mark_all_vars_used_1, NULL, NULL);
}
+/* Helper function for clear_unused_block_pointer, called via walk_tree. */
+
+static tree
+clear_unused_block_pointer_1 (tree *tp, int *, void *)
+{
+ if (EXPR_P (*tp) && TREE_BLOCK (*tp)
+ && !TREE_USED (TREE_BLOCK (*tp)))
+ TREE_SET_BLOCK (*tp, NULL);
+ if (TREE_CODE (*tp) == VAR_DECL && DECL_DEBUG_EXPR_IS_FROM (*tp))
+ {
+ tree debug_expr = DECL_DEBUG_EXPR (*tp);
+ walk_tree (&debug_expr, clear_unused_block_pointer_1, NULL, NULL);
+ }
+ return NULL_TREE;
+}
+
+/* Set all block pointer in debug stmt to NULL if the block is unused,
+ so that they will not be streamed out. */
+
+static void
+clear_unused_block_pointer ()
+{
+ basic_block bb;
+ gimple_stmt_iterator gsi;
+ FOR_EACH_BB (bb)
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ {
+ unsigned i;
+ tree b;
+ gimple stmt = gsi_stmt (gsi);
+
+ if (!is_gimple_debug (stmt))
+ continue;
+ b = gimple_block (stmt);
+ if (b && !TREE_USED (b))
+ gimple_set_block (stmt, NULL);
+ for (i = 0; i < gimple_num_ops (stmt); i++)
+ walk_tree (gimple_op_ptr (stmt, i), clear_unused_block_pointer_1,
+ NULL, NULL);
+ }
+}
/* Dump scope blocks starting at SCOPE to FILE. INDENT is the
indentation level and FLAGS is as in print_generic_expr. */
@@ -625,7 +666,7 @@ dump_scope_block (FILE *file, int indent, tree scope, int flags)
fprintf (file, "\n%*s{ Scope block #%i%s%s",indent, "" , BLOCK_NUMBER (scope),
TREE_USED (scope) ? "" : " (unused)",
BLOCK_ABSTRACT (scope) ? " (abstract)": "");
- if (BLOCK_SOURCE_LOCATION (scope) != UNKNOWN_LOCATION)
+ if (!IS_UNKNOWN_LOCATION (BLOCK_SOURCE_LOCATION (scope)))
{
expanded_location s = expand_location (BLOCK_SOURCE_LOCATION (scope));
fprintf (file, " %s:%i", s.file, s.line);
@@ -758,13 +799,18 @@ remove_unused_locals (void)
FOR_EACH_PHI_ARG (arg_p, phi, i, SSA_OP_ALL_USES)
{
tree arg = USE_FROM_PTR (arg_p);
+ int index = PHI_ARG_INDEX_FROM_USE (arg_p);
+ tree block =
+ LOCATION_BLOCK (gimple_phi_arg_location (phi, index));
+ if (block != NULL)
+ TREE_USED (block) = true;
mark_all_vars_used (&arg);
}
}
FOR_EACH_EDGE (e, ei, bb->succs)
if (e->goto_locus)
- TREE_USED (e->goto_block) = true;
+ TREE_USED (LOCATION_BLOCK (e->goto_locus)) = true;
}
/* We do a two-pass approach about the out-of-scope clobbers. We want
@@ -836,6 +882,7 @@ remove_unused_locals (void)
VEC_truncate (tree, cfun->local_decls, dstidx);
remove_unused_scope_block_p (DECL_INITIAL (current_function_decl));
+ clear_unused_block_pointer ();
BITMAP_FREE (usedvars);
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 67cab3a31..e76e64398 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -1273,9 +1273,9 @@ move_computations_stmt (struct dom_walk_data *dw_data,
gcc_assert (arg0 && arg1);
t = build2 (gimple_cond_code (cond), boolean_type_node,
gimple_cond_lhs (cond), gimple_cond_rhs (cond));
- new_stmt = gimple_build_assign_with_ops3 (COND_EXPR,
- gimple_phi_result (stmt),
- t, arg0, arg1);
+ new_stmt = gimple_build_assign_with_ops (COND_EXPR,
+ gimple_phi_result (stmt),
+ t, arg0, arg1);
SSA_NAME_DEF_STMT (gimple_phi_result (stmt)) = new_stmt;
*((unsigned int *)(dw_data->global_data)) |= TODO_cleanup_cfg;
}
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index e1584b44e..b790e1f43 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -503,6 +503,81 @@ canonicalize_induction_variables (void)
return 0;
}
+/* Propagate VAL into all uses of SSA_NAME. */
+
+static void
+propagate_into_all_uses (tree ssa_name, tree val)
+{
+ imm_use_iterator iter;
+ gimple use_stmt;
+
+ FOR_EACH_IMM_USE_STMT (use_stmt, iter, ssa_name)
+ {
+ gimple_stmt_iterator use_stmt_gsi = gsi_for_stmt (use_stmt);
+ use_operand_p use;
+
+ FOR_EACH_IMM_USE_ON_STMT (use, iter)
+ SET_USE (use, val);
+
+ if (is_gimple_assign (use_stmt)
+ && get_gimple_rhs_class (gimple_assign_rhs_code (use_stmt))
+ == GIMPLE_SINGLE_RHS)
+ {
+ tree rhs = gimple_assign_rhs1 (use_stmt);
+
+ if (TREE_CODE (rhs) == ADDR_EXPR)
+ recompute_tree_invariant_for_addr_expr (rhs);
+ }
+
+ fold_stmt_inplace (&use_stmt_gsi);
+ update_stmt (use_stmt);
+ maybe_clean_or_replace_eh_stmt (use_stmt, use_stmt);
+ }
+}
+
+/* Propagate constant SSA_NAMEs defined in basic block BB. */
+
+static void
+propagate_constants_for_unrolling (basic_block bb)
+{
+ gimple_stmt_iterator gsi;
+
+ /* Look for degenerate PHI nodes with constant argument. */
+ for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); )
+ {
+ gimple phi = gsi_stmt (gsi);
+ tree result = gimple_phi_result (phi);
+ tree arg = gimple_phi_arg_def (phi, 0);
+
+ if (gimple_phi_num_args (phi) == 1 && TREE_CODE (arg) == INTEGER_CST)
+ {
+ propagate_into_all_uses (result, arg);
+ gsi_remove (&gsi, true);
+ release_ssa_name (result);
+ }
+ else
+ gsi_next (&gsi);
+ }
+
+ /* Look for assignments to SSA names with constant RHS. */
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); )
+ {
+ gimple stmt = gsi_stmt (gsi);
+ tree lhs;
+
+ if (is_gimple_assign (stmt)
+ && (lhs = gimple_assign_lhs (stmt), TREE_CODE (lhs) == SSA_NAME)
+ && gimple_assign_rhs_code (stmt) == INTEGER_CST)
+ {
+ propagate_into_all_uses (lhs, gimple_assign_rhs1 (stmt));
+ gsi_remove (&gsi, true);
+ release_ssa_name (lhs);
+ }
+ else
+ gsi_next (&gsi);
+ }
+}
+
/* Unroll LOOPS completely if they iterate just few times. Unless
MAY_INCREASE_SIZE is true, perform the unrolling only if the
size of the code does not increase. */
@@ -510,6 +585,7 @@ canonicalize_induction_variables (void)
unsigned int
tree_unroll_loops_completely (bool may_increase_size, bool unroll_outer)
{
+ VEC(loop_p,stack) *father_stack = VEC_alloc (loop_p, stack, 16);
loop_iterator li;
struct loop *loop;
bool changed;
@@ -522,22 +598,51 @@ tree_unroll_loops_completely (bool may_increase_size, bool unroll_outer)
FOR_EACH_LOOP (li, loop, LI_ONLY_INNERMOST)
{
+ struct loop *loop_father = loop_outer (loop);
+
if (may_increase_size && optimize_loop_for_speed_p (loop)
/* Unroll outermost loops only if asked to do so or they do
not cause code growth. */
- && (unroll_outer
- || loop_outer (loop_outer (loop))))
+ && (unroll_outer || loop_outer (loop_father)))
ul = UL_ALL;
else
ul = UL_NO_GROWTH;
- changed |= canonicalize_loop_induction_variables
- (loop, false, ul, !flag_tree_loop_ivcanon);
+
+ if (canonicalize_loop_induction_variables (loop, false, ul,
+ !flag_tree_loop_ivcanon))
+ {
+ changed = true;
+ /* If we'll continue unrolling, we need to propagate constants
+ within the new basic blocks to fold away induction variable
+ computations; otherwise, the size might blow up before the
+ iteration is complete and the IR eventually cleaned up. */
+ if (loop_outer (loop_father) && !loop_father->aux)
+ {
+ VEC_safe_push (loop_p, stack, father_stack, loop_father);
+ loop_father->aux = loop_father;
+ }
+ }
}
if (changed)
{
+ struct loop **iter;
+ unsigned i;
+
update_ssa (TODO_update_ssa);
+ /* Propagate the constants within the new basic blocks. */
+ FOR_EACH_VEC_ELT (loop_p, father_stack, i, iter)
+ {
+ unsigned j;
+ basic_block *body = get_loop_body_in_dom_order (*iter);
+ for (j = 0; j < (*iter)->num_nodes; j++)
+ propagate_constants_for_unrolling (body[j]);
+ free (body);
+ (*iter)->aux = NULL;
+ }
+ VEC_truncate (loop_p, father_stack, 0);
+
/* This will take care of removing completely unrolled loops
from the loop structures so we can continue unrolling now
innermost loops. */
@@ -552,5 +657,7 @@ tree_unroll_loops_completely (bool may_increase_size, bool unroll_outer)
while (changed
&& ++iteration <= PARAM_VALUE (PARAM_MAX_UNROLL_ITERATIONS));
+ VEC_free (loop_p, stack, father_stack);
+
return 0;
}
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 94d19afc2..16ff397d4 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -1,5 +1,5 @@
/* Global, SSA-based optimizations using mathematical identities.
- Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
This file is part of GCC.
@@ -1378,12 +1378,18 @@ execute_cse_sincos (void)
FOR_EACH_BB (bb)
{
gimple_stmt_iterator gsi;
+ bool cleanup_eh = false;
for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi); gsi_next (&gsi))
{
gimple stmt = gsi_stmt (gsi);
tree fndecl;
+ /* Only the last stmt in a bb could throw, no need to call
+ gimple_purge_dead_eh_edges if we change something in the middle
+ of a basic block. */
+ cleanup_eh = false;
+
if (is_gimple_call (stmt)
&& gimple_call_lhs (stmt)
&& (fndecl = gimple_call_fndecl (stmt))
@@ -1421,6 +1427,7 @@ execute_cse_sincos (void)
gimple_set_location (new_stmt, loc);
unlink_stmt_vdef (stmt);
gsi_replace (&gsi, new_stmt, true);
+ cleanup_eh = true;
if (gimple_vdef (stmt))
release_ssa_name (gimple_vdef (stmt));
}
@@ -1443,6 +1450,7 @@ execute_cse_sincos (void)
gimple_set_location (new_stmt, loc);
unlink_stmt_vdef (stmt);
gsi_replace (&gsi, new_stmt, true);
+ cleanup_eh = true;
if (gimple_vdef (stmt))
release_ssa_name (gimple_vdef (stmt));
}
@@ -1460,6 +1468,7 @@ execute_cse_sincos (void)
gimple_set_location (new_stmt, loc);
unlink_stmt_vdef (stmt);
gsi_replace (&gsi, new_stmt, true);
+ cleanup_eh = true;
if (gimple_vdef (stmt))
release_ssa_name (gimple_vdef (stmt));
}
@@ -1469,6 +1478,8 @@ execute_cse_sincos (void)
}
}
}
+ if (cleanup_eh)
+ cfg_changed |= gimple_purge_dead_eh_edges (bb);
}
statistics_counter_event (cfun, "sincos statements inserted",
@@ -2593,10 +2604,10 @@ convert_mult_to_fma (gimple mul_stmt, tree op1, tree op2)
true, NULL_TREE, true,
GSI_SAME_STMT);
- fma_stmt = gimple_build_assign_with_ops3 (FMA_EXPR,
- gimple_assign_lhs (use_stmt),
- mulop1, op2,
- addop);
+ fma_stmt = gimple_build_assign_with_ops (FMA_EXPR,
+ gimple_assign_lhs (use_stmt),
+ mulop1, op2,
+ addop);
gsi_replace (&gsi, fma_stmt, true);
widen_mul_stats.fmas_inserted++;
}
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index d9b3146cf..421b35e70 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -1,5 +1,6 @@
/* SSA operands management for trees.
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ 2011, 2012
Free Software Foundation, Inc.
This file is part of GCC.
@@ -841,9 +842,6 @@ get_expr_operands (gimple stmt, tree *expr_p, int flags)
return;
case SSA_NAME:
- add_stmt_operand (expr_p, stmt, flags);
- return;
-
case VAR_DECL:
case PARM_DECL:
case RESULT_DECL:
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index ab9f2f467..d1d97b66a 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -3981,9 +3981,18 @@ compute_avail (void)
{
case VN_NARY:
{
+ enum tree_code code = gimple_assign_rhs_code (stmt);
vn_nary_op_t nary;
+
+ /* COND_EXPR and VEC_COND_EXPR are awkward in
+ that they contain an embedded complex expression.
+ Don't even try to shove those through PRE. */
+ if (code == COND_EXPR
+ || code == VEC_COND_EXPR)
+ continue;
+
vn_nary_op_lookup_pieces (gimple_num_ops (stmt) - 1,
- gimple_assign_rhs_code (stmt),
+ code,
gimple_expr_type (stmt),
gimple_assign_rhs1_ptr (stmt),
&nary);
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 688b0688b..711fbef2a 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -6925,7 +6925,6 @@ ipa_pta_execute (void)
{
struct function *func;
basic_block bb;
- tree old_func_decl;
/* Nodes without a body are not interesting. */
if (!cgraph_function_with_gimple_body_p (node))
@@ -6943,9 +6942,7 @@ ipa_pta_execute (void)
}
func = DECL_STRUCT_FUNCTION (node->symbol.decl);
- old_func_decl = current_function_decl;
push_cfun (func);
- current_function_decl = node->symbol.decl;
/* For externally visible or attribute used annotated functions use
local constraints for their arguments.
@@ -7002,7 +6999,6 @@ ipa_pta_execute (void)
}
}
- current_function_decl = old_func_decl;
pop_cfun ();
if (dump_file)
diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c
index ba6d69af9..2eee50ee1 100644
--- a/gcc/tree-ssa-threadupdate.c
+++ b/gcc/tree-ssa-threadupdate.c
@@ -1,5 +1,5 @@
/* Thread edges through blocks and update the control flow and SSA graphs.
- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010, 201
+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010, 2011, 2012
Free Software Foundation, Inc.
This file is part of GCC.
@@ -362,7 +362,7 @@ create_edge_and_update_destination_phis (struct redirection_data *rd,
if (rd->outgoing_edge->aux)
{
- e->aux = (edge *) XNEWVEC (edge, 2);
+ e->aux = XNEWVEC (edge, 2);
THREAD_TARGET(e) = THREAD_TARGET (rd->outgoing_edge);
THREAD_TARGET2(e) = THREAD_TARGET2 (rd->outgoing_edge);
}
@@ -1143,7 +1143,7 @@ mark_threaded_blocks (bitmap threaded_blocks)
for (i = 0; i < VEC_length (edge, threaded_edges); i += 3)
{
edge e = VEC_index (edge, threaded_edges, i);
- edge *x = (edge *) XNEWVEC (edge, 2);
+ edge *x = XNEWVEC (edge, 2);
e->aux = x;
THREAD_TARGET (e) = VEC_index (edge, threaded_edges, i + 1);
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index a38fb470b..4e3cdc731 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -172,12 +172,11 @@ unpack_ts_real_cst_value_fields (struct bitpack_d *bp, tree expr)
static void
unpack_ts_fixed_cst_value_fields (struct bitpack_d *bp, tree expr)
{
- struct fixed_value fv;
-
- fv.mode = bp_unpack_enum (bp, machine_mode, MAX_MACHINE_MODE);
- fv.data.low = bp_unpack_var_len_int (bp);
- fv.data.high = bp_unpack_var_len_int (bp);
- TREE_FIXED_CST (expr) = fv;
+ FIXED_VALUE_TYPE *fp = ggc_alloc_fixed_value ();
+ fp->mode = bp_unpack_enum (bp, machine_mode, MAX_MACHINE_MODE);
+ fp->data.low = bp_unpack_var_len_int (bp);
+ fp->data.high = bp_unpack_var_len_int (bp);
+ TREE_FIXED_CST_PTR (expr) = fp;
}
@@ -776,7 +775,7 @@ lto_input_ts_exp_tree_pointers (struct lto_input_block *ib,
loc = lto_input_location (ib, data_in);
SET_EXPR_LOCATION (expr, loc);
- TREE_BLOCK (expr) = stream_read_tree (ib, data_in);
+ TREE_SET_BLOCK (expr, stream_read_tree (ib, data_in));
}
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index 8fe7d7992..ab86b1e21 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -471,7 +471,7 @@ write_ts_decl_minimal_tree_pointers (struct output_block *ob, tree expr,
{
stream_write_tree (ob, DECL_NAME (expr), ref_p);
stream_write_tree (ob, DECL_CONTEXT (expr), ref_p);
- lto_output_location (ob, DECL_SOURCE_LOCATION (expr));
+ lto_output_location (ob, LOCATION_LOCUS (DECL_SOURCE_LOCATION (expr)));
}
@@ -668,7 +668,7 @@ write_ts_exp_tree_pointers (struct output_block *ob, tree expr, bool ref_p)
streamer_write_hwi (ob, TREE_OPERAND_LENGTH (expr));
for (i = 0; i < TREE_OPERAND_LENGTH (expr); i++)
stream_write_tree (ob, TREE_OPERAND (expr, i), ref_p);
- lto_output_location (ob, EXPR_LOCATION (expr));
+ lto_output_location (ob, LOCATION_LOCUS (EXPR_LOCATION (expr)));
stream_write_tree (ob, TREE_BLOCK (expr), ref_p);
}
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 4a5624e10..09704694d 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -4170,8 +4170,8 @@ vect_permute_store_chain (VEC(tree,heap) *dr_chain,
high = VEC_PERM_EXPR <vect1, vect2, {0, nelt, 1, nelt+1, ...}> */
high = make_temp_ssa_name (vectype, NULL, "vect_inter_high");
perm_stmt
- = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, high,
- vect1, vect2, perm_mask_high);
+ = gimple_build_assign_with_ops (VEC_PERM_EXPR, high,
+ vect1, vect2, perm_mask_high);
vect_finish_stmt_generation (stmt, perm_stmt, gsi);
VEC_replace (tree, *result_chain, 2*j, high);
@@ -4180,8 +4180,8 @@ vect_permute_store_chain (VEC(tree,heap) *dr_chain,
nelt*3/2+1, ...}> */
low = make_temp_ssa_name (vectype, NULL, "vect_inter_low");
perm_stmt
- = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, low,
- vect1, vect2, perm_mask_low);
+ = gimple_build_assign_with_ops (VEC_PERM_EXPR, low,
+ vect1, vect2, perm_mask_low);
vect_finish_stmt_generation (stmt, perm_stmt, gsi);
VEC_replace (tree, *result_chain, 2*j+1, low);
}
@@ -4618,17 +4618,17 @@ vect_permute_load_chain (VEC(tree,heap) *dr_chain,
/* data_ref = permute_even (first_data_ref, second_data_ref); */
data_ref = make_temp_ssa_name (vectype, NULL, "vect_perm_even");
- perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, data_ref,
- first_vect, second_vect,
- perm_mask_even);
+ perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
+ first_vect, second_vect,
+ perm_mask_even);
vect_finish_stmt_generation (stmt, perm_stmt, gsi);
VEC_replace (tree, *result_chain, j/2, data_ref);
/* data_ref = permute_odd (first_data_ref, second_data_ref); */
data_ref = make_temp_ssa_name (vectype, NULL, "vect_perm_odd");
- perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, data_ref,
- first_vect, second_vect,
- perm_mask_odd);
+ perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
+ first_vect, second_vect,
+ perm_mask_odd);
vect_finish_stmt_generation (stmt, perm_stmt, gsi);
VEC_replace (tree, *result_chain, j/2+length/2, data_ref);
}
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index b217b1123..85fb3a29b 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -667,8 +667,8 @@ expand_vector_divmod (gimple_stmt_iterator *gsi, tree type, tree op0,
<< shifts[i]) - 1);
cst = build_vector (type, vec);
addend = make_ssa_name (type, NULL);
- stmt = gimple_build_assign_with_ops3 (VEC_COND_EXPR, addend,
- cond, cst, zero);
+ stmt = gimple_build_assign_with_ops (VEC_COND_EXPR, addend,
+ cond, cst, zero);
gsi_insert_before (gsi, stmt, GSI_SAME_STMT);
}
}
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 1b78a54c4..ef65c3f88 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -413,8 +413,8 @@ vect_recog_dot_prod_pattern (VEC (gimple, heap) **stmts, tree *type_in,
/* Pattern detected. Create a stmt to be used to replace the pattern: */
var = vect_recog_temp_ssa_var (type, NULL);
- pattern_stmt = gimple_build_assign_with_ops3 (DOT_PROD_EXPR, var,
- oprnd00, oprnd01, oprnd1);
+ pattern_stmt = gimple_build_assign_with_ops (DOT_PROD_EXPR, var,
+ oprnd00, oprnd01, oprnd1);
if (vect_print_dump_info (REPORT_DETAILS))
{
@@ -1688,12 +1688,12 @@ vect_recog_divmod_pattern (VEC (gimple, heap) **stmts,
tree var = vect_recog_temp_ssa_var (itype, NULL);
tree shift;
def_stmt
- = gimple_build_assign_with_ops3 (COND_EXPR, var, cond,
- fold_build2 (MINUS_EXPR, itype,
- oprnd1,
- build_int_cst (itype,
- 1)),
- build_int_cst (itype, 0));
+ = gimple_build_assign_with_ops (COND_EXPR, var, cond,
+ fold_build2 (MINUS_EXPR, itype,
+ oprnd1,
+ build_int_cst (itype,
+ 1)),
+ build_int_cst (itype, 0));
new_pattern_def_seq (stmt_vinfo, def_stmt);
var = vect_recog_temp_ssa_var (itype, NULL);
def_stmt
@@ -1716,9 +1716,9 @@ vect_recog_divmod_pattern (VEC (gimple, heap) **stmts,
{
signmask = vect_recog_temp_ssa_var (itype, NULL);
def_stmt
- = gimple_build_assign_with_ops3 (COND_EXPR, signmask, cond,
- build_int_cst (itype, 1),
- build_int_cst (itype, 0));
+ = gimple_build_assign_with_ops (COND_EXPR, signmask, cond,
+ build_int_cst (itype, 1),
+ build_int_cst (itype, 0));
append_pattern_def_seq (stmt_vinfo, def_stmt);
}
else
@@ -1732,9 +1732,9 @@ vect_recog_divmod_pattern (VEC (gimple, heap) **stmts,
tree var = vect_recog_temp_ssa_var (utype, NULL);
def_stmt
- = gimple_build_assign_with_ops3 (COND_EXPR, var, cond,
- build_int_cst (utype, -1),
- build_int_cst (utype, 0));
+ = gimple_build_assign_with_ops (COND_EXPR, var, cond,
+ build_int_cst (utype, -1),
+ build_int_cst (utype, 0));
def_stmt_vinfo
= new_stmt_vec_info (def_stmt, loop_vinfo, bb_vinfo);
set_vinfo_for_stmt (def_stmt, def_stmt_vinfo);
@@ -2172,11 +2172,11 @@ vect_recog_mixed_size_cond_pattern (VEC (gimple, heap) **stmts, tree *type_in,
}
def_stmt
- = gimple_build_assign_with_ops3 (COND_EXPR,
- vect_recog_temp_ssa_var (itype, NULL),
- unshare_expr (cond_expr),
- fold_convert (itype, then_clause),
- fold_convert (itype, else_clause));
+ = gimple_build_assign_with_ops (COND_EXPR,
+ vect_recog_temp_ssa_var (itype, NULL),
+ unshare_expr (cond_expr),
+ fold_convert (itype, then_clause),
+ fold_convert (itype, else_clause));
pattern_stmt
= gimple_build_assign_with_ops (NOP_EXPR,
vect_recog_temp_ssa_var (type, NULL),
@@ -2476,10 +2476,10 @@ adjust_bool_pattern (tree var, tree out_type, tree trueval,
gcc_checking_assert (useless_type_conversion_p (itype,
TREE_TYPE (trueval)));
pattern_stmt
- = gimple_build_assign_with_ops3 (COND_EXPR,
- vect_recog_temp_ssa_var (itype, NULL),
- cond_expr, trueval,
- build_int_cst (itype, 0));
+ = gimple_build_assign_with_ops (COND_EXPR,
+ vect_recog_temp_ssa_var (itype, NULL),
+ cond_expr, trueval,
+ build_int_cst (itype, 0));
break;
}
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 11dbdfb5a..83cbb49fb 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -2672,8 +2672,8 @@ vect_create_mask_and_perm (gimple stmt, gimple next_scalar_stmt,
second_vec = VEC_index (tree, dr_chain, second_vec_indx);
/* Generate the permute statement. */
- perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, perm_dest,
- first_vec, second_vec, mask);
+ perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, perm_dest,
+ first_vec, second_vec, mask);
data_ref = make_ssa_name (perm_dest, perm_stmt);
gimple_set_lhs (perm_stmt, data_ref);
vect_finish_stmt_generation (stmt, perm_stmt, gsi);
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index ab4a26c2b..210e5b572 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -3702,8 +3702,8 @@ vectorizable_operation (gimple stmt, gimple_stmt_iterator *gsi,
? VEC_index (tree, vec_oprnds1, i) : NULL_TREE);
vop2 = ((op_type == ternary_op)
? VEC_index (tree, vec_oprnds2, i) : NULL_TREE);
- new_stmt = gimple_build_assign_with_ops3 (code, vec_dest,
- vop0, vop1, vop2);
+ new_stmt = gimple_build_assign_with_ops (code, vec_dest,
+ vop0, vop1, vop2);
new_temp = make_ssa_name (vec_dest, new_stmt);
gimple_assign_set_lhs (new_stmt, new_temp);
vect_finish_stmt_generation (stmt, new_stmt, gsi);
@@ -4235,8 +4235,8 @@ permute_vec_elements (tree x, tree y, tree mask_vec, gimple stmt,
data_ref = make_ssa_name (perm_dest, NULL);
/* Generate the permute statement. */
- perm_stmt = gimple_build_assign_with_ops3 (VEC_PERM_EXPR, data_ref,
- x, y, mask_vec);
+ perm_stmt = gimple_build_assign_with_ops (VEC_PERM_EXPR, data_ref,
+ x, y, mask_vec);
vect_finish_stmt_generation (stmt, perm_stmt, gsi);
return data_ref;
@@ -5047,9 +5047,9 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
realignment_token = dataref_ptr;
vec_dest = vect_create_destination_var (scalar_dest, vectype);
new_stmt
- = gimple_build_assign_with_ops3 (REALIGN_LOAD_EXPR,
- vec_dest, msq, lsq,
- realignment_token);
+ = gimple_build_assign_with_ops (REALIGN_LOAD_EXPR,
+ vec_dest, msq, lsq,
+ realignment_token);
new_temp = make_ssa_name (vec_dest, new_stmt);
gimple_assign_set_lhs (new_stmt, new_temp);
vect_finish_stmt_generation (stmt, new_stmt, gsi);
diff --git a/gcc/tree.c b/gcc/tree.c
index a7492de8a..9169424a0 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -3760,7 +3760,6 @@ build1_stat (enum tree_code code, tree type, tree node MEM_STAT_DECL)
TREE_TYPE (t) = type;
SET_EXPR_LOCATION (t, UNKNOWN_LOCATION);
TREE_OPERAND (t, 0) = node;
- TREE_BLOCK (t) = NULL_TREE;
if (node && !TYPE_P (node))
{
TREE_SIDE_EFFECTS (t) = TREE_SIDE_EFFECTS (node);
@@ -10826,17 +10825,33 @@ walk_tree_without_duplicates_1 (tree *tp, walk_tree_fn func, void *data,
}
-tree *
+tree
tree_block (tree t)
{
char const c = TREE_CODE_CLASS (TREE_CODE (t));
if (IS_EXPR_CODE_CLASS (c))
- return &t->exp.block;
+ return LOCATION_BLOCK (t->exp.locus);
gcc_unreachable ();
return NULL;
}
+void
+tree_set_block (tree t, tree b)
+{
+ char const c = TREE_CODE_CLASS (TREE_CODE (t));
+
+ if (IS_EXPR_CODE_CLASS (c))
+ {
+ if (b)
+ t->exp.locus = COMBINE_LOCATION_DATA (line_table, t->exp.locus, b);
+ else
+ t->exp.locus = LOCATION_LOCUS (t->exp.locus);
+ }
+ else
+ gcc_unreachable ();
+}
+
/* Create a nameless artificial label and put it in the current
function context. The label has a location of LOC. Returns the
newly created label. */
diff --git a/gcc/tree.h b/gcc/tree.h
index f9c9a7f88..edc47eec4 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -907,7 +907,8 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
#endif
-#define TREE_BLOCK(NODE) *(tree_block (NODE))
+#define TREE_BLOCK(NODE) (tree_block (NODE))
+#define TREE_SET_BLOCK(T, B) (tree_set_block ((T), (B)))
#include "tree-check.h"
@@ -1611,7 +1612,7 @@ struct GTY(()) tree_constructor {
#define EXPR_LOCATION(NODE) \
(CAN_HAVE_LOCATION_P ((NODE)) ? (NODE)->exp.locus : UNKNOWN_LOCATION)
#define SET_EXPR_LOCATION(NODE, LOCUS) EXPR_CHECK ((NODE))->exp.locus = (LOCUS)
-#define EXPR_HAS_LOCATION(NODE) (EXPR_LOCATION (NODE) != UNKNOWN_LOCATION)
+#define EXPR_HAS_LOCATION(NODE) (!IS_UNKNOWN_LOCATION (EXPR_LOCATION (NODE)))
/* The location to be used in a diagnostic about this expression. Do not
use this macro if the location will be assigned to other expressions. */
#define EXPR_LOC_OR_HERE(NODE) (EXPR_HAS_LOCATION (NODE) ? (NODE)->exp.locus : input_location)
@@ -1790,7 +1791,7 @@ extern void protected_set_expr_location (tree, location_t);
OMP_CLAUSE_PRIVATE, \
OMP_CLAUSE_COPYPRIVATE), 0)
#define OMP_CLAUSE_HAS_LOCATION(NODE) \
- ((OMP_CLAUSE_CHECK (NODE))->omp_clause.locus != UNKNOWN_LOCATION)
+ (!IS_UNKNOWN_LOCATION ((OMP_CLAUSE_CHECK (NODE))->omp_clause.locus))
#define OMP_CLAUSE_LOCATION(NODE) (OMP_CLAUSE_CHECK (NODE))->omp_clause.locus
/* True on an OMP_SECTION statement that was the last lexical member.
@@ -1881,7 +1882,6 @@ enum omp_clause_default_kind
struct GTY(()) tree_exp {
struct tree_typed typed;
location_t locus;
- tree block;
tree GTY ((special ("tree_exp"),
desc ("TREE_CODE ((tree) &%0)")))
operands[1];
@@ -5535,7 +5535,7 @@ function_args_iter_next (function_args_iterator *i)
static inline bool
inlined_function_outer_scope_p (const_tree block)
{
- return BLOCK_SOURCE_LOCATION (block) != UNKNOWN_LOCATION;
+ return !IS_UNKNOWN_LOCATION (BLOCK_SOURCE_LOCATION (block));
}
/* Loop over all function arguments of FNTYPE. In each iteration, PTR is set
@@ -5910,7 +5910,8 @@ extern bool subrange_type_for_debug_p (const_tree, tree *, tree *);
extern HOST_WIDE_INT int_cst_value (const_tree);
extern HOST_WIDEST_INT widest_int_cst_value (const_tree);
-extern tree *tree_block (tree);
+extern tree tree_block (tree);
+extern void tree_set_block (tree, tree);
extern location_t *block_nonartificial_location (tree);
extern location_t tree_nonartificial_location (tree);
diff --git a/gcc/varpool.c b/gcc/varpool.c
index b0063c163..314c66ee3 100644
--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -301,6 +301,10 @@ varpool_assemble_decl (struct varpool_node *node)
&& !targetm.have_tls)
return false;
+ /* Hard register vars do not need to be output. */
+ if (DECL_HARD_REGISTER (decl))
+ return false;
+
gcc_checking_assert (!TREE_ASM_WRITTEN (decl)
&& TREE_CODE (decl) == VAR_DECL
&& !DECL_HAS_VALUE_EXPR_P (decl));
diff --git a/include/ChangeLog b/include/ChangeLog
index fa2688d58..4d998edb0 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2012-09-18 Florian Weimer <fweimer@redhat.com>
+
+ PR other/54411
+ * objalloc.h (objalloc_alloc): Do not use fast path on wraparound.
+
2012-09-06 Cary Coutant <ccoutant@google.com>
* dwarf2.def: Edit comment.
diff --git a/include/objalloc.h b/include/objalloc.h
index 36772d17b..52857663b 100644
--- a/include/objalloc.h
+++ b/include/objalloc.h
@@ -1,5 +1,5 @@
/* objalloc.h -- routines to allocate memory for objects
- Copyright 1997, 2001 Free Software Foundation, Inc.
+ Copyright 1997-2012 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Solutions.
This program is free software; you can redistribute it and/or modify it
@@ -91,7 +91,7 @@ extern void *_objalloc_alloc (struct objalloc *, unsigned long);
if (__len == 0) \
__len = 1; \
__len = (__len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); \
- (__len <= __o->current_space \
+ (__len != 0 && __len <= __o->current_space \
? (__o->current_ptr += __len, \
__o->current_space -= __len, \
(void *) (__o->current_ptr - __len)) \
diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog
index 602c6c079..3a983badc 100644
--- a/libatomic/ChangeLog
+++ b/libatomic/ChangeLog
@@ -1,3 +1,10 @@
+2012-09-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR other/43620
+ * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
* configure: Regenerated.
diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
index 1a134f6cd..1ed60612c 100644
--- a/libatomic/Makefile.in
+++ b/libatomic/Makefile.in
@@ -43,12 +43,10 @@ target_triplet = @target@
@ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@am__append_2 = $(addsuffix _8_1_.lo,$(SIZEOBJS))
@ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@am__append_3 = $(addsuffix _16_1_.lo,$(SIZEOBJS))
subdir = .
-DIST_COMMON = $(am__configure_deps) $(srcdir)/../config.guess \
- $(srcdir)/../config.sub $(srcdir)/../depcomp \
- $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
- $(srcdir)/../missing $(srcdir)/../mkinstalldirs \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/auto-config.h.in $(top_srcdir)/configure ChangeLog
+DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/auto-config.h.in $(srcdir)/../mkinstalldirs \
+ $(srcdir)/../depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/depstand.m4 \
@@ -110,7 +108,6 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libatomic_la_SOURCES) $(EXTRA_libatomic_la_SOURCES)
-DIST_SOURCES = $(libatomic_la_SOURCES) $(EXTRA_libatomic_la_SOURCES)
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
@@ -127,47 +124,10 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
- distdir dist dist-all distcheck
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- { test ! -d "$(distdir)" \
- || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr "$(distdir)"; }; }
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
@@ -633,182 +593,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-lzma: distdir
- tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
- $(am__remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
- $(am__remove_distdir)
-
-dist-tarZ: distdir
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
-
-dist-shar: distdir
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
-
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lzma*) \
- lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @$(am__cd) '$(distuninstallcheck_dir)' \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(LTLIBRARIES) all-multi auto-config.h
@@ -924,23 +708,20 @@ uninstall-am: uninstall-toolexeclibLTLIBRARIES
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am all-multi am--refresh check check-am clean \
clean-generic clean-libtool clean-multi \
- clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \
- dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-compile \
- distclean-generic distclean-hdr distclean-libtool \
- distclean-multi distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-multi install-pdf install-pdf-am install-ps \
- install-ps-am install-strip install-toolexeclibLTLIBRARIES \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic \
- maintainer-clean-multi mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool mostlyclean-multi pdf \
- pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-toolexeclibLTLIBRARIES
+ clean-toolexeclibLTLIBRARIES ctags ctags-recursive distclean \
+ distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-multi distclean-tags dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-multi install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-toolexeclibLTLIBRARIES installcheck installcheck-am \
+ installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic maintainer-clean-multi mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ mostlyclean-multi pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-toolexeclibLTLIBRARIES
vpath % $(strip $(search_path))
diff --git a/libatomic/configure b/libatomic/configure
index 239bcee43..75151e250 100755
--- a/libatomic/configure
+++ b/libatomic/configure
@@ -2571,6 +2571,7 @@ target_alias=${target_alias-$host_alias}
# no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch
# of other PACKAGE_* variables will, however, and there's nothing
# we can do about that; they come from AC_INIT).
+# no-dist: we don't want 'dist' and related rules.
# foreign: we don't follow the normal rules for GNU packages (no COPYING
# file in the top srcdir, etc, etc), so stop complaining.
# -Wall: turns on all automake warnings...
diff --git a/libatomic/configure.ac b/libatomic/configure.ac
index 390e7791a..164ca8d5f 100644
--- a/libatomic/configure.ac
+++ b/libatomic/configure.ac
@@ -76,12 +76,13 @@ target_alias=${target_alias-$host_alias}
# no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch
# of other PACKAGE_* variables will, however, and there's nothing
# we can do about that; they come from AC_INIT).
+# no-dist: we don't want 'dist' and related rules.
# foreign: we don't follow the normal rules for GNU packages (no COPYING
# file in the top srcdir, etc, etc), so stop complaining.
# -Wall: turns on all automake warnings...
# -Wno-portability: ...except this one, since GNU make is required.
# -Wno-override: ... and this one, since we do want this in testsuite.
-AM_INIT_AUTOMAKE([1.9.0 foreign -Wall -Wno-portability -Wno-override])
+AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override])
AM_ENABLE_MULTILIB(, ..)
# Calculate toolexeclibdir
diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog
new file mode 100644
index 000000000..e5baeb535
--- /dev/null
+++ b/libbacktrace/ChangeLog
@@ -0,0 +1,76 @@
+2012-09-19 Ian Lance Taylor <iant@google.com>
+
+ * configure.ac: Only use GCC_CHECK_UNWIND_GETIPINFO when compiled
+ as a target library.
+ * configure: Rebuild.
+
+2012-09-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ Ian Lance Taylor <iant@google.com>
+
+ * configure.ac (GCC_HEADER_STDINT): Invoke.
+ * backtrace.h: If we can't find <stdint.h>, use "gstdint.h".
+ * btest.c: Don't include <stdint.h>.
+ * dwarf.c: Likewise.
+ * configure, aclocal.m4, Makefile.in, config.h.in: Rebuild.
+
+2012-09-18 Ian Lance Taylor <iant@google.com>
+
+ PR bootstrap/54623
+ * Makefile.am (AM_CPPFLAGS): Define.
+ (AM_CFLAGS): Remove -I options.
+ * Makefile.in: Rebuild.
+
+2012-09-18 Ian Lance Taylor <iant@google.com>
+
+ * posix.c (O_BINARY): Define if not defined.
+ (backtrace_open): Pass O_BINARY to open. Only call fcntl if
+ HAVE_FCNTL is defined.
+ * configure.ac: Test for the fcntl function.
+ * configure, config.h.in: Rebuild.
+
+2012-09-18 Ian Lance Taylor <iant@google.com>
+
+ * btest.c (test1, test2, test3, test4): Add the unused attribute.
+
+2012-09-18 Ian Lance Taylor <iant@google.com>
+
+ * dwarf.c: Correct test of HAVE_DECL_STRNLEN.
+
+2012-09-18 Ian Lance Taylor <iant@google.com>
+
+ * configure.ac: Add AC_USE_SYSTEM_EXTENSIONS.
+ * mmapio.c: Don't define _GNU_SOURCE.
+ * configure, config.h.in: Rebuild.
+
+2012-09-18 Ian Lance Taylor <iant@google.com>
+
+ * configure.ac: Check whether strnlen is declared.
+ * dwarf.c: Declare strnlen if not declared.
+ * configure, config.h.in: Rebuild.
+
+2012-09-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * fileline.c: Include <stdlib.h>.
+ * mmap.c: Likewise.
+
+2012-09-17 Ian Lance Taylor <iant@google.com>
+
+ PR bootstrap/54611
+ * nounwind.c (backtrace_full): Rename from backtrace. Add state
+ parameter.
+
+2012-09-17 Gerald Pfeifer <gerald@pfeifer.com>
+
+ PR bootstrap/54611
+ * nounwind.c (backtrace_simple): Add state parameter.
+
+2012-09-17 Ian Lance Taylor <iant@google.com>
+
+ PR bootstrap/54609
+ * unknown.c (unknown_fileline): Add state parameter, remove
+ fileline_data parameter, name error_callback parameter.
+ (backtrace_initialize): Add state parameter.
+
+2012-09-17 Ian Lance Taylor <iant@google.com>
+
+ * Initial implementation.
diff --git a/libbacktrace/Makefile.am b/libbacktrace/Makefile.am
new file mode 100644
index 000000000..2492ca2cc
--- /dev/null
+++ b/libbacktrace/Makefile.am
@@ -0,0 +1,95 @@
+# Makefile.am -- Backtrace Makefile.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+
+# (1) Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+
+# (2) Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+
+# (3) The name of the author may not be used to
+# endorse or promote products derived from this software without
+# specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+ACLOCAL_AMFLAGS = -I .. -I ../config
+
+AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
+ -I ../libgcc -I ../gcc/include -I $(MULTIBUILDTOP)../../gcc/include
+
+AM_CFLAGS = $(WARN_FLAGS) $(PIC_FLAG)
+
+noinst_LTLIBRARIES = libbacktrace.la
+
+libbacktrace_la_SOURCES = \
+ backtrace.h \
+ dwarf.c \
+ fileline.c \
+ internal.h \
+ posix.c \
+ print.c \
+ state.c
+
+BACKTRACE_FILES = \
+ backtrace.c \
+ simple.c \
+ nounwind.c
+
+FORMAT_FILES = \
+ elf.c \
+ unknown.c
+
+VIEW_FILES = \
+ read.c \
+ mmapio.c
+
+ALLOC_FILES = \
+ alloc.c \
+ mmap.c
+
+EXTRA_libbacktrace_la_SOURCES = \
+ $(BACKTRACE_FILES) \
+ $(FORMAT_FILES) \
+ $(VIEW_FILES) \
+ $(ALLOC_FILES)
+
+libbacktrace_la_LIBADD = \
+ $(BACKTRACE_FILE) \
+ $(FORMAT_FILE) \
+ $(VIEW_FILE) \
+ $(ALLOC_FILE)
+
+libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
+
+# Testsuite.
+
+check_PROGRAMS =
+
+TESTS = $(check_PROGRAMS)
+
+if NATIVE
+
+btest_SOURCES = btest.c
+btest_CFLAGS = $(AM_CFLAGS) -g -O
+btest_LDADD = libbacktrace.la
+
+check_PROGRAMS += btest
+
+endif NATIVE
diff --git a/libbacktrace/Makefile.in b/libbacktrace/Makefile.in
new file mode 100644
index 000000000..6559868ac
--- /dev/null
+++ b/libbacktrace/Makefile.in
@@ -0,0 +1,744 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Makefile.am -- Backtrace Makefile.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+
+# (1) Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+
+# (2) Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+
+# (3) The name of the author may not be used to
+# endorse or promote products derived from this software without
+# specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+check_PROGRAMS = $(am__EXEEXT_1)
+@NATIVE_TRUE@am__append_1 = btest
+subdir = .
+DIST_COMMON = README ChangeLog $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(srcdir)/config.h.in \
+ $(srcdir)/../mkinstalldirs $(srcdir)/backtrace-supported.h.in \
+ $(srcdir)/../depcomp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/multi.m4 \
+ $(top_srcdir)/../config/override.m4 \
+ $(top_srcdir)/../config/stdint.m4 \
+ $(top_srcdir)/../config/unwind_ipinfo.m4 \
+ $(top_srcdir)/../config/warnings.m4 \
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = backtrace-supported.h
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+am_libbacktrace_la_OBJECTS = dwarf.lo fileline.lo posix.lo print.lo \
+ state.lo
+libbacktrace_la_OBJECTS = $(am_libbacktrace_la_OBJECTS)
+@NATIVE_TRUE@am__EXEEXT_1 = btest$(EXEEXT)
+@NATIVE_TRUE@am_btest_OBJECTS = btest-btest.$(OBJEXT)
+btest_OBJECTS = $(am_btest_OBJECTS)
+@NATIVE_TRUE@btest_DEPENDENCIES = libbacktrace.la
+btest_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(btest_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/../depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \
+ $(btest_SOURCES)
+MULTISRCTOP =
+MULTIBUILDTOP =
+MULTIDIRS =
+MULTISUBDIR =
+MULTIDO = true
+MULTICLEAN = true
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+ACLOCAL = @ACLOCAL@
+ALLOC_FILE = @ALLOC_FILE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BACKTRACE_FILE = @BACKTRACE_FILE@
+BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@
+BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@
+BACKTRACE_USES_MALLOC = @BACKTRACE_USES_MALLOC@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FORMAT_FILE = @FORMAT_FILE@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PIC_FLAG = @PIC_FLAG@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VIEW_FILE = @VIEW_FILE@
+WARN_FLAGS = @WARN_FLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libtool_VERSION = @libtool_VERSION@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+multi_basedir = @multi_basedir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I .. -I ../config
+AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
+ -I ../libgcc -I ../gcc/include -I $(MULTIBUILDTOP)../../gcc/include
+
+AM_CFLAGS = $(WARN_FLAGS) $(PIC_FLAG)
+noinst_LTLIBRARIES = libbacktrace.la
+libbacktrace_la_SOURCES = \
+ backtrace.h \
+ dwarf.c \
+ fileline.c \
+ internal.h \
+ posix.c \
+ print.c \
+ state.c
+
+BACKTRACE_FILES = \
+ backtrace.c \
+ simple.c \
+ nounwind.c
+
+FORMAT_FILES = \
+ elf.c \
+ unknown.c
+
+VIEW_FILES = \
+ read.c \
+ mmapio.c
+
+ALLOC_FILES = \
+ alloc.c \
+ mmap.c
+
+EXTRA_libbacktrace_la_SOURCES = \
+ $(BACKTRACE_FILES) \
+ $(FORMAT_FILES) \
+ $(VIEW_FILES) \
+ $(ALLOC_FILES)
+
+libbacktrace_la_LIBADD = \
+ $(BACKTRACE_FILE) \
+ $(FORMAT_FILE) \
+ $(VIEW_FILE) \
+ $(ALLOC_FILE)
+
+libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
+TESTS = $(check_PROGRAMS)
+@NATIVE_TRUE@btest_SOURCES = btest.c
+@NATIVE_TRUE@btest_CFLAGS = $(AM_CFLAGS) -g -O
+@NATIVE_TRUE@btest_LDADD = libbacktrace.la
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+backtrace-supported.h: $(top_builddir)/config.status $(srcdir)/backtrace-supported.h.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libbacktrace.la: $(libbacktrace_la_OBJECTS) $(libbacktrace_la_DEPENDENCIES)
+ $(LINK) $(libbacktrace_la_OBJECTS) $(libbacktrace_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+btest$(EXEEXT): $(btest_OBJECTS) $(btest_DEPENDENCIES)
+ @rm -f btest$(EXEEXT)
+ $(btest_LINK) $(btest_OBJECTS) $(btest_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backtrace.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btest-btest.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileline.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmap.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmapio.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nounwind.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posix.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/state.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unknown.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+btest-btest.o: btest.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -MT btest-btest.o -MD -MP -MF $(DEPDIR)/btest-btest.Tpo -c -o btest-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/btest-btest.Tpo $(DEPDIR)/btest-btest.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='btest.c' object='btest-btest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
+
+btest-btest.obj: btest.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -MT btest-btest.obj -MD -MP -MF $(DEPDIR)/btest-btest.Tpo -c -o btest-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/btest-btest.Tpo $(DEPDIR)/btest-btest.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='btest.c' object='btest-btest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+
+# GNU Make needs to see an explicit $(MAKE) variable in the command it
+# runs to enable its job server during parallel builds. Hence the
+# comments below.
+all-multi:
+ $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
+install-multi:
+ $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
+
+mostlyclean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
+clean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
+distclean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
+maintainer-clean-multi:
+ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES) all-multi config.h
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am clean-multi
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-noinstLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am distclean-multi
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-multi
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am maintainer-clean-multi
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am mostlyclean-multi
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all all-multi check-am clean-multi distclean-multi install-am \
+ install-multi install-strip maintainer-clean-multi \
+ mostlyclean-multi
+
+.PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-TESTS \
+ check-am clean clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-multi clean-noinstLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-multi distclean-tags dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-multi install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic maintainer-clean-multi mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ mostlyclean-multi pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libbacktrace/README b/libbacktrace/README
new file mode 100644
index 000000000..e8b225745
--- /dev/null
+++ b/libbacktrace/README
@@ -0,0 +1,23 @@
+The libbacktrace library
+Initially written by Ian Lance Taylor <iant@google.com>
+
+The libbacktrace library may be linked into a program or library and
+used to produce symbolic backtraces. Sample uses would be to print a
+detailed backtrace when an error occurs or to gather detailed
+profiling information.
+
+The libbacktrace library is provided under a BSD license. See the
+source files for the exact license text.
+
+The public functions are declared and documented in the header file
+backtrace.h, which should be #include'd by a user of the library.
+
+Building libbacktrace will generate a file backtrace-supported.h,
+which a user of the library may use to determine whether backtraces
+will work. See the source file backtrace-supported.h.in for the
+macros that it defines.
+
+As of September 2012, libbacktrace only supports ELF executables with
+DWARF debugging information. The library is written to make it
+straightforward to add support for other object file and debugging
+formats.
diff --git a/libbacktrace/aclocal.m4 b/libbacktrace/aclocal.m4
new file mode 100644
index 000000000..a59188ac4
--- /dev/null
+++ b/libbacktrace/aclocal.m4
@@ -0,0 +1,982 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],,
+[m4_warning([this file was generated for autoconf 2.64.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 10
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../config/depstand.m4])
+m4_include([../config/lead-dot.m4])
+m4_include([../config/multi.m4])
+m4_include([../config/override.m4])
+m4_include([../config/stdint.m4])
+m4_include([../config/unwind_ipinfo.m4])
+m4_include([../config/warnings.m4])
+m4_include([../libtool.m4])
+m4_include([../ltoptions.m4])
+m4_include([../ltsugar.m4])
+m4_include([../ltversion.m4])
+m4_include([../lt~obsolete.m4])
diff --git a/libbacktrace/alloc.c b/libbacktrace/alloc.c
new file mode 100644
index 000000000..501f3863f
--- /dev/null
+++ b/libbacktrace/alloc.c
@@ -0,0 +1,139 @@
+/* alloc.c -- Memory allocation without mmap.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <errno.h>
+#include <stdlib.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* Allocation routines to use on systems that do not support anonymous
+ mmap. This implementation just uses malloc, which means that the
+ backtrace functions may not be safely invoked from a signal
+ handler. */
+
+/* Allocate memory like malloc. */
+
+void *
+backtrace_alloc (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ size_t size, backtrace_error_callback error_callback,
+ void *data)
+{
+ void *ret;
+
+ ret = malloc (size);
+ if (ret == NULL)
+ error_callback (data, "malloc", errno);
+ return ret;
+}
+
+/* Free memory. */
+
+void
+backtrace_free (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ void *p, size_t size ATTRIBUTE_UNUSED,
+ backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED)
+{
+ free (p);
+}
+
+/* Grow VEC by SIZE bytes. */
+
+void *
+backtrace_vector_grow (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ size_t size, backtrace_error_callback error_callback,
+ void *data, struct backtrace_vector *vec)
+{
+ void *ret;
+
+ if (size > vec->alc)
+ {
+ size_t alc;
+ void *base;
+
+ if (vec->size == 0)
+ alc = 32 * size;
+ else if (vec->size >= 4096)
+ alc = vec->size + 4096;
+ else
+ alc = 2 * vec->size;
+
+ if (alc < vec->size + size)
+ alc = vec->size + size;
+
+ base = realloc (vec->base, alc);
+ if (base == NULL)
+ {
+ error_callback (data, "realloc", errno);
+ return NULL;
+ }
+
+ vec->base = base;
+ vec->alc = alc - vec->size;
+ }
+
+ ret = (char *) vec->base + vec->size;
+ vec->size += size;
+ vec->alc -= size;
+ return ret;
+}
+
+/* Finish the current allocation on VEC. */
+
+void
+backtrace_vector_finish (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ struct backtrace_vector *vec)
+{
+ vec->base = (char *) vec->base + vec->size;
+ vec->size = 0;
+}
+
+/* Release any extra space allocated for VEC. */
+
+int
+backtrace_vector_release (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ struct backtrace_vector *vec,
+ backtrace_error_callback error_callback,
+ void *data)
+{
+ vec->base = realloc (vec->base, vec->size);
+ if (vec->base == NULL)
+ {
+ error_callback (data, "realloc", errno);
+ return 0;
+ }
+ vec->alc = 0;
+ return 1;
+}
diff --git a/libbacktrace/backtrace-supported.h.in b/libbacktrace/backtrace-supported.h.in
new file mode 100644
index 000000000..329f4c205
--- /dev/null
+++ b/libbacktrace/backtrace-supported.h.in
@@ -0,0 +1,61 @@
+/* backtrace-supported.h.in -- Whether stack backtrace is supported.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+/* The file backtrace-supported.h.in is used by configure to generate
+ the file backtrace-supported.h. The file backtrace-supported.h may
+ be #include'd to see whether the backtrace library will be able to
+ get a backtrace and produce symbolic information. */
+
+
+/* BACKTRACE_SUPPORTED will be #define'd as 1 if the backtrace library
+ should work, 0 if it will not. Libraries may #include this to make
+ other arrangements. */
+
+#define BACKTRACE_SUPPORTED @BACKTRACE_SUPPORTED@
+
+/* BACKTRACE_USES_MALLOC will be #define'd as 1 if the backtrace
+ library will call malloc as it works, 0 if it will call mmap
+ instead. This may be used to determine whether it is safe to call
+ the backtrace functions from a signal handler. In general this
+ only applies to calls like backtrace and backtrace_pcinfo. It does
+ not apply to backtrace_simple, which never calls malloc. It does
+ not apply to backtrace_print, which always calls fprintf and
+ therefore malloc. */
+
+#define BACKTRACE_USES_MALLOC @BACKTRACE_USES_MALLOC@
+
+/* BACKTRACE_SUPPORTS_THREADS will be #define'd as 1 if the backtrace
+ library is configured with threading support, 0 if not. If this is
+ 0, the threaded parameter to backtrace_create_state must be passed
+ as 0. */
+
+#define BACKTRACE_SUPPORTS_THREADS @BACKTRACE_SUPPORTS_THREADS@
diff --git a/libbacktrace/backtrace.c b/libbacktrace/backtrace.c
new file mode 100644
index 000000000..c16b88328
--- /dev/null
+++ b/libbacktrace/backtrace.c
@@ -0,0 +1,108 @@
+/* backtrace.c -- Entry point for stack backtrace library.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include "unwind.h"
+#include "backtrace.h"
+
+/* The main backtrace_full routine. */
+
+/* Data passed through _Unwind_Backtrace. */
+
+struct backtrace_data
+{
+ /* Number of frames to skip. */
+ int skip;
+ /* Library state. */
+ struct backtrace_state *state;
+ /* Callback routine. */
+ backtrace_full_callback callback;
+ /* Error callback routine. */
+ backtrace_error_callback error_callback;
+ /* Data to pass to callback routines. */
+ void *data;
+ /* Value to return from backtrace_full. */
+ int ret;
+};
+
+/* Unwind library callback routine. This is passed to
+ _Unwind_Backtrace. */
+
+static _Unwind_Reason_Code
+unwind (struct _Unwind_Context *context, void *vdata)
+{
+ struct backtrace_data *bdata = (struct backtrace_data *) vdata;
+ uintptr_t pc;
+ int ip_before_insn = 0;
+
+#ifdef HAVE_GETIPINFO
+ pc = _Unwind_GetIPInfo (context, &ip_before_insn);
+#else
+ pc = _Unwind_GetIP (context);
+#endif
+
+ if (bdata->skip > 0)
+ {
+ --bdata->skip;
+ return _URC_NO_REASON;
+ }
+
+ if (!ip_before_insn)
+ --pc;
+
+ bdata->ret = backtrace_pcinfo (bdata->state, pc, bdata->callback,
+ bdata->error_callback, bdata->data);
+ if (bdata->ret != 0)
+ return _URC_END_OF_STACK;
+
+ return _URC_NO_REASON;
+}
+
+/* Get a stack backtrace. */
+
+int
+backtrace_full (struct backtrace_state *state, int skip,
+ backtrace_full_callback callback,
+ backtrace_error_callback error_callback, void *data)
+{
+ struct backtrace_data bdata;
+
+ bdata.skip = skip + 1;
+ bdata.state = state;
+ bdata.callback = callback;
+ bdata.error_callback = error_callback;
+ bdata.data = data;
+ bdata.ret = 0;
+ _Unwind_Backtrace (unwind, &bdata);
+ return bdata.ret;
+}
diff --git a/libbacktrace/backtrace.h b/libbacktrace/backtrace.h
new file mode 100644
index 000000000..b8404eaef
--- /dev/null
+++ b/libbacktrace/backtrace.h
@@ -0,0 +1,199 @@
+/* backtrace.h -- Public header file for stack backtrace library.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef BACKTRACE_H
+#define BACKTRACE_H
+
+#include <stddef.h>
+#include <stdio.h>
+
+/* We want to get a definition for uintptr_t, but we still care about
+ systems that don't have <stdint.h>. */
+#if defined(__GLIBC__) && __GLIBC__ >= 2
+
+#include <stdint.h>
+
+#elif defined(HAVE_STDINT_H)
+
+#include <stdint.h>
+
+#else
+
+/* Systems that don't have <stdint.h> must provide gstdint.h, e.g.,
+ from GCC_HEADER_STDINT in configure.ac. */
+#include "gstdint.h"
+
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* The backtrace state. This struct is intentionally not defined in
+ the public interface. */
+
+struct backtrace_state;
+
+/* The type of the error callback argument to backtrace functions.
+ This function, if not NULL, will be called for certain error cases.
+ The DATA argument is passed to the function that calls this one.
+ The MSG argument is an error message. The ERRNUM argument, if
+ greater than 0, holds an errno value. The MSG buffer may become
+ invalid after this function returns.
+
+ As a special case, the ERRNUM argument will be passed as -1 if no
+ debug info can be found for the executable, but the function
+ requires debug info (e.g., backtrace_full, backtrace_pcinfo). The
+ MSG in this case will be something along the lines of "no debug
+ info". Similarly, ERRNUM will be passed as -1 if there is no
+ symbol table, but the function requires a symbol table (e.g.,
+ backtrace_syminfo). This may be used as a signal that some other
+ approach should be tried. */
+
+typedef void (*backtrace_error_callback) (void *data, const char *msg,
+ int errnum);
+
+/* Create state information for the backtrace routines. This must be
+ called before any of the other routines, and its return value must
+ be passed to all of the other routines. FILENAME is the path name
+ of the executable file; if it is NULL the library will try
+ system-specific path names. If not NULL, FILENAME must point to a
+ permanent buffer. If THREADED is non-zero the state may be
+ accessed by multiple threads simultaneously, and the library will
+ use appropriate locks (this requires that the library be configured
+ with --enable-backtrace-threads). If THREADED is zero the state
+ may only be accessed by one thread at a time. This returns a state
+ pointer on success, NULL on error. If an error occurs, this will
+ call the ERROR_CALLBACK routine. */
+
+extern struct backtrace_state *backtrace_create_state (
+ const char *filename, int threaded,
+ backtrace_error_callback error_callback, void *data);
+
+/* The type of the callback argument to the backtrace_full function.
+ DATA is the argument passed to backtrace_full. PC is the program
+ counter. FILENAME is the name of the file containing PC, or NULL
+ if not available. LINENO is the line number in FILENAME containing
+ PC, or 0 if not available. FUNCTION is the name of the function
+ containing PC, or NULL if not available. This should return 0 to
+ continuing tracing. The FILENAME and FUNCTION buffers may become
+ invalid after this function returns. */
+
+typedef int (*backtrace_full_callback) (void *data, uintptr_t pc,
+ const char *filename, int lineno,
+ const char *function);
+
+/* Get a full stack backtrace. SKIP is the number of frames to skip;
+ passing 0 will start the trace with the function calling
+ backtrace_full. DATA is passed to the callback routine. If any
+ call to CALLBACK returns a non-zero value, the stack backtrace
+ stops, and backtrace returns that value; this may be used to limit
+ the number of stack frames desired. If all calls to CALLBACK
+ return 0, backtrace returns 0. The backtrace_full function will
+ make at least one call to either CALLBACK or ERROR_CALLBACK. This
+ function requires debug info for the executable. */
+
+extern int backtrace_full (struct backtrace_state *state, int skip,
+ backtrace_full_callback callback,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* The type of the callback argument to the backtrace_simple function.
+ DATA is the argument passed to simple_backtrace. PC is the program
+ counter. This should return 0 to continue tracing. */
+
+typedef int (*backtrace_simple_callback) (void *data, uintptr_t pc);
+
+/* Get a simple backtrace. SKIP is the number of frames to skip, as
+ in backtrace. DATA is passed to the callback routine. If any call
+ to CALLBACK returns a non-zero value, the stack backtrace stops,
+ and backtrace_simple returns that value. Otherwise
+ backtrace_simple returns 0. The backtrace_simple function will
+ make at least one call to either CALLBACK or ERROR_CALLBACK. This
+ function does not require any debug info for the executable. */
+
+extern int backtrace_simple (struct backtrace_state *state, int skip,
+ backtrace_simple_callback callback,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* Print the current backtrace in a user readable format to a FILE.
+ SKIP is the number of frames to skip, as in backtrace_full. Any
+ error messages are printed to stderr. This function requires debug
+ info for the executable. */
+
+extern void backtrace_print (struct backtrace_state *state, int skip, FILE *);
+
+/* Given PC, a program counter in the current program, call the
+ callback function with filename, line number, and function name
+ information. This will normally call the callback function exactly
+ once. However, if the PC happens to describe an inlined call, and
+ the debugging information contains the necessary information, then
+ this may call the callback function multiple times. This will make
+ at least one call to either CALLBACK or ERROR_CALLBACK. This
+ returns the first non-zero value returned by CALLBACK, or 0. */
+
+extern int backtrace_pcinfo (struct backtrace_state *state, uintptr_t pc,
+ backtrace_full_callback callback,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* The type of the callback argument to backtrace_syminfo. DATA and
+ PC are the arguments passed to backtrace_syminfo. SYMNAME is the
+ name of the symbol for the corresponding code. SYMVAL is the
+ value. SYMNAME will be NULL if no error occurred but the symbol
+ could not be found. */
+
+typedef void (*backtrace_syminfo_callback) (void *data, uintptr_t pc,
+ const char *symname,
+ uintptr_t symval);
+
+/* Given PC, a program counter in the current program, call the
+ callback information with the symbol name and value describing the
+ function in which PC may be found. This will call either CALLBACK
+ or ERROR_CALLBACK exactly once. This returns 1 on success, 0 on
+ failure. This function requires the symbol table but does not
+ require the debug info. Note that if the symbol table is present
+ but PC could not be found in the table, CALLBACK will be called
+ with a NULL SYMNAME argument. Returns 1 on success, 0 on
+ error. */
+
+extern int backtrace_syminfo (struct backtrace_state *state, uintptr_t pc,
+ backtrace_syminfo_callback callback,
+ backtrace_error_callback error_callback,
+ void *data);
+
+#ifdef __cplusplus
+} /* End extern "C". */
+#endif
+
+#endif
diff --git a/libbacktrace/btest.c b/libbacktrace/btest.c
new file mode 100644
index 000000000..085891a6e
--- /dev/null
+++ b/libbacktrace/btest.c
@@ -0,0 +1,628 @@
+/* btest.c -- Test for libbacktrace library
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+/* This program tests the externally visible interfaces of the
+ libbacktrace library. */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "filenames.h"
+
+#include "backtrace.h"
+#include "backtrace-supported.h"
+
+/* Portable attribute syntax. Actually some of these tests probably
+ won't work if the attributes are not recognized. */
+
+#ifndef GCC_VERSION
+# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
+#endif
+
+#if (GCC_VERSION < 2007)
+# define __attribute__(x)
+#endif
+
+#ifndef ATTRIBUTE_UNUSED
+# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#endif
+
+/* Used to collect backtrace info. */
+
+struct info
+{
+ char *filename;
+ int lineno;
+ char *function;
+};
+
+/* Passed to backtrace callback function. */
+
+struct bdata
+{
+ struct info *all;
+ size_t index;
+ size_t max;
+ int failed;
+};
+
+/* Passed to backtrace_simple callback function. */
+
+struct sdata
+{
+ uintptr_t *addrs;
+ size_t index;
+ size_t max;
+ int failed;
+};
+
+/* Passed to backtrace_syminfo callback function. */
+
+struct symdata
+{
+ const char *name;
+ uintptr_t val;
+ int failed;
+};
+
+/* The backtrace state. */
+
+static void *state;
+
+/* The number of failures. */
+
+static int failures;
+
+/* Return the base name in a path. */
+
+static const char *
+base (const char *p)
+{
+ const char *last;
+ const char *s;
+
+ last = NULL;
+ for (s = p; *s != '\0'; ++s)
+ {
+ if (IS_DIR_SEPARATOR (*s))
+ last = s + 1;
+ }
+ return last != NULL ? last : p;
+}
+
+/* Check an entry in a struct info array. */
+
+static void
+check (const char *name, int index, const struct info *all, int want_lineno,
+ const char *want_function, int *failed)
+{
+ if (*failed)
+ return;
+ if (strcmp (base (all[index].filename), "btest.c") != 0)
+ {
+ fprintf (stderr, "%s: [%d]: got %s expected test.c\n", name, index,
+ all[index].filename);
+ *failed = 1;
+ }
+ if (all[index].lineno != want_lineno)
+ {
+ fprintf (stderr, "%s: [%d]: got %d expected %d\n", name, index,
+ all[index].lineno, want_lineno);
+ *failed = 1;
+ }
+ if (strcmp (all[index].function, want_function) != 0)
+ {
+ fprintf (stderr, "%s: [%d]: got %s expected %s\n", name, index,
+ all[index].function, want_function);
+ *failed = 1;
+ }
+}
+
+/* The backtrace callback function. */
+
+static int
+callback_one (void *vdata, uintptr_t pc ATTRIBUTE_UNUSED,
+ const char *filename, int lineno, const char *function)
+{
+ struct bdata *data = (struct bdata *) vdata;
+ struct info *p;
+
+ if (data->index >= data->max)
+ {
+ fprintf (stderr, "callback_one: callback called too many times\n");
+ data->failed = 1;
+ return 1;
+ }
+
+ p = &data->all[data->index];
+ if (filename == NULL)
+ p->filename = NULL;
+ else
+ {
+ p->filename = strdup (filename);
+ assert (p->filename != NULL);
+ }
+ p->lineno = lineno;
+ if (function == NULL)
+ p->function = NULL;
+ else
+ {
+ p->function = strdup (function);
+ assert (p->function != NULL);
+ }
+ ++data->index;
+
+ return 0;
+}
+
+/* An error callback passed to backtrace. */
+
+static void
+error_callback_one (void *vdata, const char *msg, int errnum)
+{
+ struct bdata *data = (struct bdata *) vdata;
+
+ fprintf (stderr, "%s", msg);
+ if (errnum > 0)
+ fprintf (stderr, ": %s", strerror (errnum));
+ fprintf (stderr, "\n");
+ data->failed = 1;
+}
+
+/* The backtrace_simple callback function. */
+
+static int
+callback_two (void *vdata, uintptr_t pc)
+{
+ struct sdata *data = (struct sdata *) vdata;
+
+ if (data->index >= data->max)
+ {
+ fprintf (stderr, "callback_two: callback called too many times\n");
+ data->failed = 1;
+ return 1;
+ }
+
+ data->addrs[data->index] = pc;
+ ++data->index;
+
+ return 0;
+}
+
+/* An error callback passed to backtrace_simple. */
+
+static void
+error_callback_two (void *vdata, const char *msg, int errnum)
+{
+ struct sdata *data = (struct sdata *) vdata;
+
+ fprintf (stderr, "%s", msg);
+ if (errnum > 0)
+ fprintf (stderr, ": %s", strerror (errnum));
+ fprintf (stderr, "\n");
+ data->failed = 1;
+}
+
+/* The backtrace_syminfo callback function. */
+
+static void
+callback_three (void *vdata, uintptr_t pc ATTRIBUTE_UNUSED,
+ const char *symname, uintptr_t symval)
+{
+ struct symdata *data = (struct symdata *) vdata;
+
+ if (symname == NULL)
+ data->name = NULL;
+ else
+ {
+ data->name = strdup (symname);
+ assert (data->name != NULL);
+ }
+ data->val = symval;
+}
+
+/* The backtrace_syminfo error callback function. */
+
+static void
+error_callback_three (void *vdata, const char *msg, int errnum)
+{
+ struct symdata *data = (struct symdata *) vdata;
+
+ fprintf (stderr, "%s", msg);
+ if (errnum > 0)
+ fprintf (stderr, ": %s", strerror (errnum));
+ fprintf (stderr, "\n");
+ data->failed = 1;
+}
+
+/* Test the backtrace function with non-inlined functions. */
+
+static int test1 (void) __attribute__ ((noinline, unused));
+static int f2 (int) __attribute__ ((noinline));
+static int f3 (int, int) __attribute__ ((noinline));
+
+static int
+test1 (void)
+{
+ /* Returning a value here and elsewhere avoids a tailcall which
+ would mess up the backtrace. */
+ return f2 (__LINE__) + 1;
+}
+
+static int
+f2 (int f1line)
+{
+ return f3 (f1line, __LINE__) + 2;
+}
+
+static int
+f3 (int f1line, int f2line)
+{
+ struct info all[20];
+ struct bdata data;
+ int f3line;
+ int i;
+
+ data.all = &all[0];
+ data.index = 0;
+ data.max = 20;
+ data.failed = 0;
+
+ f3line = __LINE__ + 1;
+ i = backtrace_full (state, 0, callback_one, error_callback_one, &data);
+
+ if (i != 0)
+ {
+ fprintf (stderr, "test1: unexpected return value %d\n", i);
+ data.failed = 1;
+ }
+
+ check ("test1", 0, all, f3line, "f3", &data.failed);
+ check ("test1", 1, all, f2line, "f2", &data.failed);
+ check ("test1", 2, all, f1line, "test1", &data.failed);
+
+ printf ("%s: backtrace_full noinline\n", data.failed ? "FAIL" : "PASS");
+
+ if (data.failed)
+ ++failures;
+
+ return failures;
+}
+
+/* Test the backtrace function with inlined functions. */
+
+static inline int test2 (void) __attribute__ ((always_inline, unused));
+static inline int f12 (int) __attribute__ ((always_inline));
+static inline int f13 (int, int) __attribute__ ((always_inline));
+
+static inline int
+test2 (void)
+{
+ return f12 (__LINE__) + 1;
+}
+
+static inline int
+f12 (int f1line)
+{
+ return f13 (f1line, __LINE__) + 2;
+}
+
+static inline int
+f13 (int f1line, int f2line)
+{
+ struct info all[20];
+ struct bdata data;
+ int f3line;
+ int i;
+
+ data.all = &all[0];
+ data.index = 0;
+ data.max = 20;
+ data.failed = 0;
+
+ f3line = __LINE__ + 1;
+ i = backtrace_full (state, 0, callback_one, error_callback_one, &data);
+
+ if (i != 0)
+ {
+ fprintf (stderr, "test2: unexpected return value %d\n", i);
+ data.failed = 1;
+ }
+
+ check ("test2", 0, all, f3line, "f13", &data.failed);
+ check ("test2", 1, all, f2line, "f12", &data.failed);
+ check ("test2", 2, all, f1line, "test2", &data.failed);
+
+ printf ("%s: backtrace_full inline\n", data.failed ? "FAIL" : "PASS");
+
+ if (data.failed)
+ ++failures;
+
+ return failures;
+}
+
+/* Test the backtrace_simple function with non-inlined functions. */
+
+static int test3 (void) __attribute__ ((noinline, unused));
+static int f22 (int) __attribute__ ((noinline));
+static int f23 (int, int) __attribute__ ((noinline));
+
+static int
+test3 (void)
+{
+ return f22 (__LINE__) + 1;
+}
+
+static int
+f22 (int f1line)
+{
+ return f23 (f1line, __LINE__) + 2;
+}
+
+static int
+f23 (int f1line, int f2line)
+{
+ uintptr_t addrs[20];
+ struct sdata data;
+ int f3line;
+ int i;
+
+ data.addrs = &addrs[0];
+ data.index = 0;
+ data.max = 20;
+ data.failed = 0;
+
+ f3line = __LINE__ + 1;
+ i = backtrace_simple (state, 0, callback_two, error_callback_two, &data);
+
+ if (i != 0)
+ {
+ fprintf (stderr, "test3: unexpected return value %d\n", i);
+ data.failed = 1;
+ }
+
+ if (!data.failed)
+ {
+ struct info all[20];
+ struct bdata bdata;
+ int j;
+
+ bdata.all = &all[0];
+ bdata.index = 0;
+ bdata.max = 20;
+ bdata.failed = 0;
+
+ for (j = 0; j < 3; ++j)
+ {
+ i = backtrace_pcinfo (state, addrs[j], callback_one,
+ error_callback_one, &bdata);
+ if (i != 0)
+ {
+ fprintf (stderr,
+ ("test3: unexpected return value "
+ "from backtrace_pcinfo %d\n"),
+ i);
+ bdata.failed = 1;
+ }
+ if (!bdata.failed && bdata.index != (size_t) (j + 1))
+ {
+ fprintf (stderr,
+ ("wrong number of calls from backtrace_pcinfo "
+ "got %u expected %d\n"),
+ (unsigned int) bdata.index, j + 1);
+ bdata.failed = 1;
+ }
+ }
+
+ check ("test3", 0, all, f3line, "f23", &bdata.failed);
+ check ("test3", 1, all, f2line, "f22", &bdata.failed);
+ check ("test3", 2, all, f1line, "test3", &bdata.failed);
+
+ if (bdata.failed)
+ data.failed = 1;
+
+ for (j = 0; j < 3; ++j)
+ {
+ struct symdata symdata;
+
+ symdata.name = NULL;
+ symdata.val = 0;
+ symdata.failed = 0;
+
+ i = backtrace_syminfo (state, addrs[j], callback_three,
+ error_callback_three, &symdata);
+ if (i == 0)
+ {
+ fprintf (stderr,
+ ("test3: [%d]: unexpected return value "
+ "from backtrace_syminfo %d\n"),
+ j, i);
+ symdata.failed = 1;
+ }
+
+ if (!symdata.failed)
+ {
+ const char *expected;
+
+ switch (j)
+ {
+ case 0:
+ expected = "f23";
+ break;
+ case 1:
+ expected = "f22";
+ break;
+ case 2:
+ expected = "test3";
+ break;
+ case 3:
+ assert (0);
+ }
+
+ if (symdata.name == NULL)
+ {
+ fprintf (stderr, "test3: [%d]: NULL syminfo name\n", j);
+ symdata.failed = 1;
+ }
+ /* Use strncmp, not strcmp, because GCC might create a
+ clone. */
+ else if (strncmp (symdata.name, expected, strlen (expected))
+ != 0)
+ {
+ fprintf (stderr,
+ ("test3: [%d]: unexpected syminfo name "
+ "got %s expected %s\n"),
+ j, symdata.name, expected);
+ symdata.failed = 1;
+ }
+ }
+
+ if (symdata.failed)
+ data.failed = 1;
+ }
+ }
+
+ printf ("%s: backtrace_simple noinline\n", data.failed ? "FAIL" : "PASS");
+
+ if (data.failed)
+ ++failures;
+
+ return failures;
+}
+
+/* Test the backtrace_simple function with inlined functions. */
+
+static inline int test4 (void) __attribute__ ((always_inline, unused));
+static inline int f32 (int) __attribute__ ((always_inline));
+static inline int f33 (int, int) __attribute__ ((always_inline));
+
+static inline int
+test4 (void)
+{
+ return f32 (__LINE__) + 1;
+}
+
+static inline int
+f32 (int f1line)
+{
+ return f33 (f1line, __LINE__) + 2;
+}
+
+static inline int
+f33 (int f1line, int f2line)
+{
+ uintptr_t addrs[20];
+ struct sdata data;
+ int f3line;
+ int i;
+
+ data.addrs = &addrs[0];
+ data.index = 0;
+ data.max = 20;
+ data.failed = 0;
+
+ f3line = __LINE__ + 1;
+ i = backtrace_simple (state, 0, callback_two, error_callback_two, &data);
+
+ if (i != 0)
+ {
+ fprintf (stderr, "test3: unexpected return value %d\n", i);
+ data.failed = 1;
+ }
+
+ if (!data.failed)
+ {
+ struct info all[20];
+ struct bdata bdata;
+
+ bdata.all = &all[0];
+ bdata.index = 0;
+ bdata.max = 20;
+ bdata.failed = 0;
+
+ i = backtrace_pcinfo (state, addrs[0], callback_one, error_callback_one,
+ &bdata);
+ if (i != 0)
+ {
+ fprintf (stderr,
+ ("test4: unexpected return value "
+ "from backtrace_pcinfo %d\n"),
+ i);
+ bdata.failed = 1;
+ }
+
+ check ("test4", 0, all, f3line, "f33", &bdata.failed);
+ check ("test4", 1, all, f2line, "f32", &bdata.failed);
+ check ("test4", 2, all, f1line, "test4", &bdata.failed);
+
+ if (bdata.failed)
+ data.failed = 1;
+ }
+
+ printf ("%s: backtrace_simple inline\n", data.failed ? "FAIL" : "PASS");
+
+ if (data.failed)
+ ++failures;
+
+ return failures;
+}
+
+static void
+error_callback_create (void *data ATTRIBUTE_UNUSED, const char *msg,
+ int errnum)
+{
+ fprintf (stderr, "%s", msg);
+ if (errnum > 0)
+ fprintf (stderr, ": %s", strerror (errnum));
+ fprintf (stderr, "\n");
+ exit (EXIT_FAILURE);
+}
+
+/* Run all the tests. */
+
+int
+main (int argc ATTRIBUTE_UNUSED, char **argv)
+{
+ state = backtrace_create_state (argv[0], BACKTRACE_SUPPORTS_THREADS,
+ error_callback_create, NULL);
+
+#if BACKTRACE_SUPPORTED
+ test1 ();
+ test2 ();
+ test3 ();
+ test4 ();
+#endif
+
+ exit (failures ? EXIT_FAILURE : EXIT_SUCCESS);
+}
diff --git a/libbacktrace/config.h.in b/libbacktrace/config.h.in
new file mode 100644
index 000000000..656c2ee5a
--- /dev/null
+++ b/libbacktrace/config.h.in
@@ -0,0 +1,122 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* ELF size: 32 or 64 */
+#undef BACKTRACE_ELF_SIZE
+
+/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
+ don't. */
+#undef HAVE_DECL_STRNLEN
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the fcntl function */
+#undef HAVE_FCNTL
+
+/* Define if _Unwind_GetIPInfo is available. */
+#undef HAVE_GETIPINFO
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the __sync functions */
+#undef HAVE_SYNC_FUNCTIONS
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The size of `char', as computed by sizeof. */
+#undef SIZEOF_CHAR
+
+/* The size of `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* The size of `short', as computed by sizeof. */
+#undef SIZEOF_SHORT
+
+/* The size of `void *', as computed by sizeof. */
+#undef SIZEOF_VOID_P
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
diff --git a/libbacktrace/configure b/libbacktrace/configure
new file mode 100755
index 000000000..a57b51b29
--- /dev/null
+++ b/libbacktrace/configure
@@ -0,0 +1,15237 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.64 for package-unused version-unused.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='package-unused'
+PACKAGE_TARNAME='libbacktrace'
+PACKAGE_VERSION='version-unused'
+PACKAGE_STRING='package-unused version-unused'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="backtrace.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+NATIVE_FALSE
+NATIVE_TRUE
+BACKTRACE_USES_MALLOC
+ALLOC_FILE
+VIEW_FILE
+BACKTRACE_SUPPORTED
+FORMAT_FILE
+BACKTRACE_SUPPORTS_THREADS
+PIC_FLAG
+WARN_FLAGS
+BACKTRACE_FILE
+multi_basedir
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+AR
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+SED
+LIBTOOL
+RANLIB
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+libtool_VERSION
+EGREP
+GREP
+CPP
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_dependency_tracking
+enable_maintainer_mode
+with_target_subdir
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+enable_multilib
+with_system_libunwind
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures package-unused version-unused to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/libbacktrace]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of package-unused version-unused:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+ --enable-shared[=PKGS] build shared libraries [default=no]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-multilib build many library versions (default)
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-target-subdir=SUBDIR Configuring in a subdirectory for target
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-system-libunwind use installed libunwind
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+package-unused configure version-unused
+generated by GNU Autoconf 2.64
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%lu", i);
+ }
+ /* Do not output a trailing newline, as this causes \r\n confusion
+ on some platforms. */
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR
+# ------------------------------------
+# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_decl
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by package-unused $as_me version-unused, which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if test "${ac_cv_target+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+target_alias=${target_alias-$host_alias}
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ rm -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then :
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+fi
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = x""yes; then :
+ MINIX=yes
+else
+ MINIX=
+fi
+
+
+ if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# define __EXTENSIONS__ 1
+ $ac_includes_default
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_safe_to_define___extensions__=yes
+else
+ ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+ test $ac_cv_safe_to_define___extensions__ = yes &&
+ $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+ $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+
+libtool_VERSION=1:0:0
+
+
+am__api_version='1.11'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if test "${ac_cv_path_mkdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ test -d ./--version && rmdir ./--version
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='libbacktrace'
+ VERSION='version-unused'
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+
+# Check whether --with-target-subdir was given.
+if test "${with_target_subdir+set}" = set; then :
+ withval=$with_target_subdir;
+fi
+
+
+# We must force CC to /not/ be precious variables; otherwise
+# the wrong, non-multilib-adjusted value will be used in multilibs.
+# As a side effect, we have to subst CFLAGS ourselves.
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ rm -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+case "$AWK" in
+"") as_fn_error "can't build without awk" "$LINENO" 5 ;;
+esac
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.7a'
+macro_revision='1.3134'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`print -r -- -n 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case "$ECHO" in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if test "${ac_cv_path_FGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test "${lt_cv_path_NM+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if test "${lt_cv_nm_interface+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+ if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `/usr/bin/file conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if test "${lt_cv_ld_force_load+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+# Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=no
+fi
+
+
+
+
+
+
+
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+
+ # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if test "${lt_cv_objdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ lt_prog_compiler_pic='-Xcompiler -fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test "$with_gnu_ld" = yes; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test "$lt_use_gnu_ld_interface" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='${wl}--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ # Also, AIX nm treats weak defined symbols like other global
+ # defined symbols, whereas GNU nm marks them as "W".
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='${wl}-f,'
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ if test "$with_gnu_ld" = yes; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test "$lt_cv_ld_force_load" = "yes"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if test "${lt_cv_prog_compiler__b+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if test "${lt_cv_archive_cmds_need_lc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+ *) lt_sed_strip_eq="s,=/,/,g" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+haiku*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+ test "$inherit_rpath" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line 11275 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line 11381 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+void fnord () __attribute__((visibility("default")));
+#endif
+
+void fnord () { int i=42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report which library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+
+backtrace_supported=yes
+
+if test -n "${with_target_subdir}"; then
+ # We are compiling a GCC library. We can assume that the unwind
+ # library exists.
+ # Default to --enable-multilib
+# Check whether --enable-multilib was given.
+if test "${enable_multilib+set}" = set; then :
+ enableval=$enable_multilib; case "$enableval" in
+ yes) multilib=yes ;;
+ no) multilib=no ;;
+ *) as_fn_error "bad value $enableval for multilib option" "$LINENO" 5 ;;
+ esac
+else
+ multilib=yes
+fi
+
+
+# We may get other options which we leave undocumented:
+# --with-target-subdir, --with-multisrctop, --with-multisubdir
+# See config-ml.in if you want the gory details.
+
+if test "$srcdir" = "."; then
+ if test "$with_target_subdir" != "."; then
+ multi_basedir="$srcdir/$with_multisrctop../.."
+ else
+ multi_basedir="$srcdir/$with_multisrctop.."
+ fi
+else
+ multi_basedir="$srcdir/.."
+fi
+
+
+# Even if the default multilib is not a cross compilation,
+# it may be that some of the other multilibs are.
+if test $cross_compiling = no && test $multilib = yes \
+ && test "x${with_multisubdir}" != x ; then
+ cross_compiling=maybe
+fi
+
+ac_config_commands="$ac_config_commands default-1"
+
+ BACKTRACE_FILE="backtrace.lo simple.lo"
+else
+ ac_fn_c_check_header_mongrel "$LINENO" "unwind.h" "ac_cv_header_unwind_h" "$ac_includes_default"
+if test "x$ac_cv_header_unwind_h" = x""yes; then :
+ ac_fn_c_check_func "$LINENO" "_Unwind_Backtrace" "ac_cv_func__Unwind_Backtrace"
+if test "x$ac_cv_func__Unwind_Backtrace" = x""yes; then :
+ BACKTRACE_FILE="backtrace.lo simple.lo"
+else
+ BACKTRACE_FILE="nounwind.lo"
+ backtrace_supported=no
+fi
+
+else
+ BACKTRACE_FILE="nounwind.lo"
+ backtrace_supported=no
+fi
+
+
+fi
+
+
+WARN_FLAGS=
+save_CFLAGS="$CFLAGS"
+for real_option in -W -Wall -Wwrite-strings -Wstrict-prototypes \
+ -Wmissing-prototypes -Wold-style-definition \
+ -Wmissing-format-attribute -Wcast-qual; do
+ # Do the check with the no- prefix removed since gcc silently
+ # accepts any -Wno-* option on purpose
+ case $real_option in
+ -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
+ *) option=$real_option ;;
+ esac
+ as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
+$as_echo_n "checking whether $CC supports $option... " >&6; }
+if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ CFLAGS="$option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_acx_Woption=yes"
+else
+ eval "$as_acx_Woption=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+eval ac_res=\$$as_acx_Woption
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
+ WARN_FLAGS="$WARN_FLAGS${WARN_FLAGS:+ }$real_option"
+fi
+ done
+CFLAGS="$save_CFLAGS"
+
+
+if test "x$GCC" = "xyes"; then
+ WARN_FLAGS="$WARN_FLAGS -Werror"
+fi
+
+
+
+if test -n "${with_target_subdir}"; then
+
+
+# Check whether --with-system-libunwind was given.
+if test "${with_system_libunwind+set}" = set; then :
+ withval=$with_system_libunwind;
+fi
+
+ # If system-libunwind was not specifically set, pick a default setting.
+ if test x$with_system_libunwind = x; then
+ case ${target} in
+ ia64-*-hpux*) with_system_libunwind=yes ;;
+ *) with_system_libunwind=no ;;
+ esac
+ fi
+ # Based on system-libunwind and target, do we have ipinfo?
+ if test x$with_system_libunwind = xyes; then
+ case ${target} in
+ ia64-*-*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+ else
+ # Darwin before version 9 does not have _Unwind_GetIPInfo.
+
+ case ${target} in
+ *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+
+ fi
+
+ if test x$have_unwind_getipinfo = xyes; then
+
+$as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
+
+ fi
+
+else
+ ac_fn_c_check_func "$LINENO" "_Unwind_GetIPInfo" "ac_cv_func__Unwind_GetIPInfo"
+if test "x$ac_cv_func__Unwind_GetIPInfo" = x""yes; then :
+ have_unwind_getipinfo=yes
+else
+ have_unwind_getipinfo=no
+fi
+
+ if test "$have_unwind_getipinfo" = "yes"; then
+
+$as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h
+
+ fi
+fi
+
+# When building as a target library, shared libraries may want to link
+# this in. We don't want to provide another shared library to
+# complicate dependencies. Instead, we just compile with -fPIC.
+PIC_FLAG=
+if test -n "${with_target_subdir}"; then
+ PIC_FLAG=-fPIC
+fi
+
+
+# Test for __sync support.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking __sync extensions" >&5
+$as_echo_n "checking __sync extensions... " >&6; }
+if test "${libbacktrace_cv_sys_sync+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "${with_target_subdir}"; then
+ libbacktrace_cv_sys_sync=yes
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int i;
+int
+main ()
+{
+__sync_bool_compare_and_swap (&i, i, i);
+ __sync_lock_test_and_set (&i, 1);
+ __sync_lock_release (&i);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ libbacktrace_cv_sys_sync=yes
+else
+ libbacktrace_cv_sys_sync=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_sys_sync" >&5
+$as_echo "$libbacktrace_cv_sys_sync" >&6; }
+BACKTRACE_SUPPORTS_THREADS=0
+if test "$libbacktrace_cv_sys_sync" = "yes"; then
+ BACKTRACE_SUPPORTS_THREADS=1
+
+$as_echo "#define HAVE_SYNC_FUNCTIONS 1" >>confdefs.h
+
+fi
+
+
+# The library needs to be able to read the executable itself. Compile
+# a file to determine the executable format. The awk script
+# filetype.awk prints out the file type.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking output filetype" >&5
+$as_echo_n "checking output filetype... " >&6; }
+if test "${libbacktrace_cv_sys_filetype+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ filetype=
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int i;
+int
+main ()
+{
+int j;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ filetype=`${AWK} -f $srcdir/filetype.awk conftest.$ac_objext`
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "compiler failed
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+libbacktrace_cv_sys_filetype=$filetype
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_sys_filetype" >&5
+$as_echo "$libbacktrace_cv_sys_filetype" >&6; }
+
+# Match the file type to decide what files to compile.
+FORMAT_FILE=
+case "$libbacktrace_cv_sys_filetype" in
+elf*) FORMAT_FILE="elf.lo" ;;
+*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not determine output file type" >&5
+$as_echo "$as_me: WARNING: could not determine output file type" >&2;}
+ FORMAT_FILE="unknown.lo"
+ backtrace_supported=no
+ ;;
+esac
+
+
+# ELF defines.
+elfsize=
+case "$libbacktrace_cv_sys_filetype" in
+elf32) elfsize=32 ;;
+elf64) elfsize=64 ;;
+esac
+
+cat >>confdefs.h <<_ACEOF
+#define BACKTRACE_ELF_SIZE $elfsize
+_ACEOF
+
+
+BACKTRACE_SUPPORTED=0
+if test "$backtrace_supported" = "yes"; then
+ BACKTRACE_SUPPORTED=1
+fi
+
+
+
+
+inttype_headers=`echo inttypes.h sys/inttypes.h | sed -e 's/,/ /g'`
+
+acx_cv_header_stdint=stddef.h
+acx_cv_header_stdint_kind="(already complete)"
+for i in stdint.h $inttype_headers; do
+ unset ac_cv_type_uintptr_t
+ unset ac_cv_type_uintmax_t
+ unset ac_cv_type_int_least32_t
+ unset ac_cv_type_int_fast32_t
+ unset ac_cv_type_uint64_t
+ $as_echo_n "looking for a compliant stdint.h in $i, " >&6
+ ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uintmax_t" = x""yes; then :
+ acx_cv_header_stdint=$i
+else
+ continue
+fi
+
+ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(mostly complete)"
+fi
+
+ ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_int_least32_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(mostly complete)"
+fi
+
+ ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_int_fast32_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(mostly complete)"
+fi
+
+ ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uint64_t" = x""yes; then :
+
+else
+ acx_cv_header_stdint_kind="(lacks uint64_t)"
+fi
+
+ break
+done
+if test "$acx_cv_header_stdint" = stddef.h; then
+ acx_cv_header_stdint_kind="(lacks uintmax_t)"
+ for i in stdint.h $inttype_headers; do
+ unset ac_cv_type_uintptr_t
+ unset ac_cv_type_uint32_t
+ unset ac_cv_type_uint64_t
+ $as_echo_n "looking for an incomplete stdint.h in $i, " >&6
+ ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uint32_t" = x""yes; then :
+ acx_cv_header_stdint=$i
+else
+ continue
+fi
+
+ ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uint64_t" = x""yes; then :
+
+fi
+
+ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+
+fi
+
+ break
+ done
+fi
+if test "$acx_cv_header_stdint" = stddef.h; then
+ acx_cv_header_stdint_kind="(u_intXX_t style)"
+ for i in sys/types.h $inttype_headers; do
+ unset ac_cv_type_u_int32_t
+ unset ac_cv_type_u_int64_t
+ $as_echo_n "looking for u_intXX_t types in $i, " >&6
+ ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_u_int32_t" = x""yes; then :
+ acx_cv_header_stdint=$i
+else
+ continue
+fi
+
+ ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include <sys/types.h>
+#include <$i>
+"
+if test "x$ac_cv_type_u_int64_t" = x""yes; then :
+
+fi
+
+ break
+ done
+fi
+if test "$acx_cv_header_stdint" = stddef.h; then
+ acx_cv_header_stdint_kind="(using manual detection)"
+fi
+
+test -z "$ac_cv_type_uintptr_t" && ac_cv_type_uintptr_t=no
+test -z "$ac_cv_type_uint64_t" && ac_cv_type_uint64_t=no
+test -z "$ac_cv_type_u_int64_t" && ac_cv_type_u_int64_t=no
+test -z "$ac_cv_type_int_least32_t" && ac_cv_type_int_least32_t=no
+test -z "$ac_cv_type_int_fast32_t" && ac_cv_type_int_fast32_t=no
+
+# ----------------- Summarize what we found so far
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what to include in gstdint.h" >&5
+$as_echo_n "checking what to include in gstdint.h... " >&6; }
+
+case `$as_basename -- gstdint.h ||
+$as_expr X/gstdint.h : '.*/\([^/][^/]*\)/*$' \| \
+ Xgstdint.h : 'X\(//\)$' \| \
+ Xgstdint.h : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/gstdint.h |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'` in
+ stdint.h) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: are you sure you want it there?" >&5
+$as_echo "$as_me: WARNING: are you sure you want it there?" >&2;} ;;
+ inttypes.h) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: are you sure you want it there?" >&5
+$as_echo "$as_me: WARNING: are you sure you want it there?" >&2;} ;;
+ *) ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_header_stdint $acx_cv_header_stdint_kind" >&5
+$as_echo "$acx_cv_header_stdint $acx_cv_header_stdint_kind" >&6; }
+
+# ----------------- done included file, check C basic types --------
+
+# Lacking an uintptr_t? Test size of void *
+case "$acx_cv_header_stdint:$ac_cv_type_uintptr_t" in
+ stddef.h:* | *:no) # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if test "${ac_cv_sizeof_void_p+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_void_p" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (void *)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_void_p=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+_ACEOF
+
+ ;;
+esac
+
+# Lacking an uint64_t? Test size of long
+case "$acx_cv_header_stdint:$ac_cv_type_uint64_t:$ac_cv_type_u_int64_t" in
+ stddef.h:*:* | *:no:no) # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if test "${ac_cv_sizeof_long+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_long" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (long)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_long=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+ ;;
+esac
+
+if test $acx_cv_header_stdint = stddef.h; then
+ # Lacking a good header? Test size of everything and deduce all types.
+ # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if test "${ac_cv_sizeof_int+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_int" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (int)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_int=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+ # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
+$as_echo_n "checking size of short... " >&6; }
+if test "${ac_cv_sizeof_short+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_short" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (short)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_short=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
+$as_echo "$ac_cv_sizeof_short" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+
+ # The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
+$as_echo_n "checking size of char... " >&6; }
+if test "${ac_cv_sizeof_char+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_char" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (char)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_char=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
+$as_echo "$ac_cv_sizeof_char" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_CHAR $ac_cv_sizeof_char
+_ACEOF
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int8_t" >&5
+$as_echo_n "checking for type equivalent to int8_t... " >&6; }
+ case "$ac_cv_sizeof_char" in
+ 1) acx_cv_type_int8_t=char ;;
+ *) as_fn_error "no 8-bit type, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int8_t" >&5
+$as_echo "$acx_cv_type_int8_t" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int16_t" >&5
+$as_echo_n "checking for type equivalent to int16_t... " >&6; }
+ case "$ac_cv_sizeof_int:$ac_cv_sizeof_short" in
+ 2:*) acx_cv_type_int16_t=int ;;
+ *:2) acx_cv_type_int16_t=short ;;
+ *) as_fn_error "no 16-bit type, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int16_t" >&5
+$as_echo "$acx_cv_type_int16_t" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int32_t" >&5
+$as_echo_n "checking for type equivalent to int32_t... " >&6; }
+ case "$ac_cv_sizeof_int:$ac_cv_sizeof_long" in
+ 4:*) acx_cv_type_int32_t=int ;;
+ *:4) acx_cv_type_int32_t=long ;;
+ *) as_fn_error "no 32-bit type, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_int32_t" >&5
+$as_echo "$acx_cv_type_int32_t" >&6; }
+fi
+
+# These tests are here to make the output prettier
+
+if test "$ac_cv_type_uint64_t" != yes && test "$ac_cv_type_u_int64_t" != yes; then
+ case "$ac_cv_sizeof_long" in
+ 8) acx_cv_type_int64_t=long ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to int64_t" >&5
+$as_echo_n "checking for type equivalent to int64_t... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${acx_cv_type_int64_t-'using preprocessor symbols'}" >&5
+$as_echo "${acx_cv_type_int64_t-'using preprocessor symbols'}" >&6; }
+fi
+
+# Now we can use the above types
+
+if test "$ac_cv_type_uintptr_t" != yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type equivalent to intptr_t" >&5
+$as_echo_n "checking for type equivalent to intptr_t... " >&6; }
+ case $ac_cv_sizeof_void_p in
+ 2) acx_cv_type_intptr_t=int16_t ;;
+ 4) acx_cv_type_intptr_t=int32_t ;;
+ 8) acx_cv_type_intptr_t=int64_t ;;
+ *) as_fn_error "no equivalent for intptr_t, please report a bug" "$LINENO" 5
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_type_intptr_t" >&5
+$as_echo "$acx_cv_type_intptr_t" >&6; }
+fi
+
+# ----------------- done all checks, emit header -------------
+ac_config_commands="$ac_config_commands gstdint.h"
+
+
+
+
+for ac_header in sys/mman.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_MMAN_H 1
+_ACEOF
+
+fi
+
+done
+
+if test "$ac_cv_header_sys_mman_h" = "no"; then
+ have_mmap=no
+else
+ if test -n "${with_target_subdir}"; then
+ # When built as a GCC target library, we can't do a link test. We
+ # simply assume that if we have mman.h, we have mmap.
+ have_mmap=yes
+ else
+ ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = x""yes; then :
+ have_mmap=yes
+else
+ have_mmap=no
+fi
+
+ fi
+fi
+if test "$have_mmap" = "no"; then
+ VIEW_FILE=read.lo
+ ALLOC_FILE=alloc.lo
+else
+ VIEW_FILE=mmapio.lo
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/mman.h>
+#if !defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
+ #error no MAP_ANONYMOUS
+#endif
+
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ALLOC_FILE=mmap.lo
+else
+ ALLOC_FILE=alloc.lo
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+
+
+
+BACKTRACE_USES_MALLOC=0
+if test "$ALLOC_FILE" = "alloc.lo"; then
+ BACKTRACE_USES_MALLOC=1
+fi
+
+
+# Check for the fcntl function.
+if test -n "${with_target_subdir}"; then
+ case "${host}" in
+ *-*-mingw*) have_fcntl=no ;;
+ *) have_fcntl=yes ;;
+ esac
+else
+ ac_fn_c_check_func "$LINENO" "fcntl" "ac_cv_func_fcntl"
+if test "x$ac_cv_func_fcntl" = x""yes; then :
+ have_fcntl=yes
+else
+ have_fcntl=no
+fi
+
+fi
+if test "$have_fcntl" = "yes"; then
+
+$as_echo "#define HAVE_FCNTL 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strnlen" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNLEN $ac_have_decl
+_ACEOF
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether tests can run" >&5
+$as_echo_n "checking whether tests can run... " >&6; }
+if test "${libbacktrace_cv_sys_native+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ libbacktrace_cv_sys_native=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ libbacktrace_cv_sys_native=yes
+else
+ libbacktrace_cv_sys_native=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libbacktrace_cv_sys_native" >&5
+$as_echo "$libbacktrace_cv_sys_native" >&6; }
+ if test "$libbacktrace_cv_sys_native" = "yes"; then
+ NATIVE_TRUE=
+ NATIVE_FALSE='#'
+else
+ NATIVE_TRUE='#'
+ NATIVE_FALSE=
+fi
+
+
+if test "${multilib}" = "yes"; then
+ multilib_arg="--enable-multilib"
+else
+ multilib_arg=
+fi
+
+ac_config_files="$ac_config_files Makefile backtrace-supported.h"
+
+
+# We need multilib support, but only if configuring for the target.
+ac_config_commands="$ac_config_commands default"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${NATIVE_TRUE}" && test -z "${NATIVE_FALSE}"; then
+ as_fn_error "conditional \"NATIVE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by package-unused $as_me version-unused, which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+package-unused config.status version-unused
+configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ TIMESTAMP='$TIMESTAMP'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+srcdir="$srcdir"
+host="$host"
+target="$target"
+with_multisubdir="$with_multisubdir"
+with_multisrctop="$with_multisrctop"
+with_target_subdir="$with_target_subdir"
+ac_configure_args="${multilib_arg} ${ac_configure_args}"
+multi_basedir="$multi_basedir"
+CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+CC="$CC"
+CXX="$CXX"
+GFORTRAN="$GFORTRAN"
+GCJ="$GCJ"
+
+GCC="$GCC"
+CC="$CC"
+acx_cv_header_stdint="$acx_cv_header_stdint"
+acx_cv_type_int8_t="$acx_cv_type_int8_t"
+acx_cv_type_int16_t="$acx_cv_type_int16_t"
+acx_cv_type_int32_t="$acx_cv_type_int32_t"
+acx_cv_type_int64_t="$acx_cv_type_int64_t"
+acx_cv_type_intptr_t="$acx_cv_type_intptr_t"
+ac_cv_type_uintmax_t="$ac_cv_type_uintmax_t"
+ac_cv_type_uintptr_t="$ac_cv_type_uintptr_t"
+ac_cv_type_uint64_t="$ac_cv_type_uint64_t"
+ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"
+ac_cv_type_u_int32_t="$ac_cv_type_u_int32_t"
+ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
+ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
+ac_cv_sizeof_void_p="$ac_cv_sizeof_void_p"
+
+
+# Variables needed in config.status (file generation) which aren't already
+# passed by autoconf.
+SUBDIRS="$SUBDIRS"
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+ "gstdint.h") CONFIG_COMMANDS="$CONFIG_COMMANDS gstdint.h" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "backtrace-supported.h") CONFIG_FILES="$CONFIG_FILES backtrace-supported.h" ;;
+ "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options which allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile="${ofile}T"
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=""
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ case $xsi_shell in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=${1%%=*}
+ func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=${#1}
+}
+
+_LT_EOF
+ ;;
+ *) # Bourne compatible functions.
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+ esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+ func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1+=\$2"
+}
+_LT_EOF
+ ;;
+ *)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+ ;;
+ esac
+
+
+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "default-1":C)
+# Only add multilib support code if we just rebuilt the top-level
+# Makefile.
+case " $CONFIG_FILES " in
+ *" Makefile "*)
+ ac_file=Makefile . ${multi_basedir}/config-ml.in
+ ;;
+esac ;;
+ "gstdint.h":C)
+if test "$GCC" = yes; then
+ echo "/* generated for " `$CC --version | sed 1q` "*/" > tmp-stdint.h
+else
+ echo "/* generated for $CC */" > tmp-stdint.h
+fi
+
+sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ #ifndef GCC_GENERATED_STDINT_H
+ #define GCC_GENERATED_STDINT_H 1
+
+ #include <sys/types.h>
+EOF
+
+if test "$acx_cv_header_stdint" != stdint.h; then
+ echo "#include <stddef.h>" >> tmp-stdint.h
+fi
+if test "$acx_cv_header_stdint" != stddef.h; then
+ echo "#include <$acx_cv_header_stdint>" >> tmp-stdint.h
+fi
+
+sed 's/^ *//' >> tmp-stdint.h <<EOF
+ /* glibc uses these symbols as guards to prevent redefinitions. */
+ #ifdef __int8_t_defined
+ #define _INT8_T
+ #define _INT16_T
+ #define _INT32_T
+ #endif
+ #ifdef __uint32_t_defined
+ #define _UINT32_T
+ #endif
+
+EOF
+
+# ----------------- done header, emit basic int types -------------
+if test "$acx_cv_header_stdint" = stddef.h; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ #ifndef _UINT8_T
+ #define _UINT8_T
+ #ifndef __uint8_t_defined
+ #define __uint8_t_defined
+ #ifndef uint8_t
+ typedef unsigned $acx_cv_type_int8_t uint8_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT16_T
+ #define _UINT16_T
+ #ifndef __uint16_t_defined
+ #define __uint16_t_defined
+ #ifndef uint16_t
+ typedef unsigned $acx_cv_type_int16_t uint16_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT32_T
+ #define _UINT32_T
+ #ifndef __uint32_t_defined
+ #define __uint32_t_defined
+ #ifndef uint32_t
+ typedef unsigned $acx_cv_type_int32_t uint32_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _INT8_T
+ #define _INT8_T
+ #ifndef __int8_t_defined
+ #define __int8_t_defined
+ #ifndef int8_t
+ typedef $acx_cv_type_int8_t int8_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _INT16_T
+ #define _INT16_T
+ #ifndef __int16_t_defined
+ #define __int16_t_defined
+ #ifndef int16_t
+ typedef $acx_cv_type_int16_t int16_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _INT32_T
+ #define _INT32_T
+ #ifndef __int32_t_defined
+ #define __int32_t_defined
+ #ifndef int32_t
+ typedef $acx_cv_type_int32_t int32_t;
+ #endif
+ #endif
+ #endif
+EOF
+elif test "$ac_cv_type_u_int32_t" = yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* int8_t int16_t int32_t defined by inet code, we do the u_intXX types */
+ #ifndef _INT8_T
+ #define _INT8_T
+ #endif
+ #ifndef _INT16_T
+ #define _INT16_T
+ #endif
+ #ifndef _INT32_T
+ #define _INT32_T
+ #endif
+
+ #ifndef _UINT8_T
+ #define _UINT8_T
+ #ifndef __uint8_t_defined
+ #define __uint8_t_defined
+ #ifndef uint8_t
+ typedef u_int8_t uint8_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT16_T
+ #define _UINT16_T
+ #ifndef __uint16_t_defined
+ #define __uint16_t_defined
+ #ifndef uint16_t
+ typedef u_int16_t uint16_t;
+ #endif
+ #endif
+ #endif
+
+ #ifndef _UINT32_T
+ #define _UINT32_T
+ #ifndef __uint32_t_defined
+ #define __uint32_t_defined
+ #ifndef uint32_t
+ typedef u_int32_t uint32_t;
+ #endif
+ #endif
+ #endif
+EOF
+else
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Some systems have guard macros to prevent redefinitions, define them. */
+ #ifndef _INT8_T
+ #define _INT8_T
+ #endif
+ #ifndef _INT16_T
+ #define _INT16_T
+ #endif
+ #ifndef _INT32_T
+ #define _INT32_T
+ #endif
+ #ifndef _UINT8_T
+ #define _UINT8_T
+ #endif
+ #ifndef _UINT16_T
+ #define _UINT16_T
+ #endif
+ #ifndef _UINT32_T
+ #define _UINT32_T
+ #endif
+EOF
+fi
+
+# ------------- done basic int types, emit int64_t types ------------
+if test "$ac_cv_type_uint64_t" = yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* system headers have good uint64_t and int64_t */
+ #ifndef _INT64_T
+ #define _INT64_T
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #endif
+EOF
+elif test "$ac_cv_type_u_int64_t" = yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* system headers have an u_int64_t (and int64_t) */
+ #ifndef _INT64_T
+ #define _INT64_T
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #ifndef __uint64_t_defined
+ #define __uint64_t_defined
+ #ifndef uint64_t
+ typedef u_int64_t uint64_t;
+ #endif
+ #endif
+ #endif
+EOF
+elif test -n "$acx_cv_type_int64_t"; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* architecture has a 64-bit type, $acx_cv_type_int64_t */
+ #ifndef _INT64_T
+ #define _INT64_T
+ #ifndef int64_t
+ typedef $acx_cv_type_int64_t int64_t;
+ #endif
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #ifndef __uint64_t_defined
+ #define __uint64_t_defined
+ #ifndef uint64_t
+ typedef unsigned $acx_cv_type_int64_t uint64_t;
+ #endif
+ #endif
+ #endif
+EOF
+else
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* some common heuristics for int64_t, using compiler-specific tests */
+ #if defined __STDC_VERSION__ && (__STDC_VERSION__-0) >= 199901L
+ #ifndef _INT64_T
+ #define _INT64_T
+ #ifndef __int64_t_defined
+ #ifndef int64_t
+ typedef long long int64_t;
+ #endif
+ #endif
+ #endif
+ #ifndef _UINT64_T
+ #define _UINT64_T
+ #ifndef uint64_t
+ typedef unsigned long long uint64_t;
+ #endif
+ #endif
+
+ #elif defined __GNUC__ && defined (__STDC__) && __STDC__-0
+ /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
+ does not implement __extension__. But that compiler doesn't define
+ __GNUC_MINOR__. */
+ # if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
+ # define __extension__
+ # endif
+
+ # ifndef _INT64_T
+ # define _INT64_T
+ # ifndef int64_t
+ __extension__ typedef long long int64_t;
+ # endif
+ # endif
+ # ifndef _UINT64_T
+ # define _UINT64_T
+ # ifndef uint64_t
+ __extension__ typedef unsigned long long uint64_t;
+ # endif
+ # endif
+
+ #elif !defined __STRICT_ANSI__
+ # if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
+
+ # ifndef _INT64_T
+ # define _INT64_T
+ # ifndef int64_t
+ typedef __int64 int64_t;
+ # endif
+ # endif
+ # ifndef _UINT64_T
+ # define _UINT64_T
+ # ifndef uint64_t
+ typedef unsigned __int64 uint64_t;
+ # endif
+ # endif
+ # endif /* compiler */
+
+ #endif /* ANSI version */
+EOF
+fi
+
+# ------------- done int64_t types, emit intptr types ------------
+if test "$ac_cv_type_uintptr_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define intptr_t based on sizeof(void*) = $ac_cv_sizeof_void_p */
+ #ifndef __uintptr_t_defined
+ #ifndef uintptr_t
+ typedef u$acx_cv_type_intptr_t uintptr_t;
+ #endif
+ #endif
+ #ifndef __intptr_t_defined
+ #ifndef intptr_t
+ typedef $acx_cv_type_intptr_t intptr_t;
+ #endif
+ #endif
+EOF
+fi
+
+# ------------- done intptr types, emit int_least types ------------
+if test "$ac_cv_type_int_least32_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define int_least types */
+ typedef int8_t int_least8_t;
+ typedef int16_t int_least16_t;
+ typedef int32_t int_least32_t;
+ #ifdef _INT64_T
+ typedef int64_t int_least64_t;
+ #endif
+
+ typedef uint8_t uint_least8_t;
+ typedef uint16_t uint_least16_t;
+ typedef uint32_t uint_least32_t;
+ #ifdef _UINT64_T
+ typedef uint64_t uint_least64_t;
+ #endif
+EOF
+fi
+
+# ------------- done intptr types, emit int_fast types ------------
+if test "$ac_cv_type_int_fast32_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define int_fast types. short is often slow */
+ typedef int8_t int_fast8_t;
+ typedef int int_fast16_t;
+ typedef int32_t int_fast32_t;
+ #ifdef _INT64_T
+ typedef int64_t int_fast64_t;
+ #endif
+
+ typedef uint8_t uint_fast8_t;
+ typedef unsigned int uint_fast16_t;
+ typedef uint32_t uint_fast32_t;
+ #ifdef _UINT64_T
+ typedef uint64_t uint_fast64_t;
+ #endif
+EOF
+fi
+
+if test "$ac_cv_type_uintmax_t" != yes; then
+ sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ /* Define intmax based on what we found */
+ #ifndef intmax_t
+ #ifdef _INT64_T
+ typedef int64_t intmax_t;
+ #else
+ typedef long intmax_t;
+ #endif
+ #endif
+ #ifndef uintmax_t
+ #ifdef _UINT64_T
+ typedef uint64_t uintmax_t;
+ #else
+ typedef unsigned long uintmax_t;
+ #endif
+ #endif
+EOF
+fi
+
+sed 's/^ *//' >> tmp-stdint.h <<EOF
+
+ #endif /* GCC_GENERATED_STDINT_H */
+EOF
+
+if test -r gstdint.h && cmp -s tmp-stdint.h gstdint.h; then
+ rm -f tmp-stdint.h
+else
+ mv -f tmp-stdint.h gstdint.h
+fi
+
+ ;;
+ "default":C) if test -n "$CONFIG_FILES"; then
+ if test -n "${with_target_subdir}"; then
+ # Multilibs need MULTISUBDIR defined correctly in certain makefiles so
+ # that multilib installs will end up installed in the correct place.
+ # The testsuite needs it for multilib-aware ABI baseline files.
+ # To work around this not being passed down from config-ml.in ->
+ # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually
+ # append it here. Only modify Makefiles that have just been created.
+ #
+ # Also, get rid of this simulated-VPATH thing that automake does.
+ cat > vpsed << \_EOF
+ s!`test -f '$<' || echo '$(srcdir)/'`!!
+_EOF
+ for i in $SUBDIRS; do
+ case $CONFIG_FILES in
+ *${i}/Makefile*)
+ #echo "Adding MULTISUBDIR to $i/Makefile"
+ sed -f vpsed $i/Makefile > tmp
+ grep '^MULTISUBDIR =' Makefile >> tmp
+ mv tmp $i/Makefile
+ ;;
+ esac
+ done
+ rm vpsed
+ fi
+ fi
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac
new file mode 100644
index 000000000..b21beea11
--- /dev/null
+++ b/libbacktrace/configure.ac
@@ -0,0 +1,281 @@
+# configure.ac -- Backtrace configure script.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+
+# (1) Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+
+# (2) Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+
+# (3) The name of the author may not be used to
+# endorse or promote products derived from this software without
+# specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+AC_PREREQ(2.64)
+AC_INIT(package-unused, version-unused,, libbacktrace)
+AC_CONFIG_SRCDIR(backtrace.h)
+AC_CONFIG_HEADER(config.h)
+
+AC_CANONICAL_SYSTEM
+target_alias=${target_alias-$host_alias}
+
+AC_USE_SYSTEM_EXTENSIONS
+
+libtool_VERSION=1:0:0
+AC_SUBST(libtool_VERSION)
+
+AM_INIT_AUTOMAKE([1.11.1 foreign no-dist no-define -Wall -Wno-portability])
+
+AM_MAINTAINER_MODE
+
+AC_ARG_WITH(target-subdir,
+[ --with-target-subdir=SUBDIR Configuring in a subdirectory for target])
+
+# We must force CC to /not/ be precious variables; otherwise
+# the wrong, non-multilib-adjusted value will be used in multilibs.
+# As a side effect, we have to subst CFLAGS ourselves.
+m4_rename([_AC_ARG_VAR_PRECIOUS],[backtrace_PRECIOUS])
+m4_define([_AC_ARG_VAR_PRECIOUS],[])
+AC_PROG_CC
+m4_rename_force([backtrace_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
+
+AC_SUBST(CFLAGS)
+
+AC_PROG_RANLIB
+
+AC_PROG_AWK
+case "$AWK" in
+"") AC_MSG_ERROR([can't build without awk]) ;;
+esac
+
+LT_INIT([disable-shared])
+AM_PROG_LIBTOOL
+
+backtrace_supported=yes
+
+if test -n "${with_target_subdir}"; then
+ # We are compiling a GCC library. We can assume that the unwind
+ # library exists.
+ AM_ENABLE_MULTILIB(, ..)
+ BACKTRACE_FILE="backtrace.lo simple.lo"
+else
+ AC_CHECK_HEADER([unwind.h],
+ [AC_CHECK_FUNC([_Unwind_Backtrace],
+ [BACKTRACE_FILE="backtrace.lo simple.lo"],
+ [BACKTRACE_FILE="nounwind.lo"
+ backtrace_supported=no])],
+ [BACKTRACE_FILE="nounwind.lo"
+ backtrace_supported=no])
+fi
+AC_SUBST(BACKTRACE_FILE)
+
+ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
+ -Wmissing-prototypes -Wold-style-definition \
+ -Wmissing-format-attribute -Wcast-qual],
+ [WARN_FLAGS])
+
+if test "x$GCC" = "xyes"; then
+ WARN_FLAGS="$WARN_FLAGS -Werror"
+fi
+
+AC_SUBST(WARN_FLAGS)
+
+if test -n "${with_target_subdir}"; then
+ GCC_CHECK_UNWIND_GETIPINFO
+else
+ AC_CHECK_FUNC(_Unwind_GetIPInfo, [have_unwind_getipinfo=yes],
+ [have_unwind_getipinfo=no])
+ if test "$have_unwind_getipinfo" = "yes"; then
+ AC_DEFINE(HAVE_GETIPINFO, 1, [Define if _Unwind_GetIPInfo is available.])
+ fi
+fi
+
+# When building as a target library, shared libraries may want to link
+# this in. We don't want to provide another shared library to
+# complicate dependencies. Instead, we just compile with -fPIC.
+PIC_FLAG=
+if test -n "${with_target_subdir}"; then
+ PIC_FLAG=-fPIC
+fi
+AC_SUBST(PIC_FLAG)
+
+# Test for __sync support.
+AC_CACHE_CHECK([__sync extensions],
+[libbacktrace_cv_sys_sync],
+[if test -n "${with_target_subdir}"; then
+ libbacktrace_cv_sys_sync=yes
+ else
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([int i;],
+ [__sync_bool_compare_and_swap (&i, i, i);
+ __sync_lock_test_and_set (&i, 1);
+ __sync_lock_release (&i);])],
+ [libbacktrace_cv_sys_sync=yes],
+ [libbacktrace_cv_sys_sync=no])
+ fi])
+BACKTRACE_SUPPORTS_THREADS=0
+if test "$libbacktrace_cv_sys_sync" = "yes"; then
+ BACKTRACE_SUPPORTS_THREADS=1
+ AC_DEFINE([HAVE_SYNC_FUNCTIONS], 1,
+ [Define to 1 if you have the __sync functions])
+fi
+AC_SUBST(BACKTRACE_SUPPORTS_THREADS)
+
+# The library needs to be able to read the executable itself. Compile
+# a file to determine the executable format. The awk script
+# filetype.awk prints out the file type.
+AC_CACHE_CHECK([output filetype],
+[libbacktrace_cv_sys_filetype],
+[filetype=
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([int i;], [int j;])],
+ [filetype=`${AWK} -f $srcdir/filetype.awk conftest.$ac_objext`],
+ [AC_MSG_FAILURE([compiler failed])])
+libbacktrace_cv_sys_filetype=$filetype])
+
+# Match the file type to decide what files to compile.
+FORMAT_FILE=
+case "$libbacktrace_cv_sys_filetype" in
+elf*) FORMAT_FILE="elf.lo" ;;
+*) AC_MSG_WARN([could not determine output file type])
+ FORMAT_FILE="unknown.lo"
+ backtrace_supported=no
+ ;;
+esac
+AC_SUBST(FORMAT_FILE)
+
+# ELF defines.
+elfsize=
+case "$libbacktrace_cv_sys_filetype" in
+elf32) elfsize=32 ;;
+elf64) elfsize=64 ;;
+esac
+AC_DEFINE_UNQUOTED([BACKTRACE_ELF_SIZE], [$elfsize], [ELF size: 32 or 64])
+
+BACKTRACE_SUPPORTED=0
+if test "$backtrace_supported" = "yes"; then
+ BACKTRACE_SUPPORTED=1
+fi
+AC_SUBST(BACKTRACE_SUPPORTED)
+
+GCC_HEADER_STDINT(gstdint.h)
+
+AC_CHECK_HEADERS(sys/mman.h)
+if test "$ac_cv_header_sys_mman_h" = "no"; then
+ have_mmap=no
+else
+ if test -n "${with_target_subdir}"; then
+ # When built as a GCC target library, we can't do a link test. We
+ # simply assume that if we have mman.h, we have mmap.
+ have_mmap=yes
+ else
+ AC_CHECK_FUNC(mmap, [have_mmap=yes], [have_mmap=no])
+ fi
+fi
+if test "$have_mmap" = "no"; then
+ VIEW_FILE=read.lo
+ ALLOC_FILE=alloc.lo
+else
+ VIEW_FILE=mmapio.lo
+ AC_PREPROC_IFELSE([
+#include <sys/mman.h>
+#if !defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
+ #error no MAP_ANONYMOUS
+#endif
+], [ALLOC_FILE=mmap.lo], [ALLOC_FILE=alloc.lo])
+fi
+AC_SUBST(VIEW_FILE)
+AC_SUBST(ALLOC_FILE)
+
+BACKTRACE_USES_MALLOC=0
+if test "$ALLOC_FILE" = "alloc.lo"; then
+ BACKTRACE_USES_MALLOC=1
+fi
+AC_SUBST(BACKTRACE_USES_MALLOC)
+
+# Check for the fcntl function.
+if test -n "${with_target_subdir}"; then
+ case "${host}" in
+ *-*-mingw*) have_fcntl=no ;;
+ *) have_fcntl=yes ;;
+ esac
+else
+ AC_CHECK_FUNC(fcntl, [have_fcntl=yes], [have_fcntl=no])
+fi
+if test "$have_fcntl" = "yes"; then
+ AC_DEFINE([HAVE_FCNTL], 1,
+ [Define to 1 if you have the fcntl function])
+fi
+
+AC_CHECK_DECLS(strnlen)
+
+AC_CACHE_CHECK([whether tests can run],
+ [libbacktrace_cv_sys_native],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([], [return 0;])],
+ [libbacktrace_cv_sys_native=yes],
+ [libbacktrace_cv_sys_native=no],
+ [libbacktrace_cv_sys_native=no])])
+AM_CONDITIONAL(NATIVE, test "$libbacktrace_cv_sys_native" = "yes")
+
+if test "${multilib}" = "yes"; then
+ multilib_arg="--enable-multilib"
+else
+ multilib_arg=
+fi
+
+AC_CONFIG_FILES(Makefile backtrace-supported.h)
+
+# We need multilib support, but only if configuring for the target.
+AC_CONFIG_COMMANDS([default],
+[if test -n "$CONFIG_FILES"; then
+ if test -n "${with_target_subdir}"; then
+ # Multilibs need MULTISUBDIR defined correctly in certain makefiles so
+ # that multilib installs will end up installed in the correct place.
+ # The testsuite needs it for multilib-aware ABI baseline files.
+ # To work around this not being passed down from config-ml.in ->
+ # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually
+ # append it here. Only modify Makefiles that have just been created.
+ #
+ # Also, get rid of this simulated-VPATH thing that automake does.
+ cat > vpsed << \_EOF
+ s!`test -f '$<' || echo '$(srcdir)/'`!!
+_EOF
+ for i in $SUBDIRS; do
+ case $CONFIG_FILES in
+ *${i}/Makefile*)
+ #echo "Adding MULTISUBDIR to $i/Makefile"
+ sed -f vpsed $i/Makefile > tmp
+ grep '^MULTISUBDIR =' Makefile >> tmp
+ mv tmp $i/Makefile
+ ;;
+ esac
+ done
+ rm vpsed
+ fi
+ fi
+],
+[
+# Variables needed in config.status (file generation) which aren't already
+# passed by autoconf.
+SUBDIRS="$SUBDIRS"
+])
+
+AC_OUTPUT
diff --git a/libbacktrace/dwarf.c b/libbacktrace/dwarf.c
new file mode 100644
index 000000000..68ebb4e3a
--- /dev/null
+++ b/libbacktrace/dwarf.c
@@ -0,0 +1,2746 @@
+/* dwarf.c -- Get file/line information from DWARF for backtraces.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "dwarf2.h"
+#include "filenames.h"
+
+#include "backtrace.h"
+#include "internal.h"
+
+#if !defined(HAVE_DECL_STRNLEN) || !HAVE_DECL_STRNLEN
+/* The function is defined in libiberty if needed. */
+extern size_t strnlen (const char *, size_t);
+#endif
+
+/* A buffer to read DWARF info. */
+
+struct dwarf_buf
+{
+ /* Buffer name for error messages. */
+ const char *name;
+ /* Start of the buffer. */
+ const unsigned char *start;
+ /* Next byte to read. */
+ const unsigned char *buf;
+ /* The number of bytes remaining. */
+ size_t left;
+ /* Whether the data is big-endian. */
+ int is_bigendian;
+ /* Error callback routine. */
+ backtrace_error_callback error_callback;
+ /* Data for error_callback. */
+ void *data;
+ /* Non-zero if we've reported an underflow error. */
+ int reported_underflow;
+};
+
+/* A single attribute in a DWARF abbreviation. */
+
+struct attr
+{
+ /* The attribute name. */
+ enum dwarf_attribute name;
+ /* The attribute form. */
+ enum dwarf_form form;
+};
+
+/* A single DWARF abbreviation. */
+
+struct abbrev
+{
+ /* The abbrev code--the number used to refer to the abbrev. */
+ uint64_t code;
+ /* The entry tag. */
+ enum dwarf_tag tag;
+ /* Non-zero if this abbrev has child entries. */
+ int has_children;
+ /* The number of attributes. */
+ size_t num_attrs;
+ /* The attributes. */
+ struct attr *attrs;
+};
+
+/* The DWARF abbreviations for a compilation unit. This structure
+ only exists while reading the compilation unit. Most DWARF readers
+ seem to a hash table to map abbrev ID's to abbrev entries.
+ However, we primarily care about GCC, and GCC simply issues ID's in
+ numerical order starting at 1. So we simply keep a sorted vector,
+ and try to just look up the code. */
+
+struct abbrevs
+{
+ /* The number of abbrevs in the vector. */
+ size_t num_abbrevs;
+ /* The abbrevs, sorted by the code field. */
+ struct abbrev *abbrevs;
+};
+
+/* The different kinds of attribute values. */
+
+enum attr_val_encoding
+{
+ /* An address. */
+ ATTR_VAL_ADDRESS,
+ /* A unsigned integer. */
+ ATTR_VAL_UINT,
+ /* A sigd integer. */
+ ATTR_VAL_SINT,
+ /* A string. */
+ ATTR_VAL_STRING,
+ /* An offset to other data in the containing unit. */
+ ATTR_VAL_REF_UNIT,
+ /* An offset to other data within the .dwarf_info section. */
+ ATTR_VAL_REF_INFO,
+ /* An offset to data in some other section. */
+ ATTR_VAL_REF_SECTION,
+ /* A type signature. */
+ ATTR_VAL_REF_TYPE,
+ /* A block of data (not represented). */
+ ATTR_VAL_BLOCK,
+ /* An expression (not represented). */
+ ATTR_VAL_EXPR,
+};
+
+/* An attribute value. */
+
+struct attr_val
+{
+ /* How the value is stored in the field u. */
+ enum attr_val_encoding encoding;
+ union
+ {
+ /* ATTR_VAL_ADDRESS, ATTR_VAL_UINT, ATTR_VAL_REF*. */
+ uint64_t uint;
+ /* ATTR_VAL_SINT. */
+ int64_t sint;
+ /* ATTR_VAL_STRING. */
+ const char *string;
+ /* ATTR_VAL_BLOCK not stored. */
+ } u;
+};
+
+/* The line number program header. */
+
+struct line_header
+{
+ /* The version of the line number information. */
+ int version;
+ /* The minimum instruction length. */
+ unsigned int min_insn_len;
+ /* The maximum number of ops per instruction. */
+ unsigned int max_ops_per_insn;
+ /* The line base for special opcodes. */
+ int line_base;
+ /* The line range for special opcodes. */
+ unsigned int line_range;
+ /* The opcode base--the first special opcode. */
+ unsigned int opcode_base;
+ /* Opcode lengths, indexed by opcode - 1. */
+ const unsigned char *opcode_lengths;
+ /* The number of directory entries. */
+ size_t dirs_count;
+ /* The directory entries. */
+ const char **dirs;
+ /* The number of filenames. */
+ size_t filenames_count;
+ /* The filenames. */
+ const char **filenames;
+};
+
+/* Map a single PC value to a file/line. We will keep a vector of
+ these sorted by PC value. Each file/line will be correct from the
+ PC up to the PC of the next entry if there is one. We allocate one
+ extra entry at the end so that we can use bsearch. */
+
+struct line
+{
+ /* PC. */
+ uintptr_t pc;
+ /* File name. Many entries in the array are expected to point to
+ the same file name. */
+ const char *filename;
+ /* Line number. */
+ int lineno;
+};
+
+/* A growable vector of line number information. This is used while
+ reading the line numbers. */
+
+struct line_vector
+{
+ /* Memory. This is an array of struct line. */
+ struct backtrace_vector vec;
+ /* Number of valid mappings. */
+ size_t count;
+};
+
+/* A function described in the debug info. */
+
+struct function
+{
+ /* The name of the function. */
+ const char *name;
+ /* If this is an inlined function, the filename of the call
+ site. */
+ const char *caller_filename;
+ /* If this is an inlined function, the line number of the call
+ site. */
+ int caller_lineno;
+ /* Map PC ranges to inlined functions. */
+ struct function_addrs *function_addrs;
+ size_t function_addrs_count;
+};
+
+/* An address range for a function. This maps a PC value to a
+ specific function. */
+
+struct function_addrs
+{
+ /* Range is LOW <= PC < HIGH. */
+ uint64_t low;
+ uint64_t high;
+ /* Function for this address range. */
+ struct function *function;
+};
+
+/* A growable vector of function address ranges. */
+
+struct function_vector
+{
+ /* Memory. This is an array of struct function_addrs. */
+ struct backtrace_vector vec;
+ /* Number of address ranges present. */
+ size_t count;
+};
+
+/* A DWARF compilation unit. This only holds the information we need
+ to map a PC to a file and line. */
+
+struct unit
+{
+ /* The first entry for this compilation unit. */
+ const unsigned char *unit_data;
+ /* The length of the data for this compilation unit. */
+ size_t unit_data_len;
+ /* The offset of UNIT_DATA from the start of the information for
+ this compilation unit. */
+ size_t unit_data_offset;
+ /* DWARF version. */
+ int version;
+ /* Whether unit is DWARF64. */
+ int is_dwarf64;
+ /* Address size. */
+ int addrsize;
+ /* Offset into line number information. */
+ off_t lineoff;
+ /* Compilation command working directory. */
+ const char *comp_dir;
+ /* The abbreviations for this unit. */
+ struct abbrevs abbrevs;
+
+ /* The fields above this point are read in during initialization and
+ may be accessed freely. The fields below this point are read in
+ as needed, and therefore require care, as different threads may
+ try to initialize them simultaneously. */
+
+ /* PC to line number mapping. This is NULL if the values have not
+ been read. This is (struct line *) -1 if there was an error
+ reading the values. */
+ struct line *lines;
+ /* Number of entries in lines. */
+ size_t lines_count;
+ /* PC ranges to function. */
+ struct function_addrs *function_addrs;
+ size_t function_addrs_count;
+};
+
+/* An address range for a compilation unit. This maps a PC value to a
+ specific compilation unit. Note that we invert the representation
+ in DWARF: instead of listing the units and attaching a list of
+ ranges, we list the ranges and have each one point to the unit.
+ This lets us do a binary search to find the unit. */
+
+struct unit_addrs
+{
+ /* Range is LOW <= PC < HIGH. */
+ uint64_t low;
+ uint64_t high;
+ /* Compilation unit for this address range. */
+ struct unit *u;
+};
+
+/* A growable vector of compilation unit address ranges. */
+
+struct unit_addrs_vector
+{
+ /* Memory. This is an array of struct unit_addrs. */
+ struct backtrace_vector vec;
+ /* Number of address ranges present. */
+ size_t count;
+};
+
+/* The information we need to map a PC to a file and line. */
+
+struct dwarf_data
+{
+ /* A sorted list of address ranges. */
+ struct unit_addrs *addrs;
+ /* Number of address ranges in list. */
+ size_t addrs_count;
+ /* The unparsed .debug_info section. */
+ const unsigned char *dwarf_info;
+ size_t dwarf_info_size;
+ /* The unparsed .debug_line section. */
+ const unsigned char *dwarf_line;
+ size_t dwarf_line_size;
+ /* The unparsed .debug_ranges section. */
+ const unsigned char *dwarf_ranges;
+ size_t dwarf_ranges_size;
+ /* The unparsed .debug_str section. */
+ const unsigned char *dwarf_str;
+ size_t dwarf_str_size;
+ /* Whether the data is big-endian or not. */
+ int is_bigendian;
+ /* A vector used for function addresses. We keep this here so that
+ we can grow the vector as we read more functions. */
+ struct function_vector fvec;
+};
+
+/* Report an error for a DWARF buffer. */
+
+static void
+dwarf_buf_error (struct dwarf_buf *buf, const char *msg)
+{
+ char b[200];
+
+ snprintf (b, sizeof b, "%s in %s at %d",
+ msg, buf->name, (int) (buf->buf - buf->start));
+ buf->error_callback (buf->data, b, 0);
+}
+
+/* Require at least COUNT bytes in BUF. Return 1 if all is well, 0 on
+ error. */
+
+static int
+require (struct dwarf_buf *buf, size_t count)
+{
+ if (buf->left >= count)
+ return 1;
+
+ if (!buf->reported_underflow)
+ {
+ dwarf_buf_error (buf, "DWARF underflow");
+ buf->reported_underflow = 1;
+ }
+
+ return 0;
+}
+
+/* Advance COUNT bytes in BUF. Return 1 if all is well, 0 on
+ error. */
+
+static int
+advance (struct dwarf_buf *buf, size_t count)
+{
+ if (!require (buf, count))
+ return 0;
+ buf->buf += count;
+ buf->left -= count;
+ return 1;
+}
+
+/* Read one byte from BUF and advance 1 byte. */
+
+static unsigned char
+read_byte (struct dwarf_buf *buf)
+{
+ const unsigned char *p = buf->buf;
+
+ if (!advance (buf, 1))
+ return 0;
+ return p[0];
+}
+
+/* Read a signed char from BUF and advance 1 byte. */
+
+static signed char
+read_sbyte (struct dwarf_buf *buf)
+{
+ const unsigned char *p = buf->buf;
+
+ if (!advance (buf, 1))
+ return 0;
+ return (*p ^ 0x80) - 0x80;
+}
+
+/* Read a uint16 from BUF and advance 2 bytes. */
+
+static uint16_t
+read_uint16 (struct dwarf_buf *buf)
+{
+ const unsigned char *p = buf->buf;
+
+ if (!advance (buf, 2))
+ return 0;
+ if (buf->is_bigendian)
+ return ((uint16_t) p[0] << 8) | (uint16_t) p[1];
+ else
+ return ((uint16_t) p[1] << 8) | (uint16_t) p[0];
+}
+
+/* Read a uint32 from BUF and advance 4 bytes. */
+
+static uint32_t
+read_uint32 (struct dwarf_buf *buf)
+{
+ const unsigned char *p = buf->buf;
+
+ if (!advance (buf, 4))
+ return 0;
+ if (buf->is_bigendian)
+ return (((uint32_t) p[0] << 24) | ((uint32_t) p[1] << 16)
+ | ((uint32_t) p[2] << 8) | (uint32_t) p[3]);
+ else
+ return (((uint32_t) p[3] << 24) | ((uint32_t) p[2] << 16)
+ | ((uint32_t) p[1] << 8) | (uint32_t) p[0]);
+}
+
+/* Read a uint64 from BUF and advance 8 bytes. */
+
+static uint64_t
+read_uint64 (struct dwarf_buf *buf)
+{
+ const unsigned char *p = buf->buf;
+
+ if (!advance (buf, 8))
+ return 0;
+ if (buf->is_bigendian)
+ return (((uint64_t) p[0] << 56) | ((uint64_t) p[1] << 48)
+ | ((uint64_t) p[2] << 40) | ((uint64_t) p[3] << 32)
+ | ((uint64_t) p[4] << 24) | ((uint64_t) p[5] << 16)
+ | ((uint64_t) p[6] << 8) | (uint64_t) p[7]);
+ else
+ return (((uint64_t) p[7] << 56) | ((uint64_t) p[6] << 48)
+ | ((uint64_t) p[5] << 40) | ((uint64_t) p[4] << 32)
+ | ((uint64_t) p[3] << 24) | ((uint64_t) p[2] << 16)
+ | ((uint64_t) p[1] << 8) | (uint64_t) p[0]);
+}
+
+/* Read an offset from BUF and advance the appropriate number of
+ bytes. */
+
+static uint64_t
+read_offset (struct dwarf_buf *buf, int is_dwarf64)
+{
+ if (is_dwarf64)
+ return read_uint64 (buf);
+ else
+ return read_uint32 (buf);
+}
+
+/* Read an address from BUF and advance the appropriate number of
+ bytes. */
+
+static uint64_t
+read_address (struct dwarf_buf *buf, int addrsize)
+{
+ switch (addrsize)
+ {
+ case 1:
+ return read_byte (buf);
+ case 2:
+ return read_uint16 (buf);
+ case 4:
+ return read_uint32 (buf);
+ case 8:
+ return read_uint64 (buf);
+ default:
+ dwarf_buf_error (buf, "unrecognized address size");
+ return 0;
+ }
+}
+
+/* Return whether a value is the highest possible address, given the
+ address size. */
+
+static int
+is_highest_address (uint64_t address, int addrsize)
+{
+ switch (addrsize)
+ {
+ case 1:
+ return address == (unsigned char) -1;
+ case 2:
+ return address == (uint16_t) -1;
+ case 4:
+ return address == (uint32_t) -1;
+ case 8:
+ return address == (uint64_t) -1;
+ default:
+ return 0;
+ }
+}
+
+/* Read an unsigned LEB128 number. */
+
+static uint64_t
+read_uleb128 (struct dwarf_buf *buf)
+{
+ uint64_t ret;
+ unsigned int shift;
+ unsigned char b;
+
+ ret = 0;
+ shift = 0;
+ do
+ {
+ const unsigned char *p;
+
+ p = buf->buf;
+ if (!advance (buf, 1))
+ return 0;
+ b = *p;
+ ret |= ((uint64_t) (b & 0x7f)) << shift;
+ shift += 7;
+ }
+ while ((b & 0x80) != 0);
+
+ if (shift > 64)
+ dwarf_buf_error (buf, "LEB128 overflows uint64_5");
+
+ return ret;
+}
+
+/* Read a signed LEB128 number. */
+
+static int64_t
+read_sleb128 (struct dwarf_buf *buf)
+{
+ uint64_t val;
+ unsigned int shift;
+ unsigned char b;
+
+ val = 0;
+ shift = 0;
+ do
+ {
+ const unsigned char *p;
+
+ p = buf->buf;
+ if (!advance (buf, 1))
+ return 0;
+ b = *p;
+ val |= ((uint64_t) (b & 0x7f)) << shift;
+ shift += 7;
+ }
+ while ((b & 0x80) != 0);
+
+ if (shift > 64)
+ dwarf_buf_error (buf, "signed LEB128 overflows uint64_t");
+
+ if ((b & 0x40) != 0)
+ val |= ((uint64_t) -1) << shift;
+
+ return (int64_t) val;
+}
+
+/* Return the length of an LEB128 number. */
+
+static size_t
+leb128_len (const unsigned char *p)
+{
+ size_t ret;
+
+ ret = 1;
+ while ((*p & 0x80) != 0)
+ {
+ ++p;
+ ++ret;
+ }
+ return ret;
+}
+
+/* Free an abbreviations structure. */
+
+static void
+free_abbrevs (struct backtrace_state *state, struct abbrevs *abbrevs,
+ backtrace_error_callback error_callback, void *data)
+{
+ size_t i;
+
+ for (i = 0; i < abbrevs->num_abbrevs; ++i)
+ backtrace_free (state, abbrevs->abbrevs[i].attrs,
+ abbrevs->abbrevs[i].num_attrs * sizeof (struct attr),
+ error_callback, data);
+ backtrace_free (state, abbrevs->abbrevs,
+ abbrevs->num_abbrevs * sizeof (struct abbrev),
+ error_callback, data);
+ abbrevs->num_abbrevs = 0;
+ abbrevs->abbrevs = NULL;
+}
+
+/* Read an attribute value. Returns 1 on success, 0 on failure. If
+ the value can be represented as a uint64_t, sets *VAL and sets
+ *IS_VALID to 1. We don't try to store the value of other attribute
+ forms, because we don't care about them. */
+
+static int
+read_attribute (enum dwarf_form form, struct dwarf_buf *buf,
+ int is_dwarf64, int version, int addrsize,
+ const unsigned char *dwarf_str, size_t dwarf_str_size,
+ struct attr_val *val)
+{
+ switch (form)
+ {
+ case DW_FORM_addr:
+ val->encoding = ATTR_VAL_ADDRESS;
+ val->u.uint = read_address (buf, addrsize);
+ return 1;
+ case DW_FORM_block2:
+ val->encoding = ATTR_VAL_BLOCK;
+ return advance (buf, read_uint16 (buf));
+ case DW_FORM_block4:
+ val->encoding = ATTR_VAL_BLOCK;
+ return advance (buf, read_uint32 (buf));
+ case DW_FORM_data2:
+ val->encoding = ATTR_VAL_UINT;
+ val->u.uint = read_uint16 (buf);
+ return 1;
+ case DW_FORM_data4:
+ val->encoding = ATTR_VAL_UINT;
+ val->u.uint = read_uint32 (buf);
+ return 1;
+ case DW_FORM_data8:
+ val->encoding = ATTR_VAL_UINT;
+ val->u.uint = read_uint64 (buf);
+ return 1;
+ case DW_FORM_string:
+ val->encoding = ATTR_VAL_STRING;
+ val->u.string = (const char *) buf->buf;
+ return advance (buf, strnlen ((const char *) buf->buf, buf->left) + 1);
+ case DW_FORM_block:
+ val->encoding = ATTR_VAL_BLOCK;
+ return advance (buf, read_uleb128 (buf));
+ case DW_FORM_block1:
+ val->encoding = ATTR_VAL_BLOCK;
+ return advance (buf, read_byte (buf));
+ case DW_FORM_data1:
+ val->encoding = ATTR_VAL_UINT;
+ val->u.uint = read_byte (buf);
+ return 1;
+ case DW_FORM_flag:
+ val->encoding = ATTR_VAL_UINT;
+ val->u.uint = read_byte (buf);
+ return 1;
+ case DW_FORM_sdata:
+ val->encoding = ATTR_VAL_SINT;
+ val->u.sint = read_sleb128 (buf);
+ return 1;
+ case DW_FORM_strp:
+ {
+ uint64_t offset;
+
+ offset = read_offset (buf, is_dwarf64);
+ if (offset >= dwarf_str_size)
+ {
+ dwarf_buf_error (buf, "DW_FORM_strp out of range");
+ return 0;
+ }
+ val->encoding = ATTR_VAL_STRING;
+ val->u.string = (const char *) dwarf_str + offset;
+ return 1;
+ }
+ case DW_FORM_udata:
+ val->encoding = ATTR_VAL_UINT;
+ val->u.uint = read_uleb128 (buf);
+ return 1;
+ case DW_FORM_ref_addr:
+ val->encoding = ATTR_VAL_REF_INFO;
+ if (version == 2)
+ val->u.uint = read_address (buf, addrsize);
+ else
+ val->u.uint = read_offset (buf, is_dwarf64);
+ return 1;
+ case DW_FORM_ref1:
+ val->encoding = ATTR_VAL_REF_UNIT;
+ val->u.uint = read_byte (buf);
+ return 1;
+ case DW_FORM_ref2:
+ val->encoding = ATTR_VAL_REF_UNIT;
+ val->u.uint = read_uint16 (buf);
+ return 1;
+ case DW_FORM_ref4:
+ val->encoding = ATTR_VAL_REF_UNIT;
+ val->u.uint = read_uint32 (buf);
+ return 1;
+ case DW_FORM_ref8:
+ val->encoding = ATTR_VAL_REF_UNIT;
+ val->u.uint = read_uint64 (buf);
+ return 1;
+ case DW_FORM_ref_udata:
+ val->encoding = ATTR_VAL_REF_UNIT;
+ val->u.uint = read_uleb128 (buf);
+ return 1;
+ case DW_FORM_indirect:
+ {
+ uint64_t form;
+
+ form = read_uleb128 (buf);
+ return read_attribute ((enum dwarf_form) form, buf, is_dwarf64,
+ version, addrsize, dwarf_str, dwarf_str_size,
+ val);
+ }
+ case DW_FORM_sec_offset:
+ val->encoding = ATTR_VAL_REF_SECTION;
+ val->u.uint = read_offset (buf, is_dwarf64);
+ return 1;
+ case DW_FORM_exprloc:
+ val->encoding = ATTR_VAL_EXPR;
+ return advance (buf, read_uleb128 (buf));
+ case DW_FORM_flag_present:
+ val->encoding = ATTR_VAL_UINT;
+ val->u.uint = 1;
+ return 1;
+ case DW_FORM_ref_sig8:
+ val->encoding = ATTR_VAL_REF_TYPE;
+ val->u.uint = read_uint64 (buf);
+ return 1;
+ case DW_FORM_GNU_addr_index:
+ val->encoding = ATTR_VAL_REF_SECTION;
+ val->u.uint = read_uleb128 (buf);
+ return 1;
+ case DW_FORM_GNU_str_index:
+ val->encoding = ATTR_VAL_REF_SECTION;
+ val->u.uint = read_uleb128 (buf);
+ return 1;
+ case DW_FORM_GNU_ref_alt:
+ val->encoding = ATTR_VAL_REF_SECTION;
+ val->u.uint = read_offset (buf, is_dwarf64);
+ return 1;
+ case DW_FORM_GNU_strp_alt:
+ val->encoding = ATTR_VAL_REF_SECTION;
+ val->u.uint = read_offset (buf, is_dwarf64);
+ return 1;
+ default:
+ dwarf_buf_error (buf, "unrecognized DWARF form");
+ return 0;
+ }
+}
+
+/* Compare function_addrs for qsort. When ranges are nested, make the
+ smallest one sort last. */
+
+static int
+function_addrs_compare (const void *v1, const void *v2)
+{
+ const struct function_addrs *a1 = (const struct function_addrs *) v1;
+ const struct function_addrs *a2 = (const struct function_addrs *) v2;
+
+ if (a1->low < a2->low)
+ return -1;
+ if (a1->low > a2->low)
+ return 1;
+ if (a1->high < a2->high)
+ return 1;
+ if (a1->high > a2->high)
+ return -1;
+ return strcmp (a1->function->name, a2->function->name);
+}
+
+/* Compare a PC against a function_addrs for bsearch. Note that if
+ there are multiple ranges containing PC, which one will be returned
+ is unpredictable. We compensate for that in dwarf_fileline. */
+
+static int
+function_addrs_search (const void *vkey, const void *ventry)
+{
+ const uintptr_t *key = (const uintptr_t *) vkey;
+ const struct function_addrs *entry = (const struct function_addrs *) ventry;
+ uintptr_t pc;
+
+ pc = *key;
+ if (pc < entry->low)
+ return -1;
+ else if (pc >= entry->high)
+ return 1;
+ else
+ return 0;
+}
+
+/* Add a new compilation unit address range to a vector. Returns 1 on
+ success, 0 on failure. */
+
+static int
+add_unit_addr (struct backtrace_state *state, struct unit_addrs addrs,
+ backtrace_error_callback error_callback, void *data,
+ struct unit_addrs_vector *vec)
+{
+ struct unit_addrs *p;
+
+ /* Try to merge with the last entry. */
+ if (vec->count > 0)
+ {
+ p = (struct unit_addrs *) vec->vec.base + (vec->count - 1);
+ if ((addrs.low == p->high || addrs.low == p->high + 1)
+ && addrs.u == p->u)
+ {
+ if (addrs.high > p->high)
+ p->high = addrs.high;
+ return 1;
+ }
+ }
+
+ p = ((struct unit_addrs *)
+ backtrace_vector_grow (state, sizeof (struct unit_addrs),
+ error_callback, data, &vec->vec));
+ if (p == NULL)
+ return 0;
+
+ *p = addrs;
+ ++vec->count;
+ return 1;
+}
+
+/* Free a unit address vector. */
+
+static void
+free_unit_addrs_vector (struct backtrace_state *state,
+ struct unit_addrs_vector *vec,
+ backtrace_error_callback error_callback, void *data)
+{
+ struct unit_addrs *addrs;
+ size_t i;
+
+ addrs = (struct unit_addrs *) vec->vec.base;
+ for (i = 0; i < vec->count; ++i)
+ free_abbrevs (state, &addrs[i].u->abbrevs, error_callback, data);
+}
+
+/* Compare unit_addrs for qsort. When ranges are nested, make the
+ smallest one sort last. */
+
+static int
+unit_addrs_compare (const void *v1, const void *v2)
+{
+ const struct unit_addrs *a1 = (const struct unit_addrs *) v1;
+ const struct unit_addrs *a2 = (const struct unit_addrs *) v2;
+
+ if (a1->low < a2->low)
+ return -1;
+ if (a1->low > a2->low)
+ return 1;
+ if (a1->high < a2->high)
+ return 1;
+ if (a1->high > a2->high)
+ return -1;
+ if (a1->u->lineoff < a2->u->lineoff)
+ return -1;
+ if (a1->u->lineoff > a2->u->lineoff)
+ return 1;
+ return 0;
+}
+
+/* Compare a PC against a unit_addrs for bsearch. Note that if there
+ are multiple ranges containing PC, which one will be returned is
+ unpredictable. We compensate for that in dwarf_fileline. */
+
+static int
+unit_addrs_search (const void *vkey, const void *ventry)
+{
+ const uintptr_t *key = (const uintptr_t *) vkey;
+ const struct unit_addrs *entry = (const struct unit_addrs *) ventry;
+ uintptr_t pc;
+
+ pc = *key;
+ if (pc < entry->low)
+ return -1;
+ else if (pc >= entry->high)
+ return 1;
+ else
+ return 0;
+}
+
+/* Sort the line vector by PC. We want a stable sort here. We know
+ that the pointers are into the same array, so it is safe to compare
+ them directly. */
+
+static int
+line_compare (const void *v1, const void *v2)
+{
+ const struct line *ln1 = (const struct line *) v1;
+ const struct line *ln2 = (const struct line *) v2;
+
+ if (ln1->pc < ln2->pc)
+ return -1;
+ else if (ln1->pc > ln2->pc)
+ return 1;
+ else if (ln1 < ln2)
+ return -1;
+ else if (ln1 > ln2)
+ return 1;
+ else
+ return 0;
+}
+
+/* Find a PC in a line vector. We always allocate an extra entry at
+ the end of the lines vector, so that this routine can safely look
+ at the next entry. Note that when there are multiple mappings for
+ the same PC value, this will return the last one. */
+
+static int
+line_search (const void *vkey, const void *ventry)
+{
+ const uintptr_t *key = (const uintptr_t *) vkey;
+ const struct line *entry = (const struct line *) ventry;
+ uintptr_t pc;
+
+ pc = *key;
+ if (pc < entry->pc)
+ return -1;
+ else if (pc >= (entry + 1)->pc)
+ return 1;
+ else
+ return 0;
+}
+
+/* Sort the abbrevs by the abbrev code. This function is passed to
+ both qsort and bsearch. */
+
+static int
+abbrev_compare (const void *v1, const void *v2)
+{
+ const struct abbrev *a1 = (const struct abbrev *) v1;
+ const struct abbrev *a2 = (const struct abbrev *) v2;
+
+ if (a1->code < a2->code)
+ return -1;
+ else if (a1->code > a2->code)
+ return 1;
+ else
+ {
+ /* This really shouldn't happen. It means there are two
+ different abbrevs with the same code, and that means we don't
+ know which one lookup_abbrev should return. */
+ return 0;
+ }
+}
+
+/* Read the abbreviation table for a compilation unit. Returns 1 on
+ success, 0 on failure. */
+
+static int
+read_abbrevs (struct backtrace_state *state, uint64_t abbrev_offset,
+ const unsigned char *dwarf_abbrev, size_t dwarf_abbrev_size,
+ int is_bigendian, backtrace_error_callback error_callback,
+ void *data, struct abbrevs *abbrevs)
+{
+ struct dwarf_buf abbrev_buf;
+ struct dwarf_buf count_buf;
+ size_t num_abbrevs;
+
+ abbrevs->num_abbrevs = 0;
+ abbrevs->abbrevs = NULL;
+
+ if (abbrev_offset >= dwarf_abbrev_size)
+ {
+ error_callback (data, "abbrev offset out of range", 0);
+ return 0;
+ }
+
+ abbrev_buf.name = ".debug_abbrev";
+ abbrev_buf.start = dwarf_abbrev;
+ abbrev_buf.buf = dwarf_abbrev + abbrev_offset;
+ abbrev_buf.left = dwarf_abbrev_size - abbrev_offset;
+ abbrev_buf.is_bigendian = is_bigendian;
+ abbrev_buf.error_callback = error_callback;
+ abbrev_buf.data = data;
+ abbrev_buf.reported_underflow = 0;
+
+ /* Count the number of abbrevs in this list. */
+
+ count_buf = abbrev_buf;
+ num_abbrevs = 0;
+ while (read_uleb128 (&count_buf) != 0)
+ {
+ if (count_buf.reported_underflow)
+ return 0;
+ ++num_abbrevs;
+ // Skip tag.
+ read_uleb128 (&count_buf);
+ // Skip has_children.
+ read_byte (&count_buf);
+ // Skip attributes.
+ while (read_uleb128 (&count_buf) != 0)
+ read_uleb128 (&count_buf);
+ // Skip form of last attribute.
+ read_uleb128 (&count_buf);
+ }
+
+ if (count_buf.reported_underflow)
+ return 0;
+
+ if (num_abbrevs == 0)
+ return 1;
+
+ abbrevs->num_abbrevs = num_abbrevs;
+ abbrevs->abbrevs = ((struct abbrev *)
+ backtrace_alloc (state,
+ num_abbrevs * sizeof (struct abbrev),
+ error_callback, data));
+ if (abbrevs->abbrevs == NULL)
+ return 0;
+ memset (abbrevs->abbrevs, 0, num_abbrevs * sizeof (struct abbrev));
+
+ num_abbrevs = 0;
+ while (1)
+ {
+ uint64_t code;
+ struct abbrev a;
+ size_t num_attrs;
+ struct attr *attrs;
+
+ if (abbrev_buf.reported_underflow)
+ goto fail;
+
+ code = read_uleb128 (&abbrev_buf);
+ if (code == 0)
+ break;
+
+ a.code = code;
+ a.tag = (enum dwarf_tag) read_uleb128 (&abbrev_buf);
+ a.has_children = read_byte (&abbrev_buf);
+
+ count_buf = abbrev_buf;
+ num_attrs = 0;
+ while (read_uleb128 (&count_buf) != 0)
+ {
+ ++num_attrs;
+ read_uleb128 (&count_buf);
+ }
+
+ if (num_attrs == 0)
+ {
+ attrs = NULL;
+ read_uleb128 (&abbrev_buf);
+ read_uleb128 (&abbrev_buf);
+ }
+ else
+ {
+ attrs = ((struct attr *)
+ backtrace_alloc (state, num_attrs * sizeof *attrs,
+ error_callback, data));
+ if (attrs == NULL)
+ goto fail;
+ num_attrs = 0;
+ while (1)
+ {
+ uint64_t name;
+ uint64_t form;
+
+ name = read_uleb128 (&abbrev_buf);
+ form = read_uleb128 (&abbrev_buf);
+ if (name == 0)
+ break;
+ attrs[num_attrs].name = (enum dwarf_attribute) name;
+ attrs[num_attrs].form = (enum dwarf_form) form;
+ ++num_attrs;
+ }
+ }
+
+ a.num_attrs = num_attrs;
+ a.attrs = attrs;
+
+ abbrevs->abbrevs[num_abbrevs] = a;
+ ++num_abbrevs;
+ }
+
+ qsort (abbrevs->abbrevs, abbrevs->num_abbrevs, sizeof (struct abbrev),
+ abbrev_compare);
+
+ return 1;
+
+ fail:
+ free_abbrevs (state, abbrevs, error_callback, data);
+ return 0;
+}
+
+/* Return the abbrev information for an abbrev code. */
+
+static const struct abbrev *
+lookup_abbrev (struct abbrevs *abbrevs, uint64_t code,
+ backtrace_error_callback error_callback, void *data)
+{
+ struct abbrev key;
+ void *p;
+
+ /* With GCC, where abbrevs are simply numbered in order, we should
+ be able to just look up the entry. */
+ if (code - 1 < abbrevs->num_abbrevs
+ && abbrevs->abbrevs[code - 1].code == code)
+ return &abbrevs->abbrevs[code - 1];
+
+ /* Otherwise we have to search. */
+ memset (&key, 0, sizeof key);
+ key.code = code;
+ p = bsearch (&key, abbrevs->abbrevs, abbrevs->num_abbrevs,
+ sizeof (struct abbrev), abbrev_compare);
+ if (p == NULL)
+ {
+ error_callback (data, "invalid abbreviation code", 0);
+ return NULL;
+ }
+ return (const struct abbrev *) p;
+}
+
+/* Add non-contiguous address ranges for a compilation unit. Returns
+ 1 on success, 0 on failure. */
+
+static int
+add_unit_ranges (struct backtrace_state *state, struct unit *u,
+ uint64_t ranges, uint64_t base, int is_bigendian,
+ const unsigned char *dwarf_ranges, size_t dwarf_ranges_size,
+ backtrace_error_callback error_callback, void *data,
+ struct unit_addrs_vector *addrs)
+{
+ struct dwarf_buf ranges_buf;
+
+ if (ranges >= dwarf_ranges_size)
+ {
+ error_callback (data, "ranges offset out of range", 0);
+ return 0;
+ }
+
+ ranges_buf.name = ".debug_ranges";
+ ranges_buf.start = dwarf_ranges;
+ ranges_buf.buf = dwarf_ranges + ranges;
+ ranges_buf.left = dwarf_ranges_size - ranges;
+ ranges_buf.is_bigendian = is_bigendian;
+ ranges_buf.error_callback = error_callback;
+ ranges_buf.data = data;
+ ranges_buf.reported_underflow = 0;
+
+ while (1)
+ {
+ uint64_t low;
+ uint64_t high;
+
+ if (ranges_buf.reported_underflow)
+ return 0;
+
+ low = read_address (&ranges_buf, u->addrsize);
+ high = read_address (&ranges_buf, u->addrsize);
+
+ if (low == 0 && high == 0)
+ break;
+
+ if (is_highest_address (low, u->addrsize))
+ base = high;
+ else
+ {
+ struct unit_addrs a;
+
+ a.low = low + base;
+ a.high = high + base;
+ a.u = u;
+ if (!add_unit_addr (state, a, error_callback, data, addrs))
+ return 0;
+ }
+ }
+
+ if (ranges_buf.reported_underflow)
+ return 0;
+
+ return 1;
+}
+
+/* Build a mapping from address ranges to the compilation units where
+ the line number information for that range can be found. Returns 1
+ on success, 0 on failure. */
+
+static int
+build_address_map (struct backtrace_state *state,
+ const unsigned char *dwarf_info, size_t dwarf_info_size,
+ const unsigned char *dwarf_abbrev, size_t dwarf_abbrev_size,
+ const unsigned char *dwarf_ranges, size_t dwarf_ranges_size,
+ const unsigned char *dwarf_str, size_t dwarf_str_size,
+ int is_bigendian, backtrace_error_callback error_callback,
+ void *data, struct unit_addrs_vector *addrs)
+{
+ struct dwarf_buf info;
+ struct abbrevs abbrevs;
+
+ memset (&addrs->vec, 0, sizeof addrs->vec);
+ addrs->count = 0;
+
+ /* Read through the .debug_info section. FIXME: Should we use the
+ .debug_aranges section? gdb and addr2line don't use it, but I'm
+ not sure why. */
+
+ info.name = ".debug_info";
+ info.start = dwarf_info;
+ info.buf = dwarf_info;
+ info.left = dwarf_info_size;
+ info.is_bigendian = is_bigendian;
+ info.error_callback = error_callback;
+ info.data = data;
+ info.reported_underflow = 0;
+
+ memset (&abbrevs, 0, sizeof abbrevs);
+ while (info.left > 0)
+ {
+ const unsigned char *unit_data_start;
+ uint64_t len;
+ int is_dwarf64;
+ struct dwarf_buf unit_buf;
+ int version;
+ uint64_t abbrev_offset;
+ const struct abbrev *abbrev;
+ int addrsize;
+ const unsigned char *unit_data;
+ size_t unit_data_len;
+ size_t unit_data_offset;
+ uint64_t code;
+ size_t i;
+ uint64_t lowpc;
+ int have_lowpc;
+ uint64_t highpc;
+ int have_highpc;
+ int highpc_is_relative;
+ uint64_t ranges;
+ int have_ranges;
+ uint64_t lineoff;
+ int have_lineoff;
+ const char *comp_dir;
+
+ if (info.reported_underflow)
+ goto fail;
+
+ unit_data_start = info.buf;
+
+ is_dwarf64 = 0;
+ len = read_uint32 (&info);
+ if (len == 0xffffffff)
+ {
+ len = read_uint64 (&info);
+ is_dwarf64 = 1;
+ }
+
+ unit_buf = info;
+ unit_buf.start = info.buf;
+ unit_buf.left = len;
+
+ if (!advance (&info, len))
+ goto fail;
+
+ version = read_uint16 (&unit_buf);
+ if (version < 2 || version > 4)
+ {
+ dwarf_buf_error (&unit_buf, "unrecognized DWARF version");
+ goto fail;
+ }
+
+ abbrev_offset = read_offset (&unit_buf, is_dwarf64);
+ if (!read_abbrevs (state, abbrev_offset, dwarf_abbrev, dwarf_abbrev_size,
+ is_bigendian, error_callback, data, &abbrevs))
+ goto fail;
+
+ addrsize = read_byte (&unit_buf);
+
+ unit_data = unit_buf.buf;
+ unit_data_len = unit_buf.left;
+ unit_data_offset = unit_buf.buf - unit_data_start;
+
+ /* We only look at the first attribute in the compilation unit.
+ In practice this will be a DW_TAG_compile_unit which will
+ tell us the PC range and where to find the line number
+ information. */
+
+ code = read_uleb128 (&unit_buf);
+ abbrev = lookup_abbrev (&abbrevs, code, error_callback, data);
+ if (abbrev == NULL)
+ goto fail;
+
+ lowpc = 0;
+ have_lowpc = 0;
+ highpc = 0;
+ have_highpc = 0;
+ highpc_is_relative = 0;
+ ranges = 0;
+ have_ranges = 0;
+ lineoff = 0;
+ have_lineoff = 0;
+ comp_dir = NULL;
+ for (i = 0; i < abbrev->num_attrs; ++i)
+ {
+ struct attr_val val;
+
+ if (!read_attribute (abbrev->attrs[i].form, &unit_buf, is_dwarf64,
+ version, addrsize, dwarf_str, dwarf_str_size,
+ &val))
+ goto fail;
+
+ switch (abbrev->attrs[i].name)
+ {
+ case DW_AT_low_pc:
+ if (val.encoding == ATTR_VAL_ADDRESS)
+ {
+ lowpc = val.u.uint;
+ have_lowpc = 1;
+ }
+ break;
+ case DW_AT_high_pc:
+ if (val.encoding == ATTR_VAL_ADDRESS)
+ {
+ highpc = val.u.uint;
+ have_highpc = 1;
+ }
+ else if (val.encoding == ATTR_VAL_UINT)
+ {
+ highpc = val.u.uint;
+ have_highpc = 1;
+ highpc_is_relative = 1;
+ }
+ break;
+ case DW_AT_ranges:
+ if (val.encoding == ATTR_VAL_UINT
+ || val.encoding == ATTR_VAL_REF_SECTION)
+ {
+ ranges = val.u.uint;
+ have_ranges = 1;
+ }
+ break;
+ case DW_AT_stmt_list:
+ if (val.encoding == ATTR_VAL_UINT
+ || val.encoding == ATTR_VAL_REF_SECTION)
+ {
+ lineoff = val.u.uint;
+ have_lineoff = 1;
+ }
+ break;
+ case DW_AT_comp_dir:
+ if (val.encoding == ATTR_VAL_STRING)
+ comp_dir = val.u.string;
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (unit_buf.reported_underflow)
+ goto fail;
+
+ if (((have_lowpc && have_highpc) || have_ranges) && have_lineoff)
+ {
+ struct unit *u;
+ struct unit_addrs a;
+
+ u = ((struct unit *)
+ backtrace_alloc (state, sizeof *u, error_callback, data));
+ if (u == NULL)
+ goto fail;
+ u->unit_data = unit_data;
+ u->unit_data_len = unit_data_len;
+ u->unit_data_offset = unit_data_offset;
+ u->version = version;
+ u->is_dwarf64 = is_dwarf64;
+ u->addrsize = addrsize;
+ u->comp_dir = comp_dir;
+ u->lineoff = lineoff;
+ u->abbrevs = abbrevs;
+ memset (&abbrevs, 0, sizeof abbrevs);
+
+ /* The actual line number mappings will be read as
+ needed. */
+ u->lines = NULL;
+ u->lines_count = 0;
+ u->function_addrs = NULL;
+ u->function_addrs_count = 0;
+
+ if (have_ranges)
+ {
+ if (!add_unit_ranges (state, u, ranges, lowpc, is_bigendian,
+ dwarf_ranges, dwarf_ranges_size,
+ error_callback, data, addrs))
+ {
+ free_abbrevs (state, &u->abbrevs, error_callback, data);
+ backtrace_free (state, u, sizeof *u, error_callback, data);
+ goto fail;
+ }
+ }
+ else
+ {
+ if (highpc_is_relative)
+ highpc += lowpc;
+ a.low = lowpc;
+ a.high = highpc;
+ a.u = u;
+
+ if (!add_unit_addr (state, a, error_callback, data, addrs))
+ {
+ free_abbrevs (state, &u->abbrevs, error_callback, data);
+ backtrace_free (state, u, sizeof *u, error_callback, data);
+ goto fail;
+ }
+ }
+ }
+ else
+ {
+ free_abbrevs (state, &abbrevs, error_callback, data);
+ memset (&abbrevs, 0, sizeof abbrevs);
+ }
+ }
+ if (info.reported_underflow)
+ goto fail;
+
+ return 1;
+
+ fail:
+ free_abbrevs (state, &abbrevs, error_callback, data);
+ free_unit_addrs_vector (state, addrs, error_callback, data);
+ return 0;
+}
+
+/* Add a new mapping to the vector of line mappings that we are
+ building. Returns 1 on success, 0 on failure. */
+
+static int
+add_line (struct backtrace_state *state, uintptr_t pc, const char *filename,
+ int lineno, backtrace_error_callback error_callback, void *data,
+ struct line_vector *vec)
+{
+ struct line *ln;
+
+ /* If we are adding the same mapping, ignore it. This can happen
+ when using discriminators. */
+ if (vec->count > 0)
+ {
+ ln = (struct line *) vec->vec.base + (vec->count - 1);
+ if (pc == ln->pc && filename == ln->filename && lineno == ln->lineno)
+ return 1;
+ }
+
+ ln = ((struct line *)
+ backtrace_vector_grow (state, sizeof (struct line), error_callback,
+ data, &vec->vec));
+ if (ln == NULL)
+ return 0;
+
+ ln->pc = pc;
+ ln->filename = filename;
+ ln->lineno = lineno;
+
+ ++vec->count;
+
+ return 1;
+}
+
+/* Free the line header information. If FREE_FILENAMES is true we
+ free the file names themselves, otherwise we leave them, as there
+ may be line structures pointing to them. */
+
+static void
+free_line_header (struct backtrace_state *state, struct line_header *hdr,
+ backtrace_error_callback error_callback, void *data)
+{
+ backtrace_free (state, hdr->dirs, hdr->dirs_count * sizeof (const char *),
+ error_callback, data);
+ backtrace_free (state, hdr->filenames,
+ hdr->filenames_count * sizeof (char *),
+ error_callback, data);
+}
+
+/* Read the line header. Return 1 on success, 0 on failure. */
+
+static int
+read_line_header (struct backtrace_state *state, struct unit *u,
+ int is_dwarf64, struct dwarf_buf *line_buf,
+ struct line_header *hdr)
+{
+ uint64_t hdrlen;
+ struct dwarf_buf hdr_buf;
+ const unsigned char *p;
+ const unsigned char *pend;
+ size_t i;
+
+ hdr->version = read_uint16 (line_buf);
+ if (hdr->version < 2 || hdr->version > 4)
+ {
+ dwarf_buf_error (line_buf, "unsupported line number version");
+ return 0;
+ }
+
+ hdrlen = read_offset (line_buf, is_dwarf64);
+
+ hdr_buf = *line_buf;
+ hdr_buf.left = hdrlen;
+
+ if (!advance (line_buf, hdrlen))
+ return 0;
+
+ hdr->min_insn_len = read_byte (&hdr_buf);
+ if (hdr->version < 4)
+ hdr->max_ops_per_insn = 1;
+ else
+ hdr->max_ops_per_insn = read_byte (&hdr_buf);
+
+ /* We don't care about default_is_stmt. */
+ read_byte (&hdr_buf);
+
+ hdr->line_base = read_sbyte (&hdr_buf);
+ hdr->line_range = read_byte (&hdr_buf);
+
+ hdr->opcode_base = read_byte (&hdr_buf);
+ hdr->opcode_lengths = hdr_buf.buf;
+ if (!advance (&hdr_buf, hdr->opcode_base - 1))
+ return 0;
+
+ /* Count the number of directory entries. */
+ hdr->dirs_count = 0;
+ p = hdr_buf.buf;
+ pend = p + hdr_buf.left;
+ while (p < pend && *p != '\0')
+ {
+ p += strnlen((const char *) p, pend - p) + 1;
+ ++hdr->dirs_count;
+ }
+
+ hdr->dirs = ((const char **)
+ backtrace_alloc (state,
+ hdr->dirs_count * sizeof (const char *),
+ line_buf->error_callback, line_buf->data));
+ if (hdr->dirs == NULL)
+ return 0;
+
+ i = 0;
+ while (*hdr_buf.buf != '\0')
+ {
+ if (hdr_buf.reported_underflow)
+ return 0;
+
+ hdr->dirs[i] = (const char *) hdr_buf.buf;
+ ++i;
+ if (!advance (&hdr_buf,
+ strnlen ((const char *) hdr_buf.buf, hdr_buf.left) + 1))
+ return 0;
+ }
+ if (!advance (&hdr_buf, 1))
+ return 0;
+
+ /* Count the number of file entries. */
+ hdr->filenames_count = 0;
+ p = hdr_buf.buf;
+ pend = p + hdr_buf.left;
+ while (p < pend && *p != '\0')
+ {
+ p += strnlen ((const char *) p, pend - p) + 1;
+ p += leb128_len (p);
+ p += leb128_len (p);
+ p += leb128_len (p);
+ ++hdr->filenames_count;
+ }
+
+ hdr->filenames = ((const char **)
+ backtrace_alloc (state,
+ hdr->filenames_count * sizeof (char *),
+ line_buf->error_callback,
+ line_buf->data));
+ if (hdr->filenames == NULL)
+ return 0;
+ i = 0;
+ while (*hdr_buf.buf != '\0')
+ {
+ const char *filename;
+ uint64_t dir_index;
+
+ if (hdr_buf.reported_underflow)
+ return 0;
+
+ filename = (const char *) hdr_buf.buf;
+ if (!advance (&hdr_buf,
+ strnlen ((const char *) hdr_buf.buf, hdr_buf.left) + 1))
+ return 0;
+ dir_index = read_uleb128 (&hdr_buf);
+ if (IS_ABSOLUTE_PATH (filename))
+ hdr->filenames[i] = filename;
+ else
+ {
+ const char *dir;
+ size_t dir_len;
+ size_t filename_len;
+ char *s;
+
+ if (dir_index == 0)
+ dir = u->comp_dir;
+ else if (dir_index - 1 < hdr->dirs_count)
+ dir = hdr->dirs[dir_index - 1];
+ else
+ {
+ dwarf_buf_error (line_buf,
+ ("invalid directory index in "
+ "line number program header"));
+ return 0;
+ }
+ dir_len = strlen (dir);
+ filename_len = strlen (filename);
+ s = ((char *)
+ backtrace_alloc (state, dir_len + filename_len + 2,
+ line_buf->error_callback, line_buf->data));
+ if (s == NULL)
+ return 0;
+ memcpy (s, dir, dir_len);
+ /* FIXME: If we are on a DOS-based file system, and the
+ directory or the file name use backslashes, then we
+ should use a backslash here. */
+ s[dir_len] = '/';
+ memcpy (s + dir_len + 1, filename, filename_len + 1);
+ hdr->filenames[i] = s;
+ }
+
+ /* Ignore the modification time and size. */
+ read_uleb128 (&hdr_buf);
+ read_uleb128 (&hdr_buf);
+
+ ++i;
+ }
+
+ if (hdr_buf.reported_underflow)
+ return 0;
+
+ return 1;
+}
+
+/* Read the line program, adding line mappings to VEC. Return 1 on
+ success, 0 on failure. */
+
+static int
+read_line_program (struct backtrace_state *state, struct unit *u,
+ const struct line_header *hdr, struct dwarf_buf *line_buf,
+ struct line_vector *vec)
+{
+ uint64_t address;
+ unsigned int op_index;
+ const char *reset_filename;
+ const char *filename;
+ int lineno;
+
+ address = 0;
+ op_index = 0;
+ if (hdr->filenames_count > 0)
+ reset_filename = hdr->filenames[0];
+ else
+ reset_filename = "";
+ filename = reset_filename;
+ lineno = 1;
+ while (line_buf->left > 0)
+ {
+ unsigned int op;
+
+ op = read_byte (line_buf);
+ if (op >= hdr->opcode_base)
+ {
+ unsigned int advance;
+
+ /* Special opcode. */
+ op -= hdr->opcode_base;
+ advance = op / hdr->line_range;
+ address += (hdr->min_insn_len * (op_index + advance)
+ / hdr->max_ops_per_insn);
+ op_index = (op_index + advance) % hdr->max_ops_per_insn;
+ lineno += hdr->line_base + (int) (op % hdr->line_range);
+ add_line (state, address, filename, lineno, line_buf->error_callback,
+ line_buf->data, vec);
+ }
+ else if (op == DW_LNS_extended_op)
+ {
+ uint64_t len;
+
+ len = read_uleb128 (line_buf);
+ op = read_byte (line_buf);
+ switch (op)
+ {
+ case DW_LNE_end_sequence:
+ /* FIXME: Should we mark the high PC here? It seems
+ that we already have that information from the
+ compilation unit. */
+ address = 0;
+ op_index = 0;
+ filename = reset_filename;
+ lineno = 1;
+ break;
+ case DW_LNE_set_address:
+ address = read_address (line_buf, u->addrsize);
+ break;
+ case DW_LNE_define_file:
+ {
+ const char *f;
+ unsigned int dir_index;
+
+ f = (const char *) line_buf->buf;
+ if (!advance (line_buf, strnlen (f, line_buf->left) + 1))
+ return 0;
+ dir_index = read_uleb128 (line_buf);
+ /* Ignore that time and length. */
+ read_uleb128 (line_buf);
+ read_uleb128 (line_buf);
+ if (IS_ABSOLUTE_PATH (f))
+ filename = f;
+ else
+ {
+ const char *dir;
+ size_t dir_len;
+ size_t f_len;
+ char *p;
+
+ if (dir_index == 0)
+ dir = u->comp_dir;
+ else if (dir_index - 1 < hdr->dirs_count)
+ dir = hdr->dirs[dir_index - 1];
+ else
+ {
+ dwarf_buf_error (line_buf,
+ ("invalid directory index "
+ "in line number program"));
+ return 0;
+ }
+ dir_len = strlen (dir);
+ f_len = strlen (f);
+ p = ((char *)
+ backtrace_alloc (state, dir_len + f_len + 2,
+ line_buf->error_callback,
+ line_buf->data));
+ if (p == NULL)
+ return 0;
+ memcpy (p, dir, dir_len);
+ /* FIXME: If we are on a DOS-based file system,
+ and the directory or the file name use
+ backslashes, then we should use a backslash
+ here. */
+ p[dir_len] = '/';
+ memcpy (p + dir_len + 1, f, f_len + 1);
+ filename = p;
+ }
+ }
+ break;
+ case DW_LNE_set_discriminator:
+ /* We don't care about discriminators. */
+ read_uleb128 (line_buf);
+ break;
+ default:
+ if (!advance (line_buf, len - 1))
+ return 0;
+ break;
+ }
+ }
+ else
+ {
+ switch (op)
+ {
+ case DW_LNS_copy:
+ add_line (state, address, filename, lineno,
+ line_buf->error_callback, line_buf->data, vec);
+ break;
+ case DW_LNS_advance_pc:
+ {
+ uint64_t advance;
+
+ advance = read_uleb128 (line_buf);
+ address += (hdr->min_insn_len * (op_index + advance)
+ / hdr->max_ops_per_insn);
+ op_index = (op_index + advance) % hdr->max_ops_per_insn;
+ }
+ break;
+ case DW_LNS_advance_line:
+ lineno += (int) read_sleb128 (line_buf);
+ break;
+ case DW_LNS_set_file:
+ {
+ uint64_t fileno;
+
+ fileno = read_uleb128 (line_buf);
+ if (fileno == 0)
+ filename = "";
+ else
+ {
+ if (fileno - 1 >= hdr->filenames_count)
+ {
+ dwarf_buf_error (line_buf,
+ ("invalid file number in "
+ "line number program"));
+ return 0;
+ }
+ filename = hdr->filenames[fileno - 1];
+ }
+ }
+ break;
+ case DW_LNS_set_column:
+ read_uleb128 (line_buf);
+ break;
+ case DW_LNS_negate_stmt:
+ break;
+ case DW_LNS_set_basic_block:
+ break;
+ case DW_LNS_const_add_pc:
+ {
+ unsigned int advance;
+
+ op = 255 - hdr->opcode_base;
+ advance = op / hdr->line_range;
+ address += (hdr->min_insn_len * (op_index + advance)
+ / hdr->max_ops_per_insn);
+ op_index = (op_index + advance) % hdr->max_ops_per_insn;
+ }
+ break;
+ case DW_LNS_fixed_advance_pc:
+ address += read_uint16 (line_buf);
+ op_index = 0;
+ break;
+ case DW_LNS_set_prologue_end:
+ break;
+ case DW_LNS_set_epilogue_begin:
+ break;
+ case DW_LNS_set_isa:
+ read_uleb128 (line_buf);
+ break;
+ default:
+ {
+ unsigned int i;
+
+ for (i = hdr->opcode_lengths[op - 1]; i > 0; --i)
+ read_uleb128 (line_buf);
+ }
+ break;
+ }
+ }
+ }
+
+ return 1;
+}
+
+/* Read the line number information for a compilation unit. Returns 1
+ on success, 0 on failure. */
+
+static int
+read_line_info (struct backtrace_state *state, struct dwarf_data *ddata,
+ backtrace_error_callback error_callback, void *data,
+ struct unit *u, struct line_header *hdr, struct line **lines,
+ size_t *lines_count)
+{
+ struct line_vector vec;
+ struct dwarf_buf line_buf;
+ uint64_t len;
+ int is_dwarf64;
+ struct line *ln;
+
+ memset (&vec.vec, 0, sizeof vec.vec);
+ vec.count = 0;
+
+ memset (hdr, 0, sizeof *hdr);
+
+ if (u->lineoff != (off_t) (size_t) u->lineoff
+ || (size_t) u->lineoff >= ddata->dwarf_line_size)
+ {
+ error_callback (data, "unit line offset out of range", 0);
+ goto fail;
+ }
+
+ line_buf.name = ".debug_line";
+ line_buf.start = ddata->dwarf_line;
+ line_buf.buf = ddata->dwarf_line + u->lineoff;
+ line_buf.left = ddata->dwarf_line_size - u->lineoff;
+ line_buf.is_bigendian = ddata->is_bigendian;
+ line_buf.error_callback = error_callback;
+ line_buf.data = data;
+ line_buf.reported_underflow = 0;
+
+ is_dwarf64 = 0;
+ len = read_uint32 (&line_buf);
+ if (len == 0xffffffff)
+ {
+ len = read_uint64 (&line_buf);
+ is_dwarf64 = 1;
+ }
+ line_buf.left = len;
+
+ if (!read_line_header (state, u, is_dwarf64, &line_buf, hdr))
+ goto fail;
+
+ if (!read_line_program (state, u, hdr, &line_buf, &vec))
+ goto fail;
+
+ if (line_buf.reported_underflow)
+ goto fail;
+
+ if (vec.count == 0)
+ {
+ /* This is not a failure in the sense of a generating an error,
+ but it is a failure in that sense that we have no useful
+ information. */
+ goto fail;
+ }
+
+ /* Allocate one extra entry at the end. */
+ ln = ((struct line *)
+ backtrace_vector_grow (state, sizeof (struct line), error_callback,
+ data, &vec.vec));
+ if (ln == NULL)
+ goto fail;
+ ln->pc = (uintptr_t) -1;
+ ln->filename = NULL;
+ ln->lineno = 0;
+
+ if (!backtrace_vector_release (state, &vec.vec, error_callback, data))
+ goto fail;
+
+ ln = (struct line *) vec.vec.base;
+ qsort (ln, vec.count, sizeof (struct line), line_compare);
+
+ *lines = ln;
+ *lines_count = vec.count;
+
+ return 1;
+
+ fail:
+ vec.vec.alc += vec.vec.size;
+ vec.vec.size = 0;
+ backtrace_vector_release (state, &vec.vec, error_callback, data);
+ free_line_header (state, hdr, error_callback, data);
+ *lines = (struct line *) (uintptr_t) -1;
+ *lines_count = 0;
+ return 0;
+}
+
+/* Read the name of a function from a DIE referenced by a
+ DW_AT_abstract_origin or DW_AT_specification tag. OFFSET is within
+ the same compilation unit. */
+
+static const char *
+read_referenced_name (struct dwarf_data *ddata, struct unit *u,
+ uint64_t offset, backtrace_error_callback error_callback,
+ void *data)
+{
+ struct dwarf_buf unit_buf;
+ uint64_t code;
+ const struct abbrev *abbrev;
+ const char *ret;
+ size_t i;
+
+ /* OFFSET is from the start of the data for this compilation unit.
+ U->unit_data is the data, but it starts U->unit_data_offset bytes
+ from the beginning. */
+
+ if (offset < u->unit_data_offset
+ || offset - u->unit_data_offset >= u->unit_data_len)
+ {
+ error_callback (data,
+ "abstract origin or specification out of range",
+ 0);
+ return NULL;
+ }
+
+ offset -= u->unit_data_offset;
+
+ unit_buf.name = ".debug_info";
+ unit_buf.start = ddata->dwarf_info;
+ unit_buf.buf = u->unit_data + offset;
+ unit_buf.left = u->unit_data_len - offset;
+ unit_buf.is_bigendian = ddata->is_bigendian;
+ unit_buf.error_callback = error_callback;
+ unit_buf.data = data;
+ unit_buf.reported_underflow = 0;
+
+ code = read_uleb128 (&unit_buf);
+ if (code == 0)
+ {
+ dwarf_buf_error (&unit_buf, "invalid abstract origin or specification");
+ return NULL;
+ }
+
+ abbrev = lookup_abbrev (&u->abbrevs, code, error_callback, data);
+ if (abbrev == NULL)
+ return NULL;
+
+ ret = NULL;
+ for (i = 0; i < abbrev->num_attrs; ++i)
+ {
+ struct attr_val val;
+
+ if (!read_attribute (abbrev->attrs[i].form, &unit_buf,
+ u->is_dwarf64, u->version, u->addrsize,
+ ddata->dwarf_str, ddata->dwarf_str_size,
+ &val))
+ return NULL;
+
+ switch (abbrev->attrs[i].name)
+ {
+ case DW_AT_name:
+ /* We prefer the linkage name if get one. */
+ if (val.encoding == ATTR_VAL_STRING)
+ ret = val.u.string;
+ break;
+
+ case DW_AT_linkage_name:
+ case DW_AT_MIPS_linkage_name:
+ if (val.encoding == ATTR_VAL_STRING)
+ return val.u.string;
+ break;
+
+ case DW_AT_specification:
+ if (abbrev->attrs[i].form == DW_FORM_ref_addr
+ || abbrev->attrs[i].form == DW_FORM_ref_sig8)
+ {
+ /* This refers to a specification defined in some other
+ compilation unit. We can handle this case if we
+ must, but it's harder. */
+ break;
+ }
+ if (val.encoding == ATTR_VAL_UINT
+ || val.encoding == ATTR_VAL_REF_UNIT)
+ {
+ const char *name;
+
+ name = read_referenced_name (ddata, u, val.u.uint,
+ error_callback, data);
+ if (name != NULL)
+ ret = name;
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ return ret;
+}
+
+/* Add a single range to U that maps to function. Returns 1 on
+ success, 0 on error. */
+
+static int
+add_function_range (struct backtrace_state *state, struct function *function,
+ uint64_t lowpc, uint64_t highpc,
+ backtrace_error_callback error_callback,
+ void *data, struct function_vector *vec)
+{
+ struct function_addrs *p;
+
+ if (vec->count > 0)
+ {
+ p = (struct function_addrs *) vec->vec.base + vec->count - 1;
+ if ((lowpc == p->high || lowpc == p->high + 1)
+ && function == p->function)
+ {
+ if (highpc > p->high)
+ p->high = highpc;
+ return 1;
+ }
+ }
+
+ p = ((struct function_addrs *)
+ backtrace_vector_grow (state, sizeof (struct function_addrs),
+ error_callback, data, &vec->vec));
+ if (p == NULL)
+ return 0;
+
+ p->low = lowpc;
+ p->high = highpc;
+ p->function = function;
+ ++vec->count;
+ return 1;
+}
+
+/* Add PC ranges to U that map to FUNCTION. Returns 1 on success, 0
+ on error. */
+
+static int
+add_function_ranges (struct backtrace_state *state, struct dwarf_data *ddata,
+ struct unit *u, struct function *function,
+ uint64_t ranges, uint64_t base,
+ backtrace_error_callback error_callback, void *data,
+ struct function_vector *vec)
+{
+ struct dwarf_buf ranges_buf;
+
+ if (ranges >= ddata->dwarf_ranges_size)
+ {
+ error_callback (data, "function ranges offset out of range", 0);
+ return 0;
+ }
+
+ ranges_buf.name = ".debug_ranges";
+ ranges_buf.start = ddata->dwarf_ranges;
+ ranges_buf.buf = ddata->dwarf_ranges + ranges;
+ ranges_buf.left = ddata->dwarf_ranges_size - ranges;
+ ranges_buf.is_bigendian = ddata->is_bigendian;
+ ranges_buf.error_callback = error_callback;
+ ranges_buf.data = data;
+ ranges_buf.reported_underflow = 0;
+
+ while (1)
+ {
+ uint64_t low;
+ uint64_t high;
+
+ if (ranges_buf.reported_underflow)
+ return 0;
+
+ low = read_address (&ranges_buf, u->addrsize);
+ high = read_address (&ranges_buf, u->addrsize);
+
+ if (low == 0 && high == 0)
+ break;
+
+ if (is_highest_address (low, u->addrsize))
+ base = high;
+ else
+ {
+ if (!add_function_range (state, function, low + base, high + base,
+ error_callback, data, vec))
+ return 0;
+ }
+ }
+
+ if (ranges_buf.reported_underflow)
+ return 0;
+
+ return 1;
+}
+
+/* Read one entry plus all its children. Add function addresses to
+ VEC. Returns 1 on success, 0 on error. */
+
+static int
+read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
+ struct unit *u, uint64_t base, struct dwarf_buf *unit_buf,
+ const struct line_header *lhdr,
+ backtrace_error_callback error_callback, void *data,
+ struct function_vector *vec)
+{
+ while (unit_buf->left > 0)
+ {
+ uint64_t code;
+ const struct abbrev *abbrev;
+ int is_function;
+ struct function *function;
+ size_t i;
+ uint64_t lowpc;
+ int have_lowpc;
+ uint64_t highpc;
+ int have_highpc;
+ int highpc_is_relative;
+ uint64_t ranges;
+ int have_ranges;
+
+ code = read_uleb128 (unit_buf);
+ if (code == 0)
+ return 1;
+
+ abbrev = lookup_abbrev (&u->abbrevs, code, error_callback, data);
+ if (abbrev == NULL)
+ return 0;
+
+ is_function = (abbrev->tag == DW_TAG_subprogram
+ || abbrev->tag == DW_TAG_entry_point
+ || abbrev->tag == DW_TAG_inlined_subroutine);
+
+ function = NULL;
+ if (is_function)
+ {
+ function = ((struct function *)
+ backtrace_alloc (state, sizeof *function,
+ error_callback, data));
+ if (function == NULL)
+ return 0;
+ memset (function, 0, sizeof *function);
+ }
+
+ lowpc = 0;
+ have_lowpc = 0;
+ highpc = 0;
+ have_highpc = 0;
+ highpc_is_relative = 0;
+ ranges = 0;
+ have_ranges = 0;
+ for (i = 0; i < abbrev->num_attrs; ++i)
+ {
+ struct attr_val val;
+
+ if (!read_attribute (abbrev->attrs[i].form, unit_buf,
+ u->is_dwarf64, u->version, u->addrsize,
+ ddata->dwarf_str, ddata->dwarf_str_size,
+ &val))
+ return 0;
+
+ /* The compile unit sets the base address for any address
+ ranges in the function entries. */
+ if (abbrev->tag == DW_TAG_compile_unit
+ && abbrev->attrs[i].name == DW_AT_low_pc
+ && val.encoding == ATTR_VAL_ADDRESS)
+ base = val.u.uint;
+
+ if (is_function)
+ {
+ switch (abbrev->attrs[i].name)
+ {
+ case DW_AT_call_file:
+ if (val.encoding == ATTR_VAL_UINT)
+ {
+ if (val.u.uint == 0)
+ function->caller_filename = "";
+ else
+ {
+ if (val.u.uint - 1 >= lhdr->filenames_count)
+ {
+ dwarf_buf_error (unit_buf,
+ ("invalid file number in "
+ "DW_AT_call_file attribute"));
+ return 0;
+ }
+ function->caller_filename =
+ lhdr->filenames[val.u.uint - 1];
+ }
+ }
+ break;
+
+ case DW_AT_call_line:
+ if (val.encoding == ATTR_VAL_UINT)
+ function->caller_lineno = val.u.uint;
+ break;
+
+ case DW_AT_abstract_origin:
+ case DW_AT_specification:
+ if (abbrev->attrs[i].form == DW_FORM_ref_addr
+ || abbrev->attrs[i].form == DW_FORM_ref_sig8)
+ {
+ /* This refers to an abstract origin defined in
+ some other compilation unit. We can handle
+ this case if we must, but it's harder. */
+ break;
+ }
+ if (val.encoding == ATTR_VAL_UINT
+ || val.encoding == ATTR_VAL_REF_UNIT)
+ {
+ const char *name;
+
+ name = read_referenced_name (ddata, u, val.u.uint,
+ error_callback, data);
+ if (name != NULL)
+ function->name = name;
+ }
+ break;
+
+ case DW_AT_name:
+ if (val.encoding == ATTR_VAL_STRING)
+ {
+ /* Don't override a name we found in some other
+ way, as it will normally be more
+ useful--e.g., this name is normally not
+ mangled. */
+ if (function->name == NULL)
+ function->name = val.u.string;
+ }
+ break;
+
+ case DW_AT_linkage_name:
+ case DW_AT_MIPS_linkage_name:
+ if (val.encoding == ATTR_VAL_STRING)
+ function->name = val.u.string;
+ break;
+
+ case DW_AT_low_pc:
+ if (val.encoding == ATTR_VAL_ADDRESS)
+ {
+ lowpc = val.u.uint;
+ have_lowpc = 1;
+ }
+ break;
+
+ case DW_AT_high_pc:
+ if (val.encoding == ATTR_VAL_ADDRESS)
+ {
+ highpc = val.u.uint;
+ have_highpc = 1;
+ }
+ else if (val.encoding == ATTR_VAL_UINT)
+ {
+ highpc = val.u.uint;
+ have_highpc = 1;
+ highpc_is_relative = 1;
+ }
+ break;
+
+ case DW_AT_ranges:
+ if (val.encoding == ATTR_VAL_UINT
+ || val.encoding == ATTR_VAL_REF_SECTION)
+ {
+ ranges = val.u.uint;
+ have_ranges = 1;
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+ /* If we couldn't find a name for the function, we have no use
+ for it. */
+ if (is_function && function->name == NULL)
+ {
+ backtrace_free (state, function, sizeof *function,
+ error_callback, data);
+ is_function = 0;
+ }
+
+ if (is_function)
+ {
+ if (have_ranges)
+ {
+ if (!add_function_ranges (state, ddata, u, function, ranges,
+ base, error_callback, data, vec))
+ return 0;
+ }
+ else if (have_lowpc && have_highpc)
+ {
+ if (highpc_is_relative)
+ highpc += lowpc;
+ if (!add_function_range (state, function, lowpc, highpc,
+ error_callback, data, vec))
+ return 0;
+ }
+ else
+ {
+ backtrace_free (state, function, sizeof *function,
+ error_callback, data);
+ is_function = 0;
+ }
+ }
+
+ if (abbrev->has_children)
+ {
+ if (!is_function)
+ {
+ if (!read_function_entry (state, ddata, u, base, unit_buf, lhdr,
+ error_callback, data, vec))
+ return 0;
+ }
+ else
+ {
+ struct function_vector fvec;
+
+ /* Gather any information for inlined functions in
+ FVEC. */
+
+ memset (&fvec, 0, sizeof fvec);
+
+ if (!read_function_entry (state, ddata, u, base, unit_buf, lhdr,
+ error_callback, data, &fvec))
+ return 0;
+
+ if (fvec.count > 0)
+ {
+ struct function_addrs *faddrs;
+
+ if (!backtrace_vector_release (state, &fvec.vec,
+ error_callback, data))
+ return 0;
+
+ faddrs = (struct function_addrs *) fvec.vec.base;
+ qsort (faddrs, fvec.count,
+ sizeof (struct function_addrs),
+ function_addrs_compare);
+
+ function->function_addrs = faddrs;
+ function->function_addrs_count = fvec.count;
+ }
+ }
+ }
+ }
+
+ return 1;
+}
+
+/* Read function name information for a compilation unit. We look
+ through the whole unit looking for function tags. */
+
+static void
+read_function_info (struct backtrace_state *state, struct dwarf_data *ddata,
+ const struct line_header *lhdr,
+ backtrace_error_callback error_callback, void *data,
+ struct unit *u, struct function_vector *fvec,
+ struct function_addrs **ret_addrs,
+ size_t *ret_addrs_count)
+{
+ struct dwarf_buf unit_buf;
+ struct function_addrs *addrs;
+ size_t addrs_count;
+
+ unit_buf.name = ".debug_info";
+ unit_buf.start = ddata->dwarf_info;
+ unit_buf.buf = u->unit_data;
+ unit_buf.left = u->unit_data_len;
+ unit_buf.is_bigendian = ddata->is_bigendian;
+ unit_buf.error_callback = error_callback;
+ unit_buf.data = data;
+ unit_buf.reported_underflow = 0;
+
+ while (unit_buf.left > 0)
+ {
+ if (!read_function_entry (state, ddata, u, 0, &unit_buf, lhdr,
+ error_callback, data, fvec))
+ return;
+ }
+
+ if (fvec->count == 0)
+ return;
+
+ addrs = (struct function_addrs *) fvec->vec.base;
+ addrs_count = fvec->count;
+
+ /* Finish this list of addresses, but leave the remaining space in
+ the vector available for the next function unit. */
+ backtrace_vector_finish (state, &fvec->vec);
+ fvec->count = 0;
+
+ qsort (addrs, addrs_count, sizeof (struct function_addrs),
+ function_addrs_compare);
+
+ *ret_addrs = addrs;
+ *ret_addrs_count = addrs_count;
+}
+
+/* See if PC is inlined in FUNCTION. If it is, print out the inlined
+ information, and update FILENAME and LINENO for the caller.
+ Returns whatever CALLBACK returns, or 0 to keep going. */
+
+static int
+report_inlined_functions (uintptr_t pc, struct function *function,
+ backtrace_full_callback callback, void *data,
+ const char **filename, int *lineno)
+{
+ struct function_addrs *function_addrs;
+ struct function *inlined;
+ int ret;
+
+ if (function->function_addrs_count == 0)
+ return 0;
+
+ function_addrs = ((struct function_addrs *)
+ bsearch (&pc, function->function_addrs,
+ function->function_addrs_count,
+ sizeof (struct function_addrs),
+ function_addrs_search));
+ if (function_addrs == NULL)
+ return 0;
+
+ while (((size_t) (function_addrs - function->function_addrs) + 1
+ < function->function_addrs_count)
+ && pc >= (function_addrs + 1)->low
+ && pc < (function_addrs + 1)->high)
+ ++function_addrs;
+
+ /* We found an inlined call. */
+
+ inlined = function_addrs->function;
+
+ /* Report any calls inlined into this one. */
+ ret = report_inlined_functions (pc, inlined, callback, data,
+ filename, lineno);
+ if (ret != 0)
+ return ret;
+
+ /* Report this inlined call. */
+ ret = callback (data, pc, *filename, *lineno, inlined->name);
+ if (ret != 0)
+ return ret;
+
+ /* Our caller will report the caller of the inlined function; tell
+ it the appropriate filename and line number. */
+ *filename = inlined->caller_filename;
+ *lineno = inlined->caller_lineno;
+
+ return 0;
+}
+
+/* Return the file/line information for a PC using the DWARF mapping
+ we built earlier. */
+
+static int
+dwarf_fileline (struct backtrace_state *state, uintptr_t pc,
+ backtrace_full_callback callback,
+ backtrace_error_callback error_callback, void *data)
+{
+ struct dwarf_data *ddata;
+ struct unit_addrs *entry;
+ struct unit *u;
+ int new_data;
+ struct line *lines;
+ struct line *ln;
+ struct function_addrs *function_addrs;
+ struct function *function;
+ const char *filename;
+ int lineno;
+ int ret;
+
+ ddata = (struct dwarf_data *) state->fileline_data;
+
+ /* Find an address range that includes PC. */
+ entry = bsearch (&pc, ddata->addrs, ddata->addrs_count,
+ sizeof (struct unit_addrs), unit_addrs_search);
+
+ if (entry == NULL)
+ return callback (data, pc, NULL, 0, NULL);
+
+ /* If there are multiple ranges that contain PC, use the last one,
+ in order to produce predictable results. If we assume that all
+ ranges are properly nested, then the last range will be the
+ smallest one. */
+ while ((size_t) (entry - ddata->addrs) + 1 < ddata->addrs_count
+ && pc >= (entry + 1)->low
+ && pc < (entry + 1)->high)
+ ++entry;
+
+ /* We need the lines, lines_count, function_addrs,
+ function_addrs_count fields of u. If they are not set, we need
+ to set them. When running in threaded mode, we need to allow for
+ the possibility that some other thread is setting them
+ simultaneously. */
+
+ u = entry->u;
+ lines = u->lines;
+
+ /* Skip units with no useful line number information by walking
+ backward. Useless line number information is marked by setting
+ lines == -1. */
+ while (entry > ddata->addrs
+ && pc >= (entry - 1)->low
+ && pc < (entry - 1)->high)
+ {
+ if (state->threaded)
+ {
+ /* Use __sync_bool_compare_and_swap to do a
+ load-acquire. */
+ while (!__sync_bool_compare_and_swap (&u->lines, lines, lines))
+ lines = u->lines;
+ }
+
+ if (lines != (struct line *) (uintptr_t) -1)
+ break;
+
+ --entry;
+
+ u = entry->u;
+ lines = u->lines;
+ }
+
+ /* Do a load-acquire of u->lines. */
+ if (state->threaded)
+ {
+ /* Use __sync_bool_compare_and_swap to do an atomic load. */
+ while (!__sync_bool_compare_and_swap (&u->lines, lines, lines))
+ lines = u->lines;
+ }
+
+ new_data = 0;
+ if (lines == NULL)
+ {
+ size_t function_addrs_count;
+ struct line_header lhdr;
+ size_t count;
+
+ /* We have never read the line information for this unit. Read
+ it now. */
+
+ function_addrs = NULL;
+ function_addrs_count = 0;
+ if (read_line_info (state, ddata, error_callback, data, entry->u, &lhdr,
+ &lines, &count))
+ {
+ read_function_info (state, ddata, &lhdr, error_callback, data,
+ entry->u, &ddata->fvec, &function_addrs,
+ &function_addrs_count);
+ free_line_header (state, &lhdr, error_callback, data);
+ new_data = 1;
+ }
+
+ /* Atomically store the information we just read into the unit.
+ If another thread is simultaneously writing, it presumably
+ read the same information, and we don't care which one we
+ wind up with; we just leak the other one. We do have to
+ write the lines field last, so that the acquire-loads above
+ ensure that the other fields are set. */
+
+ if (!state->threaded)
+ {
+ u->lines_count = count;
+ u->function_addrs = function_addrs;
+ u->function_addrs_count = function_addrs_count;
+ u->lines = lines;
+ }
+ else
+ {
+ __sync_bool_compare_and_swap (&u->lines_count, 0, count);
+ __sync_bool_compare_and_swap (&u->function_addrs, NULL,
+ function_addrs);
+ __sync_bool_compare_and_swap (&u->function_addrs_count, 0,
+ function_addrs_count);
+ __sync_bool_compare_and_swap (&u->lines, NULL, lines);
+ }
+ }
+
+ /* Now all fields of U have been initialized. */
+
+ if (lines == (struct line *) (uintptr_t) -1)
+ {
+ /* If reading the line number information failed in some way,
+ try again to see if there is a better compilation unit for
+ this PC. */
+ if (new_data)
+ dwarf_fileline (state, pc, callback, error_callback, data);
+ return callback (data, pc, NULL, 0, NULL);
+ }
+
+ /* Search for PC within this unit. */
+
+ ln = (struct line *) bsearch (&pc, lines, entry->u->lines_count,
+ sizeof (struct line), line_search);
+ if (ln == NULL)
+ {
+ error_callback (data, "inconsistent DWARF line number info", 0);
+ return 0;
+ }
+
+ /* Search for function name within this unit. */
+
+ if (entry->u->function_addrs_count == 0)
+ return callback (data, pc, ln->filename, ln->lineno, NULL);
+
+ function_addrs = ((struct function_addrs *)
+ bsearch (&pc, entry->u->function_addrs,
+ entry->u->function_addrs_count,
+ sizeof (struct function_addrs),
+ function_addrs_search));
+ if (function_addrs == NULL)
+ return callback (data, pc, ln->filename, ln->lineno, NULL);
+
+ /* If there are multiple function ranges that contain PC, use the
+ last one, in order to produce predictable results. */
+
+ while (((size_t) (function_addrs - entry->u->function_addrs + 1)
+ < entry->u->function_addrs_count)
+ && pc >= (function_addrs + 1)->low
+ && pc < (function_addrs + 1)->high)
+ ++function_addrs;
+
+ function = function_addrs->function;
+
+ filename = ln->filename;
+ lineno = ln->lineno;
+
+ ret = report_inlined_functions (pc, function, callback, data,
+ &filename, &lineno);
+ if (ret != 0)
+ return ret;
+
+ return callback (data, pc, filename, lineno, function->name);
+}
+
+/* Build our data structures from the .debug_info and .debug_line
+ sections. Set *FILELINE_FN and *FILELINE_DATA. Return 1 on
+ success, 0 on failure. */
+
+int
+backtrace_dwarf_initialize (struct backtrace_state *state,
+ const unsigned char *dwarf_info,
+ size_t dwarf_info_size,
+ const unsigned char *dwarf_line,
+ size_t dwarf_line_size,
+ const unsigned char *dwarf_abbrev,
+ size_t dwarf_abbrev_size,
+ const unsigned char *dwarf_ranges,
+ size_t dwarf_ranges_size,
+ const unsigned char *dwarf_str,
+ size_t dwarf_str_size,
+ int is_bigendian,
+ backtrace_error_callback error_callback,
+ void *data, fileline *fileline_fn)
+{
+ struct unit_addrs_vector addrs_vec;
+ struct unit_addrs *addrs;
+ size_t addrs_count;
+ struct dwarf_data *fdata;
+
+ if (!build_address_map (state, dwarf_info, dwarf_info_size, dwarf_abbrev,
+ dwarf_abbrev_size, dwarf_ranges, dwarf_ranges_size,
+ dwarf_str, dwarf_str_size, is_bigendian,
+ error_callback, data, &addrs_vec))
+ return 0;
+
+ if (!backtrace_vector_release (state, &addrs_vec.vec, error_callback, data))
+ return 0;
+ addrs = (struct unit_addrs *) addrs_vec.vec.base;
+ addrs_count = addrs_vec.count;
+ qsort (addrs, addrs_count, sizeof (struct unit_addrs), unit_addrs_compare);
+
+ fdata = ((struct dwarf_data *)
+ backtrace_alloc (state, sizeof (struct dwarf_data),
+ error_callback, data));
+ if (fdata == NULL)
+ return 0;
+
+ fdata->addrs = addrs;
+ fdata->addrs_count = addrs_count;
+ fdata->dwarf_info = dwarf_info;
+ fdata->dwarf_info_size = dwarf_info_size;
+ fdata->dwarf_line = dwarf_line;
+ fdata->dwarf_line_size = dwarf_line_size;
+ fdata->dwarf_ranges = dwarf_ranges;
+ fdata->dwarf_ranges_size = dwarf_ranges_size;
+ fdata->dwarf_str = dwarf_str;
+ fdata->dwarf_str_size = dwarf_str_size;
+ fdata->is_bigendian = is_bigendian;
+ memset (&fdata->fvec, 0, sizeof fdata->fvec);
+
+ state->fileline_data = fdata;
+
+ *fileline_fn = dwarf_fileline;
+
+ return 1;
+}
diff --git a/libbacktrace/elf.c b/libbacktrace/elf.c
new file mode 100644
index 000000000..0c0c8eb62
--- /dev/null
+++ b/libbacktrace/elf.c
@@ -0,0 +1,688 @@
+/* elf.c -- Get debug data from an ELF file for backtraces.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* The configure script must tell us whether we are 32-bit or 64-bit
+ ELF. We could make this code test and support either possibility,
+ but there is no point. This code only works for the currently
+ running executable, which means that we know the ELF mode at
+ configure mode. */
+
+#if BACKTRACE_ELF_SIZE != 32 && BACKTRACE_ELF_SIZE != 64
+#error "Unknown BACKTRACE_ELF_SIZE"
+#endif
+
+/* Basic types. */
+
+typedef uint16_t Elf_Half;
+typedef uint32_t Elf_Word;
+typedef int32_t Elf_Sword;
+
+#if BACKTRACE_ELF_SIZE == 32
+
+typedef uint32_t Elf_Addr;
+typedef uint32_t Elf_Off;
+
+typedef uint32_t Elf_WXword;
+
+#else
+
+typedef uint64_t Elf_Addr;
+typedef uint64_t Elf_Off;
+typedef uint64_t Elf_Xword;
+typedef int64_t Elf_Sxword;
+
+typedef uint64_t Elf_WXword;
+
+#endif
+
+/* Data structures and associated constants. */
+
+#define EI_NIDENT 16
+
+typedef struct {
+ unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
+ Elf_Half e_type; /* Identifies object file type */
+ Elf_Half e_machine; /* Specifies required architecture */
+ Elf_Word e_version; /* Identifies object file version */
+ Elf_Addr e_entry; /* Entry point virtual address */
+ Elf_Off e_phoff; /* Program header table file offset */
+ Elf_Off e_shoff; /* Section header table file offset */
+ Elf_Word e_flags; /* Processor-specific flags */
+ Elf_Half e_ehsize; /* ELF header size in bytes */
+ Elf_Half e_phentsize; /* Program header table entry size */
+ Elf_Half e_phnum; /* Program header table entry count */
+ Elf_Half e_shentsize; /* Section header table entry size */
+ Elf_Half e_shnum; /* Section header table entry count */
+ Elf_Half e_shstrndx; /* Section header string table index */
+} Elf_Ehdr;
+
+#define EI_MAG0 0
+#define EI_MAG1 1
+#define EI_MAG2 2
+#define EI_MAG3 3
+#define EI_CLASS 4
+#define EI_DATA 5
+#define EI_VERSION 6
+
+#define ELFMAG0 0x7f
+#define ELFMAG1 'E'
+#define ELFMAG2 'L'
+#define ELFMAG3 'F'
+
+#define ELFCLASS32 1
+#define ELFCLASS64 2
+
+#define ELFDATA2LSB 1
+#define ELFDATA2MSB 2
+
+#define EV_CURRENT 1
+
+typedef struct {
+ Elf_Word sh_name; /* Section name, index in string tbl */
+ Elf_Word sh_type; /* Type of section */
+ Elf_WXword sh_flags; /* Miscellaneous section attributes */
+ Elf_Addr sh_addr; /* Section virtual addr at execution */
+ Elf_Off sh_offset; /* Section file offset */
+ Elf_WXword sh_size; /* Size of section in bytes */
+ Elf_Word sh_link; /* Index of another section */
+ Elf_Word sh_info; /* Additional section information */
+ Elf_WXword sh_addralign; /* Section alignment */
+ Elf_WXword sh_entsize; /* Entry size if section holds table */
+} Elf_Shdr;
+
+#define SHN_LORESERVE 0xFF00 /* Begin range of reserved indices */
+#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */
+
+#define SHT_SYMTAB 2
+#define SHT_STRTAB 3
+#define SHT_DYNSYM 11
+
+#if BACKTRACE_ELF_SIZE == 32
+
+typedef struct
+{
+ Elf_Word st_name; /* Symbol name, index in string tbl */
+ Elf_Addr st_value; /* Symbol value */
+ Elf_Word st_size; /* Symbol size */
+ unsigned char st_info; /* Symbol binding and type */
+ unsigned char st_other; /* Visibility and other data */
+ Elf_Half st_shndx; /* Symbol section index */
+} Elf_Sym;
+
+#else /* BACKTRACE_ELF_SIZE != 32 */
+
+typedef struct
+{
+ Elf_Word st_name; /* Symbol name, index in string tbl */
+ unsigned char st_info; /* Symbol binding and type */
+ unsigned char st_other; /* Visibility and other data */
+ Elf_Half st_shndx; /* Symbol section index */
+ Elf_Addr st_value; /* Symbol value */
+ Elf_Xword st_size; /* Symbol size */
+} Elf_Sym;
+
+#endif /* BACKTRACE_ELF_SIZE != 32 */
+
+#define STT_FUNC 2
+
+/* An index of ELF sections we care about. */
+
+enum debug_section
+{
+ DEBUG_INFO,
+ DEBUG_LINE,
+ DEBUG_ABBREV,
+ DEBUG_RANGES,
+ DEBUG_STR,
+ DEBUG_MAX
+};
+
+/* Names of sections, indexed by enum elf_section. */
+
+static const char * const debug_section_names[DEBUG_MAX] =
+{
+ ".debug_info",
+ ".debug_line",
+ ".debug_abbrev",
+ ".debug_ranges",
+ ".debug_str"
+};
+
+/* Information we gather for the sections we care about. */
+
+struct debug_section_info
+{
+ /* Section file offset. */
+ off_t offset;
+ /* Section size. */
+ size_t size;
+ /* Section contents, after read from file. */
+ const unsigned char *data;
+};
+
+/* Information we keep for an ELF symbol. */
+
+struct elf_symbol
+{
+ /* The name of the symbol. */
+ const char *name;
+ /* The address of the symbol. */
+ uintptr_t address;
+ /* The size of the symbol. */
+ size_t size;
+};
+
+/* Information to pass to elf_syminfo. */
+
+struct elf_syminfo_data
+{
+ /* The ELF symbols, sorted by address. */
+ struct elf_symbol *symbols;
+ /* The number of symbols. */
+ size_t count;
+};
+
+/* A dummy callback function used when we can't find any debug info. */
+
+static int
+elf_nodebug (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ uintptr_t pc ATTRIBUTE_UNUSED,
+ backtrace_full_callback callback ATTRIBUTE_UNUSED,
+ backtrace_error_callback error_callback, void *data)
+{
+ error_callback (data, "no debug info in ELF executable", -1);
+ return 0;
+}
+
+/* A dummy callback function used when we can't find a symbol
+ table. */
+
+static void
+elf_nosyms (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ uintptr_t pc ATTRIBUTE_UNUSED,
+ backtrace_syminfo_callback callback ATTRIBUTE_UNUSED,
+ backtrace_error_callback error_callback, void *data)
+{
+ error_callback (data, "no symbol table in ELF executable", -1);
+}
+
+/* Compare struct elf_symbol for qsort. */
+
+static int
+elf_symbol_compare (const void *v1, const void *v2)
+{
+ const struct elf_symbol *e1 = (const struct elf_symbol *) v1;
+ const struct elf_symbol *e2 = (const struct elf_symbol *) v2;
+
+ if (e1->address < e2->address)
+ return -1;
+ else if (e1->address > e2->address)
+ return 1;
+ else
+ return 0;
+}
+
+/* Compare a PC against an elf_symbol for bsearch. We allocate one
+ extra entry in the array so that this can look safely at the next
+ entry. */
+
+static int
+elf_symbol_search (const void *vkey, const void *ventry)
+{
+ const uintptr_t *key = (const uintptr_t *) vkey;
+ const struct elf_symbol *entry = (const struct elf_symbol *) ventry;
+ uintptr_t pc;
+
+ pc = *key;
+ if (pc < entry->address)
+ return -1;
+ else if (pc >= entry->address + entry->size)
+ return 1;
+ else
+ return 0;
+}
+
+/* Initialize the symbol table info for elf_syminfo. */
+
+static int
+elf_initialize_syminfo (struct backtrace_state *state,
+ const unsigned char *symtab_data, size_t symtab_size,
+ const unsigned char *strtab, size_t strtab_size,
+ backtrace_error_callback error_callback,
+ void *data, struct elf_syminfo_data *sdata)
+{
+ size_t sym_count;
+ const Elf_Sym *sym;
+ size_t elf_symbol_count;
+ size_t elf_symbol_size;
+ struct elf_symbol *elf_symbols;
+ size_t i;
+ unsigned int j;
+
+ sym_count = symtab_size / sizeof (Elf_Sym);
+
+ /* We only care about function symbols. Count them. */
+ sym = (const Elf_Sym *) symtab_data;
+ elf_symbol_count = 0;
+ for (i = 0; i < sym_count; ++i, ++sym)
+ {
+ if ((sym->st_info & 0xf) == STT_FUNC)
+ ++elf_symbol_count;
+ }
+
+ elf_symbol_size = elf_symbol_count * sizeof (struct elf_symbol);
+ elf_symbols = ((struct elf_symbol *)
+ backtrace_alloc (state, elf_symbol_size, error_callback,
+ data));
+ if (elf_symbols == NULL)
+ return 0;
+
+ sym = (const Elf_Sym *) symtab_data;
+ j = 0;
+ for (i = 0; i < sym_count; ++i, ++sym)
+ {
+ if ((sym->st_info & 0xf) != STT_FUNC)
+ continue;
+ if (sym->st_name >= strtab_size)
+ {
+ error_callback (data, "symbol string index out of range", 0);
+ backtrace_free (state, elf_symbols, elf_symbol_size, error_callback,
+ data);
+ return 0;
+ }
+ elf_symbols[j].name = (const char *) strtab + sym->st_name;
+ elf_symbols[j].address = sym->st_value;
+ elf_symbols[j].size = sym->st_size;
+ ++j;
+ }
+
+ qsort (elf_symbols, elf_symbol_count, sizeof (struct elf_symbol),
+ elf_symbol_compare);
+
+ sdata->symbols = elf_symbols;
+ sdata->count = elf_symbol_count;
+
+ return 1;
+}
+
+/* Return the symbol name and value for a PC. */
+
+static void
+elf_syminfo (struct backtrace_state *state, uintptr_t pc,
+ backtrace_syminfo_callback callback,
+ backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
+ void *data)
+{
+ struct elf_syminfo_data *edata;
+ struct elf_symbol *sym;
+
+ edata = (struct elf_syminfo_data *) state->syminfo_data;
+ sym = ((struct elf_symbol *)
+ bsearch (&pc, edata->symbols, edata->count,
+ sizeof (struct elf_symbol), elf_symbol_search));
+ if (sym == NULL)
+ callback (data, pc, NULL, 0);
+ else
+ callback (data, pc, sym->name, sym->address);
+}
+
+/* Initialize the backtrace data we need from an ELF executable. At
+ the ELF level, all we need to do is find the debug info
+ sections. */
+
+int
+backtrace_initialize (struct backtrace_state *state, int descriptor,
+ backtrace_error_callback error_callback,
+ void *data, fileline *fileline_fn)
+{
+ struct backtrace_view ehdr_view;
+ Elf_Ehdr ehdr;
+ off_t shoff;
+ unsigned int shnum;
+ unsigned int shstrndx;
+ struct backtrace_view shdrs_view;
+ int shdrs_view_valid;
+ const Elf_Shdr *shdrs;
+ const Elf_Shdr *shstrhdr;
+ size_t shstr_size;
+ off_t shstr_off;
+ struct backtrace_view names_view;
+ int names_view_valid;
+ const char *names;
+ unsigned int symtab_shndx;
+ unsigned int dynsym_shndx;
+ unsigned int i;
+ struct debug_section_info sections[DEBUG_MAX];
+ struct backtrace_view symtab_view;
+ int symtab_view_valid;
+ struct backtrace_view strtab_view;
+ int strtab_view_valid;
+ off_t min_offset;
+ off_t max_offset;
+ struct backtrace_view debug_view;
+ int debug_view_valid;
+
+ shdrs_view_valid = 0;
+ names_view_valid = 0;
+ symtab_view_valid = 0;
+ strtab_view_valid = 0;
+ debug_view_valid = 0;
+
+ if (!backtrace_get_view (state, descriptor, 0, sizeof ehdr, error_callback,
+ data, &ehdr_view))
+ goto fail;
+
+ memcpy (&ehdr, ehdr_view.data, sizeof ehdr);
+
+ backtrace_release_view (state, &ehdr_view, error_callback, data);
+
+ if (ehdr.e_ident[EI_MAG0] != ELFMAG0
+ || ehdr.e_ident[EI_MAG1] != ELFMAG1
+ || ehdr.e_ident[EI_MAG2] != ELFMAG2
+ || ehdr.e_ident[EI_MAG3] != ELFMAG3)
+ {
+ error_callback (data, "executable file is not ELF", 0);
+ goto fail;
+ }
+ if (ehdr.e_ident[EI_VERSION] != EV_CURRENT)
+ {
+ error_callback (data, "executable file is unrecognized ELF version", 0);
+ goto fail;
+ }
+
+#if BACKTRACE_ELF_SIZE == 32
+#define BACKTRACE_ELFCLASS ELFCLASS32
+#else
+#define BACKTRACE_ELFCLASS ELFCLASS64
+#endif
+
+ if (ehdr.e_ident[EI_CLASS] != BACKTRACE_ELFCLASS)
+ {
+ error_callback (data, "executable file is unexpected ELF class", 0);
+ goto fail;
+ }
+
+ if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB
+ && ehdr.e_ident[EI_DATA] != ELFDATA2MSB)
+ {
+ error_callback (data, "executable file has unknown endianness", 0);
+ goto fail;
+ }
+
+ shoff = ehdr.e_shoff;
+ shnum = ehdr.e_shnum;
+ shstrndx = ehdr.e_shstrndx;
+
+ if ((shnum == 0 || shstrndx == SHN_XINDEX)
+ && shoff != 0)
+ {
+ struct backtrace_view shdr_view;
+ const Elf_Shdr *shdr;
+
+ if (!backtrace_get_view (state, descriptor, shoff, sizeof shdr,
+ error_callback, data, &shdr_view))
+ goto fail;
+
+ shdr = (const Elf_Shdr *) shdr_view.data;
+
+ if (shnum == 0)
+ shnum = shdr->sh_size;
+
+ if (shstrndx == SHN_XINDEX)
+ {
+ shstrndx = shdr->sh_link;
+
+ /* Versions of the GNU binutils between 2.12 and 2.18 did
+ not handle objects with more than SHN_LORESERVE sections
+ correctly. All large section indexes were offset by
+ 0x100. There is more information at
+ http://sourceware.org/bugzilla/show_bug.cgi?id-5900 .
+ Fortunately these object files are easy to detect, as the
+ GNU binutils always put the section header string table
+ near the end of the list of sections. Thus if the
+ section header string table index is larger than the
+ number of sections, then we know we have to subtract
+ 0x100 to get the real section index. */
+ if (shstrndx >= shnum && shstrndx >= SHN_LORESERVE + 0x100)
+ shstrndx -= 0x100;
+ }
+
+ backtrace_release_view (state, &shdr_view, error_callback, data);
+ }
+
+ /* To translate PC to file/line when using DWARF, we need to find
+ the .debug_info and .debug_line sections. */
+
+ /* Read the section headers, skipping the first one. */
+
+ if (!backtrace_get_view (state, descriptor, shoff + sizeof (Elf_Shdr),
+ (shnum - 1) * sizeof (Elf_Shdr),
+ error_callback, data, &shdrs_view))
+ goto fail;
+ shdrs_view_valid = 1;
+ shdrs = (const Elf_Shdr *) shdrs_view.data;
+
+ /* Read the section names. */
+
+ shstrhdr = &shdrs[shstrndx - 1];
+ shstr_size = shstrhdr->sh_size;
+ shstr_off = shstrhdr->sh_offset;
+
+ if (!backtrace_get_view (state, descriptor, shstr_off, shstr_size,
+ error_callback, data, &names_view))
+ goto fail;
+ names_view_valid = 1;
+ names = (const char *) names_view.data;
+
+ symtab_shndx = 0;
+ dynsym_shndx = 0;
+
+ memset (sections, 0, sizeof sections);
+ for (i = 1; i < shnum; ++i)
+ {
+ const Elf_Shdr *shdr;
+ unsigned int sh_name;
+ const char *name;
+ int j;
+
+ shdr = &shdrs[i - 1];
+
+ if (shdr->sh_type == SHT_SYMTAB)
+ symtab_shndx = i;
+ else if (shdr->sh_type == SHT_DYNSYM)
+ dynsym_shndx = i;
+
+ sh_name = shdr->sh_name;
+ if (sh_name >= shstr_size)
+ {
+ error_callback (data, "ELF section name out of range", 0);
+ goto fail;
+ }
+
+ name = names + sh_name;
+
+ for (j = 0; j < (int) DEBUG_MAX; ++j)
+ {
+ if (strcmp (name, debug_section_names[j]) == 0)
+ {
+ sections[j].offset = shdr->sh_offset;
+ sections[j].size = shdr->sh_size;
+ break;
+ }
+ }
+ }
+
+ if (symtab_shndx == 0)
+ symtab_shndx = dynsym_shndx;
+ if (symtab_shndx == 0)
+ {
+ state->syminfo_fn = elf_nosyms;
+ state->syminfo_data = NULL;
+ }
+ else
+ {
+ const Elf_Shdr *symtab_shdr;
+ unsigned int strtab_shndx;
+ const Elf_Shdr *strtab_shdr;
+ struct elf_syminfo_data *sdata;
+
+ symtab_shdr = &shdrs[symtab_shndx - 1];
+ strtab_shndx = symtab_shdr->sh_link;
+ if (strtab_shndx >= shnum)
+ {
+ error_callback (data,
+ "ELF symbol table strtab link out of range", 0);
+ goto fail;
+ }
+ strtab_shdr = &shdrs[strtab_shndx - 1];
+
+ if (!backtrace_get_view (state, descriptor, symtab_shdr->sh_offset,
+ symtab_shdr->sh_size, error_callback, data,
+ &symtab_view))
+ goto fail;
+ symtab_view_valid = 1;
+
+ if (!backtrace_get_view (state, descriptor, strtab_shdr->sh_offset,
+ strtab_shdr->sh_size, error_callback, data,
+ &strtab_view))
+ goto fail;
+ strtab_view_valid = 1;
+
+ sdata = ((struct elf_syminfo_data *)
+ backtrace_alloc (state, sizeof *sdata, error_callback, data));
+ if (sdata == NULL)
+ goto fail;
+
+ if (!elf_initialize_syminfo (state,
+ symtab_view.data, symtab_shdr->sh_size,
+ strtab_view.data, strtab_shdr->sh_size,
+ error_callback, data, sdata))
+ {
+ backtrace_free (state, sdata, sizeof *sdata, error_callback, data);
+ goto fail;
+ }
+
+ /* We no longer need the symbol table, but we hold on to the
+ string table permanently. */
+ backtrace_release_view (state, &symtab_view, error_callback, data);
+
+ state->syminfo_fn = elf_syminfo;
+ state->syminfo_data = sdata;
+ }
+
+ /* FIXME: Need to handle compressed debug sections. */
+
+ backtrace_release_view (state, &shdrs_view, error_callback, data);
+ shdrs_view_valid = 0;
+ backtrace_release_view (state, &names_view, error_callback, data);
+ names_view_valid = 0;
+
+ /* Read all the debug sections in a single view, since they are
+ probably adjacent in the file. We never release this view. */
+
+ min_offset = 0;
+ max_offset = 0;
+ for (i = 0; i < (int) DEBUG_MAX; ++i)
+ {
+ off_t end;
+
+ if (min_offset == 0 || sections[i].offset < min_offset)
+ min_offset = sections[i].offset;
+ end = sections[i].offset + sections[i].size;
+ if (end > max_offset)
+ max_offset = end;
+ }
+ if (min_offset == 0 || max_offset == 0)
+ {
+ if (!backtrace_close (descriptor, error_callback, data))
+ goto fail;
+ state->fileline_fn = elf_nodebug;
+ state->fileline_data = NULL;
+ return 1;
+ }
+
+ if (!backtrace_get_view (state, descriptor, min_offset,
+ max_offset - min_offset,
+ error_callback, data, &debug_view))
+ goto fail;
+ debug_view_valid = 1;
+
+ /* We've read all we need from the executable. */
+ if (!backtrace_close (descriptor, error_callback, data))
+ goto fail;
+ descriptor = -1;
+
+ for (i = 0; i < (int) DEBUG_MAX; ++i)
+ sections[i].data = ((const unsigned char *) debug_view.data
+ + (sections[i].offset - min_offset));
+
+ if (!backtrace_dwarf_initialize (state,
+ sections[DEBUG_INFO].data,
+ sections[DEBUG_INFO].size,
+ sections[DEBUG_LINE].data,
+ sections[DEBUG_LINE].size,
+ sections[DEBUG_ABBREV].data,
+ sections[DEBUG_ABBREV].size,
+ sections[DEBUG_RANGES].data,
+ sections[DEBUG_RANGES].size,
+ sections[DEBUG_STR].data,
+ sections[DEBUG_STR].size,
+ ehdr.e_ident[EI_DATA] == ELFDATA2MSB,
+ error_callback, data, fileline_fn))
+ goto fail;
+
+ return 1;
+
+ fail:
+ if (shdrs_view_valid)
+ backtrace_release_view (state, &shdrs_view, error_callback, data);
+ if (names_view_valid)
+ backtrace_release_view (state, &names_view, error_callback, data);
+ if (symtab_view_valid)
+ backtrace_release_view (state, &symtab_view, error_callback, data);
+ if (strtab_view_valid)
+ backtrace_release_view (state, &strtab_view, error_callback, data);
+ if (debug_view_valid)
+ backtrace_release_view (state, &debug_view, error_callback, data);
+ if (descriptor != -1)
+ backtrace_close (descriptor, error_callback, data);
+ return 0;
+}
diff --git a/libbacktrace/fileline.c b/libbacktrace/fileline.c
new file mode 100644
index 000000000..6aeaf4015
--- /dev/null
+++ b/libbacktrace/fileline.c
@@ -0,0 +1,155 @@
+/* fileline.c -- Get file and line number information in a backtrace.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* Initialize the fileline information from the executable. Returns 1
+ on success, 0 on failure. */
+
+static int
+fileline_initialize (struct backtrace_state *state,
+ backtrace_error_callback error_callback, void *data)
+{
+ int failed;
+ fileline fileline_fn;
+ int descriptor;
+
+ failed = state->fileline_initialization_failed;
+
+ if (state->threaded)
+ {
+ /* Use __sync_bool_compare_and_swap to do an atomic load. */
+ while (!__sync_bool_compare_and_swap
+ (&state->fileline_initialization_failed, failed, failed))
+ failed = state->fileline_initialization_failed;
+ }
+
+ if (failed)
+ {
+ error_callback (data, "failed to read executable information", 0);
+ return 0;
+ }
+
+ fileline_fn = state->fileline_fn;
+ if (state->threaded)
+ {
+ while (!__sync_bool_compare_and_swap (&state->fileline_fn, fileline_fn,
+ fileline_fn))
+ fileline_fn = state->fileline_fn;
+ }
+ if (fileline_fn != NULL)
+ return 1;
+
+ /* We have not initialized the information. Do it now. */
+
+ if (state->filename != NULL)
+ descriptor = backtrace_open (state->filename, error_callback, data);
+ else
+ descriptor = backtrace_open ("/proc/self/exe", error_callback, data);
+ if (descriptor < 0)
+ failed = 1;
+
+ if (!failed)
+ {
+ if (!backtrace_initialize (state, descriptor, error_callback, data,
+ &fileline_fn))
+ failed = 1;
+ }
+
+ if (failed)
+ {
+ if (!state->threaded)
+ state->fileline_initialization_failed = 1;
+ else
+ __sync_bool_compare_and_swap (&state->fileline_initialization_failed,
+ 0, failed);
+ return 0;
+ }
+
+ if (!state->threaded)
+ state->fileline_fn = fileline_fn;
+ else
+ {
+ __sync_bool_compare_and_swap (&state->fileline_fn, NULL, fileline_fn);
+
+ /* At this point we know that state->fileline_fn is not NULL.
+ Either we stored our value, or some other thread stored its
+ value. If some other thread stored its value, we leak the
+ one we just initialized. Either way, state->fileline_fn is
+ initialized. The compare_and_swap is a full memory barrier,
+ so we should have full access to that value even if it was
+ created by another thread. */
+ }
+
+ return 1;
+}
+
+/* Given a PC, find the file name, line number, and function name. */
+
+int
+backtrace_pcinfo (struct backtrace_state *state, uintptr_t pc,
+ backtrace_full_callback callback,
+ backtrace_error_callback error_callback, void *data)
+{
+ if (!fileline_initialize (state, error_callback, data))
+ return 0;
+
+ if (state->fileline_initialization_failed)
+ return 0;
+
+ return state->fileline_fn (state, pc, callback, error_callback, data);
+}
+
+/* Given a PC, find the symbol for it, and its value. */
+
+int
+backtrace_syminfo (struct backtrace_state *state, uintptr_t pc,
+ backtrace_syminfo_callback callback,
+ backtrace_error_callback error_callback, void *data)
+{
+ if (!fileline_initialize (state, error_callback, data))
+ return 0;
+
+ if (state->fileline_initialization_failed)
+ return 0;
+
+ state->syminfo_fn (state, pc, callback, error_callback, data);
+ return 1;
+}
diff --git a/libbacktrace/filetype.awk b/libbacktrace/filetype.awk
new file mode 100644
index 000000000..0a656f75b
--- /dev/null
+++ b/libbacktrace/filetype.awk
@@ -0,0 +1,3 @@
+# An awk script to determine the type of a file.
+/\177ELF\001/ { if (NR == 1) { print "elf32"; exit } }
+/\177ELF\002/ { if (NR == 1) { print "elf64"; exit } }
diff --git a/libbacktrace/internal.h b/libbacktrace/internal.h
new file mode 100644
index 000000000..4a7407a61
--- /dev/null
+++ b/libbacktrace/internal.h
@@ -0,0 +1,235 @@
+/* internal.h -- Internal header file for stack backtrace library.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#ifndef BACKTRACE_INTERNAL_H
+#define BACKTRACE_INTERNAL_H
+
+/* We assume that <sys/types.h> and "backtrace.h" have already been
+ included. */
+
+#ifndef GCC_VERSION
+# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
+#endif
+
+#if (GCC_VERSION < 2007)
+# define __attribute__(x)
+#endif
+
+#ifndef ATTRIBUTE_UNUSED
+# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#endif
+
+#ifndef ATTRIBUTE_MALLOC
+# if (GCC_VERSION >= 2096)
+# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+# define ATTRIBUTE_MALLOC
+# endif
+#endif
+
+#ifndef HAVE_SYNC_FUNCTIONS
+
+/* Define out the sync functions. These should never be called if
+ they are not available. */
+
+#define __sync_bool_compare_and_swap(A, B, C) (abort(), 1)
+#define __sync_lock_test_and_set(A, B) (abort(), 0)
+#define __sync_lock_release(A) abort()
+
+#endif /* !defined(HAVE_SYNC_FUNCTIONS) */
+
+/* The type of the function that collects file/line information. This
+ is like backtrace_pcinfo. */
+
+typedef int (*fileline) (struct backtrace_state *state, uintptr_t pc,
+ backtrace_full_callback callback,
+ backtrace_error_callback error_callback, void *data);
+
+/* The type of the function that collects symbol information. This is
+ like backtrace_syminfo. */
+
+typedef void (*syminfo) (struct backtrace_state *state, uintptr_t pc,
+ backtrace_syminfo_callback callback,
+ backtrace_error_callback error_callback, void *data);
+
+/* What the backtrace state pointer points to. */
+
+struct backtrace_state
+{
+ /* The name of the executable. */
+ const char *filename;
+ /* Non-zero if threaded. */
+ int threaded;
+ /* The master lock for fileline_fn, fileline_data, syminfo_fn,
+ syminfo_data, fileline_initialization_failed and everything the
+ data pointers point to. */
+ void *lock;
+ /* The function that returns file/line information. */
+ fileline fileline_fn;
+ /* The data to pass to FILELINE_FN. */
+ void *fileline_data;
+ /* The function that returns symbol information. */
+ syminfo syminfo_fn;
+ /* The data to pass to SYMINFO_FN. */
+ void *syminfo_data;
+ /* Whether initializing the file/line information failed. */
+ int fileline_initialization_failed;
+ /* The lock for the freelist. */
+ int lock_alloc;
+ /* The freelist when using mmap. */
+ struct backtrace_freelist_struct *freelist;
+};
+
+/* Open a file for reading. Returns -1 on error. */
+extern int backtrace_open (const char *filename,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* A view of the contents of a file. This supports mmap when
+ available. A view will remain in memory even after backtrace_close
+ is called on the file descriptor from which the view was
+ obtained. */
+
+struct backtrace_view
+{
+ /* The data that the caller requested. */
+ const void *data;
+ /* The base of the view. */
+ void *base;
+ /* The total length of the view. */
+ size_t len;
+};
+
+/* Create a view of SIZE bytes from DESCRIPTOR at OFFSET. Store the
+ result in *VIEW. Returns 1 on success, 0 on error. */
+extern int backtrace_get_view (struct backtrace_state *state, int descriptor,
+ off_t offset, size_t size,
+ backtrace_error_callback error_callback,
+ void *data, struct backtrace_view *view);
+
+/* Release a view created by backtrace_get_view. */
+extern void backtrace_release_view (struct backtrace_state *state,
+ struct backtrace_view *view,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* Close a file opened by backtrace_open. Returns 1 on success, 0 on
+ error. */
+
+extern int backtrace_close (int descriptor,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* Allocate memory. This is like malloc. */
+
+extern void *backtrace_alloc (struct backtrace_state *state, size_t size,
+ backtrace_error_callback error_callback,
+ void *data) ATTRIBUTE_MALLOC;
+
+/* Free memory allocated by backtrace_alloc. */
+
+extern void backtrace_free (struct backtrace_state *state, void *mem,
+ size_t size,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* A growable vector of some struct. This is used for more efficient
+ allocation when we don't know the final size of some group of data
+ that we want to represent as an array. */
+
+struct backtrace_vector
+{
+ /* The base of the vector. */
+ void *base;
+ /* The number of bytes in the vector. */
+ size_t size;
+ /* The number of bytes available at the current allocation. */
+ size_t alc;
+};
+
+/* Grow VEC by SIZE bytes. Return a pointer to the newly allocated
+ bytes. Note that this may move the entire vector to a new memory
+ location. Returns NULL on failure. */
+
+extern void *backtrace_vector_grow (struct backtrace_state *state, size_t size,
+ backtrace_error_callback error_callback,
+ void *data,
+ struct backtrace_vector *vec);
+
+/* Finish the current allocation on VEC. Prepare to start a new
+ allocation. The finished allocation will never be freed. */
+
+extern void backtrace_vector_finish (struct backtrace_state *state,
+ struct backtrace_vector *vec);
+
+/* Release any extra space allocated for VEC. Returns 1 on success, 0
+ on failure. */
+
+extern int backtrace_vector_release (struct backtrace_state *state,
+ struct backtrace_vector *vec,
+ backtrace_error_callback error_callback,
+ void *data);
+
+/* Read initial debug data from a descriptor, and set the
+ fileline_data, syminfo_fn, and syminfo_data fields of STATE.
+ Return the fileln_fn field in *FILELN_FN--this is done this way so
+ that the synchronization code is only implemented once. This is
+ called after the descriptor has first been opened. It will close
+ the descriptor if it is no longer needed. Returns 1 on success, 0
+ on error. There will be multiple implementations of this function,
+ for different file formats. Each system will compile the
+ appropriate one. */
+
+extern int backtrace_initialize (struct backtrace_state *state,
+ int descriptor,
+ backtrace_error_callback error_callback,
+ void *data,
+ fileline *fileline_fn);
+
+/* Prepare to read file/line information from DWARF debug data. */
+
+extern int backtrace_dwarf_initialize (struct backtrace_state *state,
+ const unsigned char* dwarf_info,
+ size_t dwarf_info_size,
+ const unsigned char *dwarf_line,
+ size_t dwarf_line_size,
+ const unsigned char *dwarf_abbrev,
+ size_t dwarf_abbrev_size,
+ const unsigned char *dwarf_ranges,
+ size_t dwarf_range_size,
+ const unsigned char *dwarf_str,
+ size_t dwarf_str_size,
+ int is_bigendian,
+ backtrace_error_callback error_callback,
+ void *data, fileline *fileline_fn);
+
+#endif
diff --git a/libbacktrace/mmap.c b/libbacktrace/mmap.c
new file mode 100644
index 000000000..e07810d45
--- /dev/null
+++ b/libbacktrace/mmap.c
@@ -0,0 +1,236 @@
+/* mmap.c -- Memory allocation with mmap.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/mman.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* Memory allocation on systems that provide anonymous mmap. This
+ permits the backtrace functions to be invoked from a signal
+ handler, assuming that mmap is async-signal safe. */
+
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
+/* A list of free memory blocks. */
+
+struct backtrace_freelist_struct
+{
+ /* Next on list. */
+ struct backtrace_freelist_struct *next;
+ /* Size of this block, including this structure. */
+ size_t size;
+};
+
+/* Free memory allocated by backtrace_alloc. */
+
+static void
+backtrace_free_locked (struct backtrace_state *state, void *addr, size_t size)
+{
+ /* Just leak small blocks. We don't have to be perfect. */
+ if (size >= sizeof (struct backtrace_freelist_struct))
+ {
+ struct backtrace_freelist_struct *p;
+
+ p = (struct backtrace_freelist_struct *) addr;
+ p->next = state->freelist;
+ p->size = size;
+ state->freelist = p;
+ }
+}
+
+/* Allocate memory like malloc. */
+
+void *
+backtrace_alloc (struct backtrace_state *state,
+ size_t size, backtrace_error_callback error_callback,
+ void *data)
+{
+ void *ret;
+ struct backtrace_freelist_struct **pp;
+ size_t pagesize;
+ size_t asksize;
+ void *page;
+
+ ret = NULL;
+
+ /* If we can acquire the lock, then see if there is space on the
+ free list. If we can't acquire the lock, drop straight into
+ using mmap. __sync_lock_test_and_set returns the old state of
+ the lock, so we have acquired it if it returns 0. */
+
+ if (!__sync_lock_test_and_set (&state->lock_alloc, 1))
+ {
+ for (pp = &state->freelist; *pp != NULL; pp = &(*pp)->next)
+ {
+ if ((*pp)->size >= size)
+ {
+ struct backtrace_freelist_struct *p;
+
+ p = *pp;
+ *pp = p->next;
+
+ /* Round for alignment; we assume that no type we care about
+ is more than 8 bytes. */
+ size = (size + 7) & ~ (size_t) 7;
+ if (size < p->size)
+ backtrace_free_locked (state, (char *) p + size,
+ p->size - size);
+
+ ret = (void *) p;
+
+ break;
+ }
+ }
+
+ __sync_lock_release (&state->lock_alloc);
+ }
+
+ if (ret == NULL)
+ {
+ /* Allocate a new page. */
+
+ pagesize = getpagesize ();
+ asksize = (size + pagesize - 1) & ~ (pagesize - 1);
+ page = mmap (NULL, asksize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ if (page == NULL)
+ error_callback (data, "mmap", errno);
+ else
+ {
+ size = (size + 7) & ~ (size_t) 7;
+ if (size < asksize)
+ backtrace_free (state, (char *) page + size, asksize - size,
+ error_callback, data);
+
+ ret = page;
+ }
+ }
+
+ return ret;
+}
+
+/* Free memory allocated by backtrace_alloc. */
+
+void
+backtrace_free (struct backtrace_state *state, void *addr, size_t size,
+ backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED)
+{
+ /* If we can acquire the lock, add the new space to the free list.
+ If we can't acquire the lock, just leak the memory.
+ __sync_lock_test_and_set returns the old state of the lock, so we
+ have acquired it if it returns 0. */
+ if (!__sync_lock_test_and_set (&state->lock_alloc, 1))
+ {
+ backtrace_free_locked (state, addr, size);
+
+ __sync_lock_release (&state->lock_alloc);
+ }
+}
+
+/* Grow VEC by SIZE bytes. */
+
+void *
+backtrace_vector_grow (struct backtrace_state *state,size_t size,
+ backtrace_error_callback error_callback,
+ void *data, struct backtrace_vector *vec)
+{
+ void *ret;
+
+ if (size > vec->alc)
+ {
+ size_t pagesize;
+ size_t alc;
+ void *base;
+
+ pagesize = getpagesize ();
+ alc = vec->size + size;
+ if (vec->size == 0)
+ alc = 16 * size;
+ else if (alc < pagesize)
+ {
+ alc *= 2;
+ if (alc > pagesize)
+ alc = pagesize;
+ }
+ else
+ alc = (alc + pagesize - 1) & ~ (pagesize - 1);
+ base = backtrace_alloc (state, alc, error_callback, data);
+ if (base == NULL)
+ return NULL;
+ if (vec->base != NULL)
+ {
+ memcpy (base, vec->base, vec->size);
+ backtrace_free (state, vec->base, vec->alc, error_callback, data);
+ }
+ vec->base = base;
+ vec->alc = alc - vec->size;
+ }
+
+ ret = (char *) vec->base + vec->size;
+ vec->size += size;
+ vec->alc -= size;
+ return ret;
+}
+
+/* Finish the current allocation on VEC. */
+
+void
+backtrace_vector_finish (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ struct backtrace_vector *vec)
+{
+ vec->base = (char *) vec->base + vec->size;
+ vec->size = 0;
+}
+
+/* Release any extra space allocated for VEC. */
+
+int
+backtrace_vector_release (struct backtrace_state *state,
+ struct backtrace_vector *vec,
+ backtrace_error_callback error_callback,
+ void *data)
+{
+ backtrace_free (state, (char *) vec->base + vec->size, vec->alc,
+ error_callback, data);
+ vec->alc = 0;
+ return 1;
+}
diff --git a/libbacktrace/mmapio.c b/libbacktrace/mmapio.c
new file mode 100644
index 000000000..ca8d75de6
--- /dev/null
+++ b/libbacktrace/mmapio.c
@@ -0,0 +1,96 @@
+/* mmapio.c -- File views using mmap.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* This file implements file views and memory allocation when mmap is
+ available. */
+
+/* Create a view of SIZE bytes from DESCRIPTOR at OFFSET. */
+
+int
+backtrace_get_view (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ int descriptor, off_t offset, size_t size,
+ backtrace_error_callback error_callback,
+ void *data, struct backtrace_view *view)
+{
+ size_t pagesize;
+ unsigned int inpage;
+ off_t pageoff;
+ void *map;
+
+ pagesize = getpagesize ();
+ inpage = offset % pagesize;
+ pageoff = offset - inpage;
+
+ size += inpage;
+ size = (size + (pagesize - 1)) & ~ (pagesize - 1);
+
+ map = mmap (NULL, size, PROT_READ, MAP_PRIVATE, descriptor, pageoff);
+ if (map == MAP_FAILED)
+ {
+ error_callback (data, "mmap", errno);
+ return 0;
+ }
+
+ view->data = (char *) map + inpage;
+ view->base = map;
+ view->len = size;
+
+ return 1;
+}
+
+/* Release a view read by backtrace_get_view. */
+
+void
+backtrace_release_view (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ struct backtrace_view *view,
+ backtrace_error_callback error_callback,
+ void *data)
+{
+ union {
+ const void *cv;
+ void *v;
+ } const_cast;
+
+ const_cast.cv = view->base;
+ if (munmap (const_cast.v, view->len) < 0)
+ error_callback (data, "munmap", errno);
+}
diff --git a/libbacktrace/nounwind.c b/libbacktrace/nounwind.c
new file mode 100644
index 000000000..bf7635ce0
--- /dev/null
+++ b/libbacktrace/nounwind.c
@@ -0,0 +1,66 @@
+/* backtrace.c -- Entry point for stack backtrace library.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <sys/types.h>
+
+#include "backtrace.h"
+
+#include "internal.h"
+
+/* This source file is compiled if the unwind library is not
+ available. */
+
+int
+backtrace_full (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ int skip ATTRIBUTE_UNUSED,
+ backtrace_full_callback callback ATTRIBUTE_UNUSED,
+ backtrace_error_callback error_callback, void *data)
+{
+ error_callback (data,
+ "no stack trace because unwind library not available",
+ 0);
+ return 0;
+}
+
+int
+backtrace_simple (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ int skip ATTRIBUTE_UNUSED,
+ backtrace_simple_callback callback ATTRIBUTE_UNUSED,
+ backtrace_error_callback error_callback, void *data)
+{
+ error_callback (data,
+ "no stack trace because unwind library not available",
+ 0);
+ return 0;
+}
diff --git a/libbacktrace/posix.c b/libbacktrace/posix.c
new file mode 100644
index 000000000..01afc42b0
--- /dev/null
+++ b/libbacktrace/posix.c
@@ -0,0 +1,94 @@
+/* posix.c -- POSIX file I/O routines for the backtrace library.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
+#ifndef FD_CLOEXEC
+#define FD_CLOEXEC 1
+#endif
+
+/* Open a file for reading. */
+
+int
+backtrace_open (const char *filename, backtrace_error_callback error_callback,
+ void *data)
+{
+ int descriptor;
+
+ descriptor = open (filename, O_RDONLY | O_BINARY | O_CLOEXEC);
+ if (descriptor < 0)
+ {
+ error_callback (data, filename, errno);
+ return -1;
+ }
+
+#ifdef HAVE_FCNTL
+ /* Set FD_CLOEXEC just in case the kernel does not support
+ O_CLOEXEC. It doesn't matter if this fails for some reason.
+ FIXME: At some point it should be safe to only do this if
+ O_CLOEXEC == 0. */
+ fcntl (descriptor, F_SETFD, FD_CLOEXEC);
+#endif
+
+ return descriptor;
+}
+
+/* Close DESCRIPTOR. */
+
+int
+backtrace_close (int descriptor, backtrace_error_callback error_callback,
+ void *data)
+{
+ if (close (descriptor) < 0)
+ {
+ error_callback (data, "close", errno);
+ return 0;
+ }
+ return 1;
+}
diff --git a/libbacktrace/print.c b/libbacktrace/print.c
new file mode 100644
index 000000000..2d9d76aeb
--- /dev/null
+++ b/libbacktrace/print.c
@@ -0,0 +1,94 @@
+/* print.c -- Print the current backtrace.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* Passed to callbacks. */
+
+struct print_data
+{
+ struct backtrace_state *state;
+ FILE *f;
+};
+
+/* Print one level of a backtrace. */
+
+static int
+print_callback (void *data, uintptr_t pc, const char *filename, int lineno,
+ const char *function)
+{
+ struct print_data *pdata = (struct print_data *) data;
+
+ fprintf (pdata->f, "0x%lx %s\n\t%s:%d\n",
+ (unsigned long) pc,
+ function == NULL ? "???" : function,
+ filename == NULL ? "???" : filename,
+ lineno);
+ return 0;
+}
+
+/* Print errors to stderr. */
+
+static void
+error_callback (void *data, const char *msg, int errnum)
+{
+ struct print_data *pdata = (struct print_data *) data;
+ const char *name;
+
+ name = pdata->state->filename;
+ if (name == NULL)
+ name = "/proc/self/exe";
+ fprintf (stderr, "%s: libbacktrace: %s", name, msg);
+ if (errnum > 0)
+ fprintf (stderr, ": %s", strerror (errnum));
+ fputc ('\n', stderr);
+}
+
+/* Print a backtrace. */
+
+void
+backtrace_print (struct backtrace_state *state, int skip, FILE *f)
+{
+ struct print_data data;
+
+ data.state = state;
+ data.f = f;
+ backtrace_full (state, skip + 1, print_callback, error_callback,
+ (void *) &data);
+}
diff --git a/libbacktrace/read.c b/libbacktrace/read.c
new file mode 100644
index 000000000..a1eac5d06
--- /dev/null
+++ b/libbacktrace/read.c
@@ -0,0 +1,96 @@
+/* read.c -- File views without mmap.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* This file implements file views when mmap is not available. */
+
+/* Create a view of SIZE bytes from DESCRIPTOR at OFFSET. */
+
+int
+backtrace_get_view (struct backtrace_state *state, int descriptor,
+ off_t offset, size_t size,
+ backtrace_error_callback error_callback,
+ void *data, struct backtrace_view *view)
+{
+ ssize_t got;
+
+ if (lseek (descriptor, offset, SEEK_SET) < 0)
+ {
+ error_callback (data, "lseek", errno);
+ return 0;
+ }
+
+ view->base = backtrace_alloc (state, size, error_callback, data);
+ if (view->base == NULL)
+ return 0;
+ view->data = view->base;
+ view->len = size;
+
+ got = read (descriptor, view->base, size);
+ if (got < 0)
+ {
+ error_callback (data, "read", errno);
+ free (view->base);
+ return 0;
+ }
+
+ if ((size_t) got < size)
+ {
+ error_callback (data, "file too short", 0);
+ free (view->base);
+ return 0;
+ }
+
+ return 1;
+}
+
+/* Release a view read by backtrace_get_view. */
+
+void
+backtrace_release_view (struct backtrace_state *state,
+ struct backtrace_view *view,
+ backtrace_error_callback error_callback,
+ void *data)
+{
+ backtrace_free (state, view->base, view->len, error_callback, data);
+ view->data = NULL;
+ view->base = NULL;
+}
diff --git a/libbacktrace/simple.c b/libbacktrace/simple.c
new file mode 100644
index 000000000..f4e598fd5
--- /dev/null
+++ b/libbacktrace/simple.c
@@ -0,0 +1,108 @@
+/* simple.c -- The backtrace_simple function.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include "unwind.h"
+#include "backtrace.h"
+
+/* The simple_backtrace routine. */
+
+/* Data passed through _Unwind_Backtrace. */
+
+struct backtrace_simple_data
+{
+ /* Number of frames to skip. */
+ int skip;
+ /* Library state. */
+ struct backtrace_state *state;
+ /* Callback routine. */
+ backtrace_simple_callback callback;
+ /* Error callback routine. */
+ backtrace_error_callback error_callback;
+ /* Data to pass to callback routine. */
+ void *data;
+ /* Value to return from backtrace. */
+ int ret;
+};
+
+/* Unwind library callback routine. This is passd to
+ _Unwind_Backtrace. */
+
+static _Unwind_Reason_Code
+simple_unwind (struct _Unwind_Context *context, void *vdata)
+{
+ struct backtrace_simple_data *bdata = (struct backtrace_simple_data *) vdata;
+ uintptr_t pc;
+ int ip_before_insn = 0;
+
+#ifdef HAVE_GETIPINFO
+ pc = _Unwind_GetIPInfo (context, &ip_before_insn);
+#else
+ pc = _Unwind_GetIP (context);
+#endif
+
+ if (bdata->skip > 0)
+ {
+ --bdata->skip;
+ return _URC_NO_REASON;
+ }
+
+ if (!ip_before_insn)
+ --pc;
+
+ bdata->ret = bdata->callback (bdata->data, pc);
+
+ if (bdata->ret != 0)
+ return _URC_END_OF_STACK;
+
+ return _URC_NO_REASON;
+}
+
+/* Get a simple stack backtrace. */
+
+int
+backtrace_simple (struct backtrace_state *state, int skip,
+ backtrace_simple_callback callback,
+ backtrace_error_callback error_callback, void *data)
+{
+ struct backtrace_simple_data bdata;
+
+ bdata.skip = skip + 1;
+ bdata.state = state;
+ bdata.callback = callback;
+ bdata.error_callback = error_callback;
+ bdata.data = data;
+ bdata.ret = 0;
+ _Unwind_Backtrace (simple_unwind, &bdata);
+ return bdata.ret;
+}
diff --git a/libbacktrace/state.c b/libbacktrace/state.c
new file mode 100644
index 000000000..203181e0f
--- /dev/null
+++ b/libbacktrace/state.c
@@ -0,0 +1,72 @@
+/* state.c -- Create the backtrace state.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <string.h>
+#include <sys/types.h>
+
+#include "backtrace.h"
+#include "backtrace-supported.h"
+#include "internal.h"
+
+/* Create the backtrace state. This will then be passed to all the
+ other routines. */
+
+struct backtrace_state *
+backtrace_create_state (const char *filename, int threaded,
+ backtrace_error_callback error_callback,
+ void *data)
+{
+ struct backtrace_state init_state;
+ struct backtrace_state *state;
+
+#ifndef HAVE_SYNC_FUNCTIONS
+ if (threaded)
+ {
+ error_callback (data, "backtrace library does not support threads", 0);
+ return NULL;
+ }
+#endif
+
+ memset (&init_state, 0, sizeof init_state);
+ init_state.filename = filename;
+ init_state.threaded = threaded;
+
+ state = ((struct backtrace_state *)
+ backtrace_alloc (&init_state, sizeof *state, error_callback, data));
+ if (state == NULL)
+ return NULL;
+ *state = init_state;
+
+ return state;
+}
diff --git a/libbacktrace/unknown.c b/libbacktrace/unknown.c
new file mode 100644
index 000000000..fab5867d8
--- /dev/null
+++ b/libbacktrace/unknown.c
@@ -0,0 +1,64 @@
+/* unknown.c -- used when backtrace configury does not know file format.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ (1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ (2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ (3) The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE. */
+
+#include "config.h"
+
+#include <sys/types.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* A trivial routine that always fails to find fileline data. */
+
+static int
+unknown_fileline (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ uintptr_t pc, backtrace_full_callback callback,
+ backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
+ void *data)
+
+{
+ return callback (data, pc, NULL, 0, NULL);
+}
+
+/* Initialize the backtrace data when we don't know how to read the
+ debug info. */
+
+int
+backtrace_initialize (struct backtrace_state *state ATTRIBUTE_UNUSED,
+ int descriptor ATTRIBUTE_UNUSED,
+ backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED, fileline *fileline_fn)
+{
+ state->fileline_data = NULL;
+ *fileline_fn = unknown_fileline;
+ return 1;
+}
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 7c11fdd0b..ab0e2ec3c 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,44 @@
+2012-09-19 Dehao Chen <dehao@google.com>
+
+ * include/line-map.h (MAX_SOURCE_LOCATION): New value.
+ (location_adhoc_data_fini): New.
+ (get_combined_adhoc_loc): New.
+ (get_data_from_adhoc_loc): New.
+ (get_location_from_adhoc_loc): New.
+ (location_adhoc_data_map): New.
+ (COMBINE_LOCATION_DATA): New.
+ (IS_ADHOC_LOC): New.
+ (expanded_location): New field.
+ (line_maps): New field.
+ * line-map.c (location_adhoc_data): New.
+ (location_adhoc_data_hash): New.
+ (location_adhoc_data_eq): New.
+ (location_adhoc_data_update): New.
+ (get_combined_adhoc_loc): New.
+ (get_data_from_adhoc_loc): New.
+ (get_location_from_adhoc_loc): New.
+ (location_adhoc_data_init): New.
+ (location_adhoc_data_fini): New.
+ (linemap_init): Initialize location_adhoc_data.
+ (linemap_lookup): Change to use new location.
+ (linemap_ordinary_map_lookup): Likewise.
+ (linemap_macro_map_lookup): Likewise.
+ (linemap_macro_map_loc_to_def_point): Likewise.
+ (linemap_macro_map_loc_unwind_toward_spel): Likewise.
+ (linemap_get_expansion_line): Likewise.
+ (linemap_get_expansion_filename): Likewise.
+ (linemap_location_in_system_header_p): Likewise.
+ (linemap_location_from_macro_expansion_p): Likewise.
+ (linemap_macro_loc_to_spelling_point): Likewise.
+ (linemap_macro_loc_to_def_point): Likewise.
+ (linemap_macro_loc_to_exp_point): Likewise.
+ (linemap_resolve_location): Likewise.
+ (linemap_unwind_toward_expansion): Likewise.
+ (linemap_unwind_to_first_non_reserved_loc): Likewise.
+ (linemap_expand_location): Likewise.
+ (linemap_dump_location): Likewise.
+ (linemap_line_start): Likewise.
+
2012-05-25 Dodji Seketeli <dodji@redhat.com>
PR preprocessor/53469
diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h
index 407ce4b02..86f8383dc 100644
--- a/libcpp/include/line-map.h
+++ b/libcpp/include/line-map.h
@@ -89,7 +89,7 @@ struct GTY(()) line_map_ordinary {
/* This is the highest possible source location encoded within an
ordinary or macro map. */
-#define MAX_SOURCE_LOCATION 0xFFFFFFFF
+#define MAX_SOURCE_LOCATION 0x7FFFFFFF
struct cpp_hashnode;
@@ -259,6 +259,31 @@ struct GTY(()) maps_info {
unsigned int cache;
};
+/* Data structure to associate an arbitrary data to a source location. */
+struct location_adhoc_data {
+ source_location locus;
+ void *data;
+};
+
+struct htab;
+
+/* The following data structure encodes a location with some adhoc data
+ and maps it to a new unsigned integer (called an adhoc location)
+ that replaces the original location to represent the mapping.
+
+ The new adhoc_loc uses the highest bit as the enabling bit, i.e. if the
+ highest bit is 1, then the number is adhoc_loc. Otherwise, it serves as
+ the original location. Once identified as the adhoc_loc, the lower 31
+ bits of the integer is used to index the location_adhoc_data array,
+ in which the locus and associated data is stored. */
+
+struct location_adhoc_data_map {
+ struct htab *htab;
+ source_location curr_loc;
+ struct location_adhoc_data *data;
+ unsigned int allocated;
+};
+
/* A set of chronological line_map structures. */
struct GTY(()) line_maps {
@@ -289,6 +314,8 @@ struct GTY(()) line_maps {
/* The allocators' function used to know the actual size it
allocated, for a certain allocation size requested. */
line_map_round_alloc_size_func round_alloc_size;
+
+ struct location_adhoc_data_map GTY((skip)) location_adhoc_data_map;
};
/* Returns the pointer to the memory region where information about
@@ -408,6 +435,17 @@ struct GTY(()) line_maps {
#define LINEMAPS_LAST_ALLOCATED_MACRO_MAP(SET) \
LINEMAPS_LAST_ALLOCATED_MAP (SET, true)
+extern void location_adhoc_data_fini (struct line_maps *);
+extern source_location get_combined_adhoc_loc (struct line_maps *,
+ source_location, void *);
+extern void *get_data_from_adhoc_loc (struct line_maps *, source_location);
+extern source_location get_location_from_adhoc_loc (struct line_maps *,
+ source_location);
+
+#define IS_ADHOC_LOC(LOC) (((LOC) & MAX_SOURCE_LOCATION) != (LOC))
+#define COMBINE_LOCATION_DATA(SET, LOC, BLOCK) \
+ get_combined_adhoc_loc ((SET), (LOC), (BLOCK))
+
/* Initialize a line map set. */
extern void linemap_init (struct line_maps *);
@@ -594,6 +632,8 @@ typedef struct
int column;
+ void *data;
+
/* In a system header?. */
bool sysp;
} expanded_location;
diff --git a/libcpp/line-map.c b/libcpp/line-map.c
index 7c4e38979..54da4bca8 100644
--- a/libcpp/line-map.c
+++ b/libcpp/line-map.c
@@ -25,6 +25,7 @@ along with this program; see the file COPYING3. If not see
#include "line-map.h"
#include "cpplib.h"
#include "internal.h"
+#include "hashtab.h"
static void trace_include (const struct line_maps *, const struct line_map *);
static const struct line_map * linemap_ordinary_map_lookup (struct line_maps *,
@@ -50,6 +51,120 @@ static source_location linemap_macro_loc_to_exp_point (struct line_maps *,
extern unsigned num_expanded_macros_counter;
extern unsigned num_macro_tokens_counter;
+/* Hash function for location_adhoc_data hashtable. */
+
+static hashval_t
+location_adhoc_data_hash (const void *l)
+{
+ const struct location_adhoc_data *lb =
+ (const struct location_adhoc_data *) l;
+ return (hashval_t) lb->locus + (size_t) &lb->data;
+}
+
+/* Compare function for location_adhoc_data hashtable. */
+
+static int
+location_adhoc_data_eq (const void *l1, const void *l2)
+{
+ const struct location_adhoc_data *lb1 =
+ (const struct location_adhoc_data *) l1;
+ const struct location_adhoc_data *lb2 =
+ (const struct location_adhoc_data *) l2;
+ return lb1->locus == lb2->locus && lb1->data == lb2->data;
+}
+
+/* Update the hashtable when location_adhoc_data is reallocated. */
+
+static int
+location_adhoc_data_update (void **slot, void *data)
+{
+ *((char **) slot) += *((long long *) data);
+ return 1;
+}
+
+/* Combine LOCUS and DATA to a combined adhoc loc. */
+
+source_location
+get_combined_adhoc_loc (struct line_maps *set,
+ source_location locus, void *data)
+{
+ struct location_adhoc_data lb;
+ struct location_adhoc_data **slot;
+
+ linemap_assert (data);
+
+ if (IS_ADHOC_LOC (locus))
+ locus =
+ set->location_adhoc_data_map.data[locus & MAX_SOURCE_LOCATION].locus;
+ if (locus == 0 && data == NULL)
+ return 0;
+ lb.locus = locus;
+ lb.data = data;
+ slot = (struct location_adhoc_data **)
+ htab_find_slot (set->location_adhoc_data_map.htab, &lb, INSERT);
+ if (*slot == NULL)
+ {
+ if (set->location_adhoc_data_map.curr_loc >=
+ set->location_adhoc_data_map.allocated)
+ {
+ char *orig_data = (char *) set->location_adhoc_data_map.data;
+ long long offset;
+ set->location_adhoc_data_map.allocated *= 2;
+ set->location_adhoc_data_map.data =
+ XRESIZEVEC (struct location_adhoc_data,
+ set->location_adhoc_data_map.data,
+ set->location_adhoc_data_map.allocated);
+ offset = (char *) (set->location_adhoc_data_map.data) - orig_data;
+ htab_traverse (set->location_adhoc_data_map.htab,
+ location_adhoc_data_update, &offset);
+ }
+ *slot = set->location_adhoc_data_map.data
+ + set->location_adhoc_data_map.curr_loc;
+ set->location_adhoc_data_map.data[
+ set->location_adhoc_data_map.curr_loc++] = lb;
+ }
+ return ((*slot) - set->location_adhoc_data_map.data) | 0x80000000;
+}
+
+/* Return the data for the adhoc loc. */
+
+void *
+get_data_from_adhoc_loc (struct line_maps *set, source_location loc)
+{
+ linemap_assert (IS_ADHOC_LOC (loc));
+ return set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].data;
+}
+
+/* Return the location for the adhoc loc. */
+
+source_location
+get_location_from_adhoc_loc (struct line_maps *set, source_location loc)
+{
+ linemap_assert (IS_ADHOC_LOC (loc));
+ return set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+}
+
+/* Initialize the location_adhoc_data structure. */
+
+static void
+location_adhoc_data_init (struct line_maps *set)
+{
+ set->location_adhoc_data_map.htab =
+ htab_create (100, location_adhoc_data_hash, location_adhoc_data_eq, NULL);
+ set->location_adhoc_data_map.curr_loc = 0;
+ set->location_adhoc_data_map.allocated = 100;
+ set->location_adhoc_data_map.data = XNEWVEC (struct location_adhoc_data, 100);
+}
+
+/* Finalize the location_adhoc_data structure. */
+void
+location_adhoc_data_fini (struct line_maps *set)
+{
+ set->location_adhoc_data_map.allocated = 0;
+ XDELETEVEC (set->location_adhoc_data_map.data);
+ htab_delete (set->location_adhoc_data_map.htab);
+}
+
/* Initialize a line map set. */
void
@@ -58,6 +173,7 @@ linemap_init (struct line_maps *set)
memset (set, 0, sizeof (struct line_maps));
set->highest_location = RESERVED_LOCATION_COUNT - 1;
set->highest_line = RESERVED_LOCATION_COUNT - 1;
+ location_adhoc_data_init (set);
}
/* Check for and warn about line_maps entered but not exited. */
@@ -408,12 +524,12 @@ linemap_line_start (struct line_maps *set, linenum_type to_line,
if (add_map)
{
int column_bits;
- if (max_column_hint > 100000 || highest > 0xC0000000)
+ if (max_column_hint > 100000 || highest > 0x60000000)
{
/* If the column number is ridiculous or we've allocated a huge
number of source_locations, give up on column numbers. */
max_column_hint = 0;
- if (highest >0xF0000000)
+ if (highest >0x70000000)
return 0;
column_bits = 0;
}
@@ -509,6 +625,8 @@ linemap_position_for_line_and_column (struct line_map *map,
const struct line_map*
linemap_lookup (struct line_maps *set, source_location line)
{
+ if (IS_ADHOC_LOC (line))
+ line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
if (linemap_location_from_macro_expansion_p (set, line))
return linemap_macro_map_lookup (set, line);
return linemap_ordinary_map_lookup (set, line);
@@ -525,6 +643,9 @@ linemap_ordinary_map_lookup (struct line_maps *set, source_location line)
unsigned int md, mn, mx;
const struct line_map *cached, *result;
+ if (IS_ADHOC_LOC (line))
+ line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
+
if (set == NULL || line < RESERVED_LOCATION_COUNT)
return NULL;
@@ -570,6 +691,9 @@ linemap_macro_map_lookup (struct line_maps *set, source_location line)
unsigned int md, mn, mx;
const struct line_map *cached, *result;
+ if (IS_ADHOC_LOC (line))
+ line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
+
linemap_assert (line >= LINEMAPS_MACRO_LOWEST_LOCATION (set));
if (set == NULL)
@@ -696,6 +820,10 @@ linemap_get_expansion_line (struct line_maps *set,
{
const struct line_map *map = NULL;
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[
+ location & MAX_SOURCE_LOCATION].locus;
+
if (location < RESERVED_LOCATION_COUNT)
return 0;
@@ -720,6 +848,10 @@ linemap_get_expansion_filename (struct line_maps *set,
{
const struct line_map *map = NULL;
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[
+ location & MAX_SOURCE_LOCATION].locus;
+
if (location < RESERVED_LOCATION_COUNT)
return NULL;
@@ -754,6 +886,10 @@ linemap_location_in_system_header_p (struct line_maps *set,
{
const struct line_map *map = NULL;
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[
+ location & MAX_SOURCE_LOCATION].locus;
+
if (location < RESERVED_LOCATION_COUNT)
return false;
@@ -793,6 +929,10 @@ bool
linemap_location_from_macro_expansion_p (struct line_maps *set,
source_location location)
{
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[
+ location & MAX_SOURCE_LOCATION].locus;
+
linemap_assert (location <= MAX_SOURCE_LOCATION
&& (set->highest_location
< LINEMAPS_MACRO_LOWEST_LOCATION (set)));
@@ -933,6 +1073,10 @@ linemap_macro_loc_to_spelling_point (struct line_maps *set,
{
struct line_map *map;
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[
+ location & MAX_SOURCE_LOCATION].locus;
+
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
while (true)
@@ -967,6 +1111,10 @@ linemap_macro_loc_to_def_point (struct line_maps *set,
{
struct line_map *map;
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[
+ location & MAX_SOURCE_LOCATION].locus;
+
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
while (true)
@@ -1005,6 +1153,10 @@ linemap_macro_loc_to_exp_point (struct line_maps *set,
{
struct line_map *map;
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[
+ location & MAX_SOURCE_LOCATION].locus;
+
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
while (true)
@@ -1074,6 +1226,9 @@ linemap_resolve_location (struct line_maps *set,
enum location_resolution_kind lrk,
const struct line_map **map)
{
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
if (loc < RESERVED_LOCATION_COUNT)
{
/* A reserved location wasn't encoded in a map. Let's return a
@@ -1121,6 +1276,9 @@ linemap_unwind_toward_expansion (struct line_maps *set,
source_location resolved_location;
const struct line_map *resolved_map;
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
resolved_location =
linemap_macro_map_loc_unwind_toward_spelling (*map, loc);
resolved_map = linemap_lookup (set, resolved_location);
@@ -1157,6 +1315,9 @@ linemap_unwind_to_first_non_reserved_loc (struct line_maps *set,
source_location resolved_loc;
const struct line_map *map0 = NULL, *map1 = NULL;
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
map0 = linemap_lookup (set, loc);
if (!linemap_macro_expansion_map_p (map0))
return loc;
@@ -1198,6 +1359,12 @@ linemap_expand_location (struct line_maps *set,
expanded_location xloc;
memset (&xloc, 0, sizeof (xloc));
+ if (IS_ADHOC_LOC (loc))
+ {
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+ xloc.data = set->location_adhoc_data_map.data[
+ loc & MAX_SOURCE_LOCATION].data;
+ }
if (loc < RESERVED_LOCATION_COUNT)
/* The location for this token wasn't generated from a line map.
@@ -1290,6 +1457,9 @@ linemap_dump_location (struct line_maps *set,
const char *path = "", *from = "";
int l = -1, c = -1, s = -1, e = -1;
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
if (loc == 0)
return;
diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog
index 543b04940..dc0d235be 100644
--- a/libcpp/po/ChangeLog
+++ b/libcpp/po/ChangeLog
@@ -1,3 +1,7 @@
+2012-09-19 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
2012-06-13 Joseph Myers <joseph@codesourcery.com>
* cpplib.pot: Regenerate.
diff --git a/libcpp/po/cpplib.pot b/libcpp/po/cpplib.pot
index cdc3ed7a8..2b637a758 100644
--- a/libcpp/po/cpplib.pot
+++ b/libcpp/po/cpplib.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
-"POT-Creation-Date: 2012-06-13 21:46+0000\n"
+"POT-Creation-Date: 2012-09-19 14:54+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -75,7 +75,7 @@ msgid "%.*s is not a valid universal character"
msgstr ""
#: charset.c:1056
-#: lex.c:1114
+#: lex.c:1117
msgid "'$' in identifier or number"
msgstr ""
@@ -314,102 +314,102 @@ msgstr ""
msgid "registering pragma with NULL handler"
msgstr ""
-#: directives.c:1434
+#: directives.c:1436
msgid "#pragma once in main file"
msgstr ""
-#: directives.c:1457
+#: directives.c:1459
msgid "invalid #pragma push_macro directive"
msgstr ""
-#: directives.c:1512
+#: directives.c:1514
msgid "invalid #pragma pop_macro directive"
msgstr ""
-#: directives.c:1567
+#: directives.c:1569
msgid "invalid #pragma GCC poison directive"
msgstr ""
-#: directives.c:1576
+#: directives.c:1578
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: directives.c:1595
+#: directives.c:1597
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: directives.c:1620
+#: directives.c:1622
#, c-format
msgid "cannot find source file %s"
msgstr ""
-#: directives.c:1624
+#: directives.c:1626
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: directives.c:1806
+#: directives.c:1808
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: directives.c:1927
+#: directives.c:1929
msgid "#else without #if"
msgstr ""
-#: directives.c:1932
+#: directives.c:1934
msgid "#else after #else"
msgstr ""
-#: directives.c:1934
-#: directives.c:1967
+#: directives.c:1936
+#: directives.c:1969
msgid "the conditional began here"
msgstr ""
-#: directives.c:1960
+#: directives.c:1962
msgid "#elif without #if"
msgstr ""
-#: directives.c:1965
+#: directives.c:1967
msgid "#elif after #else"
msgstr ""
-#: directives.c:2003
+#: directives.c:2005
msgid "#endif without #if"
msgstr ""
-#: directives.c:2083
+#: directives.c:2085
msgid "missing '(' after predicate"
msgstr ""
-#: directives.c:2098
+#: directives.c:2100
msgid "missing ')' to complete answer"
msgstr ""
-#: directives.c:2118
+#: directives.c:2120
msgid "predicate's answer is empty"
msgstr ""
-#: directives.c:2145
+#: directives.c:2147
msgid "assertion without predicate"
msgstr ""
-#: directives.c:2148
+#: directives.c:2150
msgid "predicate must be an identifier"
msgstr ""
-#: directives.c:2234
+#: directives.c:2236
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: directives.c:2525
+#: directives.c:2527
#, c-format
msgid "unterminated #%s"
msgstr ""
#: directives-only.c:222
-#: lex.c:2227
+#: lex.c:2230
#: traditional.c:163
msgid "unterminated comment"
msgstr ""
@@ -653,107 +653,107 @@ msgid ""
"the target requires %lu bits"
msgstr ""
-#: lex.c:908
+#: lex.c:911
msgid "backslash and newline separated by space"
msgstr ""
-#: lex.c:913
+#: lex.c:916
msgid "backslash-newline at end of file"
msgstr ""
-#: lex.c:929
+#: lex.c:932
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr ""
-#: lex.c:937
+#: lex.c:940
#, c-format
msgid "trigraph ??%c ignored, use -trigraphs to enable"
msgstr ""
-#: lex.c:986
+#: lex.c:989
msgid "\"/*\" within comment"
msgstr ""
-#: lex.c:1044
+#: lex.c:1047
#, c-format
msgid "%s in preprocessing directive"
msgstr ""
-#: lex.c:1053
+#: lex.c:1056
msgid "null character(s) ignored"
msgstr ""
-#: lex.c:1090
+#: lex.c:1093
#, c-format
msgid "`%.*s' is not in NFKC"
msgstr ""
-#: lex.c:1093
+#: lex.c:1096
#, c-format
msgid "`%.*s' is not in NFC"
msgstr ""
-#: lex.c:1161
-#: lex.c:1238
+#: lex.c:1164
+#: lex.c:1241
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
-#: lex.c:1169
-#: lex.c:1246
+#: lex.c:1172
+#: lex.c:1249
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
-#: lex.c:1175
-#: lex.c:1252
+#: lex.c:1178
+#: lex.c:1255
#, c-format
msgid "identifier \"%s\" is a special operator name in C++"
msgstr ""
-#: lex.c:1396
+#: lex.c:1399
msgid "raw string delimiter longer than 16 characters"
msgstr ""
-#: lex.c:1399
+#: lex.c:1402
#, c-format
msgid "invalid character '%c' in raw string delimiter"
msgstr ""
-#: lex.c:1522
-#: lex.c:1544
+#: lex.c:1525
+#: lex.c:1547
msgid "unterminated raw string"
msgstr ""
-#: lex.c:1568
-#: lex.c:1699
+#: lex.c:1571
+#: lex.c:1702
msgid ""
"invalid suffix on literal; C++11 requires a space between literal and "
"identifier"
msgstr ""
-#: lex.c:1679
+#: lex.c:1682
msgid "null character(s) preserved in literal"
msgstr ""
-#: lex.c:1682
+#: lex.c:1685
#, c-format
msgid "missing terminating %c character"
msgstr ""
-#: lex.c:2238
+#: lex.c:2241
msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
-#: lex.c:2240
+#: lex.c:2243
msgid "(this will be reported only once per input file)"
msgstr ""
-#: lex.c:2245
+#: lex.c:2248
msgid "multi-line comment"
msgstr ""
-#: lex.c:2565
+#: lex.c:2568
#, c-format
msgid "unspellable token %s"
msgstr ""
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 2045aac28..42308dba7 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-09-19 Mark Kettenis <kettenis@openbsd.org>
+
+ * config.host (hppa-*-openbsd*): New target.
+ * config/pa/t-openbsd: New file.
+
2012-09-15 Georg-Johann Lay <avr@gjlay.de>
PR target/54222
diff --git a/libgcc/config.host b/libgcc/config.host
index 056cb2301..f8e163b1a 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -512,6 +512,9 @@ hppa[12]*-*-hpux11*)
extra_parts="libgcc_stub.a"
md_unwind_header=pa/hpux-unwind.h
;;
+hppa*-*-openbsd*)
+ tmake_file="$tmake_file pa/t-openbsd"
+ ;;
i[34567]86-*-darwin*)
tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
tm_file="$tm_file i386/darwin-lib.h"
diff --git a/libgcc/config/pa/t-openbsd b/libgcc/config/pa/t-openbsd
new file mode 100644
index 000000000..8b99068ce
--- /dev/null
+++ b/libgcc/config/pa/t-openbsd
@@ -0,0 +1,9 @@
+#Plug millicode routines into libgcc.a We want these on both native and
+#cross compiles. We use the "64-bit" routines because the "32-bit" code
+#is broken for certain corner cases.
+LIB1ASMSRC = pa/milli64.S
+LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI _dyncall
+
+HOST_LIBGCC2_CFLAGS += -DELF=1 -DLINUX=1
+
+LIB2ADD = $(srcdir)/config/pa/fptr.c
diff --git a/libgo/Makefile.in b/libgo/Makefile.in
index 14ae2a54a..d8b689002 100644
--- a/libgo/Makefile.in
+++ b/libgo/Makefile.in
@@ -46,12 +46,10 @@ build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \
- $(srcdir)/../config.sub $(srcdir)/../depcomp \
- $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
- $(srcdir)/../missing $(srcdir)/../mkinstalldirs \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/config.h.in $(top_srcdir)/configure
+DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \
+ $(srcdir)/../depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
@@ -174,48 +172,6 @@ am__DEPENDENCIES_2 = bufio.lo bytes.lo bytes/index.lo crypto.lo \
libgo_la_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
-am__libgo_la_SOURCES_DIST = runtime/go-append.c runtime/go-assert.c \
- runtime/go-assert-interface.c \
- runtime/go-byte-array-to-string.c runtime/go-breakpoint.c \
- runtime/go-caller.c runtime/go-callers.c \
- runtime/go-can-convert-interface.c runtime/go-cgo.c \
- runtime/go-check-interface.c runtime/go-construct-map.c \
- runtime/go-convert-interface.c runtime/go-copy.c \
- runtime/go-defer.c runtime/go-deferred-recover.c \
- runtime/go-eface-compare.c runtime/go-eface-val-compare.c \
- runtime/go-getgoroot.c runtime/go-int-array-to-string.c \
- runtime/go-int-to-string.c runtime/go-interface-compare.c \
- runtime/go-interface-eface-compare.c \
- runtime/go-interface-val-compare.c runtime/go-make-slice.c \
- runtime/go-map-delete.c runtime/go-map-index.c \
- runtime/go-map-len.c runtime/go-map-range.c \
- runtime/go-matherr.c runtime/go-nanotime.c runtime/go-now.c \
- runtime/go-new-map.c runtime/go-new.c runtime/go-nosys.c \
- runtime/go-panic.c runtime/go-print.c runtime/go-recover.c \
- runtime/go-reflect-call.c runtime/go-reflect-map.c \
- runtime/go-rune.c runtime/go-runtime-error.c \
- runtime/go-setenv.c runtime/go-signal.c runtime/go-strcmp.c \
- runtime/go-string-to-byte-array.c \
- runtime/go-string-to-int-array.c runtime/go-strplus.c \
- runtime/go-strslice.c runtime/go-traceback.c \
- runtime/go-trampoline.c runtime/go-type-complex.c \
- runtime/go-type-eface.c runtime/go-type-error.c \
- runtime/go-type-float.c runtime/go-type-identity.c \
- runtime/go-type-interface.c runtime/go-type-string.c \
- runtime/go-typedesc-equal.c runtime/go-typestring.c \
- runtime/go-unsafe-new.c runtime/go-unsafe-newarray.c \
- runtime/go-unsafe-pointer.c runtime/go-unwind.c runtime/chan.c \
- runtime/cpuprof.c runtime/lock_sema.c runtime/thread-sema.c \
- runtime/lock_futex.c runtime/thread-linux.c runtime/mcache.c \
- runtime/mcentral.c runtime/mem_posix_memalign.c runtime/mem.c \
- runtime/mfinal.c runtime/mfixalloc.c runtime/mgc0.c \
- runtime/mheap.c runtime/msize.c runtime/print.c runtime/proc.c \
- runtime/runtime.c runtime/signal_unix.c runtime/thread.c \
- runtime/yield.c runtime/rtems-task-variable-add.c iface.c \
- malloc.c map.c mprof.c reflect.c runtime1.c sema.c sigqueue.c \
- string.c time.c runtime/getncpu-none.c runtime/getncpu-bsd.c \
- runtime/getncpu-solaris.c runtime/getncpu-irix.c \
- runtime/getncpu-linux.c
@LIBGO_IS_LINUX_FALSE@am__objects_1 = lock_sema.lo thread-sema.lo
@LIBGO_IS_LINUX_TRUE@am__objects_1 = lock_futex.lo thread-linux.lo
@HAVE_SYS_MMAN_H_FALSE@am__objects_2 = mem_posix_memalign.lo
@@ -275,7 +231,6 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libgobegin_a_SOURCES) $(libgo_la_SOURCES)
-DIST_SOURCES = $(libgobegin_a_SOURCES) $(am__libgo_la_SOURCES_DIST)
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
@@ -309,47 +264,10 @@ DATA = $(toolexeclibgo_DATA) $(toolexeclibgoarchive_DATA) \
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
- distdir dist dist-all distcheck
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = testsuite
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- { test ! -d "$(distdir)" \
- || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr "$(distdir)"; }; }
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
@@ -3971,182 +3889,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-lzma: distdir
- tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
- $(am__remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
- $(am__remove_distdir)
-
-dist-tarZ: distdir
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
-
-dist-shar: distdir
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
-
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lzma*) \
- lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @$(am__cd) '$(distuninstallcheck_dir)' \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) all-multi $(DATA) \
@@ -4317,18 +4059,16 @@ uninstall-am: uninstall-toolexeclibLIBRARIES \
all all-am all-multi am--refresh check check-am clean \
clean-generic clean-libtool clean-local clean-multi \
clean-toolexeclibLIBRARIES clean-toolexeclibLTLIBRARIES ctags \
- ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzma \
- dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
- distclean-compile distclean-generic distclean-hdr \
- distclean-libtool distclean-multi distclean-tags \
- distcleancheck distdir distuninstallcheck dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-multi install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- install-toolexeclibLIBRARIES install-toolexeclibLTLIBRARIES \
- install-toolexeclibgoDATA install-toolexeclibgoarchiveDATA \
+ ctags-recursive distclean distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-multi distclean-tags \
+ dvi dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-multi \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-toolexeclibLIBRARIES \
+ install-toolexeclibLTLIBRARIES install-toolexeclibgoDATA \
+ install-toolexeclibgoarchiveDATA \
install-toolexeclibgocompressDATA \
install-toolexeclibgocontainerDATA \
install-toolexeclibgocryptoDATA \
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 0c0dbdd46..a31acabb3 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -19,7 +19,7 @@ AM_ENABLE_MULTILIB(, ..)
AC_CANONICAL_SYSTEM
target_alias=${target_alias-$host_alias}
-AM_INIT_AUTOMAKE([1.9.3 no-define foreign -Wall])
+AM_INIT_AUTOMAKE([1.9.3 no-define foreign no-dist -Wall -Wno-portability])
AH_TEMPLATE(PACKAGE, [Name of package])
AH_TEMPLATE(VERSION, [Version number of package])
diff --git a/libgo/runtime/go-int-to-string.c b/libgo/runtime/go-int-to-string.c
index e9645bf98..17a5fcb04 100644
--- a/libgo/runtime/go-int-to-string.c
+++ b/libgo/runtime/go-int-to-string.c
@@ -17,6 +17,11 @@ __go_int_to_string (int v)
unsigned char *retdata;
struct __go_string ret;
+ /* A negative value is not valid UTF-8; turn it into the replacement
+ character. */
+ if (v < 0)
+ v = 0xfffd;
+
if (v <= 0x7f)
{
buf[0] = v;
@@ -34,6 +39,10 @@ __go_int_to_string (int v)
"replacement character". */
if (v > 0x10ffff)
v = 0xfffd;
+ /* If the value is a surrogate pair, which is invalid in UTF-8,
+ turn it into the replacement character. */
+ if (v >= 0xd800 && v < 0xe000)
+ v = 0xfffd;
if (v <= 0xffff)
{
diff --git a/libgo/runtime/go-rune.c b/libgo/runtime/go-rune.c
index 7e31eb8d6..acdecb024 100644
--- a/libgo/runtime/go-rune.c
+++ b/libgo/runtime/go-rune.c
@@ -53,6 +53,14 @@ __go_get_rune (const unsigned char *str, size_t len, int *rune)
*rune = (((c & 0xf) << 12)
+ ((c1 & 0x3f) << 6)
+ (c2 & 0x3f));
+
+ if (*rune >= 0xd800 && *rune < 0xe000)
+ {
+ /* Invalid surrogate half; return replace character. */
+ *rune = 0xfffd;
+ return 1;
+ }
+
return 3;
}
diff --git a/libgo/runtime/go-type-complex.c b/libgo/runtime/go-type-complex.c
index f923c867d..106024f5c 100644
--- a/libgo/runtime/go-type-complex.c
+++ b/libgo/runtime/go-type-complex.c
@@ -32,10 +32,14 @@ __go_type_hash_complex (const void *vkey, uintptr_t key_size)
cf = ucf.cf;
cfr = __builtin_crealf (cf);
cfi = __builtin_cimagf (cf);
- if (__builtin_isinff (cfr) || __builtin_isinff (cfi)
- || __builtin_isnanf (cfr) || __builtin_isnanf (cfi))
+ if (__builtin_isinff (cfr) || __builtin_isinff (cfi))
return 0;
+ /* NaN != NaN, so the hash code of a NaN is irrelevant. Make it
+ random so that not all NaNs wind up in the same place. */
+ if (__builtin_isnanf (cfr) || __builtin_isnanf (cfi))
+ return runtime_fastrand1 ();
+
/* Avoid negative zero. */
if (cfr == 0 && cfi == 0)
return 0;
@@ -62,10 +66,12 @@ __go_type_hash_complex (const void *vkey, uintptr_t key_size)
cd = ucd.cd;
cdr = __builtin_crealf (cd);
cdi = __builtin_cimagf (cd);
- if (__builtin_isinf (cdr) || __builtin_isinf (cdi)
- || __builtin_isnan (cdr) || __builtin_isnan (cdi))
+ if (__builtin_isinf (cdr) || __builtin_isinf (cdi))
return 0;
+ if (__builtin_isnan (cdr) || __builtin_isnan (cdi))
+ return runtime_fastrand1 ();
+
/* Avoid negative zero. */
if (cdr == 0 && cdi == 0)
return 0;
diff --git a/libgo/runtime/go-type-float.c b/libgo/runtime/go-type-float.c
index cc6e247e5..e1c03e428 100644
--- a/libgo/runtime/go-type-float.c
+++ b/libgo/runtime/go-type-float.c
@@ -29,8 +29,14 @@ __go_type_hash_float (const void *vkey, uintptr_t key_size)
__builtin_memcpy (uf.a, vkey, 4);
f = uf.f;
- if (__builtin_isinff (f) || __builtin_isnanf (f) || f == 0)
+ if (__builtin_isinff (f) || f == 0)
return 0;
+
+ /* NaN != NaN, so the hash code of a NaN is irrelevant. Make it
+ random so that not all NaNs wind up in the same place. */
+ if (__builtin_isnanf (f))
+ return runtime_fastrand1 ();
+
return (uintptr_t) uf.si;
}
else if (key_size == 8)
@@ -45,8 +51,12 @@ __go_type_hash_float (const void *vkey, uintptr_t key_size)
__builtin_memcpy (ud.a, vkey, 8);
d = ud.d;
- if (__builtin_isinf (d) || __builtin_isnan (d) || d == 0)
+ if (__builtin_isinf (d) || d == 0)
return 0;
+
+ if (__builtin_isnan (d))
+ return runtime_fastrand1 ();
+
return (uintptr_t) ud.di;
}
else
diff --git a/libgo/testsuite/Makefile.in b/libgo/testsuite/Makefile.in
index 4628fdd91..572d73632 100644
--- a/libgo/testsuite/Makefile.in
+++ b/libgo/testsuite/Makefile.in
@@ -35,7 +35,7 @@ build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = testsuite
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
@@ -54,10 +54,8 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
-DIST_SOURCES =
DEJATOOL = $(PACKAGE)
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
@@ -306,37 +304,6 @@ distclean-DEJAGNU:
-l='$(DEJATOOL)'; for tool in $$l; do \
rm -f $$tool.sum $$tool.log; \
done
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
check: check-am
@@ -438,8 +405,8 @@ uninstall-am:
.PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \
clean-libtool distclean distclean-DEJAGNU distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
+ distclean-libtool dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 9afed4358..3f601a854 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,21 @@
+2012-09-18 Ian Lance Taylor <iant@google.com>
+
+ * strnlen.c: New file.
+ * configure.ac: Check for strnlen, add it to AC_LIBOBJ if it's not
+ present.
+ * Makefile.in: Rebuild dependencies.
+ (CFILES): Add strnlen.c.
+ (CONFIGURED_OFILES): Add ./strnlen.$(objext).
+ * configure, config.in, functions.texi: Rebuild.
+
+ * maint-tool: Accept .def files in the include directory.
+
+2012-09-18 Florian Weimer <fweimer@redhat.com>
+
+ PR other/54411
+ * objalloc.c (_objalloc_alloc): Add overflow check covering
+ alignment and CHUNK_HEADER_SIZE addition.
+
2011-08-28 H.J. Lu <hongjiu.lu@intel.com>
* argv.c (dupargv): Replace malloc with xmalloc. Don't check
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 0a5da3178..1ba8cf1cc 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -151,7 +151,7 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \
spaces.c splay-tree.c stack-limit.c stpcpy.c stpncpy.c \
strcasecmp.c strchr.c strdup.c strerror.c strncasecmp.c \
strncmp.c strrchr.c strsignal.c strstr.c strtod.c strtol.c \
- strtoul.c strndup.c strverscmp.c \
+ strtoul.c strndup.c strnlen.c strverscmp.c \
timeval-utils.c tmpnam.c \
unlink-if-ordinary.c \
vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c \
@@ -215,9 +215,9 @@ CONFIGURED_OFILES = ./asprintf.$(objext) ./atexit.$(objext) \
./sigsetmask.$(objext) ./snprintf.$(objext) \
./stpcpy.$(objext) ./stpncpy.$(objext) ./strcasecmp.$(objext) \
./strchr.$(objext) ./strdup.$(objext) ./strncasecmp.$(objext) \
- ./strncmp.$(objext) ./strndup.$(objext) ./strrchr.$(objext) \
- ./strstr.$(objext) ./strtod.$(objext) ./strtol.$(objext) \
- ./strtoul.$(objext) ./strverscmp.$(objext) \
+ ./strncmp.$(objext) ./strndup.$(objext) ./strnlen.$(objext) \
+ ./strrchr.$(objext) ./strstr.$(objext) ./strtod.$(objext) \
+ ./strtol.$(objext) ./strtoul.$(objext) ./strverscmp.$(objext) \
./tmpnam.$(objext) \
./vasprintf.$(objext) ./vfork.$(objext) ./vfprintf.$(objext) \
./vprintf.$(objext) ./vsnprintf.$(objext) ./vsprintf.$(objext) \
@@ -622,8 +622,8 @@ $(CONFIGURED_OFILES): stamp-picdir
else true; fi
$(COMPILE.c) $(srcdir)/crc32.c $(OUTPUT_OPTION)
-./dwarfnames.$(objext): $(srcdir)/dwarfnames.c $(INCDIR)/dwarf2.h \
- $(INCDIR)/dwarf2.def
+./dwarfnames.$(objext): $(srcdir)/dwarfnames.c $(INCDIR)/dwarf2.def \
+ $(INCDIR)/dwarf2.h
if [ x"$(PICFLAG)" != x ]; then \
$(COMPILE.c) $(PICFLAG) $(srcdir)/dwarfnames.c -o pic/$@; \
else true; fi
@@ -656,7 +656,8 @@ $(CONFIGURED_OFILES): stamp-picdir
else true; fi
$(COMPILE.c) $(srcdir)/fibheap.c $(OUTPUT_OPTION)
-./filename_cmp.$(objext): $(srcdir)/filename_cmp.c config.h $(INCDIR)/filenames.h \
+./filename_cmp.$(objext): $(srcdir)/filename_cmp.c config.h $(INCDIR)/ansidecl.h \
+ $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
$(INCDIR)/safe-ctype.h
if [ x"$(PICFLAG)" != x ]; then \
$(COMPILE.c) $(PICFLAG) $(srcdir)/filename_cmp.c -o pic/$@; \
@@ -757,7 +758,7 @@ $(CONFIGURED_OFILES): stamp-picdir
$(COMPILE.c) $(srcdir)/insque.c $(OUTPUT_OPTION)
./lbasename.$(objext): $(srcdir)/lbasename.c config.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/filenames.h $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h \
$(INCDIR)/safe-ctype.h
if [ x"$(PICFLAG)" != x ]; then \
$(COMPILE.c) $(PICFLAG) $(srcdir)/lbasename.c -o pic/$@; \
@@ -1043,7 +1044,7 @@ $(CONFIGURED_OFILES): stamp-picdir
else true; fi
$(COMPILE.c) $(srcdir)/splay-tree.c $(OUTPUT_OPTION)
-./stack-limit.$(objext): $(srcdir)/stack-limit.c config.h
+./stack-limit.$(objext): $(srcdir)/stack-limit.c config.h $(INCDIR)/ansidecl.h
if [ x"$(PICFLAG)" != x ]; then \
$(COMPILE.c) $(PICFLAG) $(srcdir)/stack-limit.c -o pic/$@; \
else true; fi
@@ -1104,6 +1105,12 @@ $(CONFIGURED_OFILES): stamp-picdir
else true; fi
$(COMPILE.c) $(srcdir)/strndup.c $(OUTPUT_OPTION)
+./strnlen.$(objext): $(srcdir)/strnlen.c config.h
+ if [ x"$(PICFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(srcdir)/strnlen.c -o pic/$@; \
+ else true; fi
+ $(COMPILE.c) $(srcdir)/strnlen.c $(OUTPUT_OPTION)
+
./strrchr.$(objext): $(srcdir)/strrchr.c $(INCDIR)/ansidecl.h
if [ x"$(PICFLAG)" != x ]; then \
$(COMPILE.c) $(PICFLAG) $(srcdir)/strrchr.c -o pic/$@; \
diff --git a/libiberty/config.in b/libiberty/config.in
index 17c4c2e44..1cf9c11b6 100644
--- a/libiberty/config.in
+++ b/libiberty/config.in
@@ -262,6 +262,9 @@
/* Define to 1 if you have the `strndup' function. */
#undef HAVE_STRNDUP
+/* Define to 1 if you have the `strnlen' function. */
+#undef HAVE_STRNLEN
+
/* Define to 1 if you have the `strrchr' function. */
#undef HAVE_STRRCHR
diff --git a/libiberty/configure b/libiberty/configure
index 6e98352f3..536702742 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -5340,6 +5340,7 @@ funcs="$funcs strchr"
funcs="$funcs strdup"
funcs="$funcs strncasecmp"
funcs="$funcs strndup"
+funcs="$funcs strnlen"
funcs="$funcs strrchr"
funcs="$funcs strstr"
funcs="$funcs strtod"
@@ -5380,8 +5381,8 @@ if test "x" = "y"; then
random realpath rename rindex \
sbrk setenv setproctitle setrlimit sigsetmask snprintf spawnve spawnvpe \
stpcpy stpncpy strcasecmp strchr strdup \
- strerror strncasecmp strndup strrchr strsignal strstr strtod strtol \
- strtoul strverscmp sysconf sysctl sysmp \
+ strerror strncasecmp strndup strnlen strrchr strsignal strstr strtod \
+ strtol strtoul strverscmp sysconf sysctl sysmp \
table times tmpnam \
vasprintf vfprintf vprintf vsprintf \
wait3 wait4 waitpid
@@ -5663,6 +5664,12 @@ esac
esac
case " $LIBOBJS " in
+ *" strnlen.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strnlen.$ac_objext"
+ ;;
+esac
+
+ case " $LIBOBJS " in
*" strverscmp.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS strverscmp.$ac_objext"
;;
@@ -5683,7 +5690,7 @@ esac
for f in $funcs; do
case "$f" in
- asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strverscmp | vasprintf | waitpid)
+ asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strnlen | strverscmp | vasprintf | waitpid)
;;
*)
n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
diff --git a/libiberty/configure.ac b/libiberty/configure.ac
index 754b66a06..c76389426 100644
--- a/libiberty/configure.ac
+++ b/libiberty/configure.ac
@@ -322,6 +322,7 @@ funcs="$funcs strchr"
funcs="$funcs strdup"
funcs="$funcs strncasecmp"
funcs="$funcs strndup"
+funcs="$funcs strnlen"
funcs="$funcs strrchr"
funcs="$funcs strstr"
funcs="$funcs strtod"
@@ -362,8 +363,8 @@ if test "x" = "y"; then
random realpath rename rindex \
sbrk setenv setproctitle setrlimit sigsetmask snprintf spawnve spawnvpe \
stpcpy stpncpy strcasecmp strchr strdup \
- strerror strncasecmp strndup strrchr strsignal strstr strtod strtol \
- strtoul strverscmp sysconf sysctl sysmp \
+ strerror strncasecmp strndup strnlen strrchr strsignal strstr strtod \
+ strtol strtoul strverscmp sysconf sysctl sysmp \
table times tmpnam \
vasprintf vfprintf vprintf vsprintf \
wait3 wait4 waitpid)
@@ -442,13 +443,14 @@ if test -n "${with_target_subdir}"; then
AC_LIBOBJ([stpcpy])
AC_LIBOBJ([stpncpy])
AC_LIBOBJ([strndup])
+ AC_LIBOBJ([strnlen])
AC_LIBOBJ([strverscmp])
AC_LIBOBJ([vasprintf])
AC_LIBOBJ([waitpid])
for f in $funcs; do
case "$f" in
- asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strverscmp | vasprintf | waitpid)
+ asprintf | basename | bcmp | bcopy | bzero | clock | ffs | getpagesize | index | insque | mempcpy | mkstemps | random | rindex | sigsetmask | stpcpy | stpncpy | strdup | strndup | strnlen | strverscmp | vasprintf | waitpid)
;;
*)
n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
diff --git a/libiberty/functions.texi b/libiberty/functions.texi
index c9df186be..9323ff9f2 100644
--- a/libiberty/functions.texi
+++ b/libiberty/functions.texi
@@ -84,7 +84,7 @@ is respectively less than, matching, or greater than the array member.
@end deftypefn
-@c argv.c:142
+@c argv.c:135
@deftypefn Extension char** buildargv (char *@var{sp})
Given a pointer to a string, parse the string extracting fields
@@ -95,7 +95,7 @@ remains unchanged. The last element of the vector is followed by a
@code{NULL} element.
All of the memory for the pointer array and copies of the string
-is obtained from @code{malloc}. All of the memory can be returned to the
+is obtained from @code{xmalloc}. All of the memory can be returned to the
system with the single function call @code{freeargv}, which takes the
returned result of @code{buildargv}, as it's argument.
@@ -166,6 +166,14 @@ pointer encountered. Pointers to empty strings are ignored.
@end deftypefn
+@c argv.c:470
+@deftypefn Extension int countargv (char **@var{argv})
+
+Return the number of elements in @var{argv}.
+Returns zero if @var{argv} is NULL.
+
+@end deftypefn
+
@c crc32.c:141
@deftypefn Extension {unsigned int} crc32 (const unsigned char *@var{buf}, @
int @var{len}, unsigned int @var{init})
@@ -224,7 +232,7 @@ symbolic name or message.
@end deftypefn
-@c argv.c:361
+@c argv.c:341
@deftypefn Extension void expandargv (int *@var{argcp}, char ***@var{argvp})
The @var{argcp} and @code{argvp} arguments are pointers to the usual
@@ -296,7 +304,24 @@ and backward slashes are equal.
@end deftypefn
-@c filename_cmp.c:81
+@c filename_cmp.c:178
+@deftypefn Extension int filename_eq (const void *@var{s1}, const void *@var{s2})
+
+Return non-zero if file names @var{s1} and @var{s2} are equivalent.
+This function is for use with hashtab.c hash tables.
+
+@end deftypefn
+
+@c filename_cmp.c:147
+@deftypefn Extension hashval_t filename_hash (const void *@var{s})
+
+Return the hash value for file name @var{s} that will be compared
+using filename_cmp.
+This function is for use with hashtab.c hash tables.
+
+@end deftypefn
+
+@c filename_cmp.c:89
@deftypefn Extension int filename_ncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n})
Return zero if the two file names @var{s1} and @var{s2} are equivalent
@@ -376,7 +401,7 @@ unchanged.
@end deftypefn
-@c argv.c:97
+@c argv.c:90
@deftypefn Extension void freeargv (char **@var{vector})
Free an argument vector that was built using @code{buildargv}. Simply
@@ -1465,6 +1490,13 @@ deallocate values.
@end deftypefn
+@c stack-limit.c:28
+@deftypefn Extension void stack_limit_increase (unsigned long @var{pref})
+
+Attempt to increase stack size limit to @var{pref} bytes if possible.
+
+@end deftypefn
+
@c stpcpy.c:23
@deftypefn Supplemental char* stpcpy (char *@var{dst}, const char *@var{src})
@@ -1574,6 +1606,16 @@ memory was available. The result is always NUL terminated.
@end deftypefn
+@c strnlen.c:6
+@deftypefn Supplemental size_t strnlen (const char *@var{s}, size_t @var{maxlen})
+
+Returns the length of @var{s}, as with @code{strlen}, but never looks
+past the first @var{maxlen} characters in the string. If there is no
+'\0' character in the first @var{maxlen} characters, returns
+@var{maxlen}.
+
+@end deftypefn
+
@c strrchr.c:6
@deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c})
@@ -1728,6 +1770,22 @@ This function is especially useful when dealing with filename sorting,
because filenames frequently hold indices/version numbers.
@end deftypefun
+@c timeval-utils.c:43
+@deftypefn Extension void timeval_add (struct timeval *@var{a}, @
+ struct timeval *@var{b}, struct timeval *@var{result})
+
+Adds @var{a} to @var{b} and stores the result in @var{result}.
+
+@end deftypefn
+
+@c timeval-utils.c:67
+@deftypefn Extension void timeval_sub (struct timeval *@var{a}, @
+ struct timeval *@var{b}, struct timeval *@var{result})
+
+Subtracts @var{b} from @var{a} and stores the result in @var{result}.
+
+@end deftypefn
+
@c tmpnam.c:3
@deftypefn Supplemental char* tmpnam (char *@var{s})
@@ -1829,7 +1887,7 @@ does the return value. The third argument is unused in @libib{}.
@end deftypefn
-@c argv.c:306
+@c argv.c:286
@deftypefn Extension int writeargv (const char **@var{argv}, FILE *@var{file})
Write each member of ARGV, handling all necessary quoting, to the file
diff --git a/libiberty/maint-tool b/libiberty/maint-tool
index 36b92034f..d50f8959a 100644
--- a/libiberty/maint-tool
+++ b/libiberty/maint-tool
@@ -222,7 +222,7 @@ sub deps {
opendir(INC, $incdir);
while ($f = readdir INC) {
- next unless $f =~ /\.h$/;
+ next unless $f =~ /\.h$/ || $f =~ /\.def$/;
$mine{$f} = "\$(INCDIR)/$f";
$deps{$f} = join(' ', &deps_for("$incdir/$f"));
}
diff --git a/libiberty/objalloc.c b/libiberty/objalloc.c
index 3ddac2ce4..72e92d2dd 100644
--- a/libiberty/objalloc.c
+++ b/libiberty/objalloc.c
@@ -1,5 +1,5 @@
/* objalloc.c -- routines to allocate memory for objects
- Copyright 1997 Free Software Foundation, Inc.
+ Copyright 1997-2012 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Solutions.
This program is free software; you can redistribute it and/or modify it
@@ -112,8 +112,10 @@ objalloc_create (void)
/* Allocate space from an objalloc structure. */
PTR
-_objalloc_alloc (struct objalloc *o, unsigned long len)
+_objalloc_alloc (struct objalloc *o, unsigned long original_len)
{
+ unsigned long len = original_len;
+
/* We avoid confusion from zero sized objects by always allocating
at least 1 byte. */
if (len == 0)
@@ -121,6 +123,11 @@ _objalloc_alloc (struct objalloc *o, unsigned long len)
len = (len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1);
+ /* Check for overflow in the alignment operation above and the
+ malloc argument below. */
+ if (len + CHUNK_HEADER_SIZE < original_len)
+ return NULL;
+
if (len <= o->current_space)
{
o->current_ptr += len;
diff --git a/libiberty/strnlen.c b/libiberty/strnlen.c
new file mode 100644
index 000000000..4934973ad
--- /dev/null
+++ b/libiberty/strnlen.c
@@ -0,0 +1,30 @@
+/* Portable version of strnlen.
+ This function is in the public domain. */
+
+/*
+
+@deftypefn Supplemental size_t strnlen (const char *@var{s}, size_t @var{maxlen})
+
+Returns the length of @var{s}, as with @code{strlen}, but never looks
+past the first @var{maxlen} characters in the string. If there is no
+'\0' character in the first @var{maxlen} characters, returns
+@var{maxlen}.
+
+@end deftypefn
+
+*/
+
+#include "config.h"
+
+#include <stddef.h>
+
+size_t
+strnlen (const char *s, size_t maxlen)
+{
+ size_t i;
+
+ for (i = 0; i < maxlen; ++i)
+ if (s[i] == '\0')
+ break;
+ return i;
+}
diff --git a/libitm/ChangeLog b/libitm/ChangeLog
index 7c894ba69..ee148b5cd 100644
--- a/libitm/ChangeLog
+++ b/libitm/ChangeLog
@@ -1,3 +1,10 @@
+2012-09-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR other/43620
+ * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
* configure: Regenerated.
diff --git a/libitm/Makefile.in b/libitm/Makefile.in
index 66aacaba7..f44fd70b9 100644
--- a/libitm/Makefile.in
+++ b/libitm/Makefile.in
@@ -40,13 +40,10 @@ target_triplet = @target@
@ARCH_X86_TRUE@am__append_2 = x86_sse.cc x86_avx.cc
@ARCH_FUTEX_TRUE@am__append_3 = futex.cc
subdir = .
-DIST_COMMON = $(am__configure_deps) $(srcdir)/../config.guess \
- $(srcdir)/../config.sub $(srcdir)/../depcomp \
- $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \
- $(srcdir)/../missing $(srcdir)/../mkinstalldirs \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/config.h.in $(srcdir)/libitm.spec.in \
- $(top_srcdir)/configure ChangeLog
+DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \
+ $(srcdir)/libitm.spec.in $(srcdir)/../depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/asmcfi.m4 \
@@ -97,11 +94,6 @@ am__installdirs = "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(infodir)" \
"$(DESTDIR)$(toolexeclibdir)"
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
libitm_la_LIBADD =
-am__libitm_la_SOURCES_DIST = aatree.cc alloc.cc alloc_c.cc \
- alloc_cpp.cc barrier.cc beginend.cc clone.cc eh_cpp.cc \
- local.cc query.cc retry.cc rwlock.cc useraction.cc util.cc \
- sjlj.S tls.cc method-serial.cc method-gl.cc method-ml.cc \
- hwcap.cc x86_sse.cc x86_avx.cc futex.cc
@ARCH_ARM_TRUE@am__objects_1 = hwcap.lo
@ARCH_X86_TRUE@am__objects_2 = x86_sse.lo x86_avx.lo
@ARCH_FUTEX_TRUE@am__objects_3 = futex.lo
@@ -139,7 +131,6 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libitm_la_SOURCES)
-DIST_SOURCES = $(am__libitm_la_SOURCES_DIST)
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
@@ -169,47 +160,10 @@ HEADERS = $(nodist_toolexeclib_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
- distdir dist dist-all distcheck
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- { test ! -d "$(distdir)" \
- || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr "$(distdir)"; }; }
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
@@ -867,185 +821,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-info
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
-
-dist-lzma: distdir
- tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
- $(am__remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
- $(am__remove_distdir)
-
-dist-tarZ: distdir
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
-
-dist-shar: distdir
- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
-
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lzma*) \
- lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @$(am__cd) '$(distuninstallcheck_dir)' \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) all-multi $(HEADERS) \
@@ -1244,13 +1019,10 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am all-local all-multi am--refresh check check-am \
clean clean-aminfo clean-generic clean-libtool clean-multi \
- clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \
- dist-all dist-bzip2 dist-gzip dist-info dist-lzma dist-shar \
- dist-tarZ dist-xz dist-zip distcheck distclean \
- distclean-compile distclean-generic distclean-hdr \
- distclean-libtool distclean-multi distclean-tags \
- distcleancheck distdir distuninstallcheck dvi dvi-am html \
- html-am info info-am install install-am install-data \
+ clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist-info \
+ distclean distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-multi distclean-tags dvi dvi-am \
+ html html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-multi \
diff --git a/libitm/configure b/libitm/configure
index 2e0d73c4c..4b547ab84 100644
--- a/libitm/configure
+++ b/libitm/configure
@@ -2844,6 +2844,7 @@ target_alias=${target_alias-$host_alias}
# no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch
# of other PACKAGE_* variables will, however, and there's nothing
# we can do about that; they come from AC_INIT).
+# no-dist: we don't want 'dist' and related rules.
# foreign: we don't follow the normal rules for GNU packages (no COPYING
# file in the top srcdir, etc, etc), so stop complaining.
# -Wall: turns on all automake warnings...
@@ -11778,7 +11779,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11781 "configure"
+#line 11782 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11884,7 +11885,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11887 "configure"
+#line 11888 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libitm/configure.ac b/libitm/configure.ac
index 2cce2b102..198ca3277 100644
--- a/libitm/configure.ac
+++ b/libitm/configure.ac
@@ -70,12 +70,13 @@ target_alias=${target_alias-$host_alias}
# no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch
# of other PACKAGE_* variables will, however, and there's nothing
# we can do about that; they come from AC_INIT).
+# no-dist: we don't want 'dist' and related rules.
# foreign: we don't follow the normal rules for GNU packages (no COPYING
# file in the top srcdir, etc, etc), so stop complaining.
# -Wall: turns on all automake warnings...
# -Wno-portability: ...except this one, since GNU make is required.
# -Wno-override: ... and this one, since we do want this in testsuite.
-AM_INIT_AUTOMAKE([1.9.0 foreign -Wall -Wno-portability -Wno-override])
+AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override])
AM_ENABLE_MULTILIB(, ..)
# Calculate toolexeclibdir
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 42ef92a6b..70ee2a88e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,143 @@
+2012-09-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ Revert:
+ 2012-09-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/stl_algobase.h (max, min): Use conditional operator.
+
+2012-09-23 Uros Bizjak <ubizjak@gmail.com>
+
+ PR libstdc++/54675
+ * include/ext/random: Avoid the badname __alpha (and, for
+ consistency, __mu, __nu, __sigma and __omega too).
+ * include/bits/random.tcc: Likewise.
+
+2012-09-21 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ * include/ext/random: Add __gnu_cxx::pareto_distribution<> class.
+ * include/ext/random.tcc: Add out-of-line functions for
+ __gnu_cxx::pareto_distribution<>.
+ * testsuite/ext/random/pareto_distribution/operators/equal.cc: New file.
+ * testsuite/ext/random/pareto_distribution/operators/serialize.cc:
+ New file.
+ * testsuite/ext/random/pareto_distribution/operators/inequal.cc:
+ New file.
+ * testsuite/ext/random/pareto_distribution/cons/parms.cc: New file.
+ * testsuite/ext/random/pareto_distribution/cons/default.cc: New file.
+ * testsuite/ext/random/pareto_distribution/requirements/typedefs.cc:
+ New file.
+ * testsuite/ext/random/pareto_distribution/requirements/
+ explicit_instantiation/1.cc: New file.
+
+2012-09-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/stl_algobase.h (max, min): Use conditional operator.
+
+2012-09-18 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/28811
+ PR libstdc++/54482
+ * configure.ac (glibcxx_lt_pic_flag,
+ glibcxx_compiler_pic_flag,
+ glibcxx_compiler_shared_flag): New. Use them.
+ (lt_prog_compiler_pic_CXX): Set via glibcxx_*_flag(s) above.
+ (pic_mode): Set to default.
+ (PIC_CXXFLAGS): Remove.
+ * Makefile.am (PICFLAG, PICFLAG_FOR_TARGET): Remove. Comment.
+ * libsupc++/Makefile.am: Use glibcxx_ld_pic_flag and
+ glibcxx_compiler_shared_flag. Comment.
+ * src/c++11/Makefile.am: Same.
+ * src/c++98/Makefile.am: Same.
+ * src/Makefile.am: Use glibcxx_compiler_pic_flag.
+
+ * Makefile.in: Regenerated.
+ * aclocal.m4: Same.
+ * configure: Same.
+ * doc/Makefile.in: Same.
+ * include/Makefile.in: Same.
+ * libsupc++/Makefile.in: Same.
+ * po/Makefile.in: Same.
+ * python/Makefile.in: Same.
+ * src/Makefile.in: Same.
+ * src/c++11/Makefile.in: Same.
+ * src/c++98/Makefile.in: Same.
+ * testsuite/Makefile.in: Same.
+
+ * src/c++11/compatibility-atomic-c++0x.cc: Use
+ _GLIBCXX_SHARED instead of PIC to designate shared-only
+ code blocks.
+ * src/c++11/compatibility-c++0x.cc: Same.
+ * src/c++11/compatibility-thread-c++0x.cc: Same.
+ * src/c++98/compatibility-list-2.cc: Same.
+ * src/c++98/compatibility.cc: : Same.
+
+ * testsuite/17_intro/shared_with_static_deps.cc: New.
+
+ * doc/xml/manual/build_hacking.xml: Separate configure from
+ make/build issues, add build details.
+
+2012-09-18 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ * include/ext/random: Add __gnu_cxx::nakagami_distribution<> class.
+ * include/ext/random.tcc: Add out-of-line functions for
+ __gnu_cxx::nakagami_distribution<>.
+ * testsuite/ext/random/nakagami_distribution/operators/equal.cc:
+ New file.
+ * testsuite/ext/random/nakagami_distribution/operators/serialize.cc:
+ New file.
+ * testsuite/ext/random/nakagami_distribution/operators/inequal.cc:
+ New file.
+ * testsuite/ext/random/nakagami_distribution/cons/parms.cc: New file.
+ * testsuite/ext/random/nakagami_distribution/cons/default.cc: New file.
+ * testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc:
+ New file.
+ * testsuite/ext/random/nakagami_distribution/requirements/
+ explicit_instantiation/1.cc: New file.
+
+2012-09-18 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/54612
+ * include/ext/random.tcc (operator==
+ (const __gnu_cxx::simd_fast_mersenne_twister_engine<>&,
+ const __gnu_cxx::simd_fast_mersenne_twister_engine<>&)): Fix
+ state_size use.
+ * config/cpu/i486/opt/ext/opt_random.h: Guard with __SSE2__.
+
+2012-09-17 Ulrich Drepper <drepper@gmail.com>
+
+ * configure.ac: Substitute CPU_OPT_EXT_RANDOM.
+ * configure.host: Define cpu_opt_ext_random to location of the
+ optimized version of <ext/random>.
+ * include/Makefile.am (ext_headers): Add ${ext_host_headers}.
+ (ext_host_headers): Define.
+ * include/ext/random (simd_fast_mersenne_twister_engine<>
+ ::operator==): Don't define function here.
+ * include/ext/random.tcc (simd_fast_mersenne_twister_engine): Don't
+ define code using SSE2 here. Define generic code only if
+ _GLIBCXX_OPT_HAVE_RANDOM_SFMT_GEN_READ is not defined.
+ (simd_fast_mersenne_twister_engine<>
+ ::operator==): Define here if
+ _GLIBCXX_OPT_HAVE_RANDOM_SFMT_OPERATOREQUAL is not defined.
+ * config/cpu/generic/opt/ext/opt_random.h: New file.
+ * config/cpu/i486/opt/ext/opt_random.h: New file.
+ * libsupc++/Makefile.in: Regenerated.
+ * testsuite/Makefile.in: Regenerated.
+ * po/Makefile.in: Regenerated.
+ * configure: Regenerated.
+ * Makefile.in: Regenerated.
+ * doc/Makefile.in: Regenerated.
+ * aclocal.m4: Regenerated.
+ * python/Makefile.in: Regenerated.
+ * include/Makefile.in: Regenerated.
+ * src/c++98/Makefile.in: Regenerated.
+ * src/c++11/Makefile.in: Regenerated.
+ * src/Makefile.in: Regenerated.
+
+2012-09-16 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ * include/ext/random.tcc (__gnu_cxx::rice_distribution<>
+ ::__generate_impl): Remove bogus _Adaptor usage.
+
2012-09-16 Paolo Carlini <paolo.carlini@oracle.com>
* include/ext/random (rice_distribution<>::operator==): Change
diff --git a/libstdc++-v3/Makefile.am b/libstdc++-v3/Makefile.am
index 76ff04396..8be4f6c3c 100644
--- a/libstdc++-v3/Makefile.am
+++ b/libstdc++-v3/Makefile.am
@@ -152,8 +152,6 @@ AM_MAKEFLAGS = \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
"MAKE=$(MAKE)" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
"SHELL=$(SHELL)" \
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
"exec_prefix=$(exec_prefix)" \
diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
index e6c48bca0..3deee0e75 100644
--- a/libstdc++-v3/Makefile.in
+++ b/libstdc++-v3/Makefile.in
@@ -125,6 +125,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -189,7 +190,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -237,7 +237,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
@@ -354,8 +357,6 @@ AM_MAKEFLAGS = \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
"MAKE=$(MAKE)" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
"SHELL=$(SHELL)" \
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
"exec_prefix=$(exec_prefix)" \
diff --git a/libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h b/libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h
new file mode 100644
index 000000000..cc64f18a5
--- /dev/null
+++ b/libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h
@@ -0,0 +1,38 @@
+// Optimizations for random number extensions, generic version -*- C++ -*-
+
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file ext/random.tcc
+ * This is an internal header file, included by other library headers.
+ * Do not attempt to use it directly. @headername{ext/random}
+ */
+
+#ifndef _EXT_OPT_RANDOM_H
+#define _EXT_OPT_RANDOM_H 1
+
+#pragma GCC system_header
+
+
+
+
+#endif // _EXT_OPT_RANDOM_H
diff --git a/libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h b/libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
new file mode 100644
index 000000000..968b1c18b
--- /dev/null
+++ b/libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
@@ -0,0 +1,136 @@
+// Optimizations for random number extensions, x86 version -*- C++ -*-
+
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file ext/random.tcc
+ * This is an internal header file, included by other library headers.
+ * Do not attempt to use it directly. @headername{ext/random}
+ */
+
+#ifndef _EXT_OPT_RANDOM_H
+#define _EXT_OPT_RANDOM_H 1
+
+#pragma GCC system_header
+
+#ifdef __SSE2__
+
+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+ namespace {
+
+ template<size_t __sl1, size_t __sl2, size_t __sr1, size_t __sr2,
+ uint32_t __msk1, uint32_t __msk2, uint32_t __msk3, uint32_t __msk4>
+ inline __m128i __sse2_recursion(__m128i __a, __m128i __b,
+ __m128i __c, __m128i __d)
+ {
+ __m128i __y = _mm_srli_epi32(__b, __sr1);
+ __m128i __z = _mm_srli_si128(__c, __sr2);
+ __m128i __v = _mm_slli_epi32(__d, __sl1);
+ __z = _mm_xor_si128(__z, __a);
+ __z = _mm_xor_si128(__z, __v);
+ __m128i __x = _mm_slli_si128(__a, __sl2);
+ __y = _mm_and_si128(__y, _mm_set_epi32(__msk4, __msk3, __msk2, __msk1));
+ __z = _mm_xor_si128(__z, __x);
+ return _mm_xor_si128(__z, __y);
+ }
+
+ }
+
+
+#define _GLIBCXX_OPT_HAVE_RANDOM_SFMT_GEN_READ 1
+ template<typename _UIntType, size_t __m,
+ size_t __pos1, size_t __sl1, size_t __sl2,
+ size_t __sr1, size_t __sr2,
+ uint32_t __msk1, uint32_t __msk2,
+ uint32_t __msk3, uint32_t __msk4,
+ uint32_t __parity1, uint32_t __parity2,
+ uint32_t __parity3, uint32_t __parity4>
+ void simd_fast_mersenne_twister_engine<_UIntType, __m,
+ __pos1, __sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4,
+ __parity1, __parity2, __parity3,
+ __parity4>::
+ _M_gen_rand(void)
+ {
+ __m128i __r1 = _mm_load_si128(&_M_state[_M_nstate - 2]);
+ __m128i __r2 = _mm_load_si128(&_M_state[_M_nstate - 1]);
+
+ size_t __i;
+ for (__i = 0; __i < _M_nstate - __pos1; ++__i)
+ {
+ __m128i __r = __sse2_recursion<__sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4>
+ (_M_state[__i], _M_state[__i + __pos1], __r1, __r2);
+ _mm_store_si128(&_M_state[__i], __r);
+ __r1 = __r2;
+ __r2 = __r;
+ }
+ for (; __i < _M_nstate; ++__i)
+ {
+ __m128i __r = __sse2_recursion<__sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4>
+ (_M_state[__i], _M_state[__i + __pos1 - _M_nstate], __r1, __r2);
+ _mm_store_si128(&_M_state[__i], __r);
+ __r1 = __r2;
+ __r2 = __r;
+ }
+
+ _M_pos = 0;
+ }
+
+
+#define _GLIBCXX_OPT_HAVE_RANDOM_SFMT_OPERATOREQUAL 1
+ template<typename _UIntType, size_t __m,
+ size_t __pos1, size_t __sl1, size_t __sl2,
+ size_t __sr1, size_t __sr2,
+ uint32_t __msk1, uint32_t __msk2,
+ uint32_t __msk3, uint32_t __msk4,
+ uint32_t __parity1, uint32_t __parity2,
+ uint32_t __parity3, uint32_t __parity4>
+ bool
+ operator==(const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType,
+ __m, __pos1, __sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4,
+ __parity1, __parity2, __parity3, __parity4>& __lhs,
+ const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType,
+ __m, __pos1, __sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4,
+ __parity1, __parity2, __parity3, __parity4>& __rhs)
+ {
+ __m128i __res = _mm_cmpeq_epi8(__lhs._M_state[0], __rhs._M_state[0]);
+ for (size_t __i = 1; __i < __lhs._M_nstate; ++__i)
+ __res = _mm_and_si128(__res, _mm_cmpeq_epi8(__lhs._M_state[__i],
+ __rhs._M_state[__i]));
+ return (_mm_movemask_epi8(__res) == 0xffff
+ && __lhs._M_pos == __rhs._M_pos);
+ }
+
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
+
+#endif // __SSE2__
+
+#endif // _EXT_OPT_RANDOM_H
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 8c053ad00..7e68712cb 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -602,7 +602,6 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
-PIC_CXXFLAGS
WARN_FLAGS
OPTIMIZE_CXXFLAGS
TOPLEVEL_INCLUDES
@@ -611,6 +610,7 @@ glibcxx_toolexeclibdir
glibcxx_toolexecdir
gxx_include_dir
glibcxx_prefixdir
+CPU_OPT_EXT_RANDOM
ERROR_CONSTANTS_SRCDIR
OS_INC_SRCDIR
ABI_TWEAKS_SRCDIR
@@ -714,6 +714,9 @@ GLIBCXX_BUILD_PCH_FALSE
GLIBCXX_BUILD_PCH_TRUE
GLIBCXX_HOSTED_FALSE
GLIBCXX_HOSTED_TRUE
+glibcxx_compiler_shared_flag
+glibcxx_compiler_pic_flag
+glibcxx_lt_pic_flag
enable_static
enable_shared
lt_host_flags
@@ -5284,6 +5287,7 @@ $as_echo "$as_me: OS config directory is $os_include_dir" >&6;}
+# Libtool setup.
if test "x${with_newlib}" != "xyes"; then
enable_dlopen=yes
@@ -11509,7 +11513,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11512 "configure"
+#line 11516 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11615,7 +11619,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11618 "configure"
+#line 11622 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14902,6 +14906,38 @@ esac
+# libtool variables for C++ shared and position-independent compiles.
+#
+# Use glibcxx_lt_pic_flag to designate the automake variable
+# used to encapsulate the default libtool approach to creating objects
+# with position-independent code. Default: -prefer-pic.
+#
+# Use glibcxx_compiler_shared_flag to designate a compile-time flags for
+# creating shared objects. Default: -D_GLIBCXX_SHARED.
+#
+# Use glibcxx_compiler_pic_flag to designate a compile-time flags for
+# creating position-independent objects. This varies with the target
+# hardware and operating system, but is often: -DPIC -fPIC.
+if test "$enable_shared" = yes; then
+ glibcxx_lt_pic_flag="-prefer-pic"
+ glibcxx_compiler_pic_flag="$lt_prog_compiler_pic_CXX"
+ glibcxx_compiler_shared_flag="-D_GLIBCXX_SHARED"
+
+else
+ glibcxx_lt_pic_flag=
+ glibcxx_compiler_pic_flag=
+ glibcxx_compiler_shared_flag=
+fi
+
+
+
+
+# Override the libtool's pic_flag and pic_mode.
+# Do this step after AM_PROG_LIBTOOL, but before AC_OUTPUT.
+# NB: this impacts --with-pic and --without-pic.
+lt_prog_compiler_pic_CXX="$glibcxx_compiler_pic_flag $glibcxx_compiler_shared_flag"
+pic_mode='default'
+
# Eliminate -lstdc++ addition to postdeps for cross compiles.
postdeps_CXX=`echo " $postdeps_CXX " | sed 's, -lstdc++ ,,g'`
@@ -14997,7 +15033,7 @@ fi
#
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
cat > conftest.$ac_ext << EOF
-#line 15000 "configure"
+#line 15036 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -15332,7 +15368,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 15335 "configure"
+#line 15371 "configure"
int main()
{
typedef bool atomic_type;
@@ -15367,7 +15403,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15370 "configure"
+#line 15406 "configure"
int main()
{
typedef short atomic_type;
@@ -15402,7 +15438,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15405 "configure"
+#line 15441 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@@ -15438,7 +15474,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15441 "configure"
+#line 15477 "configure"
int main()
{
typedef long long atomic_type;
@@ -15517,7 +15553,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15520 "configure"
+#line 15556 "configure"
int main()
{
_Decimal32 d1;
@@ -15559,7 +15595,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15562 "configure"
+#line 15598 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -15593,7 +15629,7 @@ $as_echo "$enable_int128" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15596 "configure"
+#line 15632 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -71606,6 +71642,8 @@ CPU_DEFINES_SRCDIR=config/${cpu_defines_dir}
OS_INC_SRCDIR=config/${os_include_dir}
ERROR_CONSTANTS_SRCDIR=config/${error_constants_dir}
ABI_TWEAKS_SRCDIR=config/${abi_tweaks_dir}
+CPU_OPT_EXT_RANDOM=config/${cpu_opt_ext_random}
+
@@ -71988,13 +72026,6 @@ $as_echo "$gxx_include_dir" >&6; }
-if test "$enable_shared" = yes; then
- PIC_CXXFLAGS="-prefer-pic"
-else
- PIC_CXXFLAGS=
-fi
-
-
ac_config_files="$ac_config_files Makefile"
ac_config_files="$ac_config_files scripts/testsuite_flags"
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 559a811be..aff19f583 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -88,6 +88,7 @@ CXXFLAGS="$save_CXXFLAGS"
# up critical shell variables.
GLIBCXX_CONFIGURE
+# Libtool setup.
if test "x${with_newlib}" != "xyes"; then
AC_LIBTOOL_DLOPEN
fi
@@ -96,6 +97,38 @@ ACX_LT_HOST_FLAGS
AC_SUBST(enable_shared)
AC_SUBST(enable_static)
+# libtool variables for C++ shared and position-independent compiles.
+#
+# Use glibcxx_lt_pic_flag to designate the automake variable
+# used to encapsulate the default libtool approach to creating objects
+# with position-independent code. Default: -prefer-pic.
+#
+# Use glibcxx_compiler_shared_flag to designate a compile-time flags for
+# creating shared objects. Default: -D_GLIBCXX_SHARED.
+#
+# Use glibcxx_compiler_pic_flag to designate a compile-time flags for
+# creating position-independent objects. This varies with the target
+# hardware and operating system, but is often: -DPIC -fPIC.
+if test "$enable_shared" = yes; then
+ glibcxx_lt_pic_flag="-prefer-pic"
+ glibcxx_compiler_pic_flag="$lt_prog_compiler_pic_CXX"
+ glibcxx_compiler_shared_flag="-D_GLIBCXX_SHARED"
+
+else
+ glibcxx_lt_pic_flag=
+ glibcxx_compiler_pic_flag=
+ glibcxx_compiler_shared_flag=
+fi
+AC_SUBST(glibcxx_lt_pic_flag)
+AC_SUBST(glibcxx_compiler_pic_flag)
+AC_SUBST(glibcxx_compiler_shared_flag)
+
+# Override the libtool's pic_flag and pic_mode.
+# Do this step after AM_PROG_LIBTOOL, but before AC_OUTPUT.
+# NB: this impacts --with-pic and --without-pic.
+lt_prog_compiler_pic_CXX="$glibcxx_compiler_pic_flag $glibcxx_compiler_shared_flag"
+pic_mode='default'
+
# Eliminate -lstdc++ addition to postdeps for cross compiles.
postdeps_CXX=`echo " $postdeps_CXX " | sed 's, -lstdc++ ,,g'`
@@ -399,6 +432,7 @@ CPU_DEFINES_SRCDIR=config/${cpu_defines_dir}
OS_INC_SRCDIR=config/${os_include_dir}
ERROR_CONSTANTS_SRCDIR=config/${error_constants_dir}
ABI_TWEAKS_SRCDIR=config/${abi_tweaks_dir}
+CPU_OPT_EXT_RANDOM=config/${cpu_opt_ext_random}
AC_SUBST(ATOMICITY_SRCDIR)
AC_SUBST(ATOMIC_WORD_SRCDIR)
AC_SUBST(ATOMIC_FLAGS)
@@ -406,6 +440,7 @@ AC_SUBST(CPU_DEFINES_SRCDIR)
AC_SUBST(ABI_TWEAKS_SRCDIR)
AC_SUBST(OS_INC_SRCDIR)
AC_SUBST(ERROR_CONSTANTS_SRCDIR)
+AC_SUBST(CPU_OPT_EXT_RANDOM)
# Determine cross-compile flags and AM_CONDITIONALs.
@@ -428,13 +463,6 @@ GLIBCXX_EXPORT_INSTALL_INFO
GLIBCXX_EXPORT_INCLUDES
GLIBCXX_EXPORT_FLAGS
-if test "$enable_shared" = yes; then
- PIC_CXXFLAGS="-prefer-pic"
-else
- PIC_CXXFLAGS=
-fi
-AC_SUBST(PIC_CXXFLAGS)
-
dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros,
dnl which can all be called multiple times as needed, plus one (different)
dnl AC_OUTPUT macro. This one lists the files to be created:
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index 2fd247d18..726ebddf2 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -50,6 +50,8 @@
# cpu_defines_dir location of cpu_defines.h
# defaults to generic.
#
+# cpu_opt_ext_random path name of random.h containing CPU-specific
+# optimizations
#
# error_constants_dir location of error_constants.h
# defaults to os/generic.
@@ -186,6 +188,18 @@ if test -f ${glibcxx_srcdir}/config/${cpu_include_dir}/cxxabi_tweaks.h ; then
fi
+# Set directory with CPU-specific optimization
+cpu_opt_dir=${cpu_include_dir}/opt
+test -d ${glibcxx_srcdir}/config/${cpu_include_dir}/opt ||
+cpu_opt_dir=cpu/generic/opt
+# For each header with CPU-specific optimizations check whether it
+# exists in ${cpu_opt_dir}. If not, point the variable at the
+# appropriate file in the generic directory.
+cpu_opt_ext_random=${cpu_opt_dir}/ext/opt_random.h
+test -f ${glibcxx_srcdir}/config/${cpu_opt_ext_random} ||
+cpu_opt_ext_random=cpu/generic/opt/ext/opt_random.h
+
+
# Set any OS-dependent bits.
# Set the os_include_dir.
# Set the error_costants_dir.
diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in
index cfe702a34..394c6cd57 100644
--- a/libstdc++-v3/doc/Makefile.in
+++ b/libstdc++-v3/doc/Makefile.in
@@ -97,6 +97,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -161,7 +162,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -211,7 +211,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
diff --git a/libstdc++-v3/doc/xml/manual/build_hacking.xml b/libstdc++-v3/doc/xml/manual/build_hacking.xml
index daac8c0e2..771d005e7 100644
--- a/libstdc++-v3/doc/xml/manual/build_hacking.xml
+++ b/libstdc++-v3/doc/xml/manual/build_hacking.xml
@@ -8,7 +8,13 @@
C++
</keyword>
<keyword>
- BUILD_HACKING
+ build
+ </keyword>
+ <keyword>
+ configure
+ </keyword>
+ <keyword>
+ hacking
</keyword>
<keyword>
version
@@ -38,7 +44,50 @@
</para>
</section>
-<section xml:id="build_hacking.map"><info><title>Overview: What Comes from Where</title></info>
+<section xml:id="build_hacking.overview">
+<info><title>Overview</title></info>
+
+<section xml:id="build_hacking.overview.basic">
+<info><title>General Process</title></info>
+
+<para>
+ The configure process begins the act of building libstdc++, and is
+ started via:
+</para>
+
+<screen>
+<computeroutput>
+configure
+</computeroutput>
+</screen>
+
+<para>
+The <filename>configure</filename> file is a script generated (via
+<command>autoconf</command>) from the file
+<filename>configure.ac</filename>.
+</para>
+
+
+<para>
+ After the configure process is complete,
+</para>
+
+<screen>
+<computeroutput>
+make all
+</computeroutput>
+</screen>
+
+<para>
+in the build directory starts the build process. The <literal>all</literal> target comes from the <filename>Makefile</filename> file, which is generated via <command>configure</command> from the <filename>Makefile.in</filename> file, which is in turn generated (via
+<command>automake</command>) from the file
+<filename>Makefile.am</filename>.
+</para>
+
+</section>
+
+
+<section xml:id="build_hacking.overview.map"><info><title>What Comes from Where</title></info>
<figure>
@@ -57,19 +106,19 @@
</figure>
<para>
- Regenerate all generated files by using the command sequence
- <code>"autoreconf"</code> at the top level of the libstdc++ source
- directory. The following will also work, but is much more complex:
- <code>"aclocal-1.11 &amp;&amp; autoconf-2.64 &amp;&amp;
- autoheader-2.64 &amp;&amp; automake-1.11"</code> The version
- numbers may be absent entirely or otherwise vary depending on
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/install/prerequisites.html">the
- current requirements</link> and your vendor's choice of
- installation names.
+ Regenerate all generated files by using the command
+ <code>autoreconf</code> at the top level of the libstdc++ source
+ directory.
</para>
</section>
-<section xml:id="build_hacking.scripts"><info><title>Storing Information in non-AC files (like configure.host)</title></info>
+</section> <!-- overview -->
+
+
+<section xml:id="build_hacking.configure">
+<info><title>Configure</title></info>
+
+<section xml:id="build_hacking.configure.scripts"><info><title>Storing Information in non-AC files (like configure.host)</title></info>
<para>
@@ -101,7 +150,7 @@
</para>
</section>
-<section xml:id="build_hacking.conventions"><info><title>Coding and Commenting Conventions</title></info>
+<section xml:id="build_hacking.configure.conventions"><info><title>Coding and Commenting Conventions</title></info>
<para>
@@ -126,7 +175,7 @@
</para>
</section>
-<section xml:id="build_hacking.acinclude"><info><title>The acinclude.m4 layout</title></info>
+<section xml:id="build_hacking.configure.acinclude"><info><title>The acinclude.m4 layout</title></info>
<para>
The nice thing about acinclude.m4/aclocal.m4 is that macros aren't
@@ -217,7 +266,7 @@
</section>
-<section xml:id="build_hacking.enable"><info><title><constant>GLIBCXX_ENABLE</constant>, the <literal>--enable</literal> maker</title></info>
+<section xml:id="build_hacking.configure.enable"><info><title><constant>GLIBCXX_ENABLE</constant>, the <literal>--enable</literal> maker</title></info>
<para>
@@ -351,5 +400,86 @@
</para>
</section>
+</section> <!-- configure -->
+
+<section xml:id="build_hacking.make"><info><title>Make</title></info>
+
+ <para>
+ The build process has to make all of object files needed for
+ static or shared libraries, but first it has to generate some
+ include files. The general order is as follows:
+ </para>
+
+<orderedlist>
+ <listitem>
+ <para>
+ make include files, make pre-compiled headers
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ make libsupc++
+ </para>
+ <para>
+ Generates a libtool convenience library,
+ <filename>libsupc++convenience</filename> with language-support
+ routines. Also generates a freestanding static library,
+ <filename>libsupc++.a</filename>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ make src
+ </para>
+ <para>
+ Generates two convenience libraries, one for C++98 and one for
+ C++11, various compability files for shared and static
+ libraries, and then collects all the generated bits and creates
+ the final libstdc++ libraries.
+ </para>
+<orderedlist>
+ <listitem>
+ <para>
+ make src/c++98
+ </para>
+ <para>
+ Generates a libtool convenience library,
+ <filename>libc++98convenience</filename> with language-support
+ routines. Uses the <literal>-std=gnu++98</literal> dialect.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ make src/c++11
+ </para>
+ <para>
+ Generates a libtool convenience library,
+ <filename>libc++11convenience</filename> with language-support
+ routines. Uses the <literal>-std=gnu++11</literal> dialect.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ make src
+ </para>
+ <para>
+ Generates needed compatibility objects for shared and static
+ libraries. Shared-only code is seggregated at compile-time via
+ the macro <literal>_GLIBCXX_SHARED</literal>.
+ </para>
+
+ <para>
+ Then, collects all the generated convenience libraries, adds in
+ any required compatibility objects, and creates the final shared
+ and static libraries: <filename>libstdc++.so</filename> and
+ <filename>libstdc++.a</filename>.
+ </para>
+
+ </listitem>
+</orderedlist>
+ </listitem>
+</orderedlist>
+
+</section> <!-- make -->
</section>
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index bce14ca67..00750045c 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -533,12 +533,16 @@ ext_headers = \
${ext_srcdir}/vstring.tcc \
${ext_srcdir}/vstring_fwd.h \
${ext_srcdir}/vstring_util.h \
- ${ext_compat_headers}
+ ${ext_compat_headers} \
+ ${ext_host_headers}
ext_compat_headers = \
${backward_srcdir}/hash_set \
${backward_srcdir}/hash_map
+ext_host_headers = \
+ ${glibcxx_srcdir}/${CPU_OPT_EXT_RANDOM}
+
tr1_srcdir = ${glibcxx_srcdir}/include/tr1
tr1_builddir = ./tr1
tr1_headers = \
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index c62c8691e..09dd28bc4 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -97,6 +97,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -161,7 +162,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -209,7 +209,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
@@ -785,12 +788,16 @@ ext_headers = \
${ext_srcdir}/vstring.tcc \
${ext_srcdir}/vstring_fwd.h \
${ext_srcdir}/vstring_util.h \
- ${ext_compat_headers}
+ ${ext_compat_headers} \
+ ${ext_host_headers}
ext_compat_headers = \
${backward_srcdir}/hash_set \
${backward_srcdir}/hash_map
+ext_host_headers = \
+ ${glibcxx_srcdir}/${CPU_OPT_EXT_RANDOM}
+
tr1_srcdir = ${glibcxx_srcdir}/include/tr1
tr1_builddir = ./tr1
tr1_headers = \
diff --git a/libstdc++-v3/include/ext/random b/libstdc++-v3/include/ext/random
index e53204074..97bd01467 100644
--- a/libstdc++-v3/include/ext/random
+++ b/libstdc++-v3/include/ext/random
@@ -121,24 +121,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return _M_stateT[_M_pos++];
}
-#ifdef __SSE2__
- friend bool
- operator==(const simd_fast_mersenne_twister_engine& __lhs,
- const simd_fast_mersenne_twister_engine& __rhs)
- { __m128i __res = _mm_cmpeq_epi8(__lhs._M_state[0], __rhs._M_state[0]);
- for (size_t __i = 1; __i < __lhs._M_nstate; ++__i)
- __res = _mm_and_si128(__res, _mm_cmpeq_epi8(__lhs._M_state[__i],
- __rhs._M_state[__i]));
- return (_mm_movemask_epi8(__res) == 0xffff
- && __lhs._M_pos == __rhs._M_pos); }
-#else
- friend bool
- operator==(const simd_fast_mersenne_twister_engine& __lhs,
- const simd_fast_mersenne_twister_engine& __rhs)
- { return (std::equal(__lhs._M_stateT, __lhs._M_stateT + state_size,
- __rhs._M_stateT)
- && __lhs._M_pos == __rhs._M_pos); }
-#endif
+ template<typename _UIntType_2, size_t __m_2,
+ size_t __pos1_2, size_t __sl1_2, size_t __sl2_2,
+ size_t __sr1_2, size_t __sr2_2,
+ uint32_t __msk1_2, uint32_t __msk2_2,
+ uint32_t __msk3_2, uint32_t __msk4_2,
+ uint32_t __parity1_2, uint32_t __parity2_2,
+ uint32_t __parity3_2, uint32_t __parity4_2>
+ friend bool
+ operator==(const simd_fast_mersenne_twister_engine<_UIntType_2,
+ __m_2, __pos1_2, __sl1_2, __sl2_2, __sr1_2, __sr2_2,
+ __msk1_2, __msk2_2, __msk3_2, __msk4_2,
+ __parity1_2, __parity2_2, __parity3_2, __parity4_2>& __lhs,
+ const simd_fast_mersenne_twister_engine<_UIntType_2,
+ __m_2, __pos1_2, __sl1_2, __sl2_2, __sr1_2, __sr2_2,
+ __msk1_2, __msk2_2, __msk3_2, __msk4_2,
+ __parity1_2, __parity2_2, __parity3_2, __parity4_2>& __rhs);
template<typename _UIntType_2, size_t __m_2,
size_t __pos1_2, size_t __sl1_2, size_t __sl2_2,
@@ -934,9 +932,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
typedef rice_distribution<result_type> distribution_type;
- param_type(result_type __nu = result_type(0),
- result_type __sigma = result_type(1))
- : _M_nu(__nu), _M_sigma(__sigma)
+ param_type(result_type __nu_val = result_type(0),
+ result_type __sigma_val = result_type(1))
+ : _M_nu(__nu_val), _M_sigma(__sigma_val)
{
_GLIBCXX_DEBUG_ASSERT(_M_nu >= result_type(0));
_GLIBCXX_DEBUG_ASSERT(_M_sigma > result_type(0));
@@ -966,11 +964,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @brief Constructors.
*/
explicit
- rice_distribution(result_type __nu = result_type(0),
- result_type __sigma = result_type(1))
- : _M_param(__nu, __sigma),
- _M_ndx(__nu, __sigma),
- _M_ndy(result_type(0), __sigma)
+ rice_distribution(result_type __nu_val = result_type(0),
+ result_type __sigma_val = result_type(1))
+ : _M_param(__nu_val, __sigma_val),
+ _M_ndx(__nu_val, __sigma_val),
+ _M_ndy(result_type(0), __sigma_val)
{ }
explicit
@@ -1141,9 +1139,467 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const rice_distribution<_RealType1>& __d2)
{ return !(__d1 == __d2); }
+
+ /**
+ * @brief A Nakagami continuous distribution for random numbers.
+ *
+ * The formula for the Nakagami probability density function is
+ * @f[
+ * p(x|\mu,\omega) = \frac{2\mu^\mu}{\Gamma(\mu)\omega^\mu}
+ * x^{2\mu-1}e^{-\mu x / \omega}
+ * @f]
+ * where @f$\Gamma(z)@f$ is the gamma function and @f$\mu >= 0.5@f$
+ * and @f$\omega > 0@f$.
+ */
+ template<typename _RealType = double>
+ class
+ nakagami_distribution
+ {
+ static_assert(std::is_floating_point<_RealType>::value,
+ "template argument not a floating point type");
+
+ public:
+ /** The type of the range of the distribution. */
+ typedef _RealType result_type;
+ /** Parameter type. */
+ struct param_type
+ {
+ typedef nakagami_distribution<result_type> distribution_type;
+
+ param_type(result_type __mu_val = result_type(1),
+ result_type __omega_val = result_type(1))
+ : _M_mu(__mu_val), _M_omega(__omega_val)
+ {
+ _GLIBCXX_DEBUG_ASSERT(_M_mu >= result_type(0.5L));
+ _GLIBCXX_DEBUG_ASSERT(_M_omega > result_type(0));
+ }
+
+ result_type
+ mu() const
+ { return _M_mu; }
+
+ result_type
+ omega() const
+ { return _M_omega; }
+
+ friend bool
+ operator==(const param_type& __p1, const param_type& __p2)
+ { return __p1._M_mu == __p2._M_mu
+ && __p1._M_omega == __p2._M_omega; }
+
+ private:
+ void _M_initialize();
+
+ result_type _M_mu;
+ result_type _M_omega;
+ };
+
+ /**
+ * @brief Constructors.
+ */
+ explicit
+ nakagami_distribution(result_type __mu_val = result_type(1),
+ result_type __omega_val = result_type(1))
+ : _M_param(__mu_val, __omega_val),
+ _M_gd(__mu_val, __omega_val / __mu_val)
+ { }
+
+ explicit
+ nakagami_distribution(const param_type& __p)
+ : _M_param(__p),
+ _M_gd(__p.mu(), __p.omega() / __p.mu())
+ { }
+
+ /**
+ * @brief Resets the distribution state.
+ */
+ void
+ reset()
+ { _M_gd.reset(); }
+
+ /**
+ * @brief Return the parameters of the distribution.
+ */
+ result_type
+ mu() const
+ { return _M_param.mu(); }
+
+ result_type
+ omega() const
+ { return _M_param.omega(); }
+
+ /**
+ * @brief Returns the parameter set of the distribution.
+ */
+ param_type
+ param() const
+ { return _M_param; }
+
+ /**
+ * @brief Sets the parameter set of the distribution.
+ * @param __param The new parameter set of the distribution.
+ */
+ void
+ param(const param_type& __param)
+ { _M_param = __param; }
+
+ /**
+ * @brief Returns the greatest lower bound value of the distribution.
+ */
+ result_type
+ min() const
+ { return result_type(0); }
+
+ /**
+ * @brief Returns the least upper bound value of the distribution.
+ */
+ result_type
+ max() const
+ { return std::numeric_limits<result_type>::max(); }
+
+ /**
+ * @brief Generating functions.
+ */
+ template<typename _UniformRandomNumberGenerator>
+ result_type
+ operator()(_UniformRandomNumberGenerator& __urng)
+ { return std::sqrt(this->_M_gd(__urng)); }
+
+ template<typename _UniformRandomNumberGenerator>
+ result_type
+ operator()(_UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ {
+ typename std::gamma_distribution<result_type>::param_type
+ __pg(__p.mu(), __p.omega() / __p.mu());
+ return std::sqrt(this->_M_gd(__pg, __urng));
+ }
+
+ template<typename _ForwardIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ __generate(_ForwardIterator __f, _ForwardIterator __t,
+ _UniformRandomNumberGenerator& __urng)
+ { this->__generate(__f, __t, __urng, this->param()); }
+
+ template<typename _ForwardIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ __generate(_ForwardIterator __f, _ForwardIterator __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ { this->__generate_impl(__f, __t, __urng, __p); }
+
+ template<typename _UniformRandomNumberGenerator>
+ void
+ __generate(result_type* __f, result_type* __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ { this->__generate_impl(__f, __t, __urng, __p); }
+
+ /**
+ * @brief Return true if two Nakagami distributions have
+ * the same parameters and the sequences that would
+ * be generated are equal.
+ */
+ friend bool
+ operator==(const nakagami_distribution& __d1,
+ const nakagami_distribution& __d2)
+ { return (__d1.param() == __d2.param()
+ && __d1._M_gd == __d2._M_gd); }
+
+ /**
+ * @brief Inserts a %nakagami_distribution random number distribution
+ * @p __x into the output stream @p __os.
+ *
+ * @param __os An output stream.
+ * @param __x A %nakagami_distribution random number distribution.
+ *
+ * @returns The output stream with the state of @p __x inserted or in
+ * an error state.
+ */
+ template<typename _RealType1, typename _CharT, typename _Traits>
+ friend std::basic_ostream<_CharT, _Traits>&
+ operator<<(std::basic_ostream<_CharT, _Traits>&,
+ const nakagami_distribution<_RealType1>&);
+
+ /**
+ * @brief Extracts a %nakagami_distribution random number distribution
+ * @p __x from the input stream @p __is.
+ *
+ * @param __is An input stream.
+ * @param __x A %nakagami_distribution random number
+ * generator engine.
+ *
+ * @returns The input stream with @p __x extracted or in an error state.
+ */
+ template<typename _RealType1, typename _CharT, typename _Traits>
+ friend std::basic_istream<_CharT, _Traits>&
+ operator>>(std::basic_istream<_CharT, _Traits>&,
+ nakagami_distribution<_RealType1>&);
+
+ private:
+ template<typename _ForwardIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ __generate_impl(_ForwardIterator __f, _ForwardIterator __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p);
+
+ param_type _M_param;
+
+ std::gamma_distribution<result_type> _M_gd;
+ };
+
+ /**
+ * @brief Return true if two Nakagami distributions are not equal.
+ */
+ template<typename _RealType>
+ inline bool
+ operator!=(const nakagami_distribution<_RealType>& __d1,
+ const nakagami_distribution<_RealType>& __d2)
+ { return !(__d1 == __d2); }
+
+
+ /**
+ * @brief A Pareto continuous distribution for random numbers.
+ *
+ * The formula for the Pareto cumulative probability function is
+ * @f[
+ * P(x|\alpha,\mu) = 1 - \left(\frac{\mu}{x}\right)^\alpha
+ * @f]
+ * The formula for the Pareto probability density function is
+ * @f[
+ * p(x|\alpha,\mu) = \frac{\alpha + 1}{\mu}
+ * \left(\frac{\mu}{x}\right)^{\alpha + 1}
+ * @f]
+ * where @f$x >= \mu@f$ and @f$\mu > 0@f$, @f$\alpha > 0@f$.
+ *
+ * <table border=1 cellpadding=10 cellspacing=0>
+ * <caption align=top>Distribution Statistics</caption>
+ * <tr><td>Mean</td><td>@f$\alpha \mu / (\alpha - 1)@f$
+ * for @f$\alpha > 1@f$</td></tr>
+ * <tr><td>Variance</td><td>@f$\alpha \mu^2 / [(\alpha - 1)^2(\alpha - 2)]@f$
+ * for @f$\alpha > 2@f$</td></tr>
+ * <tr><td>Range</td><td>@f$[\mu, \infty)@f$</td></tr>
+ * </table>
+ */
+ template<typename _RealType = double>
+ class
+ pareto_distribution
+ {
+ static_assert(std::is_floating_point<_RealType>::value,
+ "template argument not a floating point type");
+
+ public:
+ /** The type of the range of the distribution. */
+ typedef _RealType result_type;
+ /** Parameter type. */
+ struct param_type
+ {
+ typedef pareto_distribution<result_type> distribution_type;
+
+ param_type(result_type __alpha_val = result_type(1),
+ result_type __mu_val = result_type(1))
+ : _M_alpha(__alpha_val), _M_mu(__mu_val)
+ {
+ _GLIBCXX_DEBUG_ASSERT(_M_alpha > result_type(0));
+ _GLIBCXX_DEBUG_ASSERT(_M_mu > result_type(0));
+ }
+
+ result_type
+ alpha() const
+ { return _M_alpha; }
+
+ result_type
+ mu() const
+ { return _M_mu; }
+
+ friend bool
+ operator==(const param_type& __p1, const param_type& __p2)
+ { return __p1._M_alpha == __p2._M_alpha && __p1._M_mu == __p2._M_mu; }
+
+ private:
+ void _M_initialize();
+
+ result_type _M_alpha;
+ result_type _M_mu;
+ };
+
+ /**
+ * @brief Constructors.
+ */
+ explicit
+ pareto_distribution(result_type __alpha_val = result_type(1),
+ result_type __mu_val = result_type(1))
+ : _M_param(__alpha_val, __mu_val),
+ _M_ud()
+ { }
+
+ explicit
+ pareto_distribution(const param_type& __p)
+ : _M_param(__p),
+ _M_ud()
+ { }
+
+ /**
+ * @brief Resets the distribution state.
+ */
+ void
+ reset()
+ {
+ _M_ud.reset();
+ }
+
+ /**
+ * @brief Return the parameters of the distribution.
+ */
+ result_type
+ alpha() const
+ { return _M_param.alpha(); }
+
+ result_type
+ mu() const
+ { return _M_param.mu(); }
+
+ /**
+ * @brief Returns the parameter set of the distribution.
+ */
+ param_type
+ param() const
+ { return _M_param; }
+
+ /**
+ * @brief Sets the parameter set of the distribution.
+ * @param __param The new parameter set of the distribution.
+ */
+ void
+ param(const param_type& __param)
+ { _M_param = __param; }
+
+ /**
+ * @brief Returns the greatest lower bound value of the distribution.
+ */
+ result_type
+ min() const
+ { return this->mu(); }
+
+ /**
+ * @brief Returns the least upper bound value of the distribution.
+ */
+ result_type
+ max() const
+ { return std::numeric_limits<result_type>::max(); }
+
+ /**
+ * @brief Generating functions.
+ */
+ template<typename _UniformRandomNumberGenerator>
+ result_type
+ operator()(_UniformRandomNumberGenerator& __urng)
+ {
+ return this->mu() * std::pow(this->_M_ud(__urng),
+ -result_type(1) / this->alpha());
+ }
+
+ template<typename _UniformRandomNumberGenerator>
+ result_type
+ operator()(_UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ {
+ return __p.mu() * std::pow(this->_M_ud(__urng),
+ -result_type(1) / __p.alpha());
+ }
+
+ template<typename _ForwardIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ __generate(_ForwardIterator __f, _ForwardIterator __t,
+ _UniformRandomNumberGenerator& __urng)
+ { this->__generate(__f, __t, __urng, this->param()); }
+
+ template<typename _ForwardIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ __generate(_ForwardIterator __f, _ForwardIterator __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ { this->__generate_impl(__f, __t, __urng, __p); }
+
+ template<typename _UniformRandomNumberGenerator>
+ void
+ __generate(result_type* __f, result_type* __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ { this->__generate_impl(__f, __t, __urng, __p); }
+
+ /**
+ * @brief Return true if two Pareto distributions have
+ * the same parameters and the sequences that would
+ * be generated are equal.
+ */
+ friend bool
+ operator==(const pareto_distribution& __d1,
+ const pareto_distribution& __d2)
+ { return (__d1.param() == __d2.param()
+ && __d1._M_ud == __d2._M_ud); }
+
+ /**
+ * @brief Inserts a %pareto_distribution random number distribution
+ * @p __x into the output stream @p __os.
+ *
+ * @param __os An output stream.
+ * @param __x A %pareto_distribution random number distribution.
+ *
+ * @returns The output stream with the state of @p __x inserted or in
+ * an error state.
+ */
+ template<typename _RealType1, typename _CharT, typename _Traits>
+ friend std::basic_ostream<_CharT, _Traits>&
+ operator<<(std::basic_ostream<_CharT, _Traits>&,
+ const pareto_distribution<_RealType1>&);
+
+ /**
+ * @brief Extracts a %pareto_distribution random number distribution
+ * @p __x from the input stream @p __is.
+ *
+ * @param __is An input stream.
+ * @param __x A %pareto_distribution random number
+ * generator engine.
+ *
+ * @returns The input stream with @p __x extracted or in an error state.
+ */
+ template<typename _RealType1, typename _CharT, typename _Traits>
+ friend std::basic_istream<_CharT, _Traits>&
+ operator>>(std::basic_istream<_CharT, _Traits>&,
+ pareto_distribution<_RealType1>&);
+
+ private:
+ template<typename _ForwardIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ __generate_impl(_ForwardIterator __f, _ForwardIterator __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p);
+
+ param_type _M_param;
+
+ std::uniform_real_distribution<result_type> _M_ud;
+ };
+
+ /**
+ * @brief Return true if two Pareto distributions are not equal.
+ */
+ template<typename _RealType>
+ inline bool
+ operator!=(const pareto_distribution<_RealType>& __d1,
+ const pareto_distribution<_RealType>& __d2)
+ { return !(__d1 == __d2); }
+
_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace std
+} // namespace __gnu_cxx
+#include "opt_random.h"
#include "random.tcc"
#endif /* _EXT_RANDOM */
diff --git a/libstdc++-v3/include/ext/random.tcc b/libstdc++-v3/include/ext/random.tcc
index 6aa049a4f..137b6588d 100644
--- a/libstdc++-v3/include/ext/random.tcc
+++ b/libstdc++-v3/include/ext/random.tcc
@@ -202,71 +202,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
-#ifdef __SSE2__
-
- namespace {
-
- template<size_t __sl1, size_t __sl2, size_t __sr1, size_t __sr2,
- uint32_t __msk1, uint32_t __msk2, uint32_t __msk3, uint32_t __msk4>
- inline __m128i __sse2_recursion(__m128i __a, __m128i __b,
- __m128i __c, __m128i __d)
- {
- __m128i __y = _mm_srli_epi32(__b, __sr1);
- __m128i __z = _mm_srli_si128(__c, __sr2);
- __m128i __v = _mm_slli_epi32(__d, __sl1);
- __z = _mm_xor_si128(__z, __a);
- __z = _mm_xor_si128(__z, __v);
- __m128i __x = _mm_slli_si128(__a, __sl2);
- __y = _mm_and_si128(__y, _mm_set_epi32(__msk4, __msk3, __msk2, __msk1));
- __z = _mm_xor_si128(__z, __x);
- return _mm_xor_si128(__z, __y);
- }
-
- }
-
-
- template<typename _UIntType, size_t __m,
- size_t __pos1, size_t __sl1, size_t __sl2,
- size_t __sr1, size_t __sr2,
- uint32_t __msk1, uint32_t __msk2,
- uint32_t __msk3, uint32_t __msk4,
- uint32_t __parity1, uint32_t __parity2,
- uint32_t __parity3, uint32_t __parity4>
- void simd_fast_mersenne_twister_engine<_UIntType, __m,
- __pos1, __sl1, __sl2, __sr1, __sr2,
- __msk1, __msk2, __msk3, __msk4,
- __parity1, __parity2, __parity3,
- __parity4>::
- _M_gen_rand(void)
- {
- __m128i __r1 = _mm_load_si128(&_M_state[_M_nstate - 2]);
- __m128i __r2 = _mm_load_si128(&_M_state[_M_nstate - 1]);
-
- size_t __i;
- for (__i = 0; __i < _M_nstate - __pos1; ++__i)
- {
- __m128i __r = __sse2_recursion<__sl1, __sl2, __sr1, __sr2,
- __msk1, __msk2, __msk3, __msk4>
- (_M_state[__i], _M_state[__i + __pos1], __r1, __r2);
- _mm_store_si128(&_M_state[__i], __r);
- __r1 = __r2;
- __r2 = __r;
- }
- for (; __i < _M_nstate; ++__i)
- {
- __m128i __r = __sse2_recursion<__sl1, __sl2, __sr1, __sr2,
- __msk1, __msk2, __msk3, __msk4>
- (_M_state[__i], _M_state[__i + __pos1 - _M_nstate], __r1, __r2);
- _mm_store_si128(&_M_state[__i], __r);
- __r1 = __r2;
- __r2 = __r;
- }
-
- _M_pos = 0;
- }
-
-
-#else
+#ifndef _GLIBCXX_OPT_HAVE_RANDOM_SFMT_GEN_READ
namespace {
@@ -374,6 +310,34 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
+#ifndef _GLIBCXX_OPT_HAVE_RANDOM_SFMT_OPERATOREQUAL
+ template<typename _UIntType, size_t __m,
+ size_t __pos1, size_t __sl1, size_t __sl2,
+ size_t __sr1, size_t __sr2,
+ uint32_t __msk1, uint32_t __msk2,
+ uint32_t __msk3, uint32_t __msk4,
+ uint32_t __parity1, uint32_t __parity2,
+ uint32_t __parity3, uint32_t __parity4>
+ bool
+ operator==(const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType,
+ __m, __pos1, __sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4,
+ __parity1, __parity2, __parity3, __parity4>& __lhs,
+ const __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType,
+ __m, __pos1, __sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4,
+ __parity1, __parity2, __parity3, __parity4>& __rhs)
+ {
+ typedef __gnu_cxx::simd_fast_mersenne_twister_engine<_UIntType,
+ __m, __pos1, __sl1, __sl2, __sr1, __sr2,
+ __msk1, __msk2, __msk3, __msk4,
+ __parity1, __parity2, __parity3, __parity4> __engine;
+ return (std::equal(__lhs._M_stateT,
+ __lhs._M_stateT + __engine::state_size,
+ __rhs._M_stateT)
+ && __lhs._M_pos == __rhs._M_pos);
+ }
+#endif
template<typename _UIntType, size_t __m,
size_t __pos1, size_t __sl1, size_t __sl2,
@@ -762,9 +726,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
__glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator>)
- std::__detail::_Adaptor<_UniformRandomNumberGenerator, result_type>
- __aurng(__urng);
-
while (__f != __t)
{
typename std::normal_distribution<result_type>::param_type
@@ -812,12 +773,140 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const typename __ios_base::fmtflags __flags = __is.flags();
__is.flags(__ios_base::dec | __ios_base::skipws);
- _RealType __nu, __sigma;
- __is >> __nu >> __sigma;
+ _RealType __nu_val, __sigma_val;
+ __is >> __nu_val >> __sigma_val;
__is >> __x._M_ndx;
__is >> __x._M_ndy;
__x.param(typename rice_distribution<_RealType>::
- param_type(__nu, __sigma));
+ param_type(__nu_val, __sigma_val));
+
+ __is.flags(__flags);
+ return __is;
+ }
+
+
+ template<typename _RealType>
+ template<typename _OutputIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ nakagami_distribution<_RealType>::
+ __generate_impl(_OutputIterator __f, _OutputIterator __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ {
+ __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator>)
+
+ typename std::gamma_distribution<result_type>::param_type
+ __pg(__p.mu(), __p.omega() / __p.mu());
+ while (__f != __t)
+ *__f++ = std::sqrt(this->_M_gd(__pg, __urng));
+ }
+
+ template<typename _RealType, typename _CharT, typename _Traits>
+ std::basic_ostream<_CharT, _Traits>&
+ operator<<(std::basic_ostream<_CharT, _Traits>& __os,
+ const nakagami_distribution<_RealType>& __x)
+ {
+ typedef std::basic_ostream<_CharT, _Traits> __ostream_type;
+ typedef typename __ostream_type::ios_base __ios_base;
+
+ const typename __ios_base::fmtflags __flags = __os.flags();
+ const _CharT __fill = __os.fill();
+ const std::streamsize __precision = __os.precision();
+ const _CharT __space = __os.widen(' ');
+ __os.flags(__ios_base::scientific | __ios_base::left);
+ __os.fill(__space);
+ __os.precision(std::numeric_limits<_RealType>::max_digits10);
+
+ __os << __x.mu() << __space << __x.omega();
+ __os << __space << __x._M_gd;
+
+ __os.flags(__flags);
+ __os.fill(__fill);
+ __os.precision(__precision);
+ return __os;
+ }
+
+ template<typename _RealType, typename _CharT, typename _Traits>
+ std::basic_istream<_CharT, _Traits>&
+ operator>>(std::basic_istream<_CharT, _Traits>& __is,
+ nakagami_distribution<_RealType>& __x)
+ {
+ typedef std::basic_istream<_CharT, _Traits> __istream_type;
+ typedef typename __istream_type::ios_base __ios_base;
+
+ const typename __ios_base::fmtflags __flags = __is.flags();
+ __is.flags(__ios_base::dec | __ios_base::skipws);
+
+ _RealType __mu_val, __omega_val;
+ __is >> __mu_val >> __omega_val;
+ __is >> __x._M_gd;
+ __x.param(typename nakagami_distribution<_RealType>::
+ param_type(__mu_val, __omega_val));
+
+ __is.flags(__flags);
+ return __is;
+ }
+
+
+ template<typename _RealType>
+ template<typename _OutputIterator,
+ typename _UniformRandomNumberGenerator>
+ void
+ pareto_distribution<_RealType>::
+ __generate_impl(_OutputIterator __f, _OutputIterator __t,
+ _UniformRandomNumberGenerator& __urng,
+ const param_type& __p)
+ {
+ __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator>)
+
+ result_type __mu_val = __p.mu();
+ result_type __malphinv = -result_type(1) / __p.alpha();
+ while (__f != __t)
+ *__f++ = __mu_val * std::pow(this->_M_ud(__urng), __malphinv);
+ }
+
+ template<typename _RealType, typename _CharT, typename _Traits>
+ std::basic_ostream<_CharT, _Traits>&
+ operator<<(std::basic_ostream<_CharT, _Traits>& __os,
+ const pareto_distribution<_RealType>& __x)
+ {
+ typedef std::basic_ostream<_CharT, _Traits> __ostream_type;
+ typedef typename __ostream_type::ios_base __ios_base;
+
+ const typename __ios_base::fmtflags __flags = __os.flags();
+ const _CharT __fill = __os.fill();
+ const std::streamsize __precision = __os.precision();
+ const _CharT __space = __os.widen(' ');
+ __os.flags(__ios_base::scientific | __ios_base::left);
+ __os.fill(__space);
+ __os.precision(std::numeric_limits<_RealType>::max_digits10);
+
+ __os << __x.alpha() << __space << __x.mu();
+ __os << __space << __x._M_ud;
+
+ __os.flags(__flags);
+ __os.fill(__fill);
+ __os.precision(__precision);
+ return __os;
+ }
+
+ template<typename _RealType, typename _CharT, typename _Traits>
+ std::basic_istream<_CharT, _Traits>&
+ operator>>(std::basic_istream<_CharT, _Traits>& __is,
+ pareto_distribution<_RealType>& __x)
+ {
+ typedef std::basic_istream<_CharT, _Traits> __istream_type;
+ typedef typename __istream_type::ios_base __ios_base;
+
+ const typename __ios_base::fmtflags __flags = __is.flags();
+ __is.flags(__ios_base::dec | __ios_base::skipws);
+
+ _RealType __alpha_val, __mu_val;
+ __is >> __alpha_val >> __mu_val;
+ __is >> __x._M_ud;
+ __x.param(typename pareto_distribution<_RealType>::
+ param_type(__alpha_val, __mu_val));
__is.flags(__flags);
return __is;
diff --git a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
index eaf109e73..7c72f58df 100644
--- a/libstdc++-v3/libsupc++/Makefile.am
+++ b/libstdc++-v3/libsupc++/Makefile.am
@@ -98,33 +98,6 @@ sources = \
libsupc___la_SOURCES = $(sources) $(c_sources)
libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
-# AM_CXXFLAGS needs to be in each subdirectory so that it can be
-# modified in a per-library or per-sub-library way. Need to manually
-# set this option because CONFIG_CXXFLAGS has to be after
-# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
-# as the occasion call for it.
-AM_CXXFLAGS = \
- $(PIC_CXXFLAGS) \
- $(XTEMPLATE_FLAGS) \
- $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
-
-AM_MAKEFLAGS = \
- "gxx_include_dir=$(gxx_include_dir)"
-
-
-# Use special rules for pulling things out of libiberty. These
-# objects should be compiled with the "C" compiler, not the C++
-# compiler, and also should not use the C++ includes.
-C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
-C_COMPILE = \
- $(CC) $(DEFS) $(C_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-
-# LTCOMPILE is copied from LTCXXCOMPILE below.
-LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
- $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-
cp-demangle.c:
rm -f $@
$(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
@@ -155,13 +128,37 @@ nested_exception.lo: nested_exception.cc
nested_exception.o: nested_exception.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
-# Libtool notes
+# AM_CXXFLAGS needs to be in each subdirectory so that it can be
+# modified in a per-library or per-sub-library way. Need to manually
+# set this option because CONFIG_CXXFLAGS has to be after
+# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
+# as the occasion call for it.
+AM_CXXFLAGS = \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
+ $(XTEMPLATE_FLAGS) \
+ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
+
+AM_MAKEFLAGS = \
+ "gxx_include_dir=$(gxx_include_dir)"
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# Use special rules for pulling things out of libiberty. These
+# objects should be compiled with the "C" compiler, not the C++
+# compiler, and also should not use the C++ includes.
+C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
+C_COMPILE = \
+ $(CC) $(DEFS) $(C_INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+
+# LTCOMPILE is copied from LTCXXCOMPILE below.
+LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
+ $(CC) $(DEFS) $(C_INCLUDES) \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+
+# Libtool notes
+
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -173,9 +170,18 @@ nested_exception.o: nested_exception.cc
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use.
-#
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX --tag disable-shared \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index 47dd01c27..174146c42 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -157,6 +157,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -221,7 +222,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -269,7 +269,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
@@ -414,7 +417,7 @@ libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion call for it.
AM_CXXFLAGS = \
- $(PIC_CXXFLAGS) \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
$(XTEMPLATE_FLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
@@ -433,17 +436,14 @@ C_COMPILE = \
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
- $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \
+ $(CC) $(DEFS) $(C_INCLUDES) \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
# Libtool notes
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -455,9 +455,18 @@ LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=comp
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use.
-#
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX --tag disable-shared \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 9ec427f56..e88ed8a43 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -97,6 +97,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -161,7 +162,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -209,7 +209,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
index 150dd189e..827f46205 100644
--- a/libstdc++-v3/python/Makefile.in
+++ b/libstdc++-v3/python/Makefile.in
@@ -121,6 +121,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -185,7 +186,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -233,7 +233,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 52cf0d5a3..f64dca4a2 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -116,22 +116,41 @@ compatibility-thread-c++0x.lo: compatibility-thread-c++0x.cc
compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc
$(CXXCOMPILE) -std=gnu++11 -c $<
-# AM_CXXFLAGS needs to be in each subdirectory so that it can be
+# A note on compatibility and static libraries.
+#
+# static lib == linked against only this version, should not need compat
+# shared lib == linked against potentially all compat versions
+#
+# Thus, the shared libs have more compat symbols, which can be found
+# segregated in the sources with -D_GLIBCXX_SHARED.
+#
+# In the sub-directories of libsupc++, src/c++98, src/c++11, only
+# -prefer-pic objects are generated for the convenience libraries.
+#
+# In the main src directory, make shared and static objects just for
+# the compat libraries. Shared objects are compiled with -prefer-pic
+# -D_GLIBCXX_SHARED and in the .libs sub-directory, static objects are
+# compiled with -prefer-pic (ie, -fPIC but not -D_GLIBCXX_SHARED) and
+# the main src directory.
+#
+# Why are objects destined for libstdc++.a compiled with -fPIC? First,
+# because -fPIC is not harmful to use for objects destined for static
+# libraries. In addition, using -fPIC will allow the use of static
+# libstdc++.a in the creation of other C++ shared libraries.
+
+# AM_CXXFLAGS needs to be in each sub-directory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion calls for it.
AM_CXXFLAGS = \
+ $(glibcxx_compiler_pic_flag) \
$(XTEMPLATE_FLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
# Libtool notes
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -142,7 +161,19 @@ AM_CXXFLAGS = \
# can't decide which configuration to use, and it gives up. The
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
-# attempt to infer which configuration to use
+# attempt to infer which configuration to use.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index 10b7c9d4e..df3d1b22e 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -150,6 +150,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -214,7 +215,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -262,7 +262,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
@@ -375,23 +378,42 @@ libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
# Use special rules for parallel mode compilation.
PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp
-# AM_CXXFLAGS needs to be in each subdirectory so that it can be
+# A note on compatibility and static libraries.
+#
+# static lib == linked against only this version, should not need compat
+# shared lib == linked against potentially all compat versions
+#
+# Thus, the shared libs have more compat symbols, which can be found
+# segregated in the sources with -D_GLIBCXX_SHARED.
+#
+# In the sub-directories of libsupc++, src/c++98, src/c++11, only
+# -prefer-pic objects are generated for the convenience libraries.
+#
+# In the main src directory, make shared and static objects just for
+# the compat libraries. Shared objects are compiled with -prefer-pic
+# -D_GLIBCXX_SHARED and in the .libs sub-directory, static objects are
+# compiled with -prefer-pic (ie, -fPIC but not -D_GLIBCXX_SHARED) and
+# the main src directory.
+#
+# Why are objects destined for libstdc++.a compiled with -fPIC? First,
+# because -fPIC is not harmful to use for objects destined for static
+# libraries. In addition, using -fPIC will allow the use of static
+# libstdc++.a in the creation of other C++ shared libraries.
+
+# AM_CXXFLAGS needs to be in each sub-directory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion calls for it.
AM_CXXFLAGS = \
+ $(glibcxx_compiler_pic_flag) \
$(XTEMPLATE_FLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
# Libtool notes
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -402,7 +424,19 @@ AM_CXXFLAGS = \
# can't decide which configuration to use, and it gives up. The
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
-# attempt to infer which configuration to use
+# attempt to infer which configuration to use.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/src/c++11/Makefile.am b/libstdc++-v3/src/c++11/Makefile.am
index 69eb5b6da..1e3dd999a 100644
--- a/libstdc++-v3/src/c++11/Makefile.am
+++ b/libstdc++-v3/src/c++11/Makefile.am
@@ -69,7 +69,7 @@ libc__11convenience_la_SOURCES = $(sources) $(inst_sources)
# as the occasion calls for it.
AM_CXXFLAGS = \
-std=gnu++11 \
- $(PIC_CXXFLAGS) \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
$(XTEMPLATE_FLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
@@ -78,11 +78,7 @@ AM_MAKEFLAGS = \
# Libtool notes
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -94,8 +90,18 @@ AM_MAKEFLAGS = \
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use.
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX --tag disable-shared \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in
index 2e447194d..ee5efaa2c 100644
--- a/libstdc++-v3/src/c++11/Makefile.in
+++ b/libstdc++-v3/src/c++11/Makefile.in
@@ -114,6 +114,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -178,7 +179,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -226,7 +226,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
@@ -333,7 +336,7 @@ libc__11convenience_la_SOURCES = $(sources) $(inst_sources)
# as the occasion calls for it.
AM_CXXFLAGS = \
-std=gnu++11 \
- $(PIC_CXXFLAGS) \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
$(XTEMPLATE_FLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
@@ -343,11 +346,7 @@ AM_MAKEFLAGS = \
# Libtool notes
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -359,8 +358,18 @@ AM_MAKEFLAGS = \
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use.
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX --tag disable-shared \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc b/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
index 8ccad9330..3ad0b9397 100644
--- a/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
+++ b/libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
@@ -30,7 +30,7 @@
// XXX GLIBCXX_ABI Deprecated
// gcc-4.7.0
-#ifdef PIC
+#ifdef _GLIBCXX_SHARED
#define LOGSIZE 4
@@ -147,7 +147,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
// In the future, GLIBCXX_ABI > 6 should remove all uses of
// _GLIBCXX_*_SYMVER macros in this file.
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \
&& defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
&& defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
diff --git a/libstdc++-v3/src/c++11/compatibility-c++0x.cc b/libstdc++-v3/src/c++11/compatibility-c++0x.cc
index bd5dbe0ff..306bad55f 100644
--- a/libstdc++-v3/src/c++11/compatibility-c++0x.cc
+++ b/libstdc++-v3/src/c++11/compatibility-c++0x.cc
@@ -30,7 +30,7 @@
# error "compatibility-c++0x.cc must be compiled with -std=gnu++0x"
#endif
-#ifdef PIC
+#ifdef _GLIBCXX_SHARED
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc b/libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
index e5c7eec41..5e87b5319 100644
--- a/libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
+++ b/libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
@@ -23,7 +23,7 @@
// <http://www.gnu.org/licenses/>.
#include <bits/c++config.h>
-#if defined(_GLIBCXX_HAVE_TLS) && defined(PIC)
+#if defined(_GLIBCXX_HAVE_TLS) && defined(_GLIBCXX_SHARED)
#define _GLIBCXX_ASYNC_ABI_COMPAT
#endif
@@ -40,7 +40,7 @@
// XXX GLIBCXX_ABI Deprecated
// gcc-4.6.0
// <future> export changes
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \
&& defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
&& defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
@@ -57,7 +57,7 @@ _GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIB
// gcc-4.6.0
// <mutex> export changes
#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \
&& defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
&& defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
@@ -82,7 +82,7 @@ _GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx11try_to_lockE, _ZSt11try_to_lock, GLIBCXX_3.4.
// <future> export changes
#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \
&& (ATOMIC_INT_LOCK_FREE > 1)
-#if defined(_GLIBCXX_HAVE_TLS) && defined(PIC)
+#if defined(_GLIBCXX_HAVE_TLS) && defined(_GLIBCXX_SHARED)
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/libstdc++-v3/src/c++98/Makefile.am b/libstdc++-v3/src/c++98/Makefile.am
index 05767e9ff..c153a5933 100644
--- a/libstdc++-v3/src/c++98/Makefile.am
+++ b/libstdc++-v3/src/c++98/Makefile.am
@@ -172,7 +172,7 @@ parallel_settings.o: parallel_settings.cc
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion calls for it.
AM_CXXFLAGS = \
- $(PIC_CXXFLAGS) \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
$(XTEMPLATE_FLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
@@ -181,11 +181,7 @@ AM_MAKEFLAGS = \
# Libtool notes
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -197,8 +193,18 @@ AM_MAKEFLAGS = \
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use.
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX --tag disable-shared \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/src/c++98/Makefile.in b/libstdc++-v3/src/c++98/Makefile.in
index 061288b60..519dd20da 100644
--- a/libstdc++-v3/src/c++98/Makefile.in
+++ b/libstdc++-v3/src/c++98/Makefile.in
@@ -129,6 +129,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -193,7 +194,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -241,7 +241,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
@@ -401,7 +404,7 @@ PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion calls for it.
AM_CXXFLAGS = \
- $(PIC_CXXFLAGS) \
+ $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
$(XTEMPLATE_FLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
@@ -411,11 +414,7 @@ AM_MAKEFLAGS = \
# Libtool notes
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
+# 1) In general, libtool expects an argument such as `--tag=CXX' when
# using the C++ compiler, because that will enable the settings
# detected when C++ support was being configured. However, when no
# such flag is given in the command line, libtool attempts to figure
@@ -427,8 +426,18 @@ AM_MAKEFLAGS = \
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use.
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
+#
+# The second tag argument, `--tag disable-shared` means that libtool
+# only compiles each source once, for static objects. In actuality,
+# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+# the libtool command that is used create the object, which is
+# suitable for shared libraries. The `--tag disable-shared` must be
+# placed after --tag CXX lest things CXX undo the affect of
+# disable-shared.
+
+# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
+# last. (That way, things like -O2 passed down from the toplevel can
+# be overridden by --enable-debug.)
LTCXXCOMPILE = \
$(LIBTOOL) --tag CXX --tag disable-shared \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
diff --git a/libstdc++-v3/src/c++98/compatibility-list-2.cc b/libstdc++-v3/src/c++98/compatibility-list-2.cc
index 975450cb1..0e118ff43 100644
--- a/libstdc++-v3/src/c++98/compatibility-list-2.cc
+++ b/libstdc++-v3/src/c++98/compatibility-list-2.cc
@@ -24,7 +24,7 @@
#include <bits/move.h>
-#ifdef PIC
+#ifdef _GLIBCXX_SHARED
#ifndef _GLIBCXX_BEGIN_NAMESPACE_COMPAT
# define _GLIBCXX_BEGIN_NAMESPACE_COMPAT
diff --git a/libstdc++-v3/src/c++98/compatibility.cc b/libstdc++-v3/src/c++98/compatibility.cc
index 38d9e4b67..9f423d0e8 100644
--- a/libstdc++-v3/src/c++98/compatibility.cc
+++ b/libstdc++-v3/src/c++98/compatibility.cc
@@ -25,7 +25,7 @@
#include <bits/c++config.h>
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \
&& defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE)\
&& defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
#define istreambuf_iterator istreambuf_iteratorXX
@@ -204,7 +204,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
// NB: These symbols renames should go into the shared library only,
// and only those shared libraries that support versioning.
-#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \
&& defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \
&& defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT)
@@ -529,7 +529,7 @@ extern __attribute__((used, weak)) const void * const _ZTIPKe[4]
#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
#ifdef _GLIBCXX_SYMVER_DARWIN
-#if (defined(__ppc__) || defined(__ppc64__)) && defined(PIC)
+#if (defined(__ppc__) || defined(__ppc64__)) && defined(_GLIBCXX_SHARED)
/* __eprintf shouldn't have been made visible from libstdc++, or
anywhere, but on Mac OS X 10.4 it was defined in
libstdc++.6.0.3.dylib; so on that platform we have to keep defining
diff --git a/libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc b/libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
new file mode 100644
index 000000000..7feac92cc
--- /dev/null
+++ b/libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
@@ -0,0 +1,33 @@
+// { dg-do link }
+// { dg-require-static-libstdcxx }
+// { dg-require-sharedlib "" }
+// { dg-require-effective-target fpic }
+// { dg-options "-shared -fPIC -static-libgcc -static-libstdc++" }
+
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>
+
+// libstdc++/28811 --with-pic vs. static linking
+#include <iostream>
+#include <locale>
+
+int main()
+{
+ std::locale c __attribute__((unused)) = std::locale::classic();
+ std::cout << "i am old-skool\n";
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index ce0815915..f8774bb26 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -97,6 +97,7 @@ CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
CSTDIO_H = @CSTDIO_H@
CTIME_CC = @CTIME_CC@
CTIME_H = @CTIME_H@
@@ -161,7 +162,6 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
-PIC_CXXFLAGS = @PIC_CXXFLAGS@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
@@ -209,7 +209,10 @@ glibcxx_MOFILES = @glibcxx_MOFILES@
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
glibcxx_POFILES = @glibcxx_POFILES@
glibcxx_builddir = @glibcxx_builddir@
+glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
glibcxx_localedir = @glibcxx_localedir@
+glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
glibcxx_prefixdir = @glibcxx_prefixdir@
glibcxx_srcdir = @glibcxx_srcdir@
glibcxx_toolexecdir = @glibcxx_toolexecdir@
diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc
new file mode 100644
index 000000000..6edacc47f
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc
@@ -0,0 +1,47 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-18 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template nakagami_distribution [rand.dist.ext.nakagami]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::nakagami_distribution<> u;
+ VERIFY( u.mu() == 1.0 );
+ VERIFY( u.omega() == 1.0 );
+ VERIFY( u.min() == 0.0 );
+ typedef __gnu_cxx::nakagami_distribution<>::result_type result_type;
+ VERIFY( u.max() == std::numeric_limits<result_type>::max() );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc
new file mode 100644
index 000000000..6fc23c811
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc
@@ -0,0 +1,47 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-18 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template nakagami_distribution [rand.dist.ext.nakagami]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::nakagami_distribution<> u(1.5, 3.0);
+ VERIFY( u.mu() == 1.5 );
+ VERIFY( u.omega() == 3.0 );
+ VERIFY( u.min() == 0.0 );
+ typedef __gnu_cxx::nakagami_distribution<>::result_type result_type;
+ VERIFY( u.max() == std::numeric_limits<result_type>::max() );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc
new file mode 100644
index 000000000..b26be72f3
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-18 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.5.8.4.5 Class template nakagami_distribution [rand.dist.ext.nakagami]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::nakagami_distribution<double> u(2.0, 3.0), v, w;
+
+ VERIFY( v == w );
+ VERIFY( !(u == v) );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc
new file mode 100644
index 000000000..345da3bde
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-18 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.5.8.4.5 Class template nakagami_distribution [rand.dist.ext.nakagami]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::nakagami_distribution<double> u(2.0, 3.0), v, w;
+
+ VERIFY( u != v );
+ VERIFY( !(v != w) );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc
new file mode 100644
index 000000000..49bb4d3c0
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc
@@ -0,0 +1,51 @@
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-18 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template nakagami_distribution [rand.dist.ext.nakagami]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::stringstream str;
+ __gnu_cxx::nakagami_distribution<double> u(1.5, 3.0), v;
+ std::minstd_rand0 rng;
+
+ u(rng); // advance
+ str << u;
+
+ str >> v;
+ VERIFY( u == v );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644
index 000000000..30f011e33
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+template class __gnu_cxx::nakagami_distribution<float>;
+template class __gnu_cxx::nakagami_distribution<double>;
+template class __gnu_cxx::nakagami_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc
new file mode 100644
index 000000000..d17117e0d
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc
@@ -0,0 +1,36 @@
+// { dg-do compile }
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-18 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template nakagami_distribution [rand.dist.ext.nakagami]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+
+void
+test01()
+{
+ typedef __gnu_cxx::nakagami_distribution<double> test_type;
+
+ typedef test_type::result_type result_type;
+ typedef test_type::param_type param_type;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc
new file mode 100644
index 000000000..785aad0c7
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc
@@ -0,0 +1,47 @@
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-21 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template pareto_distribution [rand.dist.ext.pareto]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::pareto_distribution<> u;
+ VERIFY( u.alpha() == 1.0 );
+ VERIFY( u.mu() == 1.0 );
+ VERIFY( u.min() == 1.0 );
+ typedef __gnu_cxx::pareto_distribution<>::result_type result_type;
+ VERIFY( u.max() == std::numeric_limits<result_type>::max() );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc
new file mode 100644
index 000000000..ae958d7d8
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc
@@ -0,0 +1,47 @@
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-21 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template pareto_distribution [rand.dist.ext.pareto]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::pareto_distribution<> u(1.5, 3.0);
+ VERIFY( u.alpha() == 1.5 );
+ VERIFY( u.mu() == 3.0 );
+ VERIFY( u.min() == 3.0 );
+ typedef __gnu_cxx::pareto_distribution<>::result_type result_type;
+ VERIFY( u.max() == std::numeric_limits<result_type>::max() );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc
new file mode 100644
index 000000000..140310da8
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-21 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.5.8.4.5 Class template pareto_distribution [rand.dist.ext.pareto]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::pareto_distribution<double> u(2.0, 3.0), v, w;
+
+ VERIFY( v == w );
+ VERIFY( !(u == v) );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc
new file mode 100644
index 000000000..f5fc6f1fa
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc
@@ -0,0 +1,44 @@
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-21 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.5.8.4.5 Class template pareto_distribution [rand.dist.ext.pareto]
+
+#include <ext/random>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ __gnu_cxx::pareto_distribution<double> u(2.0, 3.0), v, w;
+
+ VERIFY( u != v );
+ VERIFY( !(v != w) );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc
new file mode 100644
index 000000000..19dfa341b
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc
@@ -0,0 +1,51 @@
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-21 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template pareto_distribution [rand.dist.ext.pareto]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ std::stringstream str;
+ __gnu_cxx::pareto_distribution<double> u(1.5, 3.0), v;
+ std::minstd_rand0 rng;
+
+ u(rng); // advance
+ str << u;
+
+ str >> v;
+ VERIFY( u == v );
+}
+
+int
+main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc
new file mode 100644
index 000000000..9c2c87d21
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// Copyright (C) 2012 Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <ext/random>
+
+template class __gnu_cxx::pareto_distribution<float>;
+template class __gnu_cxx::pareto_distribution<double>;
+template class __gnu_cxx::pareto_distribution<long double>;
diff --git a/libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc b/libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc
new file mode 100644
index 000000000..a1b3355a5
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc
@@ -0,0 +1,36 @@
+// { dg-do compile }
+// { dg-options "-std=c++11" }
+// { dg-require-cstdint "" }
+//
+// 2012-09-21 Edward M. Smith-Rowland <3dw4rd@verizon.net>
+//
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 26.4.8.3.* Class template pareto_distribution [rand.dist.ext.pareto]
+// 26.4.2.4 Concept RandomNumberDistribution [rand.concept.dist]
+
+#include <ext/random>
+
+void
+test01()
+{
+ typedef __gnu_cxx::pareto_distribution<double> test_type;
+
+ typedef test_type::result_type result_type;
+ typedef test_type::param_type param_type;
+}