diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-02-20 10:38:10 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-02-20 10:38:10 +0000 |
commit | e7e5252e5c3c42a01498c3dffe013e71849562af (patch) | |
tree | 6e9302835ec9153549906710a2dc653b3fb1e0b7 | |
parent | b2ef120cd90a0d02735b3f310274bdfad29429aa (diff) | |
download | gcc-e7e5252e5c3c42a01498c3dffe013e71849562af.tar.gz |
2012-02-20 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 184385 using svnmerge
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@184387 138bc75d-0d04-0410-961f-82ee72b054a4
169 files changed, 7463 insertions, 3729 deletions
diff --git a/ChangeLog b/ChangeLog index 3a14fa7b6d5..64ac4f65b58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-02-17 Walter Lee <walt@tilera.com> + + * MAINTAINERS: (Write After Approval): Delete myself. + 2012-02-14 Walter Lee <walt@tilera.com> * MAINTAINERS (tilegx port): Add myself. diff --git a/ChangeLog.MELT b/ChangeLog.MELT index e1bc37afa7d..49fb5f8b4c6 100644 --- a/ChangeLog.MELT +++ b/ChangeLog.MELT @@ -1,4 +1,8 @@ +2012-02-20 Basile Starynkevitch <basile@starynkevitch.net> + + MELT branch merged with trunk rev 184385 using svnmerge + 2012-02-15 Basile Starynkevitch <basile@starynkevitch.net> MELT branch merged with trunk rev 184269 using svnmerge diff --git a/MAINTAINERS b/MAINTAINERS index 2c8f466bc6e..a8b43de32c7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -430,7 +430,6 @@ Asher Langton langton2@llnl.gov Chris Lattner sabre@nondot.org Terry Laurenzo tlaurenzo@gmail.com Georg-Johann Lay avr@gjlay.de -Walter Lee walt@tilera.com Marc Lehmann pcg@goof.com James Lemke jwlemke@codesourcery.com Kriang Lerdsuwanakij lerdsuwa@users.sourceforge.net diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 789f345e0f5..aeaee192b36 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,13 @@ +2012-02-17 Doug Kwan <dougkwan@google.com> + + * contrib/testsuite-management/validate_failures.py + (GetMakefileValue): Check for cross compilers. + +2012-02-15 Quentin Neill <quentin.neill@amd.com> + + * compare_tests: Fix trailing paths in dir arguments. + Handle sum1/sum2 temp files with others. + 2012-02-14 Walter Lee <walt@tilera.com> * config-list.mk (LIST): Add tilegx-linux-gnu and diff --git a/contrib/compare_tests b/contrib/compare_tests index eb17b323fec..2fc6e056fc6 100755 --- a/contrib/compare_tests +++ b/contrib/compare_tests @@ -43,7 +43,9 @@ lst2=/tmp/$tool-lst2.$$ lst3=/tmp/$tool-lst3.$$ lst4=/tmp/$tool-lst4.$$ lst5=/tmp/$tool-lst5.$$ -tmps="$tmp1 $tmp2 $now_s $before_s $lst1 $lst2 $lst3 $lst4 $lst5" +sum1=/tmp/$tool-sum1.$$ +sum2=/tmp/$tool-sum2.$$ +tmps="$tmp1 $tmp2 $now_s $before_s $lst1 $lst2 $lst3 $lst4 $lst5 $sum1 $sum2" [ "$1" = "-strict" ] && strict=$1 && shift [ "$1" = "-?" ] && usage @@ -60,8 +62,8 @@ if [ -d "$1" -a -d "$2" ] ; then echo "## Dir2=$2: `cat $lst2 | wc -l` sum files" echo # remove leading directory components to compare - sed -e "s|^$1/||" $lst1 | sort >$lst3 - sed -e "s|^$2/||" $lst2 | sort >$lst4 + sed -e "s|^$1[/]*||" $lst1 | sort >$lst3 + sed -e "s|^$2[/]*||" $lst2 | sort >$lst4 comm -23 $lst3 $lst4 >$lst5 if [ -s $lst5 ] ; then echo "# Extra sum files in Dir1=$1" @@ -83,14 +85,11 @@ if [ -d "$1" -a -d "$2" ] ; then exit $exit_status fi cmnsums=`cat $lst5 | wc -l` - sum1="/tmp/$tool-sum-1" - sum2="/tmp/$tool-sum-2" echo "# Comparing $cmnsums common sum files" ( for fname in `cat $lst5`; do cat $1/$fname; done ) >$sum1 ( for fname in `cat $lst5`; do cat $2/$fname; done ) >$sum2 echo "## ${CONFIG_SHELL-/bin/sh} $0 $strict $sum1 $sum2" ${CONFIG_SHELL-/bin/sh} $0 $strict $sum1 $sum2 - rm -f $sum1 $sum2 ret=$? if [ $ret -ne 0 ]; then exit_status=`expr $exit_status + 1` diff --git a/contrib/testsuite-management/validate_failures.py b/contrib/testsuite-management/validate_failures.py index be2ffcee5c6..072de796aa0 100755 --- a/contrib/testsuite-management/validate_failures.py +++ b/contrib/testsuite-management/validate_failures.py @@ -146,7 +146,8 @@ def GetMakefileValue(makefile_name, value_name): def ValidBuildDirectory(builddir, target): if (not os.path.exists(builddir) or not os.path.exists('%s/Makefile' % builddir) or - not os.path.exists('%s/build-%s' % (builddir, target))): + (not os.path.exists('%s/build-%s' % (builddir, target)) and + not os.path.exists('%s/%s' % (builddir, target)))): return False return True diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3cbbf18ecb9..07635dfbe79 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,97 @@ +2012-02-19 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable. + (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally. + (mips_start_unique_function, mips_output_mips16_rdhwr) + (mips_code_end): New functions. + (TARGET_ASM_CODE_END): Define. + +2012-02-19 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.c (mips16_build_call_stub): Add CFI information + to stubs with non-sibling calls. + +2012-02-18 Sandra Loosemore <sandra@codesourcery.com> + + * doc/invoke.texi (-fira-* options): Copy-edit. + (ira-* parameters): Copy-edit. + +2012-02-17 Sandra Loosemore <sandra@codesourcery.com> + + * doc/invoke.texi: Minor copy-edits to bring into conformance with + GCC coding conventions. + +2012-02-17 Sandra Loosemore <sandra@codesourcery.com> + + * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian" + when used as adjectives. + +2012-02-16 Sandra Loosemore <sandra@codesourcery.com> + + * doc/invoke.texi: Clean up "that"/"which" confusion. + +2012-02-17 Steven Bosscher <steven@gcc.gnu.org> + + * system.h: Poison SMALL_REGISTER_CLASSES + * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook. + * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES. + +2012-02-16 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/52285 + * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts + when deciding if a call is a tail call or tail recursion. + +2012-02-16 Kai Tietz <ktietz@redhat.com> + + * config/i386/i386.c (legitimate_pic_address_disp_p): Allow + interger-constant displacement for UNSPEC_PCREL. + +2012-02-16 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/52208 + * ira-costs.c (scan_one_insn): Don't decrease mem_cost + for MEMs with REG_EQUIV, if the MEM isn't general_operand. + + PR tree-optimization/52255 + * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If + loop->header has virtual PHI, but exit_e->dest doesn't, add + virtual PHI to exit_e->dest and adjust all uses after the loop. + + PR debug/52260 + * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing + children with clone_tree_hash, not after it. + +2012-02-16 Iain Sandoe <iains@gcc.gnu.org> + + * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for + extended identifiers. + +2012-02-16 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/51929 + * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is + a same_body_alias, also test whether e->callee isn't a former + or current clone of the decl this is a same body alias of. + + PR translation/52264 + * cgraphunit.c (verify_cgraph_node): Fix a typo. + +2012-02-15 Sandra Loosemore <sandra@codesourcery.com> + + * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers. + +2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com> + + PR target/52199 + * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use + force_reg instead of copy_to_reg for better optimization. Force + non-register or memory operands into a register. + +2012-02-15 Andrew MacLeod <amacleod@redhat.com> + + * extend.texi: Reserve upper bits of memory model for future use. + 2012-01-15 Georg-Johann Lay <avr@gjlay.de> Anatoly Sokolov <aesok@post.ru> Eric Weddington <eric.weddington@atmel.com> diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 5c95bed2342..2bf1d04f5a3 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20120215 +20120220 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 7c57446c60b..be95913fe49 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,134 @@ +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Legal_Copy): If layout is not + determined in the front-end, do not emit error message when + by-reference actual is potentially unaligned. + * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for + illegal representation clause on tagged or aliased component, or on + by-reference type with forced alignment. + +2012-02-17 Nicolas Roche <roche@adacore.com> + + * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is + propagated by gnatlib-sjlj and gnatlib-zcx targets. + * gcc-interface/Make-lang.in: Update dependencies. + +2012-02-17 Thomas Quinot <quinot@adacore.com> + + * sem_ch12.adb (Analyze_Package_Instantiation): For an + instantiation in an RCI library unit, omit the instance body + if the RCI library unit is the instance itself (E.2.3(18)), + but include the body if the instantiation is within the RCI + declaration (12.3(12)). + +2012-02-17 Steve Baird <baird@adacore.com> + + * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and + Post'Class aspects can only be specified for a primitive operation + of a tagged type. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor shuffling. + +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * aspects.adb: Expression functions can carry pre/postconditions. + * par-ch6.adb (P_Subprogram): look for optional pre/postconditions + in an expression function. + * sem_prag (Check_Precondition_Postcondition): legal on expression + functions. + +2012-02-17 Vincent Pucci <pucci@adacore.com> + + * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb, + * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb, + * a-convec.adb, a-coorma.adb (Adjust): New routine. + (Constant_Reference): Increment Busy and Lock counters. + (Reference): Increase Busy and Lock counters. + (Finalize): New routine. + * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb: + (Adjust): New routine. (Constant_Reference): Increment Busy + and Lock counters. + (Finalize): New routine. + * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads, + * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads, + * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads, + * a-coorma.ads, a-coorse: Controlled component added to the + reference types. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * restrict.adb (Check_Restriction): Add special handling for + No_Obsolescent_Features. + +2012-02-17 Hristian Kirtchev <kirtchev@adacore.com> + + * exp_util.adb (Find_Finalize_Address): When dealing with an + internally built full view for a type with unknown discriminants, + use the original record type. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * sem_dim.adb: Minor reformatting. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Minor rewording. + +2012-02-17 Thomas Quinot <quinot@adacore.com> + + * sem_aggr.adb: Minor reformatting. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case. + +2012-02-17 Vincent Pucci <pucci@adacore.com> + + * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine. + (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity + call added. + (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity + call added. + * s-dim.ads: Make package Pure. + +2012-02-17 Gary Dismukes <dismukes@adacore.com> + + * prj-nmsc.adb: Minor reformatting. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions. + +2012-02-17 Yannick Moy <moy@adacore.com> + + * gnat_ugn.texi: Fix typos. + +2012-02-17 Pascal Obry <obry@adacore.com> + + * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an + aggregate is not Externally_Built. + +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * sem_aggr.adb (Resolve_Record_Aggregate): If a composite + component has a box association, copy the default value using + the current scope as the scope of internal types, to prevent + scoping anomalies in gigi. + +2012-02-17 Robert Dewar <dewar@adacore.com> + + * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb, + sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb, + exp_intr.adb, s-os_lib.adb: Minor reformatting. + +2012-02-17 Ed Schonberg <schonberg@adacore.com> + + * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the + old operation is abstract, the relevant type is not abstract, + and the new subprogram fails to override. + 2012-02-15 Eric Botcazou <ebotcazou@adacore.com> * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the diff --git a/gcc/ada/a-cdlili.adb b/gcc/ada/a-cdlili.adb index cfbcc36bc79..a04afb0bd8f 100644 --- a/gcc/ada/a-cdlili.adb +++ b/gcc/ada/a-cdlili.adb @@ -142,6 +142,20 @@ package body Ada.Containers.Doubly_Linked_Lists is end loop; end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : List renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Append -- ------------ @@ -244,7 +258,20 @@ package body Ada.Containers.Doubly_Linked_Lists is pragma Assert (Vet (Position), "bad cursor in Constant_Reference"); - return (Element => Position.Node.Element'Access); + declare + C : List renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -442,6 +469,22 @@ package body Ada.Containers.Doubly_Linked_Lists is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : List renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1336,7 +1379,19 @@ package body Ada.Containers.Doubly_Linked_Lists is pragma Assert (Vet (Position), "bad cursor in function Reference"); - return (Element => Position.Node.Element'Access); + declare + C : List renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; --------------------- diff --git a/gcc/ada/a-cdlili.ads b/gcc/ada/a-cdlili.ads index ae9ae6b625a..d1707c757a2 100644 --- a/gcc/ada/a-cdlili.ads +++ b/gcc/ada/a-cdlili.ads @@ -104,10 +104,12 @@ package Ada.Containers.Doubly_Linked_Lists is function Constant_Reference (Container : aliased List; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out List; Position : Cursor) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out List; Source : List); @@ -305,8 +307,22 @@ private for Cursor'Write use Write; + type Reference_Control_Type is + new Controlled with record + Container : List_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; @@ -321,7 +337,10 @@ private for Constant_Reference_Type'Read use Read; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-cidlli.adb b/gcc/ada/a-cidlli.adb index cac6e9cafa6..cc93b4c2fc0 100644 --- a/gcc/ada/a-cidlli.adb +++ b/gcc/ada/a-cidlli.adb @@ -166,6 +166,20 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is end loop; end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : List renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Append -- ------------ @@ -271,7 +285,19 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is pragma Assert (Vet (Position), "bad cursor in Constant_Reference"); - return (Element => Position.Node.Element.all'Access); + declare + C : List renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -479,6 +505,22 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : List renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1372,7 +1414,19 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is pragma Assert (Vet (Position), "bad cursor in function Reference"); - return (Element => Position.Node.Element.all'Access); + declare + C : List renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; --------------------- diff --git a/gcc/ada/a-cidlli.ads b/gcc/ada/a-cidlli.ads index 37886e1538f..af57af11ae9 100644 --- a/gcc/ada/a-cidlli.ads +++ b/gcc/ada/a-cidlli.ads @@ -103,10 +103,12 @@ package Ada.Containers.Indefinite_Doubly_Linked_Lists is function Constant_Reference (Container : aliased List; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out List; Position : Cursor) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out List; Source : List); @@ -299,8 +301,22 @@ private for Cursor'Write use Write; + type Reference_Control_Type is + new Controlled with record + Container : List_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; @@ -315,7 +331,10 @@ private for Constant_Reference_Type'Read use Read; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-cihama.adb b/gcc/ada/a-cihama.adb index 35419020c10..1d30d0443e4 100644 --- a/gcc/ada/a-cihama.adb +++ b/gcc/ada/a-cihama.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -136,6 +136,21 @@ package body Ada.Containers.Indefinite_Hashed_Maps is HT_Ops.Adjust (Container.HT); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + M : Map renames Control.Container.all; + HT : Hash_Table_Type renames M.HT'Unrestricted_Access.all; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -217,7 +232,21 @@ package body Ada.Containers.Indefinite_Hashed_Maps is (Vet (Position), "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element.all'Access); + declare + M : Map renames Position.Container.all; + HT : Hash_Table_Type renames M.HT'Unrestricted_Access.all; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; function Constant_Reference @@ -235,7 +264,21 @@ package body Ada.Containers.Indefinite_Hashed_Maps is raise Program_Error with "key has no element"; end if; - return (Element => Node.Element.all'Access); + declare + M : Map renames Container'Unrestricted_Access.all; + HT : Hash_Table_Type renames M.HT'Unrestricted_Access.all; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -484,6 +527,23 @@ package body Ada.Containers.Indefinite_Hashed_Maps is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + M : Map renames Control.Container.all; + HT : Hash_Table_Type renames M.HT'Unrestricted_Access.all; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1028,7 +1088,20 @@ package body Ada.Containers.Indefinite_Hashed_Maps is (Vet (Position), "Position cursor in function Reference is bad"); - return (Element => Position.Node.Element.all'Access); + declare + M : Map renames Position.Container.all; + HT : Hash_Table_Type renames M.HT'Unrestricted_Access.all; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; function Reference @@ -1046,7 +1119,21 @@ package body Ada.Containers.Indefinite_Hashed_Maps is raise Program_Error with "key has no element"; end if; - return (Element => Node.Element.all'Access); + declare + M : Map renames Container'Unrestricted_Access.all; + HT : Hash_Table_Type renames M.HT'Unrestricted_Access.all; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Reference_Type := + (Element => Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; ------------- diff --git a/gcc/ada/a-cihama.ads b/gcc/ada/a-cihama.ads index f2158fdc79c..feef181b65b 100644 --- a/gcc/ada/a-cihama.ads +++ b/gcc/ada/a-cihama.ads @@ -147,18 +147,22 @@ package Ada.Containers.Indefinite_Hashed_Maps is function Constant_Reference (Container : aliased Map; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Position : Cursor) return Reference_Type; + pragma Inline (Reference); function Constant_Reference (Container : aliased Map; Key : Key_Type) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Key : Key_Type) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Map; Source : Map); @@ -363,8 +367,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Map_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; @@ -379,7 +397,10 @@ private for Constant_Reference_Type'Read use Read; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-cihase.adb b/gcc/ada/a-cihase.adb index 6255675550e..735179415c1 100644 --- a/gcc/ada/a-cihase.adb +++ b/gcc/ada/a-cihase.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -165,6 +165,20 @@ package body Ada.Containers.Indefinite_Hashed_Sets is HT_Ops.Adjust (Container.HT); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + HT : Hash_Table_Type renames Control.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -228,7 +242,20 @@ package body Ada.Containers.Indefinite_Hashed_Sets is pragma Assert (Vet (Position), "bad cursor in Constant_Reference"); - return (Element => Position.Node.Element.all'Access); + declare + HT : Hash_Table_Type renames Position.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -610,6 +637,22 @@ package body Ada.Containers.Indefinite_Hashed_Sets is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + HT : Hash_Table_Type renames Control.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1926,7 +1969,20 @@ package body Ada.Containers.Indefinite_Hashed_Sets is raise Program_Error with "Node has no element"; end if; - return (Element => Node.Element.all'Access); + declare + HT : Hash_Table_Type renames Container'Unrestricted_Access.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- diff --git a/gcc/ada/a-cihase.ads b/gcc/ada/a-cihase.ads index f361830b78b..b300186f6db 100644 --- a/gcc/ada/a-cihase.ads +++ b/gcc/ada/a-cihase.ads @@ -152,6 +152,7 @@ package Ada.Containers.Indefinite_Hashed_Sets is function Constant_Reference (Container : aliased Set; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); procedure Assign (Target : in out Set; Source : Set); @@ -507,8 +508,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Set_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-cimutr.adb b/gcc/ada/a-cimutr.adb index c3887a57769..050c0395dee 100644 --- a/gcc/ada/a-cimutr.adb +++ b/gcc/ada/a-cimutr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -204,6 +204,20 @@ package body Ada.Containers.Indefinite_Multiway_Trees is Container.Count := Source_Count; end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Tree renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------------- -- Ancestor_Find -- ------------------- @@ -472,7 +486,20 @@ package body Ada.Containers.Indefinite_Multiway_Trees is -- pragma Assert (Vet (Position), -- "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element.all'Access); + declare + C : Tree renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -985,6 +1012,22 @@ package body Ada.Containers.Indefinite_Multiway_Trees is B := B - 1; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Tree renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -2041,7 +2084,19 @@ package body Ada.Containers.Indefinite_Multiway_Trees is -- pragma Assert (Vet (Position), -- "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element.all'Access); + declare + C : Tree renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; -------------------- diff --git a/gcc/ada/a-cimutr.ads b/gcc/ada/a-cimutr.ads index 87c0e41f1d5..6c3411f1314 100644 --- a/gcc/ada/a-cimutr.ads +++ b/gcc/ada/a-cimutr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. The copyright notice above, and the license provisions that follow -- @@ -112,10 +112,12 @@ package Ada.Containers.Indefinite_Multiway_Trees is function Constant_Reference (Container : aliased Tree; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Tree; Position : Cursor) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Tree; Source : Tree); @@ -378,8 +380,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Tree_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; @@ -394,7 +410,10 @@ private for Constant_Reference_Type'Write use Write; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-ciorma.adb b/gcc/ada/a-ciorma.adb index 15efbc7243d..b62b87b3a39 100644 --- a/gcc/ada/a-ciorma.adb +++ b/gcc/ada/a-ciorma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -291,6 +291,20 @@ package body Ada.Containers.Indefinite_Ordered_Maps is Adjust (Container.Tree); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + T : Tree_Type renames Control.Container.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -379,7 +393,20 @@ package body Ada.Containers.Indefinite_Ordered_Maps is pragma Assert (Vet (Container.Tree, Position.Node), "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element.all'Access); + declare + T : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; function Constant_Reference @@ -397,7 +424,20 @@ package body Ada.Containers.Indefinite_Ordered_Maps is raise Program_Error with "Node has no element"; end if; - return (Element => Node.Element.all'Access); + declare + T : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -586,6 +626,22 @@ package body Ada.Containers.Indefinite_Ordered_Maps is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + T : Tree_Type renames Control.Container.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1360,7 +1416,19 @@ package body Ada.Containers.Indefinite_Ordered_Maps is pragma Assert (Vet (Container.Tree, Position.Node), "Position cursor in function Reference is bad"); - return (Element => Position.Node.Element.all'Access); + declare + T : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; function Reference @@ -1378,7 +1446,20 @@ package body Ada.Containers.Indefinite_Ordered_Maps is raise Program_Error with "Node has no element"; end if; - return (Element => Node.Element.all'Access); + declare + T : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Reference_Type := + (Element => Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; ------------- diff --git a/gcc/ada/a-ciorma.ads b/gcc/ada/a-ciorma.ads index 7599b3e6dbb..5c3a776c4aa 100644 --- a/gcc/ada/a-ciorma.ads +++ b/gcc/ada/a-ciorma.ads @@ -109,18 +109,22 @@ package Ada.Containers.Indefinite_Ordered_Maps is function Constant_Reference (Container : aliased Map; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Position : Cursor) return Reference_Type; + pragma Inline (Reference); function Constant_Reference (Container : aliased Map; Key : Key_Type) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Key : Key_Type) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Map; Source : Map); @@ -292,8 +296,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Map_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; @@ -308,7 +326,10 @@ private for Constant_Reference_Type'Write use Write; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-ciorse.adb b/gcc/ada/a-ciorse.adb index ff929067237..7b919494a17 100644 --- a/gcc/ada/a-ciorse.adb +++ b/gcc/ada/a-ciorse.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -325,6 +325,20 @@ package body Ada.Containers.Indefinite_Ordered_Sets is Adjust (Container.Tree); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + Tree : Tree_Type renames Control.Container.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -398,7 +412,20 @@ package body Ada.Containers.Indefinite_Ordered_Sets is (Vet (Container.Tree, Position.Node), "bad cursor in Constant_Reference"); - return (Element => Position.Node.Element.all'Access); + declare + Tree : Tree_Type renames Position.Container.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -617,6 +644,22 @@ package body Ada.Containers.Indefinite_Ordered_Sets is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + Tree : Tree_Type renames Control.Container.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -782,7 +825,20 @@ package body Ada.Containers.Indefinite_Ordered_Sets is raise Program_Error with "Node has no element"; end if; - return (Element => Node.Element.all'Access); + declare + Tree : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- diff --git a/gcc/ada/a-ciorse.ads b/gcc/ada/a-ciorse.ads index aa16272ed11..87ba353e9e8 100644 --- a/gcc/ada/a-ciorse.ads +++ b/gcc/ada/a-ciorse.ads @@ -99,6 +99,7 @@ package Ada.Containers.Indefinite_Ordered_Sets is function Constant_Reference (Container : aliased Set; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); procedure Assign (Target : in out Set; Source : Set); @@ -376,8 +377,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Set_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-cohama.adb b/gcc/ada/a-cohama.adb index 8adcb1af35a..00553d0eeff 100644 --- a/gcc/ada/a-cohama.adb +++ b/gcc/ada/a-cohama.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -135,6 +135,20 @@ package body Ada.Containers.Hashed_Maps is HT_Ops.Adjust (Container.HT); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + HT : Hash_Table_Type renames Control.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -211,7 +225,19 @@ package body Ada.Containers.Hashed_Maps is (Vet (Position), "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element'Access); + declare + HT : Hash_Table_Type renames Container'Unrestricted_Access.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; function Constant_Reference @@ -225,7 +251,20 @@ package body Ada.Containers.Hashed_Maps is raise Constraint_Error with "key not in map"; end if; - return (Element => Node.Element'Access); + declare + HT : Hash_Table_Type renames Container'Unrestricted_Access.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -439,6 +478,22 @@ package body Ada.Containers.Hashed_Maps is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + HT : Hash_Table_Type renames Control.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -920,7 +975,19 @@ package body Ada.Containers.Hashed_Maps is (Vet (Position), "Position cursor in function Reference is bad"); - return (Element => Position.Node.Element'Access); + declare + HT : Hash_Table_Type renames Container'Unrestricted_Access.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; function Reference @@ -934,7 +1001,20 @@ package body Ada.Containers.Hashed_Maps is raise Constraint_Error with "key not in map"; end if; - return (Element => Node.Element'Access); + declare + HT : Hash_Table_Type renames Container'Unrestricted_Access.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Reference_Type := + (Element => Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; --------------- diff --git a/gcc/ada/a-cohama.ads b/gcc/ada/a-cohama.ads index 6550b46a1a1..98b2cb3c5a8 100644 --- a/gcc/ada/a-cohama.ads +++ b/gcc/ada/a-cohama.ads @@ -148,18 +148,22 @@ package Ada.Containers.Hashed_Maps is function Constant_Reference (Container : aliased Map; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Position : Cursor) return Reference_Type; + pragma Inline (Reference); function Constant_Reference (Container : aliased Map; Key : Key_Type) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Key : Key_Type) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Map; Source : Map); @@ -369,8 +373,22 @@ private for Cursor'Write use Write; + type Reference_Control_Type is + new Controlled with record + Container : Map_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; @@ -385,7 +403,10 @@ private for Constant_Reference_Type'Read use Read; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-cohase.adb b/gcc/ada/a-cohase.adb index dd09da5a17c..11940ee7a57 100644 --- a/gcc/ada/a-cohase.adb +++ b/gcc/ada/a-cohase.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -161,6 +161,20 @@ package body Ada.Containers.Hashed_Sets is HT_Ops.Adjust (Container.HT); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + HT : Hash_Table_Type renames Control.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -218,7 +232,20 @@ package body Ada.Containers.Hashed_Sets is pragma Assert (Vet (Position), "bad cursor in Constant_Reference"); - return (Element => Position.Node.Element'Access); + declare + HT : Hash_Table_Type renames Position.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -548,6 +575,22 @@ package body Ada.Containers.Hashed_Sets is HT_Ops.Finalize (Container.HT); end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + HT : Hash_Table_Type renames Control.Container.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1746,7 +1789,20 @@ package body Ada.Containers.Hashed_Sets is raise Constraint_Error with "Key not in set"; end if; - return (Element => Node.Element'Access); + declare + HT : Hash_Table_Type renames Container'Unrestricted_Access.all.HT; + B : Natural renames HT.Busy; + L : Natural renames HT.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- diff --git a/gcc/ada/a-cohase.ads b/gcc/ada/a-cohase.ads index 88b5f4bfb43..de62cd96a5f 100644 --- a/gcc/ada/a-cohase.ads +++ b/gcc/ada/a-cohase.ads @@ -153,6 +153,7 @@ package Ada.Containers.Hashed_Sets is function Constant_Reference (Container : aliased Set; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); procedure Assign (Target : in out Set; Source : Set); @@ -509,8 +510,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Set_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-coinve.adb b/gcc/ada/a-coinve.adb index 326524cc2f1..0627af1b94e 100644 --- a/gcc/ada/a-coinve.adb +++ b/gcc/ada/a-coinve.adb @@ -578,6 +578,20 @@ package body Ada.Containers.Indefinite_Vectors is end; end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Vector renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Append -- ------------ @@ -697,7 +711,20 @@ package body Ada.Containers.Indefinite_Vectors is raise Constraint_Error with "element at Position is empty"; end if; - return (Element => E.all'Access); + declare + C : Vector renames Container'Unrestricted_Access.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => E.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; function Constant_Reference @@ -717,7 +744,20 @@ package body Ada.Containers.Indefinite_Vectors is raise Constraint_Error with "element at Index is empty"; end if; - return (Element => E.all'Access); + declare + C : Vector renames Container'Unrestricted_Access.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => E.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -1131,6 +1171,22 @@ package body Ada.Containers.Indefinite_Vectors is B := B - 1; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Vector renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1402,6 +1458,8 @@ package body Ada.Containers.Indefinite_Vectors is Array_Type => Elements_Array, "<" => Is_Less); + -- Start of processing for Sort + begin if Container.Last <= Index_Type'First then return; @@ -3047,7 +3105,19 @@ package body Ada.Containers.Indefinite_Vectors is raise Constraint_Error with "element at Position is empty"; end if; - return (Element => E.all'Access); + declare + C : Vector renames Container'Unrestricted_Access.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => E.all'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; function Reference @@ -3067,7 +3137,20 @@ package body Ada.Containers.Indefinite_Vectors is raise Constraint_Error with "element at Index is empty"; end if; - return (Element => E.all'Access); + declare + C : Vector renames Container'Unrestricted_Access.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => E.all'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; --------------------- @@ -3430,9 +3513,9 @@ package body Ada.Containers.Indefinite_Vectors is -- catch more things) instead of for element tampering (which will catch -- fewer things). It's true that the elements of this vector container -- could be safely moved around while (say) an iteration is taking place - -- (iteration only increments the busy counter), and so technically - -- all we would need here is a test for element tampering (indicated - -- by the lock counter), that's simply an artifact of our array-based + -- (iteration only increments the busy counter), and so technically all + -- we would need here is a test for element tampering (indicated by the + -- lock counter), that's simply an artifact of our array-based -- implementation. Logically Reverse_Elements requires a check for -- cursor tampering. diff --git a/gcc/ada/a-coinve.ads b/gcc/ada/a-coinve.ads index e060c0cb038..c9a64989be5 100644 --- a/gcc/ada/a-coinve.ads +++ b/gcc/ada/a-coinve.ads @@ -117,18 +117,22 @@ package Ada.Containers.Indefinite_Vectors is function Constant_Reference (Container : aliased Vector; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Vector; Position : Cursor) return Reference_Type; + pragma Inline (Reference); function Constant_Reference (Container : aliased Vector; Index : Index_Type) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Vector; Index : Index_Type) return Reference_Type; + pragma Inline (Reference); function To_Cursor (Container : Vector; @@ -408,8 +412,22 @@ private for Cursor'Write use Write; + type Reference_Control_Type is + new Controlled with record + Container : Vector_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; @@ -424,7 +442,10 @@ private for Constant_Reference_Type'Read use Read; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-comutr.adb b/gcc/ada/a-comutr.adb index a923871b148..4933bcf54a9 100644 --- a/gcc/ada/a-comutr.adb +++ b/gcc/ada/a-comutr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -206,6 +206,20 @@ package body Ada.Containers.Multiway_Trees is Container.Count := Source_Count; end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Tree renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------------- -- Ancestor_Find -- ------------------- @@ -464,7 +478,20 @@ package body Ada.Containers.Multiway_Trees is -- pragma Assert (Vet (Position), -- "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element'Access); + declare + C : Tree renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -957,6 +984,22 @@ package body Ada.Containers.Multiway_Trees is B := B - 1; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Tree renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -2053,7 +2096,19 @@ package body Ada.Containers.Multiway_Trees is -- pragma Assert (Vet (Position), -- "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element'Access); + declare + C : Tree renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; -------------------- diff --git a/gcc/ada/a-comutr.ads b/gcc/ada/a-comutr.ads index 20a91bb9a13..6e0aa9a1203 100644 --- a/gcc/ada/a-comutr.ads +++ b/gcc/ada/a-comutr.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. The copyright notice above, and the license provisions that follow -- @@ -111,10 +111,12 @@ package Ada.Containers.Multiway_Trees is function Constant_Reference (Container : aliased Tree; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Tree; Position : Cursor) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Tree; Source : Tree); @@ -423,8 +425,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Tree_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; @@ -439,7 +455,10 @@ private for Constant_Reference_Type'Write use Write; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-convec.adb b/gcc/ada/a-convec.adb index 729fead732c..709e1fe7e90 100644 --- a/gcc/ada/a-convec.adb +++ b/gcc/ada/a-convec.adb @@ -396,6 +396,20 @@ package body Ada.Containers.Vectors is end; end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Vector renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Append -- ------------ @@ -499,7 +513,21 @@ package body Ada.Containers.Vectors is raise Constraint_Error with "Position cursor is out of range"; end if; - return (Element => Container.Elements.EA (Position.Index)'Access); + declare + C : Vector renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => + Container.Elements.EA (Position.Index)'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; function Constant_Reference @@ -510,7 +538,20 @@ package body Ada.Containers.Vectors is if Index > Container.Last then raise Constraint_Error with "Index is out of range"; else - return (Element => Container.Elements.EA (Index)'Access); + declare + C : Vector renames Container'Unrestricted_Access.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Container.Elements.EA (Index)'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end if; end Constant_Reference; @@ -825,6 +866,22 @@ package body Ada.Containers.Vectors is B := B - 1; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + C : Vector renames Control.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -2601,7 +2658,20 @@ package body Ada.Containers.Vectors is raise Constraint_Error with "Position cursor is out of range"; end if; - return (Element => Container.Elements.EA (Position.Index)'Access); + declare + C : Vector renames Position.Container.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => + Container.Elements.EA (Position.Index)'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; function Reference @@ -2612,7 +2682,20 @@ package body Ada.Containers.Vectors is if Index > Container.Last then raise Constraint_Error with "Index is out of range"; else - return (Element => Container.Elements.EA (Index)'Access); + declare + C : Vector renames Container'Unrestricted_Access.all; + B : Natural renames C.Busy; + L : Natural renames C.Lock; + begin + return R : constant Reference_Type := + (Element => Container.Elements.EA (Index)'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end if; end Reference; diff --git a/gcc/ada/a-convec.ads b/gcc/ada/a-convec.ads index 6ed39a40450..81d1a18d062 100644 --- a/gcc/ada/a-convec.ads +++ b/gcc/ada/a-convec.ads @@ -158,18 +158,22 @@ package Ada.Containers.Vectors is function Constant_Reference (Container : aliased Vector; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Vector; Position : Cursor) return Reference_Type; + pragma Inline (Reference); function Constant_Reference (Container : aliased Vector; Index : Index_Type) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Vector; Index : Index_Type) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Vector; Source : Vector); @@ -416,8 +420,22 @@ private for Cursor'Write use Write; + type Reference_Control_Type is + new Controlled with record + Container : Vector_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; @@ -432,7 +450,10 @@ private for Constant_Reference_Type'Read use Read; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-coorma.adb b/gcc/ada/a-coorma.adb index c7153c5fcbb..0e72d69e315 100644 --- a/gcc/ada/a-coorma.adb +++ b/gcc/ada/a-coorma.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -252,6 +252,20 @@ package body Ada.Containers.Ordered_Maps is Adjust (Container.Tree); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + T : Tree_Type renames Control.Container.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -340,7 +354,19 @@ package body Ada.Containers.Ordered_Maps is pragma Assert (Vet (Container.Tree, Position.Node), "Position cursor in Constant_Reference is bad"); - return (Element => Position.Node.Element'Access); + declare + T : Tree_Type renames Position.Container.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; function Constant_Reference @@ -354,7 +380,20 @@ package body Ada.Containers.Ordered_Maps is raise Constraint_Error with "key not in map"; end if; - return (Element => Node.Element'Access); + declare + T : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -532,6 +571,22 @@ package body Ada.Containers.Ordered_Maps is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + T : Tree_Type renames Control.Container.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -1294,7 +1349,19 @@ package body Ada.Containers.Ordered_Maps is pragma Assert (Vet (Container.Tree, Position.Node), "Position cursor in function Reference is bad"); - return (Element => Position.Node.Element'Access); + declare + T : Tree_Type renames Position.Container.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Reference_Type := + (Element => Position.Node.Element'Access, + Control => (Controlled with Position.Container)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; function Reference @@ -1308,7 +1375,20 @@ package body Ada.Containers.Ordered_Maps is raise Constraint_Error with "key not in map"; end if; - return (Element => Node.Element'Access); + declare + T : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames T.Busy; + L : Natural renames T.Lock; + begin + return R : constant Reference_Type := + (Element => Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Reference; ------------- diff --git a/gcc/ada/a-coorma.ads b/gcc/ada/a-coorma.ads index 61a762ea189..d9281faccc3 100644 --- a/gcc/ada/a-coorma.ads +++ b/gcc/ada/a-coorma.ads @@ -108,18 +108,22 @@ package Ada.Containers.Ordered_Maps is function Constant_Reference (Container : aliased Map; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Position : Cursor) return Reference_Type; + pragma Inline (Reference); function Constant_Reference (Container : aliased Map; Key : Key_Type) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Key : Key_Type) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Map; Source : Map); @@ -293,8 +297,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Map_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; @@ -309,7 +327,10 @@ private for Constant_Reference_Type'Write use Write; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/a-coorse.adb b/gcc/ada/a-coorse.adb index 41ebb5c0d71..600403b1e4d 100644 --- a/gcc/ada/a-coorse.adb +++ b/gcc/ada/a-coorse.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -285,6 +285,20 @@ package body Ada.Containers.Ordered_Sets is Adjust (Container.Tree); end Adjust; + procedure Adjust (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + Tree : Tree_Type renames Control.Container.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + B := B + 1; + L := L + 1; + end; + end if; + end Adjust; + ------------ -- Assign -- ------------ @@ -353,7 +367,20 @@ package body Ada.Containers.Ordered_Sets is (Vet (Container.Tree, Position.Node), "bad cursor in Constant_Reference"); - return (Element => Position.Node.Element'Access); + declare + Tree : Tree_Type renames Position.Container.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Position.Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- @@ -554,6 +581,22 @@ package body Ada.Containers.Ordered_Sets is end if; end Finalize; + procedure Finalize (Control : in out Reference_Control_Type) is + begin + if Control.Container /= null then + declare + Tree : Tree_Type renames Control.Container.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + B := B - 1; + L := L - 1; + end; + + Control.Container := null; + end if; + end Finalize; + ---------- -- Find -- ---------- @@ -699,7 +742,20 @@ package body Ada.Containers.Ordered_Sets is raise Constraint_Error with "key not in set"; end if; - return (Element => Node.Element'Access); + declare + Tree : Tree_Type renames Container'Unrestricted_Access.all.Tree; + B : Natural renames Tree.Busy; + L : Natural renames Tree.Lock; + begin + return R : constant Constant_Reference_Type := + (Element => Node.Element'Access, + Control => + (Controlled with Container'Unrestricted_Access)) + do + B := B + 1; + L := L + 1; + end return; + end; end Constant_Reference; -------------- diff --git a/gcc/ada/a-coorse.ads b/gcc/ada/a-coorse.ads index 540da1a697d..e28a71bc299 100644 --- a/gcc/ada/a-coorse.ads +++ b/gcc/ada/a-coorse.ads @@ -100,6 +100,7 @@ package Ada.Containers.Ordered_Sets is function Constant_Reference (Container : aliased Set; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); procedure Assign (Target : in out Set; Source : Set); @@ -359,8 +360,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Set_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Write (Stream : not null access Root_Stream_Type'Class; diff --git a/gcc/ada/aspects.adb b/gcc/ada/aspects.adb index 69a789cc829..89af1d975f3 100755 --- a/gcc/ada/aspects.adb +++ b/gcc/ada/aspects.adb @@ -193,6 +193,7 @@ package body Aspects is N_Entry_Declaration => True, N_Exception_Declaration => True, N_Exception_Renaming_Declaration => True, + N_Expression_Function => True, N_Formal_Abstract_Subprogram_Declaration => True, N_Formal_Concrete_Subprogram_Declaration => True, N_Formal_Object_Declaration => True, diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index 10cb04c1628..8cfbe3bac59 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -5157,9 +5157,9 @@ package body Exp_Aggr is -- Compile_Time_Known_Composite_Value -- ---------------------------------------- - function Compile_Time_Known_Composite_Value (N : Node_Id) return Boolean + function Compile_Time_Known_Composite_Value + (N : Node_Id) return Boolean is - begin -- If we have an entity name, then see if it is the name of a -- constant and if so, test the corresponding constant value. @@ -5168,15 +5168,14 @@ package body Exp_Aggr is declare E : constant Entity_Id := Entity (N); V : Node_Id; - begin if Ekind (E) /= E_Constant then return False; + else + V := Constant_Value (E); + return Present (V) + and then Compile_Time_Known_Composite_Value (V); end if; - - V := Constant_Value (E); - return Present (V) - and then Compile_Time_Known_Composite_Value (V); end; -- We have a value, see if it is compile time known diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index 53529ddbb04..d90b54c1e3e 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -3572,21 +3572,20 @@ package body Exp_Ch4 is (Etype (Pool), Name_Simple_Storage_Pool_Type)) then declare - Alloc_Op : Entity_Id := Get_Name_Entity_Id (Name_Allocate); Pool_Type : constant Entity_Id := Base_Type (Etype (Pool)); - + Alloc_Op : Entity_Id; begin + Alloc_Op := Get_Name_Entity_Id (Name_Allocate); while Present (Alloc_Op) loop if Scope (Alloc_Op) = Scope (Pool_Type) and then Present (First_Formal (Alloc_Op)) and then Etype (First_Formal (Alloc_Op)) = Pool_Type then Set_Procedure_To_Call (N, Alloc_Op); - exit; + else + Alloc_Op := Homonym (Alloc_Op); end if; - - Alloc_Op := Homonym (Alloc_Op); end loop; end; diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index 227dcd94ebe..b4d46b4c1aa 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -1417,8 +1417,18 @@ package body Exp_Ch6 is -- representation clauses give the actual a misaligned address. if Is_By_Reference_Type (Etype (Formal)) then - Error_Msg_N - ("misaligned actual cannot be passed by reference", Actual); + + -- If the front-end does not perform full type layout, the actual + -- may in fact be properly aligned but there is not enough front-end + -- information to determine this. In that case gigi will emit an + -- error if a copy is not legal, or generate the proper code. + -- For other backends we report the error now. + + if Frontend_Layout_On_Target then + Error_Msg_N + ("misaligned actual cannot be passed by reference", Actual); + end if; + return False; -- For users of Starlet, we assume that the specification of by- @@ -6120,6 +6130,7 @@ package body Exp_Ch6 is begin Set_Has_Completion (Subp, False); + -- Set_Has_Delayed_Freeze (Subp); Append_Freeze_Action (Subp, Bod); -- The body now contains raise statements, so calls to it will diff --git a/gcc/ada/exp_intr.adb b/gcc/ada/exp_intr.adb index ad7f253244c..5df8b371863 100644 --- a/gcc/ada/exp_intr.adb +++ b/gcc/ada/exp_intr.adb @@ -1094,21 +1094,20 @@ package body Exp_Intr is (Etype (Pool), Name_Simple_Storage_Pool_Type)) then declare - Dealloc_Op : Entity_Id := Get_Name_Entity_Id (Name_Deallocate); - Pool_Type : constant Entity_Id := Base_Type (Etype (Pool)); - + Pool_Type : constant Entity_Id := Base_Type (Etype (Pool)); + Dealloc_Op : Entity_Id; begin + Dealloc_Op := Get_Name_Entity_Id (Name_Deallocate); while Present (Dealloc_Op) loop if Scope (Dealloc_Op) = Scope (Pool_Type) and then Present (First_Formal (Dealloc_Op)) and then Etype (First_Formal (Dealloc_Op)) = Pool_Type then Set_Procedure_To_Call (Free_Node, Dealloc_Op); - exit; + else + Dealloc_Op := Homonym (Dealloc_Op); end if; - - Dealloc_Op := Homonym (Dealloc_Op); end loop; end; @@ -1140,8 +1139,8 @@ package body Exp_Intr is if Is_Class_Wide_Type (Desig_T) or else (Is_Array_Type (Desig_T) - and then not Is_Constrained (Desig_T) - and then Is_Packed (Desig_T)) + and then not Is_Constrained (Desig_T) + and then Is_Packed (Desig_T)) then declare Deref : constant Node_Id := diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index 41bfa382fea..98bd2f3b491 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -483,6 +483,13 @@ package body Exp_Util is Utyp := Base_Type (Utyp); end if; + -- When dealing with an internally built full view for a type with + -- unknown discriminants, use the original record type. + + if Is_Underlying_Record_View (Utyp) then + Utyp := Etype (Utyp); + end if; + return TSS (Utyp, TSS_Finalize_Address); end Find_Finalize_Address; diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index a34517bb5be..6325b4521c3 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -4114,7 +4114,6 @@ package body Freeze is if Present (Get_Rep_Pragma (E, Name_Simple_Storage_Pool_Type)) and then (Is_Base_Type (E) or else Has_Private_Declaration (E)) then - -- If the type is marked Has_Private_Declaration, then this is -- a full type for a private type that was specified with the -- pragma Simple_Storage_Pool_Type, and here we ensure that the @@ -4127,7 +4126,6 @@ package body Freeze is and then not Is_Private_Type (E) then Error_Msg_Name_1 := Name_Simple_Storage_Pool_Type; - Error_Msg_N ("pragma% can only apply to full type that is an " & "explicitly limited type", E); @@ -4197,6 +4195,7 @@ package body Freeze is end if; if Etype (Pool_Op_Formal) /= Expected_Type then + -- If the pool type was expected for this formal, then -- this will not be considered a candidate operation -- for the simple pool, so we unset OK_Formal so that @@ -4243,8 +4242,8 @@ package body Freeze is begin pragma Assert (Op_Name = Name_Allocate - or else Op_Name = Name_Deallocate - or else Op_Name = Name_Storage_Size); + or else Op_Name = Name_Deallocate + or else Op_Name = Name_Storage_Size); Error_Msg_Name_1 := Op_Name; @@ -4270,7 +4269,6 @@ package body Freeze is Validate_Simple_Pool_Op_Formal (Op, Formal, E_In_Parameter, Pool_Type, "Pool", Is_OK); - else Validate_Simple_Pool_Op_Formal (Op, Formal, E_In_Out_Parameter, Pool_Type, @@ -4295,7 +4293,6 @@ package body Freeze is Validate_Simple_Pool_Op_Formal (Op, Formal, E_Out_Parameter, Address_Type, "Storage_Address", Is_OK); - elsif Op_Name = Name_Deallocate then Validate_Simple_Pool_Op_Formal (Op, Formal, E_In_Parameter, @@ -4310,7 +4307,6 @@ package body Freeze is Validate_Simple_Pool_Op_Formal (Op, Formal, E_In_Parameter, Stg_Cnt_Type, "Size_In_Storage_Units", Is_OK); - Validate_Simple_Pool_Op_Formal (Op, Formal, E_In_Parameter, Stg_Cnt_Type, "Alignment", Is_OK); @@ -4338,6 +4334,7 @@ package body Freeze is "storage pool type", Pool_Type); elsif Present (Found_Op) then + -- Simple pool operations can't be abstract if Is_Abstract_Subprogram (Found_Op) then @@ -4373,9 +4370,7 @@ package body Freeze is begin Validate_Simple_Pool_Operation (Name_Allocate); - Validate_Simple_Pool_Operation (Name_Deallocate); - Validate_Simple_Pool_Operation (Name_Storage_Size); end Validate_Simple_Pool_Ops; end if; diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 0393d06dcc9..46ee5434429 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -1364,23 +1364,23 @@ ada/ali-util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/atree.adb ada/binderr.ads ada/butil.ads ada/casing.ads \ ada/csets.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \ ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/fname.ads \ - ada/fname-uf.ads ada/gnat.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hostparm.ads ada/interfac.ads ada/lib.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/osint.ads \ - ada/output.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ - ada/scans.ads ada/scng.ads ada/scng.adb ada/sinfo.ads ada/sinfo.adb \ - ada/sinput.ads ada/sinput.adb ada/sinput-c.ads ada/snames.ads \ - ada/stand.ads ada/stringt.ads ada/stringt.adb ada/styleg.ads \ - ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-carun8.ads \ - ada/s-crc32.ads ada/s-crc32.adb ada/s-exctab.ads ada/s-htable.ads \ - ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ - ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-utf_32.ads ada/s-utf_32.adb ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/tree_io.ads ada/types.ads ada/types.adb ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/urealp.adb ada/widechar.ads + ada/fname-uf.ads ada/gnat.ads ada/g-byorma.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hostparm.ads ada/interfac.ads ada/lib.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads \ + ada/osint.ads ada/output.ads ada/restrict.ads ada/restrict.adb \ + ada/rident.ads ada/scans.ads ada/scng.ads ada/scng.adb ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/sinput-c.ads \ + ada/snames.ads ada/stand.ads ada/stringt.ads ada/stringt.adb \ + ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ + ada/s-carun8.ads ada/s-crc32.ads ada/s-crc32.adb ada/s-exctab.ads \ + ada/s-htable.ads ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads \ + ada/s-unstyp.ads ada/s-utf_32.ads ada/s-utf_32.adb ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/types.adb \ + ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/widechar.ads ada/ali.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads \ ada/ali.ads ada/ali.adb ada/alloc.ads ada/butil.ads ada/casing.ads \ @@ -1415,37 +1415,38 @@ ada/aspects.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/atree.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads ada/gnat.ads \ - ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ - ada/snames.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ - ada/widechar.ads + ada/g-byorma.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads \ + ada/output.ads ada/scans.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ + ada/sinput.adb ada/snames.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/back_end.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/back_end.ads ada/back_end.adb ada/casing.ads \ ada/csets.ads ada/debug.ads ada/einfo.ads ada/einfo.adb ada/elists.ads \ ada/err_vars.ads ada/errout.ads ada/errout.adb ada/erroutc.ads \ - ada/erroutc.adb ada/fname.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/osint.ads \ - ada/osint-c.ads ada/output.ads ada/rident.ads ada/scans.ads \ - ada/sem_aux.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/stand.ads ada/stringt.ads \ - ada/stylesw.ads ada/switch.ads ada/switch-c.ads ada/system.ads \ - ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ - ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ - ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ - ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ - ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/erroutc.adb ada/fname.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/osint.ads ada/osint-c.ads ada/output.ads \ + ada/rident.ads ada/scans.ads ada/sem_aux.ads ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/stand.ads ada/stringt.ads ada/stylesw.ads ada/switch.ads \ + ada/switch-c.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/targparm.ads ada/tree_io.ads ada/types.ads \ + ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/bcheck.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/ali.ads ada/ali.adb ada/ali-util.ads \ @@ -1547,56 +1548,56 @@ ada/checks.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_code.ads ada/exp_disp.ads \ ada/exp_dist.ads ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads \ ada/exp_util.adb ada/expander.ads ada/fname.ads ada/fname-uf.ads \ - ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/inline.ads ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ - ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ - ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/opt.adb \ - ada/output.ads ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/rtsfind.adb \ - ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ - ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ - ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ - ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ - ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_disp.ads ada/sem_dist.ads \ - ada/sem_eval.ads ada/sem_eval.adb ada/sem_prag.ads ada/sem_res.ads \ - ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads \ - ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/sprint.ads ada/stand.ads \ - ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \ - ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ - ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ - ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \ - ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ - ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/validsw.ads \ - ada/widechar.ads - -ada/comperr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ - ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ - ada/atree.adb ada/casing.ads ada/comperr.ads ada/comperr.adb \ - ada/csets.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \ - ada/err_vars.ads ada/errout.ads ada/errout.adb ada/erroutc.ads \ - ada/erroutc.adb ada/fname.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/osint.ads \ - ada/output.ads ada/output.adb ada/rident.ads ada/scans.ads \ - ada/sdefault.ads ada/sem_aux.ads ada/sinfo.ads ada/sinfo.adb \ + ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \ + ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ + ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ + ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads \ + ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads \ + ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads \ + ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads \ + ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_disp.ads \ + ada/sem_dist.ads ada/sem_eval.ads ada/sem_eval.adb ada/sem_prag.ads \ + ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ + ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb \ ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ - ada/stand.ads ada/stringt.ads ada/stylesw.ads ada/system.ads \ + ada/stand.ads ada/stringt.ads ada/stringt.adb ada/style.ads \ + ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ - ada/tree_io.ads ada/treepr.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/widechar.ads + ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \ + ada/validsw.ads ada/widechar.ads + +ada/comperr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ + ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ + ada/atree.adb ada/casing.ads ada/comperr.ads ada/comperr.adb \ + ada/csets.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \ + ada/err_vars.ads ada/errout.ads ada/errout.adb ada/erroutc.ads \ + ada/erroutc.adb ada/fname.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/osint.ads ada/output.ads ada/output.adb \ + ada/rident.ads ada/scans.ads ada/sdefault.ads ada/sem_aux.ads \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/sprint.ads ada/stand.ads ada/stringt.ads \ + ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/targparm.ads ada/tree_io.ads ada/treepr.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/csets.o : ada/ada.ads ada/a-unccon.ads ada/a-uncdea.ads ada/csets.ads \ ada/csets.adb ada/hostparm.ads ada/opt.ads ada/system.ads \ @@ -1638,16 +1639,17 @@ ada/debug.o : ada/debug.ads ada/debug.adb ada/system.ads ada/debug_a.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/debug.ads ada/debug_a.ads \ - ada/debug_a.adb ada/einfo.ads ada/gnat.ads ada/g-htable.ads \ - ada/hostparm.ads ada/interfac.ads ada/namet.ads ada/namet.adb \ - ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/debug_a.adb ada/einfo.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ + ada/scans.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ + ada/widechar.ads ada/einfo.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -1688,36 +1690,36 @@ ada/errout.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/err_vars.ads ada/errout.ads ada/errout.adb \ ada/erroutc.ads ada/erroutc.adb ada/fname.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads \ - ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/opt.ads ada/output.ads ada/rident.ads ada/scans.ads \ - ada/sem_aux.ads ada/sem_aux.adb ada/sinfo.ads ada/sinfo.adb \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/stand.ads \ - ada/stringt.ads ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ - ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/targparm.ads ada/tree_io.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hostparm.ads ada/interfac.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-sort.adb ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads ada/rident.ads \ + ada/scans.ads ada/sem_aux.ads ada/sem_aux.adb ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/stand.ads ada/stringt.ads ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/erroutc.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads \ ada/err_vars.ads ada/erroutc.ads ada/erroutc.adb ada/gnat.ads \ - ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/opt.ads ada/output.ads ada/output.adb \ - ada/rident.ads ada/sinfo.ads ada/sinput.ads ada/sinput.adb \ - ada/snames.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tree_io.ads ada/types.ads \ - ada/uintp.ads ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/widechar.ads + ada/g-byorma.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/opt.ads ada/output.ads \ + ada/output.adb ada/rident.ads ada/scans.ads ada/sinfo.ads \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/eval_fat.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -1748,33 +1750,33 @@ ada/exp_aggr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch9.ads ada/exp_disp.ads ada/exp_dist.ads ada/exp_pakd.ads \ ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb ada/expander.ads \ ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ - ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ - ada/nmake.adb ada/opt.ads ada/output.ads ada/put_alfa.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ - ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads \ - ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ - ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ - ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_disp.ads ada/sem_dist.ads ada/sem_eval.ads ada/sem_eval.adb \ - ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads \ - ada/sem_util.adb ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ - ada/stand.ads ada/stringt.ads ada/stringt.adb ada/style.ads \ - ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ - ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ - ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ - ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ - ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ - ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \ - ada/widechar.ads + ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ + ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ + ada/rtsfind.ads ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb \ + ada/sem_aggr.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb \ + ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads \ + ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads \ + ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \ + ada/sem_ch9.ads ada/sem_disp.ads ada/sem_dist.ads ada/sem_eval.ads \ + ada/sem_eval.adb ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads \ + ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/sprint.ads ada/stand.ads ada/stringt.ads ada/stringt.adb \ + ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \ + ada/system.ads ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/validsw.ads ada/widechar.ads ada/exp_alfa.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -1861,20 +1863,21 @@ ada/exp_cg.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/elists.ads ada/elists.adb ada/exp_cg.ads \ ada/exp_cg.adb ada/exp_dbug.ads ada/exp_disp.ads ada/exp_tss.ads \ - ada/fname.ads ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads \ - ada/hostparm.ads ada/interfac.ads ada/lib.ads ada/lib.adb \ - ada/lib-list.adb ada/lib-sort.adb ada/namet.ads ada/namet.adb \ - ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads \ - ada/sem_aux.ads ada/sem_aux.adb ada/sem_disp.ads ada/sem_type.ads \ - ada/sem_util.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/stand.ads ada/stringt.ads \ - ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \ - ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ - ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/fname.ads ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads \ + ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/lib.ads \ + ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/opt.ads \ + ada/output.ads ada/scans.ads ada/sem_aux.ads ada/sem_aux.adb \ + ada/sem_disp.ads ada/sem_type.ads ada/sem_util.ads ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/stand.ads ada/stringt.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ + ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ + ada/widechar.ads ada/exp_ch11.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -1883,26 +1886,27 @@ ada/exp_ch11.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/elists.adb ada/err_vars.ads ada/errout.ads ada/errout.adb \ ada/erroutc.ads ada/erroutc.adb ada/exp_ch11.ads ada/exp_ch11.adb \ ada/exp_ch7.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \ - ada/fname.ads ada/fname-uf.ads ada/gnat.ads ada/g-htable.ads \ - ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ - ada/interfac.ads ada/lib.ads ada/lib-load.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/output.ads ada/restrict.ads ada/restrict.adb \ - ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_ch10.ads ada/sem_ch11.ads \ - ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ - ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ - ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_prag.ads ada/sem_res.ads \ - ada/sem_util.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/stand.ads ada/stringt.ads \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ - ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/fname.ads ada/fname-uf.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ + ada/inline.ads ada/interfac.ads ada/lib.ads ada/lib-load.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/output.ads ada/restrict.ads \ + ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ + ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ + ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ + ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ + ada/sem_prag.ads ada/sem_res.ads ada/sem_util.ads ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/stand.ads ada/stringt.ads ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/types.ads \ + ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/exp_ch12.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -1969,28 +1973,28 @@ ada/exp_ch2.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch11.ads ada/exp_ch2.ads ada/exp_ch2.adb ada/exp_ch4.ads \ ada/exp_code.ads ada/exp_pakd.ads ada/exp_smem.ads ada/exp_tss.ads \ ada/exp_util.ads ada/exp_vfpt.ads ada/expander.ads ada/fname.ads \ - ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-htable.ads \ - ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ - ada/interfac.ads ada/lib.ads ada/lib-load.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/output.ads ada/par_sco.ads ada/restrict.ads \ - ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_ch10.ads ada/sem_ch11.ads \ - ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ - ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ - ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_eval.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_util.ads ada/sem_warn.ads ada/sem_warn.adb \ - ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ - ada/snames.ads ada/sprint.ads ada/stand.ads ada/stringt.ads \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \ - ada/widechar.ads + ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ + ada/inline.ads ada/interfac.ads ada/lib.ads ada/lib-load.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/output.ads ada/par_sco.ads \ + ada/restrict.ads ada/rident.ads ada/rtsfind.ads ada/scans.ads \ + ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ + ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ + ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ + ada/sem_eval.ads ada/sem_prag.ads ada/sem_res.ads ada/sem_util.ads \ + ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ + ada/stand.ads ada/stringt.ads ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads ada/types.ads \ + ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/validsw.ads ada/widechar.ads ada/exp_ch3.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -2005,30 +2009,30 @@ ada/exp_ch3.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_smem.ads ada/exp_strm.ads ada/exp_tss.ads ada/exp_tss.adb \ ada/exp_util.ads ada/exp_util.adb ada/expander.ads ada/fname.ads \ ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/inline.ads ada/interfac.ads ada/itypes.ads ada/layout.ads \ - ada/lib.ads ada/lib-load.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ - ada/rtsfind.adb ada/scans.ads ada/scil_ll.ads ada/sem.ads ada/sem.adb \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads \ - ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ - ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ - ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_disp.ads ada/sem_dist.ads ada/sem_eval.ads ada/sem_mech.ads \ - ada/sem_prag.ads ada/sem_res.ads ada/sem_scil.ads ada/sem_type.ads \ - ada/sem_util.ads ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ - ada/stand.ads ada/stringt.ads ada/stylesw.ads ada/system.ads \ - ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ - ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ - ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ - ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ - ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \ - ada/widechar.ads + ada/g-byorma.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \ + ada/layout.ads ada/lib.ads ada/lib-load.ads ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \ + ada/output.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ + ada/rtsfind.ads ada/rtsfind.adb ada/scans.ads ada/scil_ll.ads \ + ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ + ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ + ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ + ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_disp.ads ada/sem_dist.ads \ + ada/sem_eval.ads ada/sem_mech.ads ada/sem_prag.ads ada/sem_res.ads \ + ada/sem_scil.ads ada/sem_type.ads ada/sem_util.ads ada/sem_warn.ads \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/sprint.ads ada/stand.ads ada/stringt.ads \ + ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/validsw.ads ada/widechar.ads ada/exp_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -2119,10 +2123,10 @@ ada/exp_ch6.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_disp.ads ada/exp_disp.adb ada/exp_dist.ads ada/exp_intr.ads \ ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb \ ada/exp_vfpt.ads ada/expander.ads ada/fname.ads ada/fname-uf.ads \ - ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/inline.ads ada/inline.adb ada/interfac.ads ada/itypes.ads \ - ada/layout.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/inline.adb ada/interfac.ads \ + ada/itypes.ads ada/layout.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ ada/nmake.adb ada/opt.ads ada/output.ads ada/put_alfa.ads \ @@ -2439,30 +2443,31 @@ ada/exp_intr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_disp.ads ada/exp_fixd.ads ada/exp_intr.ads ada/exp_intr.adb \ ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb \ ada/expander.ads ada/fname.ads ada/fname-uf.ads ada/freeze.ads \ - ada/get_targ.ads ada/gnat.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/itypes.ads ada/lib.ads ada/lib-load.ads ada/lib-util.ads \ - ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ - ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ - ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads \ - ada/sem_aux.ads ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads \ - ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads \ - ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \ - ada/sem_ch9.ads ada/sem_disp.ads ada/sem_eval.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ - ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/sprint.ads ada/stand.ads \ - ada/stringt.ads ada/style.ads ada/styleg.ads ada/styleg.adb \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ - ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/urealp.adb ada/validsw.ads ada/widechar.ads + ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib-load.ads \ + ada/lib-util.ads ada/lib-xref.ads ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \ + ada/output.ads ada/put_alfa.ads ada/restrict.ads ada/restrict.adb \ + ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ + ada/sem_attr.ads ada/sem_aux.ads ada/sem_ch10.ads ada/sem_ch11.ads \ + ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ + ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ + ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_disp.ads ada/sem_eval.ads \ + ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads \ + ada/sem_util.adb ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ + ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \ + ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ + ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \ + ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/validsw.ads \ + ada/widechar.ads ada/exp_pakd.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -2506,26 +2511,27 @@ ada/exp_prag.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/err_vars.ads ada/errout.ads ada/errout.adb ada/erroutc.ads \ ada/erroutc.adb ada/exp_ch11.ads ada/exp_prag.ads ada/exp_prag.adb \ ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ - ada/fname-uf.ads ada/gnat.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/lib.ads ada/lib-load.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ - ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ - ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ - ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ - ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_prag.ads ada/sem_res.ads ada/sem_util.ads ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/snames.adb ada/stand.ads ada/stringt.ads ada/stringt.adb \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/fname-uf.ads ada/gnat.ads ada/g-byorma.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/interfac.ads ada/lib.ads ada/lib-load.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ + ada/opt.ads ada/output.ads ada/restrict.ads ada/restrict.adb \ + ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ + ada/sem_attr.ads ada/sem_aux.ads ada/sem_ch10.ads ada/sem_ch11.ads \ + ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ + ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ + ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_prag.ads ada/sem_res.ads \ + ada/sem_util.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ + ada/sinput.adb ada/snames.ads ada/snames.adb ada/stand.ads \ + ada/stringt.ads ada/stringt.adb ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tbuild.ads ada/tree_io.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/widechar.ads ada/exp_sel.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -2620,15 +2626,15 @@ ada/exp_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch2.ads ada/exp_ch4.ads ada/exp_ch6.ads ada/exp_ch7.ads \ ada/exp_disp.ads ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads \ ada/exp_util.adb ada/expander.ads ada/fname.ads ada/fname-uf.ads \ - ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/inline.ads ada/inline.adb ada/interfac.ads ada/itypes.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/output.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ - ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/inline.adb ada/interfac.ads \ + ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/output.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ @@ -2738,15 +2744,15 @@ ada/freeze.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch3.ads ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_disp.ads \ ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb \ ada/expander.ads ada/fname.ads ada/fname-uf.ads ada/freeze.ads \ - ada/freeze.adb ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/inline.ads ada/interfac.ads ada/itypes.ads ada/layout.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/output.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ - ada/sem.ads ada/sem.adb ada/sem_aggr.ads ada/sem_attr.ads \ + ada/freeze.adb ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \ + ada/layout.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/output.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads ada/sem_attr.ads \ ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads \ ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb \ ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ @@ -2850,10 +2856,10 @@ ada/gnat1drv.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/erroutc.ads ada/erroutc.adb ada/exp_cg.ads ada/exp_ch7.ads \ ada/exp_disp.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \ ada/fmap.ads ada/fname.ads ada/fname-uf.ads ada/frontend.ads \ - ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads \ - ada/g-table.ads ada/g-table.adb ada/gnat1drv.ads ada/gnat1drv.adb \ - ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ - ada/inline.adb ada/interfac.ads ada/lib.ads ada/lib.adb \ + ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads \ + ada/g-htable.ads ada/g-table.ads ada/g-table.adb ada/gnat1drv.ads \ + ada/gnat1drv.adb ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ + ada/inline.ads ada/inline.adb ada/interfac.ads ada/lib.ads ada/lib.adb \ ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ ada/lib-writ.ads ada/lib-writ.adb ada/lib-xref.ads ada/namet.ads \ ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/opt.ads \ @@ -3005,31 +3011,32 @@ ada/layout.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch2.ads ada/exp_ch3.ads ada/exp_ch4.ads ada/exp_disp.ads \ ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \ ada/fname.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ - ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/layout.ads \ - ada/layout.adb ada/lib.ads ada/lib-load.ads ada/lib-util.ads \ - ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ - ada/put_alfa.ads ada/repinfo.ads ada/repinfo.adb ada/restrict.ads \ - ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_ch10.ads \ - ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb \ - ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ - ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_dim.ads ada/sem_disp.ads ada/sem_eval.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ - ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/sprint.ads ada/stand.ads \ - ada/stringt.ads ada/style.ads ada/styleg.ads ada/styleg.adb \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ - ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/validsw.ads ada/warnsw.ads ada/widechar.ads + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ + ada/layout.ads ada/layout.adb ada/lib.ads ada/lib-load.ads \ + ada/lib-util.ads ada/lib-xref.ads ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \ + ada/output.ads ada/put_alfa.ads ada/repinfo.ads ada/repinfo.adb \ + ada/restrict.ads ada/rident.ads ada/rtsfind.ads ada/scans.ads \ + ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/sem_aux.adb ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads \ + ada/sem_ch13.ads ada/sem_ch13.adb ada/sem_ch2.ads ada/sem_ch3.ads \ + ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ + ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_dim.ads ada/sem_disp.ads \ + ada/sem_eval.ads ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads \ + ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/sprint.ads ada/stand.ads ada/stringt.ads ada/style.ads \ + ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \ + ada/warnsw.ads ada/widechar.ads ada/lib-load.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -3111,11 +3118,11 @@ ada/lib-xref.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/erroutc.adb ada/exp_ch11.ads ada/exp_code.ads ada/exp_disp.ads \ ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-hesorg.adb ada/g-htable.ads ada/g-table.ads \ - ada/g-table.adb ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/inline.ads ada/interfac.ads ada/lib.ads ada/lib.adb \ - ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ - ada/lib-util.adb ada/lib-xref.ads ada/lib-xref.adb \ + ada/g-byorma.ads ada/g-hesorg.ads ada/g-hesorg.adb ada/g-htable.ads \ + ada/g-table.ads ada/g-table.adb ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/lib.ads \ + ada/lib.adb ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb \ + ada/lib-util.ads ada/lib-util.adb ada/lib-xref.ads ada/lib-xref.adb \ ada/lib-xref-alfa.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/osint.ads \ ada/osint-c.ads ada/output.ads ada/par_sco.ads ada/put_alfa.ads \ @@ -3142,11 +3149,11 @@ ada/lib-xref.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/lib.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads \ ada/alloc.ads ada/aspects.ads ada/atree.ads ada/atree.adb \ ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \ - ada/fname.ads ada/gnat.ads ada/g-hesorg.ads ada/g-hesorg.adb \ - ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/lib.ads \ - ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ + ada/fname.ads ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads \ + ada/g-hesorg.adb ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ + ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/scans.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ ada/snames.ads ada/stand.ads ada/stringt.ads ada/system.ads \ ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads \ @@ -3159,19 +3166,19 @@ ada/live.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/exp_tss.ads ada/fname.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/live.ads \ - ada/live.adb ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb \ - ada/nmake.ads ada/opt.ads ada/output.ads ada/sem_aux.ads \ - ada/sem_aux.adb ada/sem_util.ads ada/sinfo.ads ada/sinfo.adb \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/stand.ads \ - ada/stringt.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/widechar.ads + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/live.ads ada/live.adb ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads \ + ada/scans.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_util.ads \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/stand.ads ada/stringt.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads \ + ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ + ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ + ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/namet-sp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/gnat.ads \ @@ -3309,39 +3316,39 @@ ada/par.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads ada/a-uncdea.ads \ ada/par_sco.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ - ada/einfo.adb ada/fname.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-hesorg.adb ada/g-htable.ads ada/g-table.ads ada/g-table.adb \ - ada/hostparm.ads ada/interfac.ads ada/lib.ads ada/lib.adb \ - ada/lib-list.adb ada/lib-sort.adb ada/lib-util.ads ada/lib-util.adb \ - ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads \ - ada/osint.ads ada/osint-c.ads ada/output.ads ada/par_sco.ads \ - ada/par_sco.adb ada/put_scos.ads ada/put_scos.adb ada/scos.ads \ - ada/scos.adb ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ - ada/snames.ads ada/stand.ads ada/stringt.ads ada/system.ads \ - ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-strhas.ads \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/widechar.ads + ada/einfo.adb ada/fname.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-hesorg.adb ada/g-htable.ads ada/g-table.ads \ + ada/g-table.adb ada/hostparm.ads ada/interfac.ads ada/lib.ads \ + ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-util.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/osint.ads ada/osint-c.ads ada/output.ads \ + ada/par_sco.ads ada/par_sco.adb ada/put_scos.ads ada/put_scos.adb \ + ada/scans.ads ada/scos.ads ada/scos.adb ada/sinfo.ads ada/sinfo.adb \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/stand.ads \ + ada/stringt.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads \ + ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ + ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/prep.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ - ada/err_vars.ads ada/gnat.ads ada/g-dyntab.ads ada/g-dyntab.adb \ - ada/g-hesorg.ads ada/g-hesorg.adb ada/g-htable.ads ada/hostparm.ads \ - ada/interfac.ads ada/namet.ads ada/namet.adb ada/nlists.ads ada/opt.ads \ - ada/osint.ads ada/output.ads ada/prep.ads ada/prep.adb ada/scans.ads \ - ada/sinfo.ads ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/stringt.ads ada/stringt.adb ada/system.ads ada/s-carun8.ads \ - ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ - ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-soflin.ads \ - ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ - ada/widechar.ads + ada/err_vars.ads ada/gnat.ads ada/g-byorma.ads ada/g-dyntab.ads \ + ada/g-dyntab.adb ada/g-hesorg.ads ada/g-hesorg.adb ada/g-htable.ads \ + ada/hostparm.ads ada/interfac.ads ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/opt.ads ada/osint.ads ada/output.ads ada/prep.ads \ + ada/prep.adb ada/scans.ads ada/sinfo.ads ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/stringt.ads ada/stringt.adb ada/system.ads \ + ada/s-carun8.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ + ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/prepcomp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/ali.ads ada/alloc.ads ada/aspects.ads \ @@ -3393,41 +3400,42 @@ ada/put_scos.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/repinfo.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ - ada/einfo.adb ada/fname.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/lib.ads \ - ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ + ada/einfo.adb ada/fname.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ + ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/output.adb ada/repinfo.ads ada/repinfo.adb ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/stand.ads ada/stringt.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ - ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ - ada/widechar.ads + ada/output.adb ada/repinfo.ads ada/repinfo.adb ada/scans.ads \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/stand.ads ada/stringt.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/widechar.ads ada/restrict.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/aspects.adb \ ada/atree.ads ada/atree.adb ada/casing.ads ada/casing.adb ada/csets.ads \ ada/debug.ads ada/einfo.ads ada/einfo.adb ada/err_vars.ads \ ada/errout.ads ada/errout.adb ada/erroutc.ads ada/erroutc.adb \ - ada/fname.ads ada/fname-uf.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/scans.ads \ - ada/sem_aux.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/stand.ads ada/stringt.ads \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tree_io.ads ada/types.ads \ - ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ - ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/fname.ads ada/fname-uf.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/output.ads ada/restrict.ads \ + ada/restrict.adb ada/rident.ads ada/scans.ads ada/sem_aux.ads \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/stand.ads ada/stringt.ads ada/stylesw.ads \ + ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ + ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ + ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ + ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ + ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ + ada/targparm.ads ada/tree_io.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/widechar.ads ada/rident.o : ada/rident.ads ada/system.ads ada/s-rident.ads @@ -3669,20 +3677,20 @@ ada/scng.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/err_vars.ads ada/errout.ads ada/erroutc.ads ada/fname.ads \ - ada/fname-uf.ads ada/gnat.ads ada/g-htable.ads ada/hostparm.ads \ - ada/interfac.ads ada/lib.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/opt.ads ada/output.ads ada/restrict.ads ada/restrict.adb \ - ada/rident.ads ada/scans.ads ada/scng.ads ada/scng.adb ada/sinfo.ads \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/stand.ads \ - ada/stringt.ads ada/styleg.ads ada/stylesw.ads ada/system.ads \ - ada/s-crc32.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ - ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ - ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ - ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ - ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ - ada/widechar.ads + ada/fname-uf.ads ada/gnat.ads ada/g-byorma.ads ada/g-htable.ads \ + ada/hostparm.ads ada/interfac.ads ada/lib.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/opt.ads ada/output.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/scans.ads \ + ada/scng.ads ada/scng.adb ada/sinfo.ads ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/stand.ads ada/stringt.ads ada/styleg.ads \ + ada/stylesw.ads ada/system.ads ada/s-crc32.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/scos.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/gnat.ads \ @@ -3738,9 +3746,9 @@ ada/sem_aggr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_code.ads ada/exp_disp.ads \ ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb \ ada/expander.ads ada/fname.ads ada/fname-uf.ads ada/freeze.ads \ - ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads \ - ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ - ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ + ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads \ + ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ + ada/inline.ads ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/namet-sp.ads \ ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \ @@ -3778,14 +3786,14 @@ ada/sem_attr.o : ada/ada.ads ada/a-charac.ads ada/a-chlat1.ads \ ada/exp_disp.ads ada/exp_dist.ads ada/exp_pakd.ads ada/exp_tss.ads \ ada/exp_util.ads ada/exp_util.adb ada/expander.ads ada/fname.ads \ ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ - ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/output.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ - ada/sdefault.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \ + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ + ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/output.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/scans.ads ada/sdefault.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \ ada/sem_attr.ads ada/sem_attr.adb ada/sem_aux.ads ada/sem_aux.adb \ ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads \ ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads \ @@ -3890,15 +3898,15 @@ ada/sem_ch10.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/erroutc.ads ada/erroutc.adb ada/exp_ch11.ads ada/exp_ch7.ads \ ada/exp_code.ads ada/exp_disp.ads ada/exp_tss.ads ada/exp_util.ads \ ada/expander.ads ada/fname.ads ada/fname-uf.ads ada/freeze.ads \ - ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads \ - ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/impunit.ads \ - ada/inline.ads ada/inline.adb ada/interfac.ads ada/lib.ads ada/lib.adb \ - ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ - ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/opt.adb \ - ada/output.ads ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ - ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads \ + ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ + ada/impunit.ads ada/inline.ads ada/inline.adb ada/interfac.ads \ + ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ + ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ + ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ ada/sem_aux.adb ada/sem_ch10.ads ada/sem_ch10.adb ada/sem_ch11.ads \ ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ @@ -3960,35 +3968,35 @@ ada/sem_ch12.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch7.ads ada/exp_code.ads ada/exp_disp.ads ada/exp_dist.ads \ ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ - ada/hostparm.ads ada/inline.ads ada/inline.adb ada/interfac.ads \ - ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ - ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ - ada/nmake.adb ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads \ - ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ - ada/rtsfind.ads ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads \ - ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch12.adb \ - ada/sem_ch13.ads ada/sem_ch13.adb ada/sem_ch2.ads ada/sem_ch3.ads \ - ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ - ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_dim.ads ada/sem_disp.ads \ - ada/sem_dist.ads ada/sem_elab.ads ada/sem_elim.ads ada/sem_eval.ads \ - ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads \ - ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads \ - ada/sinfo.adb ada/sinfo-cn.ads ada/sinput.ads ada/sinput.adb \ - ada/sinput-l.ads ada/snames.ads ada/stand.ads ada/stringt.ads \ - ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \ - ada/system.ads ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads \ - ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ - ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ - ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \ - ada/warnsw.ads ada/widechar.ads + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/inline.adb \ + ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/opt.adb \ + ada/output.ads ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads \ + ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/rtsfind.adb \ + ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ + ada/sem_ch12.ads ada/sem_ch12.adb ada/sem_ch13.ads ada/sem_ch13.adb \ + ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ + ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ + ada/sem_dim.ads ada/sem_disp.ads ada/sem_dist.ads ada/sem_elab.ads \ + ada/sem_elim.ads ada/sem_eval.ads ada/sem_prag.ads ada/sem_res.ads \ + ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads \ + ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb ada/sinfo-cn.ads \ + ada/sinput.ads ada/sinput.adb ada/sinput-l.ads ada/snames.ads \ + ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \ + ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ + ada/s-exctab.adb ada/s-htable.ads ada/s-htable.adb ada/s-imenne.ads \ + ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ + ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ + ada/s-stoele.ads ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/urealp.adb ada/warnsw.ads ada/widechar.ads ada/sem_ch13.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/aspects.adb \ @@ -4001,9 +4009,9 @@ ada/sem_ch13.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_code.ads ada/exp_disp.ads ada/exp_dist.ads ada/exp_pakd.ads \ ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb ada/expander.ads \ ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-hesorg.adb ada/g-htable.ads \ - ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ - ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ + ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-hesorg.adb \ + ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ + ada/inline.ads ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ @@ -4062,35 +4070,36 @@ ada/sem_ch3.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_code.ads ada/exp_disp.ads ada/exp_dist.ads ada/exp_pakd.ads \ ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb ada/expander.ads \ ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/itypes.ads ada/layout.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ - ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ - ada/nmake.adb ada/opt.ads ada/output.ads ada/par_sco.ads \ - ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ - ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads \ - ada/sem_aux.ads ada/sem_aux.adb ada/sem_case.ads ada/sem_case.adb \ - ada/sem_cat.ads ada/sem_cat.adb ada/sem_ch10.ads ada/sem_ch11.ads \ - ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb ada/sem_ch2.ads \ - ada/sem_ch3.ads ada/sem_ch3.adb ada/sem_ch4.ads ada/sem_ch5.ads \ - ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_dim.ads ada/sem_disp.ads ada/sem_dist.ads ada/sem_elim.ads \ - ada/sem_eval.ads ada/sem_eval.adb ada/sem_mech.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_smem.ads ada/sem_type.ads ada/sem_util.ads \ - ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/sprint.ads ada/stand.ads ada/stringt.ads ada/stringt.adb \ - ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \ - ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ - ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ - ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ - ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ - ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \ - ada/validsw.ads ada/warnsw.ads ada/widechar.ads + ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/interfac.ads ada/itypes.ads ada/layout.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ + ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads ada/restrict.adb \ + ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ + ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_case.ads \ + ada/sem_case.adb ada/sem_cat.ads ada/sem_cat.adb ada/sem_ch10.ads \ + ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb \ + ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch3.adb ada/sem_ch4.ads \ + ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \ + ada/sem_ch9.ads ada/sem_dim.ads ada/sem_disp.ads ada/sem_dist.ads \ + ada/sem_elim.ads ada/sem_eval.ads ada/sem_eval.adb ada/sem_mech.ads \ + ada/sem_prag.ads ada/sem_res.ads ada/sem_smem.ads ada/sem_type.ads \ + ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/sprint.ads ada/stand.ads ada/stringt.ads \ + ada/stringt.adb ada/style.ads ada/styleg.ads ada/styleg.adb \ + ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/urealp.adb ada/validsw.ads ada/warnsw.ads \ + ada/widechar.ads ada/sem_ch4.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -4140,35 +4149,35 @@ ada/sem_ch5.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch7.ads ada/exp_code.ads ada/exp_disp.ads ada/exp_pakd.ads \ ada/exp_tss.ads ada/exp_util.ads ada/exp_util.adb ada/expander.ads \ ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ - ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ - ada/nmake.adb ada/opt.ads ada/output.ads ada/par_sco.ads \ - ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ - ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_case.ads \ - ada/sem_case.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ - ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ - ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch5.adb ada/sem_ch6.ads \ - ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_dim.ads \ - ada/sem_disp.ads ada/sem_dist.ads ada/sem_elab.ads ada/sem_elim.ads \ - ada/sem_eval.ads ada/sem_eval.adb ada/sem_intr.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_res.adb ada/sem_type.ads ada/sem_util.ads \ - ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads \ - ada/sinfo.adb ada/sinfo-cn.ads ada/sinput.ads ada/sinput.adb \ - ada/snames.ads ada/sprint.ads ada/stand.ads ada/stringt.ads \ - ada/stringt.adb ada/style.ads ada/styleg.ads ada/styleg.adb \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \ - ada/widechar.ads + ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ + ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads ada/restrict.adb \ + ada/rident.ads ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb \ + ada/sem_aggr.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb \ + ada/sem_case.ads ada/sem_case.adb ada/sem_cat.ads ada/sem_ch10.ads \ + ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads \ + ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch5.adb \ + ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ + ada/sem_dim.ads ada/sem_disp.ads ada/sem_dist.ads ada/sem_elab.ads \ + ada/sem_elim.ads ada/sem_eval.ads ada/sem_eval.adb ada/sem_intr.ads \ + ada/sem_prag.ads ada/sem_res.ads ada/sem_res.adb ada/sem_type.ads \ + ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb \ + ada/sinfo.ads ada/sinfo.adb ada/sinfo-cn.ads ada/sinput.ads \ + ada/sinput.adb ada/snames.ads ada/sprint.ads ada/stand.ads \ + ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \ + ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/validsw.ads ada/widechar.ads ada/sem_ch6.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -4180,15 +4189,15 @@ ada/sem_ch6.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch7.ads ada/exp_ch9.ads ada/exp_code.ads ada/exp_disp.ads \ ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \ ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/inline.adb \ - ada/interfac.ads ada/itypes.ads ada/layout.ads ada/lib.ads ada/lib.adb \ - ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ - ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/opt.adb \ - ada/output.ads ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ - ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/inline.adb ada/interfac.ads ada/itypes.ads ada/layout.ads \ + ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ + ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ + ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb ada/sem_ch2.ads \ ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads \ @@ -4220,32 +4229,32 @@ ada/sem_ch7.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_code.ads ada/exp_dbug.ads ada/exp_disp.ads ada/exp_dist.ads \ ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ - ada/hostparm.ads ada/inline.ads ada/inline.adb ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/output.ads ada/par_sco.ads ada/put_alfa.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ - ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ - ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ - ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb ada/sem_ch2.ads \ - ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads \ - ada/sem_ch7.ads ada/sem_ch7.adb ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_dim.ads ada/sem_disp.ads ada/sem_eval.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ - ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/snames.adb \ - ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \ - ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ - ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ - ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/warnsw.ads ada/widechar.ads + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/inline.adb \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/output.ads ada/par_sco.ads \ + ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ + ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads \ + ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads \ + ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb \ + ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ + ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch7.adb ada/sem_ch8.ads \ + ada/sem_ch9.ads ada/sem_dim.ads ada/sem_disp.ads ada/sem_eval.ads \ + ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads \ + ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/snames.adb ada/stand.ads ada/stringt.ads ada/style.ads \ + ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tbuild.ads ada/tree_io.ads ada/ttypes.ads ada/types.ads \ + ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/warnsw.ads ada/widechar.ads ada/sem_ch8.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -4255,16 +4264,16 @@ ada/sem_ch8.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/erroutc.ads ada/erroutc.adb ada/exp_ch11.ads ada/exp_ch6.ads \ ada/exp_ch7.ads ada/exp_disp.ads ada/exp_dist.ads ada/exp_tss.ads \ ada/exp_util.ads ada/expander.ads ada/fname.ads ada/fname-uf.ads \ - ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/impunit.ads ada/inline.ads ada/inline.adb ada/interfac.ads \ - ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ - ada/namet.ads ada/namet.adb ada/namet-sp.ads ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/opt.adb \ - ada/output.ads ada/put_alfa.ads ada/restrict.ads ada/restrict.adb \ - ada/rident.ads ada/rtsfind.ads ada/rtsfind.adb ada/scans.ads \ - ada/sem.ads ada/sem.adb ada/sem_aggr.ads ada/sem_attr.ads \ + ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/impunit.ads ada/inline.ads ada/inline.adb \ + ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/namet-sp.ads \ + ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads \ + ada/opt.adb ada/output.ads ada/put_alfa.ads ada/restrict.ads \ + ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/rtsfind.adb \ + ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads ada/sem_attr.ads \ ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads \ ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb \ ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ @@ -4295,34 +4304,34 @@ ada/sem_ch9.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch9.ads ada/exp_code.ads ada/exp_disp.ads ada/exp_pakd.ads \ ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ - ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads ada/put_alfa.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ - ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads ada/sem_attr.ads \ - ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads \ - ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb \ - ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ - ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ - ada/sem_ch9.adb ada/sem_dim.ads ada/sem_disp.ads ada/sem_dist.ads \ - ada/sem_elab.ads ada/sem_elim.ads ada/sem_eval.ads ada/sem_intr.ads \ - ada/sem_prag.ads ada/sem_res.ads ada/sem_res.adb ada/sem_type.ads \ - ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb \ - ada/sinfo.ads ada/sinfo.adb ada/sinfo-cn.ads ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/sprint.ads ada/stand.ads \ - ada/stringt.ads ada/style.ads ada/styleg.ads ada/styleg.adb \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/validsw.ads \ - ada/warnsw.ads ada/widechar.ads + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ + ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads \ + ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ + ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \ + ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads \ + ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ + ada/sem_ch13.adb ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads \ + ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \ + ada/sem_ch9.ads ada/sem_ch9.adb ada/sem_dim.ads ada/sem_disp.ads \ + ada/sem_dist.ads ada/sem_elab.ads ada/sem_elim.ads ada/sem_eval.ads \ + ada/sem_intr.ads ada/sem_prag.ads ada/sem_res.ads ada/sem_res.adb \ + ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads \ + ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb ada/sinfo-cn.ads \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ + ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \ + ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/validsw.ads ada/warnsw.ads ada/widechar.ads ada/sem_dim.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -4426,14 +4435,14 @@ ada/sem_elab.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch11.ads ada/exp_ch2.ads ada/exp_ch4.ads ada/exp_disp.ads \ ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads ada/expander.ads \ ada/fname.ads ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/output.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ - ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ + ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/output.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ @@ -4459,11 +4468,11 @@ ada/sem_elim.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/debug_a.ads ada/einfo.ads ada/einfo.adb ada/elists.ads \ ada/err_vars.ads ada/errout.ads ada/errout.adb ada/erroutc.ads \ ada/erroutc.adb ada/exp_tss.ads ada/expander.ads ada/fname.ads \ - ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ - ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads \ + ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads \ + ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads \ ada/restrict.ads ada/rident.ads ada/scans.ads ada/sem.ads ada/sem.adb \ ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_ch10.ads \ ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads \ @@ -4577,97 +4586,98 @@ ada/sem_prag.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_code.ads ada/exp_disp.ads ada/exp_dist.ads ada/exp_pakd.ads \ ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ - ada/hostparm.ads ada/inline.ads ada/inline.adb ada/interfac.ads \ + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/inline.adb \ + ada/interfac.ads ada/itypes.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-writ.ads ada/lib-writ.adb ada/lib-xref.ads ada/namet.ads \ + ada/namet.adb ada/namet-sp.ads ada/nlists.ads ada/nlists.adb \ + ada/nmake.ads ada/nmake.adb ada/opt.ads ada/osint.ads ada/osint-c.ads \ + ada/output.ads ada/par.ads ada/par_sco.ads ada/put_alfa.ads \ + ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ + ada/scans.ads ada/scn.ads ada/scng.ads ada/scng.adb ada/sem.ads \ + ada/sem.adb ada/sem_aggr.ads ada/sem_attr.ads ada/sem_aux.ads \ + ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads \ + ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch13.adb ada/sem_ch2.ads \ + ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads \ + ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_dim.ads \ + ada/sem_disp.ads ada/sem_dist.ads ada/sem_elab.ads ada/sem_elim.ads \ + ada/sem_eval.ads ada/sem_eval.adb ada/sem_intr.ads ada/sem_mech.ads \ + ada/sem_prag.ads ada/sem_prag.adb ada/sem_res.ads ada/sem_res.adb \ + ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_vfpt.ads \ + ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb \ + ada/sinfo-cn.ads ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/snames.adb ada/sprint.ads ada/stand.ads ada/stringt.ads \ + ada/stringt.adb ada/style.ads ada/styleg.ads ada/styleg.adb \ + ada/stylesw.ads ada/system.ads ada/s-casuti.ads ada/s-carun8.ads \ + ada/s-crc32.ads ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ + ada/tbuild.adb ada/tree_io.ads ada/ttypes.ads ada/types.ads \ + ada/types.adb ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \ + ada/validsw.ads ada/warnsw.ads ada/widechar.ads + +ada/sem_res.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ + ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ + ada/atree.adb ada/casing.ads ada/checks.ads ada/checks.adb \ + ada/csets.ads ada/debug.ads ada/debug_a.ads ada/debug_a.adb \ + ada/einfo.ads ada/einfo.adb ada/elists.ads ada/err_vars.ads \ + ada/errout.ads ada/errout.adb ada/erroutc.ads ada/erroutc.adb \ + ada/eval_fat.ads ada/exp_aggr.ads ada/exp_ch11.ads ada/exp_ch2.ads \ + ada/exp_ch4.ads ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_code.ads \ + ada/exp_disp.ads ada/exp_dist.ads ada/exp_pakd.ads ada/exp_tss.ads \ + ada/exp_util.ads ada/exp_util.adb ada/expander.ads ada/fname.ads \ + ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads \ + ada/hlo.ads ada/hostparm.ads ada/inline.ads ada/interfac.ads \ ada/itypes.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-writ.ads \ - ada/lib-writ.adb ada/lib-xref.ads ada/namet.ads ada/namet.adb \ - ada/namet-sp.ads ada/nlists.ads ada/nlists.adb ada/nmake.ads \ - ada/nmake.adb ada/opt.ads ada/osint.ads ada/osint-c.ads ada/output.ads \ - ada/par.ads ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads \ - ada/restrict.adb ada/rident.ads ada/rtsfind.ads ada/scans.ads \ - ada/scn.ads ada/scng.ads ada/scng.adb ada/sem.ads ada/sem.adb \ + ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ + ada/nmake.adb ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads \ + ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ + ada/rtsfind.ads ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb \ ada/sem_aggr.ads ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb \ ada/sem_cat.ads ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads \ ada/sem_ch13.ads ada/sem_ch13.adb ada/sem_ch2.ads ada/sem_ch3.ads \ ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_dim.ads ada/sem_disp.ads \ ada/sem_dist.ads ada/sem_elab.ads ada/sem_elim.ads ada/sem_eval.ads \ - ada/sem_eval.adb ada/sem_intr.ads ada/sem_mech.ads ada/sem_prag.ads \ - ada/sem_prag.adb ada/sem_res.ads ada/sem_res.adb ada/sem_type.ads \ - ada/sem_util.ads ada/sem_util.adb ada/sem_vfpt.ads ada/sem_warn.ads \ - ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb ada/sinfo-cn.ads \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/snames.adb \ + ada/sem_eval.adb ada/sem_intr.ads ada/sem_prag.ads ada/sem_res.ads \ + ada/sem_res.adb ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ + ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb \ + ada/sinfo-cn.ads ada/sinput.ads ada/sinput.adb ada/snames.ads \ ada/sprint.ads ada/stand.ads ada/stringt.ads ada/stringt.adb \ ada/style.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \ - ada/system.ads ada/s-casuti.ads ada/s-carun8.ads ada/s-crc32.ads \ - ada/s-exctab.ads ada/s-exctab.adb ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ - ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ - ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ - ada/s-unstyp.ads ada/s-utf_32.ads ada/s-wchcon.ads ada/table.ads \ + ada/system.ads ada/s-carun8.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/types.adb \ ada/uintp.ads ada/uintp.adb ada/uname.ads ada/unchconv.ads \ ada/unchdeal.ads ada/urealp.ads ada/urealp.adb ada/validsw.ads \ ada/warnsw.ads ada/widechar.ads -ada/sem_res.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ - ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ - ada/atree.adb ada/casing.ads ada/checks.ads ada/checks.adb \ - ada/csets.ads ada/debug.ads ada/debug_a.ads ada/debug_a.adb \ - ada/einfo.ads ada/einfo.adb ada/elists.ads ada/err_vars.ads \ - ada/errout.ads ada/errout.adb ada/erroutc.ads ada/erroutc.adb \ - ada/eval_fat.ads ada/exp_aggr.ads ada/exp_ch11.ads ada/exp_ch2.ads \ - ada/exp_ch4.ads ada/exp_ch6.ads ada/exp_ch7.ads ada/exp_code.ads \ - ada/exp_disp.ads ada/exp_dist.ads ada/exp_pakd.ads ada/exp_tss.ads \ - ada/exp_util.ads ada/exp_util.adb ada/expander.ads ada/fname.ads \ - ada/fname-uf.ads ada/freeze.ads ada/get_targ.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ - ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/itypes.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-load.ads \ - ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/nmake.adb \ - ada/opt.ads ada/opt.adb ada/output.ads ada/par_sco.ads ada/put_alfa.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ - ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_aggr.ads \ - ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads \ - ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ - ada/sem_ch13.adb ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads \ - ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \ - ada/sem_ch9.ads ada/sem_dim.ads ada/sem_disp.ads ada/sem_dist.ads \ - ada/sem_elab.ads ada/sem_elim.ads ada/sem_eval.ads ada/sem_eval.adb \ - ada/sem_intr.ads ada/sem_prag.ads ada/sem_res.ads ada/sem_res.adb \ - ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb ada/sem_warn.ads \ - ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb ada/sinfo-cn.ads \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ - ada/stand.ads ada/stringt.ads ada/stringt.adb ada/style.ads \ - ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ - ada/s-carun8.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ - ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ - ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ - ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ - ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/types.adb ada/uintp.ads ada/uintp.adb \ - ada/uname.ads ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ - ada/urealp.adb ada/validsw.ads ada/warnsw.ads ada/widechar.ads - ada/sem_scil.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads ada/einfo.adb \ - ada/gnat.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ - ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads \ - ada/output.ads ada/rtsfind.ads ada/scil_ll.ads ada/sem_aux.ads \ - ada/sem_aux.adb ada/sem_scil.ads ada/sem_scil.adb ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/stand.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ - ada/widechar.ads + ada/gnat.ads ada/g-byorma.ads ada/g-htable.ads ada/hostparm.ads \ + ada/interfac.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/output.ads ada/rtsfind.ads ada/scans.ads \ + ada/scil_ll.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_scil.ads \ + ada/sem_scil.adb ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ + ada/sinput.adb ada/snames.ads ada/stand.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads \ + ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ + ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ + ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/sem_smem.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -4730,33 +4740,33 @@ ada/sem_util.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/exp_ch11.ads ada/exp_ch2.ads ada/exp_ch4.ads ada/exp_disp.ads \ ada/exp_dist.ads ada/exp_pakd.ads ada/exp_tss.ads ada/exp_util.ads \ ada/expander.ads ada/fname.ads ada/fname-uf.ads ada/freeze.ads \ - ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads ada/g-htable.ads \ - ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads ada/inline.ads \ - ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ - ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads ada/lib-xref.ads \ - ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads \ - ada/nmake.adb ada/opt.ads ada/output.ads ada/put_alfa.ads \ - ada/restrict.ads ada/restrict.adb ada/rident.ads ada/rtsfind.ads \ - ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads \ - ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads ada/sem_ch10.ads \ - ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads \ - ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads \ - ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_disp.ads \ - ada/sem_dist.ads ada/sem_eval.ads ada/sem_eval.adb ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ - ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/sprint.ads ada/stand.ads \ - ada/stringt.ads ada/stringt.adb ada/style.ads ada/styleg.ads \ - ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-htable.adb ada/s-imenne.ads ada/s-memory.ads \ - ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ - ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ - ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads ada/s-traent.ads \ - ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ - ada/targparm.ads ada/tbuild.ads ada/tbuild.adb ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \ - ada/validsw.ads ada/widechar.ads + ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads ada/g-hesorg.ads \ + ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ + ada/inline.ads ada/interfac.ads ada/lib.ads ada/lib.adb \ + ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ + ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/nmake.ads ada/nmake.adb ada/opt.ads ada/output.ads \ + ada/put_alfa.ads ada/restrict.ads ada/restrict.adb ada/rident.ads \ + ada/rtsfind.ads ada/rtsfind.adb ada/scans.ads ada/sem.ads ada/sem.adb \ + ada/sem_attr.ads ada/sem_aux.ads ada/sem_aux.adb ada/sem_cat.ads \ + ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads ada/sem_ch13.ads \ + ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads ada/sem_ch5.ads \ + ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads ada/sem_ch9.ads \ + ada/sem_disp.ads ada/sem_dist.ads ada/sem_eval.ads ada/sem_eval.adb \ + ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads \ + ada/sem_util.adb ada/sem_warn.ads ada/sinfo.ads ada/sinfo.adb \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/sprint.ads \ + ada/stand.ads ada/stringt.ads ada/stringt.adb ada/style.ads \ + ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-htable.adb ada/s-imenne.ads \ + ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads \ + ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ + ada/s-stoele.ads ada/s-stoele.adb ada/s-strhas.ads ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tbuild.adb \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/urealp.adb ada/validsw.ads ada/widechar.ads ada/sem_vfpt.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -4781,30 +4791,31 @@ ada/sem_warn.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/err_vars.ads ada/errout.ads ada/errout.adb ada/erroutc.ads \ ada/erroutc.adb ada/exp_ch11.ads ada/exp_code.ads ada/exp_disp.ads \ ada/exp_tss.ads ada/exp_util.ads ada/expander.ads ada/fname.ads \ - ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads ada/hostparm.ads \ - ada/inline.ads ada/interfac.ads ada/lib.ads ada/lib.adb \ - ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb ada/lib-util.ads \ - ada/lib-xref.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads ada/par_sco.ads \ - ada/put_alfa.ads ada/restrict.ads ada/rident.ads ada/rtsfind.ads \ - ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads ada/sem_aux.ads \ - ada/sem_aux.adb ada/sem_ch10.ads ada/sem_ch11.ads ada/sem_ch12.ads \ - ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads ada/sem_ch4.ads \ - ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads ada/sem_ch8.ads \ - ada/sem_ch9.ads ada/sem_disp.ads ada/sem_eval.ads ada/sem_prag.ads \ - ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads ada/sem_util.adb \ - ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads ada/sinfo.adb \ - ada/sinput.ads ada/sinput.adb ada/snames.ads ada/stand.ads \ - ada/stringt.ads ada/style.ads ada/styleg.ads ada/styleg.adb \ - ada/stylesw.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/targparm.ads ada/tbuild.ads ada/tree_io.ads \ - ada/ttypes.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + ada/freeze.ads ada/get_targ.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/gnatvsn.ads ada/hlo.ads \ + ada/hostparm.ads ada/inline.ads ada/interfac.ads ada/lib.ads \ + ada/lib.adb ada/lib-list.adb ada/lib-load.ads ada/lib-sort.adb \ + ada/lib-util.ads ada/lib-xref.ads ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads \ + ada/par_sco.ads ada/put_alfa.ads ada/restrict.ads ada/rident.ads \ + ada/rtsfind.ads ada/scans.ads ada/sem.ads ada/sem.adb ada/sem_attr.ads \ + ada/sem_aux.ads ada/sem_aux.adb ada/sem_ch10.ads ada/sem_ch11.ads \ + ada/sem_ch12.ads ada/sem_ch13.ads ada/sem_ch2.ads ada/sem_ch3.ads \ + ada/sem_ch4.ads ada/sem_ch5.ads ada/sem_ch6.ads ada/sem_ch7.ads \ + ada/sem_ch8.ads ada/sem_ch9.ads ada/sem_disp.ads ada/sem_eval.ads \ + ada/sem_prag.ads ada/sem_res.ads ada/sem_type.ads ada/sem_util.ads \ + ada/sem_util.adb ada/sem_warn.ads ada/sem_warn.adb ada/sinfo.ads \ + ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ + ada/stand.ads ada/stringt.ads ada/style.ads ada/styleg.ads \ + ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/targparm.ads ada/tbuild.ads \ + ada/tree_io.ads ada/ttypes.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/widechar.ads ada/sinfo-cn.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ @@ -4835,10 +4846,24 @@ ada/sinfo.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/sinput-c.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ - ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads \ - ada/hostparm.ads ada/interfac.ads ada/namet.ads ada/namet.adb \ - ada/nlists.ads ada/opt.ads ada/output.ads ada/sinfo.ads ada/sinput.ads \ - ada/sinput.adb ada/sinput-c.ads ada/sinput-c.adb ada/snames.ads \ + ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads ada/gnat.ads \ + ada/g-byorma.ads ada/hostparm.ads ada/interfac.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/opt.ads ada/output.ads ada/scans.ads \ + ada/sinfo.ads ada/sinput.ads ada/sinput.adb ada/sinput-c.ads \ + ada/sinput-c.adb ada/snames.ads ada/system.ads ada/s-exctab.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads + +ada/sinput-d.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ + ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ + ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads ada/gnat.ads \ + ada/g-byorma.ads ada/hostparm.ads ada/interfac.ads ada/namet.ads \ + ada/namet.adb ada/nlists.ads ada/opt.ads ada/osint.ads ada/osint-c.ads \ + ada/output.ads ada/scans.ads ada/sinfo.ads ada/sinput.ads \ + ada/sinput.adb ada/sinput-d.ads ada/sinput-d.adb ada/snames.ads \ ada/system.ads ada/s-exctab.ads ada/s-imenne.ads ada/s-memory.ads \ ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads \ ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ @@ -4846,19 +4871,6 @@ ada/sinput-c.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/tree_io.ads ada/types.ads ada/uintp.ads ada/unchconv.ads \ ada/unchdeal.ads ada/urealp.ads ada/widechar.ads -ada/sinput-d.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ - ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ - ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads \ - ada/hostparm.ads ada/interfac.ads ada/namet.ads ada/namet.adb \ - ada/nlists.ads ada/opt.ads ada/osint.ads ada/osint-c.ads ada/output.ads \ - ada/sinfo.ads ada/sinput.ads ada/sinput.adb ada/sinput-d.ads \ - ada/sinput-d.adb ada/snames.ads ada/system.ads ada/s-exctab.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads - ada/sinput-l.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ @@ -4887,16 +4899,16 @@ ada/sinput-l.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/sinput.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/debug.ads ada/einfo.ads ada/gnat.ads \ - ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ - ada/snames.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ - ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ - ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads \ - ada/widechar.ads + ada/g-byorma.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ + ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads \ + ada/output.ads ada/scans.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ + ada/sinput.adb ada/snames.ads ada/system.ads ada/s-exctab.ads \ + ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ + ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/unchconv.ads \ + ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/snames.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/debug.ads ada/hostparm.ads \ @@ -4912,21 +4924,21 @@ ada/sprint.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/exp_tss.ads ada/fname.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/nmake.ads ada/opt.ads \ - ada/output.ads ada/output.adb ada/rtsfind.ads ada/sem_eval.ads \ - ada/sem_util.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/sinput-d.ads ada/snames.ads ada/sprint.ads \ - ada/sprint.adb ada/stand.ads ada/stringt.ads ada/stringt.adb \ - ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \ - ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ - ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_io.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ - ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/urealp.adb \ - ada/widechar.ads + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/nmake.ads ada/opt.ads ada/output.ads ada/output.adb \ + ada/rtsfind.ads ada/scans.ads ada/sem_eval.ads ada/sem_util.ads \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/sinput-d.ads ada/snames.ads ada/sprint.ads ada/sprint.adb \ + ada/stand.ads ada/stringt.ads ada/stringt.adb ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-soflin.ads \ + ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ + ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ + ada/urealp.ads ada/urealp.adb ada/widechar.ads ada/stand.o : ada/ada.ads ada/a-unccon.ads ada/a-uncdea.ads ada/stand.ads \ ada/stand.adb ada/system.ads ada/s-exctab.ads ada/s-os_lib.ads \ @@ -4948,33 +4960,33 @@ ada/style.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/err_vars.ads ada/errout.ads ada/errout.adb \ ada/erroutc.ads ada/erroutc.adb ada/fname.ads ada/gnat.ads \ - ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/namet.ads ada/namet.adb ada/nlists.ads ada/nlists.adb \ - ada/opt.ads ada/output.ads ada/rident.ads ada/scans.ads ada/sem_aux.ads \ - ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ - ada/snames.ads ada/stand.ads ada/style.ads ada/style.adb ada/styleg.ads \ - ada/styleg.adb ada/stylesw.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads ada/s-soflin.ads \ - ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ - ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ - ada/table.ads ada/table.adb ada/targparm.ads ada/tree_io.ads \ - ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/g-byorma.ads ada/g-htable.ads ada/gnatvsn.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/output.ads ada/rident.ads ada/scans.ads \ + ada/sem_aux.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ + ada/sinput.adb ada/snames.ads ada/stand.ads ada/style.ads ada/style.adb \ + ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-rident.ads ada/s-secsta.ads \ + ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads ada/s-stoele.ads \ + ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ + ada/s-wchcon.ads ada/table.ads ada/table.adb ada/targparm.ads \ + ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/styleg.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ - ada/err_vars.ads ada/gnat.ads ada/g-htable.ads ada/hostparm.ads \ - ada/interfac.ads ada/namet.ads ada/namet.adb ada/nlists.ads \ - ada/nlists.adb ada/opt.ads ada/output.ads ada/scans.ads ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/styleg.ads ada/styleg.adb ada/stylesw.ads ada/system.ads \ - ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ - ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads \ - ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ - ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ - ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ + ada/err_vars.ads ada/gnat.ads ada/g-byorma.ads ada/g-htable.ads \ + ada/hostparm.ads ada/interfac.ads ada/namet.ads ada/namet.adb \ + ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads ada/scans.ads \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/styleg.ads ada/styleg.adb ada/stylesw.ads \ + ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ + ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \ + ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ + ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ + ada/table.adb ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb \ ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/stylesw.o : ada/ada.ads ada/a-unccon.ads ada/a-uncdea.ads \ @@ -5069,37 +5081,38 @@ ada/tree_gen.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/elists.ads ada/fname.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/osint.ads \ - ada/osint-c.ads ada/output.ads ada/repinfo.ads ada/sem_aux.ads \ - ada/sem_aux.adb ada/sinfo.ads ada/sinfo.adb ada/sinput.ads \ - ada/sinput.adb ada/snames.ads ada/stand.ads ada/stringt.ads \ - ada/system.ads ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads \ - ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/tree_gen.ads ada/tree_gen.adb ada/tree_in.ads \ - ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/osint.ads ada/osint-c.ads ada/output.ads \ + ada/repinfo.ads ada/scans.ads ada/sem_aux.ads ada/sem_aux.adb \ + ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/snames.ads ada/stand.ads ada/stringt.ads ada/system.ads \ + ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ + ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads \ + ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ + ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ + ada/tree_gen.ads ada/tree_gen.adb ada/tree_in.ads ada/tree_io.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/tree_in.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/elists.ads ada/fname.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/repinfo.ads ada/sem_aux.ads ada/sem_aux.adb ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/stand.ads ada/stringt.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads \ - ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads \ - ada/s-wchcon.ads ada/table.ads ada/table.adb ada/tree_in.ads \ - ada/tree_in.adb ada/tree_io.ads ada/types.ads ada/uintp.ads \ - ada/uintp.adb ada/uname.ads ada/unchconv.ads ada/unchdeal.ads \ - ada/urealp.ads ada/widechar.ads + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/output.ads ada/repinfo.ads ada/scans.ads \ + ada/sem_aux.ads ada/sem_aux.adb ada/sinfo.ads ada/sinfo.adb \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/stand.ads \ + ada/stringt.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-secsta.ads ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb \ + ada/s-string.ads ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads \ + ada/table.ads ada/table.adb ada/tree_in.ads ada/tree_in.adb \ + ada/tree_io.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/tree_io.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/debug.ads ada/hostparm.ads ada/output.ads \ @@ -5113,18 +5126,19 @@ ada/treepr.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ ada/einfo.adb ada/elists.ads ada/elists.adb ada/fname.ads ada/gnat.ads \ - ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ - ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ - ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/output.adb ada/scil_ll.ads ada/sem_mech.ads ada/sinfo.ads \ - ada/sinfo.adb ada/sinput.ads ada/sinput.adb ada/snames.ads \ - ada/stand.ads ada/stringt.ads ada/system.ads ada/s-exctab.ads \ - ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads \ - ada/s-parame.ads ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads \ - ada/s-stalib.ads ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads \ - ada/s-traent.ads ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads \ - ada/table.adb ada/tree_io.ads ada/treepr.ads ada/treepr.adb \ - ada/treeprs.ads ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ + ada/g-byorma.ads ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads \ + ada/interfac.ads ada/lib.ads ada/lib.adb ada/lib-list.adb \ + ada/lib-sort.adb ada/namet.ads ada/namet.adb ada/nlists.ads \ + ada/nlists.adb ada/opt.ads ada/output.ads ada/output.adb ada/scans.ads \ + ada/scil_ll.ads ada/sem_mech.ads ada/sinfo.ads ada/sinfo.adb \ + ada/sinput.ads ada/sinput.adb ada/snames.ads ada/stand.ads \ + ada/stringt.ads ada/system.ads ada/s-exctab.ads ada/s-htable.ads \ + ada/s-imenne.ads ada/s-memory.ads ada/s-os_lib.ads ada/s-parame.ads \ + ada/s-secsta.ads ada/s-soflin.ads ada/s-stache.ads ada/s-stalib.ads \ + ada/s-stoele.ads ada/s-stoele.adb ada/s-string.ads ada/s-traent.ads \ + ada/s-unstyp.ads ada/s-wchcon.ads ada/table.ads ada/table.adb \ + ada/tree_io.ads ada/treepr.ads ada/treepr.adb ada/treeprs.ads \ + ada/types.ads ada/uintp.ads ada/uintp.adb ada/uname.ads \ ada/unchconv.ads ada/unchdeal.ads ada/urealp.ads ada/widechar.ads ada/treeprs.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ @@ -5161,11 +5175,11 @@ ada/uintp.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/uname.o : ada/ada.ads ada/a-except.ads ada/a-unccon.ads \ ada/a-uncdea.ads ada/alloc.ads ada/aspects.ads ada/atree.ads \ ada/atree.adb ada/casing.ads ada/csets.ads ada/debug.ads ada/einfo.ads \ - ada/einfo.adb ada/fname.ads ada/gnat.ads ada/g-hesorg.ads \ - ada/g-htable.ads ada/hostparm.ads ada/interfac.ads ada/lib.ads \ - ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ + ada/einfo.adb ada/fname.ads ada/gnat.ads ada/g-byorma.ads \ + ada/g-hesorg.ads ada/g-htable.ads ada/hostparm.ads ada/interfac.ads \ + ada/lib.ads ada/lib.adb ada/lib-list.adb ada/lib-sort.adb ada/namet.ads \ ada/namet.adb ada/nlists.ads ada/nlists.adb ada/opt.ads ada/output.ads \ - ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ + ada/scans.ads ada/sinfo.ads ada/sinfo.adb ada/sinput.ads ada/sinput.adb \ ada/snames.ads ada/stand.ads ada/stringt.ads ada/system.ads \ ada/s-exctab.ads ada/s-htable.ads ada/s-imenne.ads ada/s-memory.ads \ ada/s-os_lib.ads ada/s-parame.ads ada/s-secsta.ads ada/s-stalib.ads \ diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in index 4fb3ba7d705..d81c66312a0 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -2773,6 +2773,7 @@ gnatlib-sjlj: GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ MULTISUBDIR="$(MULTISUBDIR)" \ THREAD_KIND="$(THREAD_KIND)" \ PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib @@ -2787,6 +2788,7 @@ gnatlib-zcx: GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ MULTISUBDIR="$(MULTISUBDIR)" \ THREAD_KIND="$(THREAD_KIND)" \ PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index a71c86ff970..c3c4f994fe6 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -7032,10 +7032,10 @@ gnat_to_gnu_field (Entity_Id gnat_field, tree gnu_record_type, int packed, TYPE_ALIGN (gnu_field_type)); else if (Strict_Alignment (gnat_field_type)) - post_error_ne_num - ("position of & with aliased or tagged components not multiple of ^ bits", - First_Bit (Component_Clause (gnat_field)), gnat_field, - TYPE_ALIGN (gnu_field_type)); + post_error_ne + ("position of & is not compatible with alignment required " + "by its components", + First_Bit (Component_Clause (gnat_field)), gnat_field); else gcc_unreachable (); @@ -7132,8 +7132,8 @@ gnat_to_gnu_field (Entity_Id gnat_field, tree gnu_record_type, int packed, return gnu_field; } -/* Return true if TYPE is a type with variable size, a padding type with a - field of variable size or is a record that has a field such a field. */ +/* Return true if TYPE is a type with variable size or a padding type with a + field of variable size or a record that has a field with such a type. */ static bool type_has_variable_size (tree type) diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index 6155a8c94c7..9b10794e5c9 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -71,6 +71,7 @@ AdaCore * About This Guide:: * Implementation Defined Pragmas:: * Implementation Defined Attributes:: +* Implementation Defined Restrictions:: * Implementation Advice:: * Implementation Defined Characteristics:: * Intrinsic Subprograms:: @@ -191,6 +192,7 @@ Implementation Defined Pragmas * Pragma Shared:: * Pragma Short_Circuit_And_Or:: * Pragma Short_Descriptors:: +* Pragma Simple_Storage_Pool_Type:: * Pragma Source_File_Name:: * Pragma Source_File_Name_Project:: * Pragma Source_Reference:: @@ -269,6 +271,7 @@ Implementation Defined Attributes * Result:: * Safe_Emax:: * Safe_Large:: +* Simple_Storage_Pool:: * Small:: * Storage_Unit:: * Stub_Type:: @@ -286,6 +289,95 @@ Implementation Defined Attributes * Wchar_T_Size:: * Word_Size:: +Implementation Defined Restrictions + +* Partition-Wide Restrictions:: +* Program Unit Level Restrictions:: + +Partition-Wide Restrictions + +* Immediate_Reclamation:: +* Max_Asynchronous_Select_Nesting:: +* Max_Entry_Queue_Length:: +* Max_Protected_Entries:: +* Max_Select_Alternatives:: +* Max_Storage_At_Blocking:: +* Max_Task_Entries:: +* Max_Tasks:: +* No_Abort_Statements:: +* No_Access_Parameter_Allocators:: +* No_Access_Subprograms:: +* No_Allocators:: +* No_Anonymous_Allocators:: +* No_Calendar:: +* No_Coextensions:: +* No_Default_Initialization:: +* No_Delay:: +* No_Dependence:: +* No_Direct_Boolean_Operators:: +* No_Dispatch:: +* No_Dispatching_Calls:: +* No_Dynamic_Attachment:: +* No_Dynamic_Priorities:: +* No_Entry_Calls_In_Elaboration_Code:: +* No_Enumeration_Maps:: +* No_Exception_Handlers:: +* No_Exception_Propagation:: +* No_Exception_Registration:: +* No_Exceptions:: +* No_Finalization:: +* No_Fixed_Point:: +* No_Floating_Point:: +* No_Implicit_Conditionals:: +* No_Implicit_Dynamic_Code:: +* No_Implicit_Heap_Allocations:: +* No_Implicit_Loops:: +* No_Initialize_Scalars:: +* No_IO:: +* No_Local_Allocators:: +* No_Local_Protected_Objects:: +* No_Local_Timing_Events:: +* No_Nested_Finalization:: +* No_Protected_Type_Allocators:: +* No_Protected_Types:: +* No_Recursion:: +* No_Reentrancy:: +* No_Relative_Delay:: +* No_Requeue_Statements:: +* No_Secondary_Stack:: +* No_Select_Statements:: +* No_Specific_Termination_Handlers:: +* No_Specification_of_Aspect:: +* No_Standard_Allocators_After_Elaboration:: +* No_Standard_Storage_Pools:: +* No_Stream_Optimizations:: +* No_Streams:: +* No_Task_Allocators:: +* No_Task_Attributes_Package:: +* No_Task_Hierarchy:: +* No_Task_Termination:: +* No_Tasking:: +* No_Terminate_Alternatives:: +* No_Unchecked_Access:: +* Simple_Barriers:: +* Static_Priorities:: +* Static_Storage_Size:: + +Program Unit Level Restrictions + +* No_Elaboration_Code:: +* No_Entry_Queue:: +* No_Implementation_Aspect_Specifications:: +* No_Implementation_Attributes:: +* No_Implementation_Identifiers:: +* No_Implementation_Pragmas:: +* No_Implementation_Restrictions:: +* No_Implementation_Units:: +* No_Implicit_Aliasing:: +* No_Obsolescent_Features:: +* No_Wide_Characters:: +* SPARK:: + The Implementation of Standard I/O * Standard I/O Packages:: @@ -554,7 +646,12 @@ compiler. @item @ref{Implementation Defined Attributes}, lists GNAT -implementation-dependent attributes which can be used to extend and +implementation-dependent attributes, which can be used to extend and +enhance the functionality of the compiler. + +@item +@ref{Implementation Defined Restrictions}, lists GNAT +implementation-dependent restrictions, which can be used to extend and enhance the functionality of the compiler. @item @@ -830,6 +927,7 @@ consideration, the use of these pragmas should be minimized. * Pragma Shared:: * Pragma Short_Circuit_And_Or:: * Pragma Short_Descriptors:: +* Pragma Simple_Storage_Pool_Type:: * Pragma Source_File_Name:: * Pragma Source_File_Name_Project:: * Pragma Source_Reference:: @@ -4241,83 +4339,25 @@ plus the following set of restrictions: @table @code @item Max_Entry_Queue_Length => 1 -Defines the maximum number of calls that are queued on a (protected) entry. -Note that this restrictions is checked at run time. Violation of this -restriction results in the raising of Program_Error exception at the point of -the call. For the Profile (Ravenscar) the value of Max_Entry_Queue_Length is -always 1 and hence no task can be queued on a protected entry. - +No task can be queued on a protected entry. @item Max_Protected_Entries => 1 -[RM D.7] Specifies the maximum number of entries per protected type. The -bounds of every entry family of a protected unit shall be static, or shall be -defined by a discriminant of a subtype whose corresponding bound is static. -For the Profile (Ravenscar) the value of Max_Protected_Entries is always 1. - @item Max_Task_Entries => 0 -[RM D.7] Specifies the maximum number of entries -per task. The bounds of every entry family -of a task unit shall be static, or shall be -defined by a discriminant of a subtype whose -corresponding bound is static. A value of zero -indicates that no rendezvous are possible. For -the Profile (Ravenscar), the value of Max_Task_Entries is always -0 (zero). - +No rendezvous statements are allowed. @item No_Abort_Statements -[RM D.7] There are no abort_statements, and there are -no calls to Task_Identification.Abort_Task. - @item No_Dynamic_Attachment -There is no call to any of the operations defined in package Ada.Interrupts -(Is_Reserved, Is_Attached, Current_Handler, Attach_Handler, Exchange_Handler, -Detach_Handler, and Reference). - @item No_Dynamic_Priorities -[RM D.7] There are no semantic dependencies on the package Dynamic_Priorities. - @item No_Implicit_Heap_Allocations -[RM D.7] No constructs are allowed to cause implicit heap allocation. - @item No_Local_Protected_Objects -Protected objects and access types that designate -such objects shall be declared only at library level. - @item No_Local_Timing_Events -[RM D.7] All objects of type Ada.Timing_Events.Timing_Event are -declared at the library level. - @item No_Protected_Type_Allocators -There are no allocators for protected types or -types containing protected subcomponents. - @item No_Relative_Delay -There are no delay_relative statements. - @item No_Requeue_Statements -Requeue statements are not allowed. - @item No_Select_Statements -There are no select_statements. - @item No_Specific_Termination_Handlers -[RM D.7] There are no calls to Ada.Task_Termination.Set_Specific_Handler -or to Ada.Task_Termination.Specific_Handler. - @item No_Task_Allocators -[RM D.7] There are no allocators for task types -or types containing task subcomponents. - @item No_Task_Hierarchy -[RM D.7] All (non-environment) tasks depend -directly on the environment task of the partition. - @item No_Task_Termination -Tasks which terminate are erroneous. - @item Simple_Barriers -Entry barrier condition expressions shall be either static -boolean expressions or boolean objects which are declared in -the protected type which contains the entry. @end table @noindent @@ -4564,6 +4604,73 @@ Short_Descriptor[_xxx]. This is helpful in porting legacy applications from a 32-bit environment to a 64-bit environment. This pragma is ignored for non-VMS versions. +@node Pragma Simple_Storage_Pool_Type +@unnumberedsec Pragma Simple_Storage_Pool_Type +@findex Simple_Storage_Pool_Type +@cindex Storage pool, simple +@cindex Simple storage pool +@noindent +Syntax: + +@smallexample @c ada +pragma Simple_Storage_Pool_Type (type_LOCAL_NAME); +@end smallexample + +@noindent +A type can be established as a ``simple storage pool type'' by applying +the representation pragma @code{Simple_Storage_Pool_Type} to the type. +A type named in the pragma must be a library-level immutably limited record +type or limited tagged type declared immediately within a package declaration. +The type can also be a limited private type whose full type is allowed as +a simple storage pool type. + +For a simple storage pool type @var{SSP}, nonabstract primitive subprograms +@code{Allocate}, @code{Deallocate}, and @code{Storage_Size} can be declared that +are subtype conformant with the following subprogram declarations: + +@smallexample @c ada +procedure Allocate + (Pool : in out SSP; + Storage_Address : out System.Address; + Size_In_Storage_Elements : System.Storage_Elements.Storage_Count; + Alignment : System.Storage_Elements.Storage_Count); + +procedure Deallocate + (Pool : in out SSP; + Storage_Address : System.Address; + Size_In_Storage_Elements : System.Storage_Elements.Storage_Count; + Alignment : System.Storage_Elements.Storage_Count); + +function Storage_Size (Pool : SSP) + return System.Storage_Elements.Storage_Count; +@end smallexample + +@noindent +Procedure @code{Allocate} must be declared, whereas @code{Deallocate} and +@code{Storage_Size} are optional. If @code{Deallocate} is not declared, then +applying an unchecked deallocation has no effect other than to set its actual +parameter to null. If @code{Storage_Size} is not declared, then the +@code{Storage_Size} attribute applied to an access type associated with +a pool object of type SSP returns zero. Additional operations can be declared +for a simple storage pool type (such as for supporting a mark/release +storage-management discipline). + +An object of a simple storage pool type can be associated with an access +type by specifying the attribute @code{Simple_Storage_Pool}. For example: + +@smallexample @c ada + +My_Pool : My_Simple_Storage_Pool_Type; + +type Acc is access My_Data_Type; + +for Acc'Simple_Storage_Pool use My_Pool; + +@end smallexample + +@noindent +See attribute @code{Simple_Storage_Pool} for further details. + @node Pragma Source_File_Name @unnumberedsec Pragma Source_File_Name @findex Source_File_Name @@ -5791,6 +5898,7 @@ consideration, you should minimize the use of these attributes. * Result:: * Safe_Emax:: * Safe_Large:: +* Simple_Storage_Pool:: * Small:: * Storage_Unit:: * Stub_Type:: @@ -6516,6 +6624,66 @@ The @code{Safe_Large} attribute is provided for compatibility with Ada 83. See the Ada 83 reference manual for an exact description of the semantics of this attribute. +@node Simple_Storage_Pool +@unnumberedsec Simple_Storage_Pool +@cindex Storage pool, simple +@cindex Simple storage pool +@findex Simple_Storage_Pool +@noindent +For every nonformal, nonderived access-to-object type @var{Acc}, the +representation attribute @code{Simple_Storage_Pool} may be specified +via an attribute_definition_clause (or by specifying the equivalent aspect): + +@smallexample @c ada + +My_Pool : My_Simple_Storage_Pool_Type; + +type Acc is access My_Data_Type; + +for Acc'Simple_Storage_Pool use My_Pool; + +@end smallexample + +@noindent +The name given in an attribute_definition_clause for the +@code{Simple_Storage_Pool} attribute shall denote a variable of +a ``simple storage pool type'' (see pragma @code{Simple_Storage_Pool_Type}). + +The use of this attribute is only allowed for a prefix denoting a type +for which it has been specified. The type of the attribute is the type +of the variable specified as the simple storage pool of the access type, +and the attribute denotes that variable. + +It is illegal to specify both @code{Storage_Pool} and @code{Simple_Storage_Pool} +for the same access type. + +If the @code{Simple_Storage_Pool} attribute has been specified for an access +type, then applying the @code{Storage_Pool} attribute to the type is flagged +with a warning and its evaluation raises the exception @code{Program_Error}. + +If the Simple_Storage_Pool attribute has been specified for an access +type @var{S}, then the evaluation of the attribute @code{@var{S}'Storage_Size} +returns the result of calling @code{Storage_Size (@var{S}'Simple_Storage_Pool)}, +which is intended to indicate the number of storage elements reserved for +the simple storage pool. If the Storage_Size function has not been defined +for the simple storage pool type, then this attribute returns zero. + +If an access type @var{S} has a specified simple storage pool of type +@var{SSP}, then the evaluation of an allocator for that access type calls +the primitive @code{Allocate} procedure for type @var{SSP}, passing +@code{@var{S}'Simple_Storage_Pool} as the pool parameter. The detailed +semantics of such allocators is the same as those defined for allocators +in section 13.11 of the Ada Reference Manual, with the term +``simple storage pool'' substituted for ``storage pool''. + +If an access type @var{S} has a specified simple storage pool of type +@var{SSP}, then a call to an instance of the @code{Ada.Unchecked_Deallocation} +for that access type invokes the primitive @code{Deallocate} procedure +for type @var{SSP}, passing @code{@var{S}'Simple_Storage_Pool} as the pool +parameter. The detailed semantics of such unchecked deallocations is the same +as defined in section 13.11.2 of the Ada Reference Manual, except that the +term ``simple storage pool'' is substituted for ``storage pool''. + @node Small @unnumberedsec Small @cindex Ada 83 attributes @@ -6736,6 +6904,871 @@ package @code{Interfaces.C}. @code{Standard'Word_Size} (@code{Standard} is the only permissible prefix) provides the value @code{System.Word_Size}. +@node Implementation Defined Restrictions +@chapter Implementation Defined Restrictions + +@noindent +All RM defined Restriction identifiers are implemented: + +@itemize @bullet +@item language-defined restrictions (see 13.12.1) +@item tasking restrictions (see D.7) +@item high integrity restrictions (see H.4) +@end itemize + +@noindent +GNAT implements additional restriction identifiers. All restrictions, whether +language defined or GNAT-specific, are listed in the following. + +@menu +* Partition-Wide Restrictions:: +* Program Unit Level Restrictions:: +@end menu + +@node Partition-Wide Restrictions +@section Partition-Wide Restrictions + +There are two separate lists of restriction identifiers. The first +set requires consistency throughout a partition (in other words, if the +restriction identifier is used for any compilation unit in the partition, +then all compilation units in the partition must obey the restriction). + +@menu +* Immediate_Reclamation:: +* Max_Asynchronous_Select_Nesting:: +* Max_Entry_Queue_Length:: +* Max_Protected_Entries:: +* Max_Select_Alternatives:: +* Max_Storage_At_Blocking:: +* Max_Task_Entries:: +* Max_Tasks:: +* No_Abort_Statements:: +* No_Access_Parameter_Allocators:: +* No_Access_Subprograms:: +* No_Allocators:: +* No_Anonymous_Allocators:: +* No_Calendar:: +* No_Coextensions:: +* No_Default_Initialization:: +* No_Delay:: +* No_Dependence:: +* No_Direct_Boolean_Operators:: +* No_Dispatch:: +* No_Dispatching_Calls:: +* No_Dynamic_Attachment:: +* No_Dynamic_Priorities:: +* No_Entry_Calls_In_Elaboration_Code:: +* No_Enumeration_Maps:: +* No_Exception_Handlers:: +* No_Exception_Propagation:: +* No_Exception_Registration:: +* No_Exceptions:: +* No_Finalization:: +* No_Fixed_Point:: +* No_Floating_Point:: +* No_Implicit_Conditionals:: +* No_Implicit_Dynamic_Code:: +* No_Implicit_Heap_Allocations:: +* No_Implicit_Loops:: +* No_Initialize_Scalars:: +* No_IO:: +* No_Local_Allocators:: +* No_Local_Protected_Objects:: +* No_Local_Timing_Events:: +* No_Nested_Finalization:: +* No_Protected_Type_Allocators:: +* No_Protected_Types:: +* No_Recursion:: +* No_Reentrancy:: +* No_Relative_Delay:: +* No_Requeue_Statements:: +* No_Secondary_Stack:: +* No_Select_Statements:: +* No_Specific_Termination_Handlers:: +* No_Specification_of_Aspect:: +* No_Standard_Allocators_After_Elaboration:: +* No_Standard_Storage_Pools:: +* No_Stream_Optimizations:: +* No_Streams:: +* No_Task_Allocators:: +* No_Task_Attributes_Package:: +* No_Task_Hierarchy:: +* No_Task_Termination:: +* No_Tasking:: +* No_Terminate_Alternatives:: +* No_Unchecked_Access:: +* Simple_Barriers:: +* Static_Priorities:: +* Static_Storage_Size:: +@end menu + +@node Immediate_Reclamation +@unnumberedsubsec Immediate_Reclamation +@findex Immediate_Reclamation +[RM H.4] This restriction ensures that, except for storage occupied by +objects created by allocators and not deallocated via unchecked +deallocation, any storage reserved at run time for an object is +immediately reclaimed when the object no longer exists. + +@node Max_Asynchronous_Select_Nesting +@unnumberedsubsec Max_Asynchronous_Select_Nesting +@findex Max_Asynchronous_Select_Nesting +[RM D.7] Specifies the maximum dynamic nesting level of asynchronous +selects. Violations of this restriction with a value of zero are +detected at compile time. Violations of this restriction with values +other than zero cause Storage_Error to be raised. + +@node Max_Entry_Queue_Length +@unnumberedsubsec Max_Entry_Queue_Length +@findex Max_Entry_Queue_Length +[RM D.7] This restriction is a declaration that any protected entry compiled in +the scope of the restriction has at most the specified number of +tasks waiting on the entry at any one time, and so no queue is required. +Note that this restriction is checked at run time. Violation of this +restriction results in the raising of Program_Error exception at the point of +the call. + +@node Max_Protected_Entries +@unnumberedsubsec Max_Protected_Entries +@findex Max_Protected_Entries +[RM D.7] Specifies the maximum number of entries per protected type. The +bounds of every entry family of a protected unit shall be static, or shall be +defined by a discriminant of a subtype whose corresponding bound is static. + +@node Max_Select_Alternatives +@unnumberedsubsec Max_Select_Alternatives +@findex Max_Select_Alternatives +[RM D.7] Specifies the maximum number of alternatives in a selective accept. + +@node Max_Storage_At_Blocking +@unnumberedsubsec Max_Storage_At_Blocking +@findex Max_Storage_At_Blocking +[RM D.7] Specifies the maximum portion (in storage elements) of a task's +Storage_Size that can be retained by a blocked task. A violation of this +restriction causes Storage_Error to be raised. + +@node Max_Task_Entries +@unnumberedsubsec Max_Task_Entries +@findex Max_Task_Entries +[RM D.7] Specifies the maximum number of entries +per task. The bounds of every entry family +of a task unit shall be static, or shall be +defined by a discriminant of a subtype whose +corresponding bound is static. + +@node Max_Tasks +@unnumberedsubsec Max_Tasks +@findex Max_Tasks +[RM D.7] Specifies the maximum number of task that may be created, not +counting the creation of the environment task. Violations of this +restriction with a value of zero are detected at compile +time. Violations of this restriction with values other than zero cause +Storage_Error to be raised. + +@node No_Abort_Statements +@unnumberedsubsec No_Abort_Statements +@findex No_Abort_Statements +[RM D.7] There are no abort_statements, and there are +no calls to Task_Identification.Abort_Task. + +@node No_Access_Parameter_Allocators +@unnumberedsubsec No_Access_Parameter_Allocators +@findex No_Access_Parameter_Allocators +[RM H.4] This restriction ensures at compile time that there are no +occurrences of an allocator as the actual parameter to an access +parameter. + +@node No_Access_Subprograms +@unnumberedsubsec No_Access_Subprograms +@findex No_Access_Subprograms +[RM H.4] This restriction ensures at compile time that there are no +declarations of access-to-subprogram types. + +@node No_Allocators +@unnumberedsubsec No_Allocators +@findex No_Allocators +[RM H.4] This restriction ensures at compile time that there are no +occurrences of an allocator. + +@node No_Anonymous_Allocators +@unnumberedsubsec No_Anonymous_Allocators +@findex No_Anonymous_Allocators +[RM H.4] This restriction ensures at compile time that there are no +occurrences of an allocator of anonymous access type. + +@node No_Calendar +@unnumberedsubsec No_Calendar +@findex No_Calendar +[GNAT] This restriction ensures at compile time that there is no implicit or +explicit dependence on the package @code{Ada.Calendar}. + +@node No_Coextensions +@unnumberedsubsec No_Coextensions +@findex No_Coextensions +[RM H.4] This restriction ensures at compile time that there are no +coextensions. See 3.10.2. + +@node No_Default_Initialization +@unnumberedsubsec No_Default_Initialization +@findex No_Default_Initialization + +[GNAT] This restriction prohibits any instance of default initialization +of variables. The binder implements a consistency rule which prevents +any unit compiled without the restriction from with'ing a unit with the +restriction (this allows the generation of initialization procedures to +be skipped, since you can be sure that no call is ever generated to an +initialization procedure in a unit with the restriction active). If used +in conjunction with Initialize_Scalars or Normalize_Scalars, the effect +is to prohibit all cases of variables declared without a specific +initializer (including the case of OUT scalar parameters). + +@node No_Delay +@unnumberedsubsec No_Delay +@findex No_Delay +[RM H.4] This restriction ensures at compile time that there are no +delay statements and no dependences on package Calendar. + +@node No_Dependence +@unnumberedsubsec No_Dependence +@findex No_Dependence +[RM 13.12.1] This restriction checks at compile time that there are no +dependence on a library unit. + +@node No_Direct_Boolean_Operators +@unnumberedsubsec No_Direct_Boolean_Operators +@findex No_Direct_Boolean_Operators +[GNAT] This restriction ensures that no logical (and/or/xor) are used on +operands of type Boolean (or any type derived +from Boolean). This is intended for use in safety critical programs +where the certification protocol requires the use of short-circuit +(and then, or else) forms for all composite boolean operations. + +@node No_Dispatch +@unnumberedsubsec No_Dispatch +@findex No_Dispatch +[RM H.4] This restriction ensures at compile time that there are no +occurrences of @code{T'Class}, for any (tagged) subtype @code{T}. + +@node No_Dispatching_Calls +@unnumberedsubsec No_Dispatching_Calls +@findex No_Dispatching_Calls +[GNAT] This restriction ensures at compile time that the code generated by the +compiler involves no dispatching calls. The use of this restriction allows the +safe use of record extensions, classwide membership tests and other classwide +features not involving implicit dispatching. This restriction ensures that +the code contains no indirect calls through a dispatching mechanism. Note that +this includes internally-generated calls created by the compiler, for example +in the implementation of class-wide objects assignments. The +membership test is allowed in the presence of this restriction, because its +implementation requires no dispatching. +This restriction is comparable to the official Ada restriction +@code{No_Dispatch} except that it is a bit less restrictive in that it allows +all classwide constructs that do not imply dispatching. +The following example indicates constructs that violate this restriction. + +@smallexample +package Pkg is + type T is tagged record + Data : Natural; + end record; + procedure P (X : T); + + type DT is new T with record + More_Data : Natural; + end record; + procedure Q (X : DT); +end Pkg; + +with Pkg; use Pkg; +procedure Example is + procedure Test (O : T'Class) is + N : Natural := O'Size;-- Error: Dispatching call + C : T'Class := O; -- Error: implicit Dispatching Call + begin + if O in DT'Class then -- OK : Membership test + Q (DT (O)); -- OK : Type conversion plus direct call + else + P (O); -- Error: Dispatching call + end if; + end Test; + + Obj : DT; +begin + P (Obj); -- OK : Direct call + P (T (Obj)); -- OK : Type conversion plus direct call + P (T'Class (Obj)); -- Error: Dispatching call + + Test (Obj); -- OK : Type conversion + + if Obj in T'Class then -- OK : Membership test + null; + end if; +end Example; +@end smallexample + +@node No_Dynamic_Attachment +@unnumberedsubsec No_Dynamic_Attachment +@findex No_Dynamic_Attachment +[RM D.7] This restriction ensures that there is no call to any of the +operations defined in package Ada.Interrupts +(Is_Reserved, Is_Attached, Current_Handler, Attach_Handler, Exchange_Handler, +Detach_Handler, and Reference). + +@node No_Dynamic_Priorities +@unnumberedsubsec No_Dynamic_Priorities +@findex No_Dynamic_Priorities +[RM D.7] There are no semantic dependencies on the package Dynamic_Priorities. + +@node No_Entry_Calls_In_Elaboration_Code +@unnumberedsubsec No_Entry_Calls_In_Elaboration_Code +@findex No_Entry_Calls_In_Elaboration_Code +[GNAT] This restriction ensures at compile time that no task or protected entry +calls are made during elaboration code. As a result of the use of this +restriction, the compiler can assume that no code past an accept statement +in a task can be executed at elaboration time. + +@node No_Enumeration_Maps +@unnumberedsubsec No_Enumeration_Maps +@findex No_Enumeration_Maps +[GNAT] This restriction ensures at compile time that no operations requiring +enumeration maps are used (that is Image and Value attributes applied +to enumeration types). + +@node No_Exception_Handlers +@unnumberedsubsec No_Exception_Handlers +@findex No_Exception_Handlers +[GNAT] This restriction ensures at compile time that there are no explicit +exception handlers. It also indicates that no exception propagation will +be provided. In this mode, exceptions may be raised but will result in +an immediate call to the last chance handler, a routine that the user +must define with the following profile: + +@smallexample @c ada +procedure Last_Chance_Handler + (Source_Location : System.Address; Line : Integer); +pragma Export (C, Last_Chance_Handler, + "__gnat_last_chance_handler"); +@end smallexample + +The parameter is a C null-terminated string representing a message to be +associated with the exception (typically the source location of the raise +statement generated by the compiler). The Line parameter when nonzero +represents the line number in the source program where the raise occurs. + +@node No_Exception_Propagation +@unnumberedsubsec No_Exception_Propagation +@findex No_Exception_Propagation +[GNAT] This restriction guarantees that exceptions are never propagated +to an outer subprogram scope. The only case in which an exception may +be raised is when the handler is statically in the same subprogram, so +that the effect of a raise is essentially like a goto statement. Any +other raise statement (implicit or explicit) will be considered +unhandled. Exception handlers are allowed, but may not contain an +exception occurrence identifier (exception choice). In addition, use of +the package GNAT.Current_Exception is not permitted, and reraise +statements (raise with no operand) are not permitted. + +@node No_Exception_Registration +@unnumberedsubsec No_Exception_Registration +@findex No_Exception_Registration +[GNAT] This restriction ensures at compile time that no stream operations for +types Exception_Id or Exception_Occurrence are used. This also makes it +impossible to pass exceptions to or from a partition with this restriction +in a distributed environment. If this exception is active, then the generated +code is simplified by omitting the otherwise-required global registration +of exceptions when they are declared. + +@node No_Exceptions +@unnumberedsubsec No_Exceptions +@findex No_Exceptions +[RM H.4] This restriction ensures at compile time that there are no +raise statements and no exception handlers. + +@node No_Finalization +@unnumberedsubsec No_Finalization +@findex No_Finalization +[GNAT] This restriction disables the language features described in +chapter 7.6 of the Ada 2005 RM as well as all form of code generation +performed by the compiler to support these features. The following types +are no longer considered controlled when this restriction is in effect: +@itemize @bullet +@item +@code{Ada.Finalization.Controlled} +@item +@code{Ada.Finalization.Limited_Controlled} +@item +Derivations from @code{Controlled} or @code{Limited_Controlled} +@item +Class-wide types +@item +Protected types +@item +Task types +@item +Array and record types with controlled components +@end itemize +The compiler no longer generates code to initialize, finalize or adjust an +object or a nested component, either declared on the stack or on the heap. The +deallocation of a controlled object no longer finalizes its contents. + +@node No_Fixed_Point +@unnumberedsubsec No_Fixed_Point +@findex No_Fixed_Point +[RM H.4] This restriction ensures at compile time that there are no +occurrences of fixed point types and operations. + +@node No_Floating_Point +@unnumberedsubsec No_Floating_Point +@findex No_Floating_Point +[RM H.4] This restriction ensures at compile time that there are no +occurrences of floating point types and operations. + +@node No_Implicit_Conditionals +@unnumberedsubsec No_Implicit_Conditionals +@findex No_Implicit_Conditionals +[GNAT] This restriction ensures that the generated code does not contain any +implicit conditionals, either by modifying the generated code where possible, +or by rejecting any construct that would otherwise generate an implicit +conditional. Note that this check does not include run time constraint +checks, which on some targets may generate implicit conditionals as +well. To control the latter, constraint checks can be suppressed in the +normal manner. Constructs generating implicit conditionals include comparisons +of composite objects and the Max/Min attributes. + +@node No_Implicit_Dynamic_Code +@unnumberedsubsec No_Implicit_Dynamic_Code +@findex No_Implicit_Dynamic_Code +@cindex trampoline +[GNAT] This restriction prevents the compiler from building ``trampolines''. +This is a structure that is built on the stack and contains dynamic +code to be executed at run time. On some targets, a trampoline is +built for the following features: @code{Access}, +@code{Unrestricted_Access}, or @code{Address} of a nested subprogram; +nested task bodies; primitive operations of nested tagged types. +Trampolines do not work on machines that prevent execution of stack +data. For example, on windows systems, enabling DEP (data execution +protection) will cause trampolines to raise an exception. +Trampolines are also quite slow at run time. + +On many targets, trampolines have been largely eliminated. Look at the +version of system.ads for your target --- if it has +Always_Compatible_Rep equal to False, then trampolines are largely +eliminated. In particular, a trampoline is built for the following +features: @code{Address} of a nested subprogram; +@code{Access} or @code{Unrestricted_Access} of a nested subprogram, +but only if pragma Favor_Top_Level applies, or the access type has a +foreign-language convention; primitive operations of nested tagged +types. + +@node No_Implicit_Heap_Allocations +@unnumberedsubsec No_Implicit_Heap_Allocations +@findex No_Implicit_Heap_Allocations +[RM D.7] No constructs are allowed to cause implicit heap allocation. + +@node No_Implicit_Loops +@unnumberedsubsec No_Implicit_Loops +@findex No_Implicit_Loops +[GNAT] This restriction ensures that the generated code does not contain any +implicit @code{for} loops, either by modifying +the generated code where possible, +or by rejecting any construct that would otherwise generate an implicit +@code{for} loop. If this restriction is active, it is possible to build +large array aggregates with all static components without generating an +intermediate temporary, and without generating a loop to initialize individual +components. Otherwise, a loop is created for arrays larger than about 5000 +scalar components. + +@node No_Initialize_Scalars +@unnumberedsubsec No_Initialize_Scalars +@findex No_Initialize_Scalars +[GNAT] This restriction ensures that no unit in the partition is compiled with +pragma Initialize_Scalars. This allows the generation of more efficient +code, and in particular eliminates dummy null initialization routines that +are otherwise generated for some record and array types. + +@node No_IO +@unnumberedsubsec No_IO +@findex No_IO +[RM H.4] This restriction ensures at compile time that there are no +dependences on any of the library units Sequential_IO, Direct_IO, +Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO. + +@node No_Local_Allocators +@unnumberedsubsec No_Local_Allocators +@findex No_Local_Allocators +[RM H.4] This restriction ensures at compile time that there are no +occurrences of an allocator in subprograms, generic subprograms, tasks, +and entry bodies. + +@node No_Local_Protected_Objects +@unnumberedsubsec No_Local_Protected_Objects +@findex No_Local_Protected_Objects +[RM D.7] This restriction ensures at compile time that protected objects are +only declared at the library level. + +@node No_Local_Timing_Events +@unnumberedsubsec No_Local_Timing_Events +@findex No_Local_Timing_Events +[RM D.7] All objects of type Ada.Timing_Events.Timing_Event are +declared at the library level. + +@node No_Nested_Finalization +@unnumberedsubsec No_Nested_Finalization +@findex No_Nested_Finalization +[RM D.7] All objects requiring finalization are declared at the library level. + +@node No_Protected_Type_Allocators +@unnumberedsubsec No_Protected_Type_Allocators +@findex No_Protected_Type_Allocators +[RM D.7] This restriction ensures at compile time that there are no allocator +expressions that attempt to allocate protected objects. + +@node No_Protected_Types +@unnumberedsubsec No_Protected_Types +@findex No_Protected_Types +[RM H.4] This restriction ensures at compile time that there are no +declarations of protected types or protected objects. + +@node No_Recursion +@unnumberedsubsec No_Recursion +@findex No_Recursion +[RM H.4] A program execution is erroneous if a subprogram is invoked as +part of its execution. + +@node No_Reentrancy +@unnumberedsubsec No_Reentrancy +@findex No_Reentrancy +[RM H.4] A program execution is erroneous if a subprogram is executed by +two tasks at the same time. + +@node No_Relative_Delay +@unnumberedsubsec No_Relative_Delay +@findex No_Relative_Delay +[RM D.7] This restriction ensures at compile time that there are no delay +relative statements and prevents expressions such as @code{delay 1.23;} from +appearing in source code. + +@node No_Requeue_Statements +@unnumberedsubsec No_Requeue_Statements +@findex No_Requeue_Statements +[RM D.7] This restriction ensures at compile time that no requeue statements +are permitted and prevents keyword @code{requeue} from being used in source +code. + +@node No_Secondary_Stack +@unnumberedsubsec No_Secondary_Stack +@findex No_Secondary_Stack +[GNAT] This restriction ensures at compile time that the generated code +does not contain any reference to the secondary stack. The secondary +stack is used to implement functions returning unconstrained objects +(arrays or records) on some targets. + +@node No_Select_Statements +@unnumberedsubsec No_Select_Statements +@findex No_Select_Statements +[RM D.7] This restriction ensures at compile time no select statements of any +kind are permitted, that is the keyword @code{select} may not appear. + +@node No_Specific_Termination_Handlers +@unnumberedsubsec No_Specific_Termination_Handlers +@findex No_Specific_Termination_Handlers +[RM D.7] There are no calls to Ada.Task_Termination.Set_Specific_Handler +or to Ada.Task_Termination.Specific_Handler. + +@node No_Specification_of_Aspect +@unnumberedsubsec No_Specification_of_Aspect +@findex No_Specification_of_Aspect +[RM 13.12.1] This restriction checks at compile time that no aspect +specification, attribute definition clause, or pragma is given for a +given aspect. + +@node No_Standard_Allocators_After_Elaboration +@unnumberedsubsec No_Standard_Allocators_After_Elaboration +@findex No_Standard_Allocators_After_Elaboration +[RM D.7] Specifies that an allocator using a standard storage pool +should never be evaluated at run time after the elaboration of the +library items of the partition has completed. Otherwise, Storage_Error +is raised. + +@node No_Standard_Storage_Pools +@unnumberedsubsec No_Standard_Storage_Pools +@findex No_Standard_Storage_Pools +[GNAT] This restriction ensures at compile time that no access types +use the standard default storage pool. Any access type declared must +have an explicit Storage_Pool attribute defined specifying a +user-defined storage pool. + +@node No_Stream_Optimizations +@unnumberedsubsec No_Stream_Optimizations +@findex No_Stream_Optimizations +[GNAT] This restriction affects the performance of stream operations on types +@code{String}, @code{Wide_String} and @code{Wide_Wide_String}. By default, the +compiler uses block reads and writes when manipulating @code{String} objects +due to their supperior performance. When this restriction is in effect, the +compiler performs all IO operations on a per-character basis. + +@node No_Streams +@unnumberedsubsec No_Streams +@findex No_Streams +[GNAT] This restriction ensures at compile/bind time that there are no +stream objects created and no use of stream attributes. +This restriction does not forbid dependences on the package +@code{Ada.Streams}. So it is permissible to with +@code{Ada.Streams} (or another package that does so itself) +as long as no actual stream objects are created and no +stream attributes are used. + +Note that the use of restriction allows optimization of tagged types, +since they do not need to worry about dispatching stream operations. +To take maximum advantage of this space-saving optimization, any +unit declaring a tagged type should be compiled with the restriction, +though this is not required. + +@node No_Task_Allocators +@unnumberedsubsec No_Task_Allocators +@findex No_Task_Allocators +[RM D.7] There are no allocators for task types +or types containing task subcomponents. + +@node No_Task_Attributes_Package +@unnumberedsubsec No_Task_Attributes_Package +@findex No_Task_Attributes_Package +[GNAT] This restriction ensures at compile time that there are no implicit or +explicit dependencies on the package @code{Ada.Task_Attributes}. + +@node No_Task_Hierarchy +@unnumberedsubsec No_Task_Hierarchy +@findex No_Task_Hierarchy +[RM D.7] All (non-environment) tasks depend +directly on the environment task of the partition. + +@node No_Task_Termination +@unnumberedsubsec No_Task_Termination +@findex No_Task_Termination +[RM D.7] Tasks which terminate are erroneous. + +@node No_Tasking +@unnumberedsubsec No_Tasking +@findex No_Tasking +[GNAT] This restriction prevents the declaration of tasks or task types +throughout the partition. It is similar in effect to the use of +@code{Max_Tasks => 0} except that violations are caught at compile time +and cause an error message to be output either by the compiler or +binder. + +@node No_Terminate_Alternatives +@unnumberedsubsec No_Terminate_Alternatives +@findex No_Terminate_Alternatives +[RM D.7] There are no selective accepts with terminate alternatives. + +@node No_Unchecked_Access +@unnumberedsubsec No_Unchecked_Access +@findex No_Unchecked_Access +[RM H.4] This restriction ensures at compile time that there are no +occurrences of the Unchecked_Access attribute. + +@node Simple_Barriers +@unnumberedsubsec Simple_Barriers +@findex Simple_Barriers +[RM D.7] This restriction ensures at compile time that barriers in entry +declarations for protected types are restricted to either static boolean +expressions or references to simple boolean variables defined in the private +part of the protected type. No other form of entry barriers is permitted. + +@node Static_Priorities +@unnumberedsubsec Static_Priorities +@findex Static_Priorities +[GNAT] This restriction ensures at compile time that all priority expressions +are static, and that there are no dependences on the package +@code{Ada.Dynamic_Priorities}. + +@node Static_Storage_Size +@unnumberedsubsec Static_Storage_Size +@findex Static_Storage_Size +[GNAT] This restriction ensures at compile time that any expression appearing +in a Storage_Size pragma or attribute definition clause is static. + +@node Program Unit Level Restrictions +@section Program Unit Level Restrictions + +@noindent +The second set of restriction identifiers +does not require partition-wide consistency. +The restriction may be enforced for a single +compilation unit without any effect on any of the +other compilation units in the partition. + +@menu +* No_Elaboration_Code:: +* No_Entry_Queue:: +* No_Implementation_Aspect_Specifications:: +* No_Implementation_Attributes:: +* No_Implementation_Identifiers:: +* No_Implementation_Pragmas:: +* No_Implementation_Restrictions:: +* No_Implementation_Units:: +* No_Implicit_Aliasing:: +* No_Obsolescent_Features:: +* No_Wide_Characters:: +* SPARK:: +@end menu + +@node No_Elaboration_Code +@unnumberedsubsec No_Elaboration_Code +@findex No_Elaboration_Code +[GNAT] This restriction ensures at compile time that no elaboration code is +generated. Note that this is not the same condition as is enforced +by pragma @code{Preelaborate}. There are cases in which pragma +@code{Preelaborate} still permits code to be generated (e.g.@: code +to initialize a large array to all zeroes), and there are cases of units +which do not meet the requirements for pragma @code{Preelaborate}, +but for which no elaboration code is generated. Generally, it is +the case that preelaborable units will meet the restrictions, with +the exception of large aggregates initialized with an others_clause, +and exception declarations (which generate calls to a run-time +registry procedure). This restriction is enforced on +a unit by unit basis, it need not be obeyed consistently +throughout a partition. + +In the case of aggregates with others, if the aggregate has a dynamic +size, there is no way to eliminate the elaboration code (such dynamic +bounds would be incompatible with @code{Preelaborate} in any case). If +the bounds are static, then use of this restriction actually modifies +the code choice of the compiler to avoid generating a loop, and instead +generate the aggregate statically if possible, no matter how many times +the data for the others clause must be repeatedly generated. + +It is not possible to precisely document +the constructs which are compatible with this restriction, since, +unlike most other restrictions, this is not a restriction on the +source code, but a restriction on the generated object code. For +example, if the source contains a declaration: + +@smallexample + Val : constant Integer := X; +@end smallexample + +@noindent +where X is not a static constant, it may be possible, depending +on complex optimization circuitry, for the compiler to figure +out the value of X at compile time, in which case this initialization +can be done by the loader, and requires no initialization code. It +is not possible to document the precise conditions under which the +optimizer can figure this out. + +Note that this the implementation of this restriction requires full +code generation. If it is used in conjunction with "semantics only" +checking, then some cases of violations may be missed. + +@node No_Entry_Queue +@unnumberedsubsec No_Entry_Queue +@findex No_Entry_Queue +[GNAT] This restriction is a declaration that any protected entry compiled in +the scope of the restriction has at most one task waiting on the entry +at any one time, and so no queue is required. This restriction is not +checked at compile time. A program execution is erroneous if an attempt +is made to queue a second task on such an entry. + +@node No_Implementation_Aspect_Specifications +@unnumberedsubsec No_Implementation_Aspect_Specifications +@findex No_Implementation_Aspect_Specifications +[RM 13.12.1] This restriction checks at compile time that no +GNAT-defined aspects are present. With this restriction, the only +aspects that can be used are those defined in the Ada Reference Manual. + +@node No_Implementation_Attributes +@unnumberedsubsec No_Implementation_Attributes +@findex No_Implementation_Attributes +[RM 13.12.1] This restriction checks at compile time that no +GNAT-defined attributes are present. With this restriction, the only +attributes that can be used are those defined in the Ada Reference +Manual. + +@node No_Implementation_Identifiers +@unnumberedsubsec No_Implementation_Identifiers +@findex No_Implementation_Identifiers +[RM 13.12.1] This restriction checks at compile time that no +implementation-defined identifiers occur within language-defined +packages. + +@node No_Implementation_Pragmas +@unnumberedsubsec No_Implementation_Pragmas +@findex No_Implementation_Pragmas +[RM 13.12.1] This restriction checks at compile time that no +GNAT-defined pragmas are present. With this restriction, the only +pragmas that can be used are those defined in the Ada Reference Manual. + +@node No_Implementation_Restrictions +@unnumberedsubsec No_Implementation_Restrictions +@findex No_Implementation_Restrictions +[GNAT] This restriction checks at compile time that no GNAT-defined restriction +identifiers (other than @code{No_Implementation_Restrictions} itself) +are present. With this restriction, the only other restriction identifiers +that can be used are those defined in the Ada Reference Manual. + +@node No_Implementation_Units +@unnumberedsubsec No_Implementation_Units +@findex No_Implementation_Units +[RM 13.12.1] This restriction checks at compile time that there is no +mention in the context clause of any implementation-defined descendants +of packages Ada, Interfaces, or System. + +@node No_Implicit_Aliasing +@unnumberedsubsec No_Implicit_Aliasing +@findex No_Implicit_Aliasing +[GNAT] This restriction, which is not required to be partition-wide consistent, +requires an explicit aliased keyword for an object to which 'Access, +'Unchecked_Access, or 'Address is applied, and forbids entirely the use of +the 'Unrestricted_Access attribute for objects. Note: the reason that +Unrestricted_Access is forbidden is that it would require the prefix +to be aliased, and in such cases, it can always be replaced by +the standard attribute Unchecked_Access which is preferable. + +@node No_Obsolescent_Features +@unnumberedsubsec No_Obsolescent_Features +@findex No_Obsolescent_Features +[RM 13.12.1] This restriction checks at compile time that no obsolescent +features are used, as defined in Annex J of the Ada Reference Manual. + +@node No_Wide_Characters +@unnumberedsubsec No_Wide_Characters +@findex No_Wide_Characters +[GNAT] This restriction ensures at compile time that no uses of the types +@code{Wide_Character} or @code{Wide_String} or corresponding wide +wide types +appear, and that no wide or wide wide string or character literals +appear in the program (that is literals representing characters not in +type @code{Character}. + +@node SPARK +@unnumberedsubsec SPARK +@findex SPARK +[GNAT] This restriction checks at compile time that some constructs +forbidden in SPARK are not present. The SPARK version used as a +reference is the same as the Ada mode for the unit, so a unit compiled +in Ada 95 mode with SPARK restrictions will be checked for constructs +forbidden in SPARK 95. Error messages related to SPARK restriction have +the form: + +@smallexample +violation of restriction "SPARK" at <file> + <error message> +@end smallexample + +This is not a replacement for the semantic checks performed by the +SPARK Examiner tool, as the compiler only deals currently with code, +not at all with SPARK annotations and does not guarantee catching all +cases of constructs forbidden by SPARK. + +Thus it may well be the case that code which +passes the compiler in SPARK mode is rejected by the SPARK Examiner, +e.g. due to the different visibility rules of the Examiner based on +SPARK @code{inherit} annotations. + +This restriction can be useful in providing an initial filter for +code developed using SPARK, or in examining legacy code to see how far +it is from meeting SPARK restrictions. + @c ------------------------ @node Implementation Advice @chapter Implementation Advice @@ -8887,477 +9920,7 @@ See documentation in the sources of the run time mentioned in paragraph @code{Restrictions}. See 13.12(7). @end cartouche @noindent -All RM defined Restriction identifiers are implemented. The following -additional restriction identifiers are provided. There are two separate -lists of implementation dependent restriction identifiers. The first -set requires consistency throughout a partition (in other words, if the -restriction identifier is used for any compilation unit in the partition, -then all compilation units in the partition must obey the restriction. - -@table @code - -@item Simple_Barriers -@findex Simple_Barriers -This restriction ensures at compile time that barriers in entry declarations -for protected types are restricted to either static boolean expressions or -references to simple boolean variables defined in the private part of the -protected type. No other form of entry barriers is permitted. This is one -of the restrictions of the Ravenscar profile for limited tasking (see also -pragma @code{Profile (Ravenscar)}). - -@item Max_Entry_Queue_Length => Expr -@findex Max_Entry_Queue_Length -This restriction is a declaration that any protected entry compiled in -the scope of the restriction has at most the specified number of -tasks waiting on the entry -at any one time, and so no queue is required. This restriction is not -checked at compile time. A program execution is erroneous if an attempt -is made to queue more than the specified number of tasks on such an entry. - -@item No_Calendar -@findex No_Calendar -This restriction ensures at compile time that there is no implicit or -explicit dependence on the package @code{Ada.Calendar}. - -@item No_Default_Initialization -@findex No_Default_Initialization - -This restriction prohibits any instance of default initialization of variables. -The binder implements a consistency rule which prevents any unit compiled -without the restriction from with'ing a unit with the restriction (this allows -the generation of initialization procedures to be skipped, since you can be -sure that no call is ever generated to an initialization procedure in a unit -with the restriction active). If used in conjunction with Initialize_Scalars or -Normalize_Scalars, the effect is to prohibit all cases of variables declared -without a specific initializer (including the case of OUT scalar parameters). - -@item No_Direct_Boolean_Operators -@findex No_Direct_Boolean_Operators -This restriction ensures that no logical (and/or/xor) are used on -operands of type Boolean (or any type derived -from Boolean). This is intended for use in safety critical programs -where the certification protocol requires the use of short-circuit -(and then, or else) forms for all composite boolean operations. - -@item No_Dispatching_Calls -@findex No_Dispatching_Calls -This restriction ensures at compile time that the code generated by the -compiler involves no dispatching calls. The use of this restriction allows the -safe use of record extensions, classwide membership tests and other classwide -features not involving implicit dispatching. This restriction ensures that -the code contains no indirect calls through a dispatching mechanism. Note that -this includes internally-generated calls created by the compiler, for example -in the implementation of class-wide objects assignments. The -membership test is allowed in the presence of this restriction, because its -implementation requires no dispatching. -This restriction is comparable to the official Ada restriction -@code{No_Dispatch} except that it is a bit less restrictive in that it allows -all classwide constructs that do not imply dispatching. -The following example indicates constructs that violate this restriction. - -@smallexample -package Pkg is - type T is tagged record - Data : Natural; - end record; - procedure P (X : T); - - type DT is new T with record - More_Data : Natural; - end record; - procedure Q (X : DT); -end Pkg; - -with Pkg; use Pkg; -procedure Example is - procedure Test (O : T'Class) is - N : Natural := O'Size;-- Error: Dispatching call - C : T'Class := O; -- Error: implicit Dispatching Call - begin - if O in DT'Class then -- OK : Membership test - Q (DT (O)); -- OK : Type conversion plus direct call - else - P (O); -- Error: Dispatching call - end if; - end Test; - - Obj : DT; -begin - P (Obj); -- OK : Direct call - P (T (Obj)); -- OK : Type conversion plus direct call - P (T'Class (Obj)); -- Error: Dispatching call - - Test (Obj); -- OK : Type conversion - - if Obj in T'Class then -- OK : Membership test - null; - end if; -end Example; -@end smallexample - -@item No_Dynamic_Attachment -@findex No_Dynamic_Attachment -This restriction ensures that there is no call to any of the operations -defined in package Ada.Interrupts. - -@item No_Enumeration_Maps -@findex No_Enumeration_Maps -This restriction ensures at compile time that no operations requiring -enumeration maps are used (that is Image and Value attributes applied -to enumeration types). - -@item No_Entry_Calls_In_Elaboration_Code -@findex No_Entry_Calls_In_Elaboration_Code -This restriction ensures at compile time that no task or protected entry -calls are made during elaboration code. As a result of the use of this -restriction, the compiler can assume that no code past an accept statement -in a task can be executed at elaboration time. - -@item No_Exception_Handlers -@findex No_Exception_Handlers -This restriction ensures at compile time that there are no explicit -exception handlers. It also indicates that no exception propagation will -be provided. In this mode, exceptions may be raised but will result in -an immediate call to the last chance handler, a routine that the user -must define with the following profile: - -@smallexample @c ada -procedure Last_Chance_Handler - (Source_Location : System.Address; Line : Integer); -pragma Export (C, Last_Chance_Handler, - "__gnat_last_chance_handler"); -@end smallexample - -The parameter is a C null-terminated string representing a message to be -associated with the exception (typically the source location of the raise -statement generated by the compiler). The Line parameter when nonzero -represents the line number in the source program where the raise occurs. - -@item No_Exception_Propagation -@findex No_Exception_Propagation -This restriction guarantees that exceptions are never propagated to an outer -subprogram scope). The only case in which an exception may be raised is when -the handler is statically in the same subprogram, so that the effect of a raise -is essentially like a goto statement. Any other raise statement (implicit or -explicit) will be considered unhandled. Exception handlers are allowed, but may -not contain an exception occurrence identifier (exception choice). In addition -use of the package GNAT.Current_Exception is not permitted, and reraise -statements (raise with no operand) are not permitted. - -@item No_Exception_Registration -@findex No_Exception_Registration -This restriction ensures at compile time that no stream operations for -types Exception_Id or Exception_Occurrence are used. This also makes it -impossible to pass exceptions to or from a partition with this restriction -in a distributed environment. If this exception is active, then the generated -code is simplified by omitting the otherwise-required global registration -of exceptions when they are declared. - -@item No_Finalization -@findex No_Finalization -This restriction disables the language features described in chapter 7.6 of the -Ada 2005 RM as well as all form of code generation performed by the compiler to -support these features. The following types are no longer considered controlled -when this restriction is in effect: -@itemize @bullet -@item -@code{Ada.Finalization.Controlled} -@item -@code{Ada.Finalization.Limited_Controlled} -@item -Derivations from @code{Controlled} or @code{Limited_Controlled} -@item -Class-wide types -@item -Protected types -@item -Task types -@item -Array and record types with controlled components -@end itemize -The compiler no longer generates code to initialize, finalize or adjust an -object or a nested component, either declared on the stack or on the heap. The -deallocation of a controlled object no longer finalizes its contents. - -@item No_Implicit_Conditionals -@findex No_Implicit_Conditionals -This restriction ensures that the generated code does not contain any -implicit conditionals, either by modifying the generated code where possible, -or by rejecting any construct that would otherwise generate an implicit -conditional. Note that this check does not include run time constraint -checks, which on some targets may generate implicit conditionals as -well. To control the latter, constraint checks can be suppressed in the -normal manner. Constructs generating implicit conditionals include comparisons -of composite objects and the Max/Min attributes. - -@item No_Implicit_Dynamic_Code -@findex No_Implicit_Dynamic_Code -@cindex trampoline -This restriction prevents the compiler from building ``trampolines''. -This is a structure that is built on the stack and contains dynamic -code to be executed at run time. On some targets, a trampoline is -built for the following features: @code{Access}, -@code{Unrestricted_Access}, or @code{Address} of a nested subprogram; -nested task bodies; primitive operations of nested tagged types. -Trampolines do not work on machines that prevent execution of stack -data. For example, on windows systems, enabling DEP (data execution -protection) will cause trampolines to raise an exception. -Trampolines are also quite slow at run time. - -On many targets, trampolines have been largely eliminated. Look at the -version of system.ads for your target --- if it has -Always_Compatible_Rep equal to False, then trampolines are largely -eliminated. In particular, a trampoline is built for the following -features: @code{Address} of a nested subprogram; -@code{Access} or @code{Unrestricted_Access} of a nested subprogram, -but only if pragma Favor_Top_Level applies, or the access type has a -foreign-language convention; primitive operations of nested tagged -types. - -@item No_Implicit_Loops -@findex No_Implicit_Loops -This restriction ensures that the generated code does not contain any -implicit @code{for} loops, either by modifying -the generated code where possible, -or by rejecting any construct that would otherwise generate an implicit -@code{for} loop. If this restriction is active, it is possible to build -large array aggregates with all static components without generating an -intermediate temporary, and without generating a loop to initialize individual -components. Otherwise, a loop is created for arrays larger than about 5000 -scalar components. - -@item No_Initialize_Scalars -@findex No_Initialize_Scalars -This restriction ensures that no unit in the partition is compiled with -pragma Initialize_Scalars. This allows the generation of more efficient -code, and in particular eliminates dummy null initialization routines that -are otherwise generated for some record and array types. - -@item No_Local_Protected_Objects -@findex No_Local_Protected_Objects -This restriction ensures at compile time that protected objects are -only declared at the library level. - -@item No_Protected_Type_Allocators -@findex No_Protected_Type_Allocators -This restriction ensures at compile time that there are no allocator -expressions that attempt to allocate protected objects. - -@item No_Relative_Delay -@findex No_Relative_Delay -This restriction ensures at compile time that there are no delay relative -statements and prevents expressions such as @code{delay 1.23;} from appearing -in source code. - -@item No_Requeue_Statements -@findex No_Requeue_Statements -This restriction ensures at compile time that no requeue statements are -permitted and prevents keyword @code{requeue} from being used in source code. - -@item No_Secondary_Stack -@findex No_Secondary_Stack -This restriction ensures at compile time that the generated code does not -contain any reference to the secondary stack. The secondary stack is used -to implement functions returning unconstrained objects (arrays or records) -on some targets. - -@item No_Select_Statements -@findex No_Select_Statements -This restriction ensures at compile time no select statements of any kind -are permitted, that is the keyword @code{select} may not appear. -This is one of the restrictions of the Ravenscar -profile for limited tasking (see also pragma @code{Profile (Ravenscar)}). - -@item No_Standard_Storage_Pools -@findex No_Standard_Storage_Pools -This restriction ensures at compile time that no access types -use the standard default storage pool. Any access type declared must -have an explicit Storage_Pool attribute defined specifying a -user-defined storage pool. - -@item No_Stream_Optimizations -@findex No_Stream_Optimizations -This restriction affects the performance of stream operations on types -@code{String}, @code{Wide_String} and @code{Wide_Wide_String}. By default, the -compiler uses block reads and writes when manipulating @code{String} objects -due to their supperior performance. When this restriction is in effect, the -compiler performs all IO operations on a per-character basis. - -@item No_Streams -@findex No_Streams -This restriction ensures at compile/bind time that there are no -stream objects created and no use of stream attributes. -This restriction does not forbid dependences on the package -@code{Ada.Streams}. So it is permissible to with -@code{Ada.Streams} (or another package that does so itself) -as long as no actual stream objects are created and no -stream attributes are used. - -Note that the use of restriction allows optimization of tagged types, -since they do not need to worry about dispatching stream operations. -To take maximum advantage of this space-saving optimization, any -unit declaring a tagged type should be compiled with the restriction, -though this is not required. - -@item No_Task_Attributes_Package -@findex No_Task_Attributes_Package -This restriction ensures at compile time that there are no implicit or -explicit dependencies on the package @code{Ada.Task_Attributes}. - -@item No_Task_Termination -@findex No_Task_Termination -This restriction ensures at compile time that no terminate alternatives -appear in any task body. - -@item No_Tasking -@findex No_Tasking -This restriction prevents the declaration of tasks or task types throughout -the partition. It is similar in effect to the use of @code{Max_Tasks => 0} -except that violations are caught at compile time and cause an error message -to be output either by the compiler or binder. - -@item Static_Priorities -@findex Static_Priorities -This restriction ensures at compile time that all priority expressions -are static, and that there are no dependencies on the package -@code{Ada.Dynamic_Priorities}. - -@item Static_Storage_Size -@findex Static_Storage_Size -This restriction ensures at compile time that any expression appearing -in a Storage_Size pragma or attribute definition clause is static. - -@end table - -@noindent -The second set of implementation dependent restriction identifiers -does not require partition-wide consistency. -The restriction may be enforced for a single -compilation unit without any effect on any of the -other compilation units in the partition. - -@table @code - -@item No_Elaboration_Code -@findex No_Elaboration_Code -This restriction ensures at compile time that no elaboration code is -generated. Note that this is not the same condition as is enforced -by pragma @code{Preelaborate}. There are cases in which pragma -@code{Preelaborate} still permits code to be generated (e.g.@: code -to initialize a large array to all zeroes), and there are cases of units -which do not meet the requirements for pragma @code{Preelaborate}, -but for which no elaboration code is generated. Generally, it is -the case that preelaborable units will meet the restrictions, with -the exception of large aggregates initialized with an others_clause, -and exception declarations (which generate calls to a run-time -registry procedure). This restriction is enforced on -a unit by unit basis, it need not be obeyed consistently -throughout a partition. - -In the case of aggregates with others, if the aggregate has a dynamic -size, there is no way to eliminate the elaboration code (such dynamic -bounds would be incompatible with @code{Preelaborate} in any case). If -the bounds are static, then use of this restriction actually modifies -the code choice of the compiler to avoid generating a loop, and instead -generate the aggregate statically if possible, no matter how many times -the data for the others clause must be repeatedly generated. - -It is not possible to precisely document -the constructs which are compatible with this restriction, since, -unlike most other restrictions, this is not a restriction on the -source code, but a restriction on the generated object code. For -example, if the source contains a declaration: - -@smallexample - Val : constant Integer := X; -@end smallexample - -@noindent -where X is not a static constant, it may be possible, depending -on complex optimization circuitry, for the compiler to figure -out the value of X at compile time, in which case this initialization -can be done by the loader, and requires no initialization code. It -is not possible to document the precise conditions under which the -optimizer can figure this out. - -Note that this the implementation of this restriction requires full -code generation. If it is used in conjunction with "semantics only" -checking, then some cases of violations may be missed. - -@item No_Entry_Queue -@findex No_Entry_Queue -This restriction is a declaration that any protected entry compiled in -the scope of the restriction has at most one task waiting on the entry -at any one time, and so no queue is required. This restriction is not -checked at compile time. A program execution is erroneous if an attempt -is made to queue a second task on such an entry. - -@item No_Implementation_Attributes -@findex No_Implementation_Attributes -This restriction checks at compile time that no GNAT-defined attributes -are present. With this restriction, the only attributes that can be used -are those defined in the Ada Reference Manual. - -@item No_Implementation_Pragmas -@findex No_Implementation_Pragmas -This restriction checks at compile time that no GNAT-defined pragmas -are present. With this restriction, the only pragmas that can be used -are those defined in the Ada Reference Manual. - -@item No_Implementation_Restrictions -@findex No_Implementation_Restrictions -This restriction checks at compile time that no GNAT-defined restriction -identifiers (other than @code{No_Implementation_Restrictions} itself) -are present. With this restriction, the only other restriction identifiers -that can be used are those defined in the Ada Reference Manual. - -@item No_Implicit_Aliasing -@findex No_Implicit_Aliasing -This restriction, which is not required to be partition-wide consistent, -requires an explicit aliased keyword for an object to which 'Access, -'Unchecked_Access, or 'Address is applied, and forbids entirely the use of -the 'Unrestricted_Access attribute for objects. Note: the reason that -Unrestricted_Access is forbidden is that it would require the prefix -to be aliased, and in such cases, it can always be replaced by -the standard attribute Unchecked_Access which is preferable. - -@item No_Wide_Characters -@findex No_Wide_Characters -This restriction ensures at compile time that no uses of the types -@code{Wide_Character} or @code{Wide_String} or corresponding wide -wide types -appear, and that no wide or wide wide string or character literals -appear in the program (that is literals representing characters not in -type @code{Character}. - -@item SPARK -@findex SPARK -This restriction checks at compile time that some constructs forbidden in -SPARK are not present. The SPARK version used as a reference is the same as -the Ada mode for the unit, so a unit compiled in Ada 95 mode with SPARK -restrictions will be checked for constructs forbidden in SPARK 95. -Error messages related to SPARK restriction have the form: - -@smallexample -violation of restriction "Spark" at <file> - <error message> -@end smallexample - -This is not a replacement for the semantic checks performed by the -SPARK Examiner tool, as the compiler only deals currently with code, -not at all with SPARK annotations and does not guarantee catching all -cases of constructs forbidden by SPARK. - -Thus it may well be the case that code which -passes the compiler in SPARK mode is rejected by the SPARK Examiner, -e.g. due to the different visibility rules of the Examiner based on -SPARK @code{inherit} annotations. - -This restriction can be useful in providing an initial filter for -code developed using SPARK, or in examining legacy code to see how far -it is from meeting SPARK restrictions. - -@end table +@xref{Implementation Defined Restrictions}. @sp 1 @cartouche @@ -9969,7 +10532,7 @@ of delay expirations for lower priority tasks. @sp 1 @cartouche @noindent -@strong{100}. Implementation defined task dispatching. See D.2.2(18). +@strong{100}. Implementation-defined task dispatching. See D.2.2(18). @end cartouche @noindent @c SGI info: diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 6a28dbf533a..4d0c01c335c 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -5472,7 +5472,9 @@ This switch activates warnings for modulus values that seem suspicious. The cases caught are where the size is the same as the modulus (e.g. a modulus of 7 with a size of 7 bits), and modulus values of 32 or 64 with no size clause. The guess in both cases is that 2**x was intended -rather than x. The default is that these warnings are given. +rather than x. In addition expressions of the form 2*x for small x +generate a warning (the almost certainly accurate guess being that +2**x was intended). The default is that these warnings are given. @item -gnatw.M @emph{Disable warnings on suspicious modulus values.} @@ -18009,9 +18011,11 @@ switch or by the corresponding attribute in the project file. @item filename is the name of the source file containing the library unit package declaration -for which a test package will be created. The file name may given with a path. +for which a test package will be created. The file name may be given with a +path. -@item @samp{@var{gcc_switches}} is a list of switches for +@item @samp{@var{gcc_switches}} +is a list of switches for @command{gcc}. These switches will be passed on to all compiler invocations made by @command{gnatstub} to generate a set of ASIS trees. Here you can provide @option{^-I^/INCLUDE_DIRS=^} switches to form the source search path, @@ -18027,7 +18031,7 @@ is an optional sequence of switches as described in the next section. @command{gnattest} results can be found in two different places. @itemize @bullet -@item automatic harness +@item automatic harness: the harness code, which is located either in the harness-dir as specified on the command line or in the project file. All of this code is generated completely automatically and can be destroyed and regenerated at will. It is not @@ -18044,7 +18048,7 @@ test_runner Note that you might need to specify the necessary values of scenario variables when you are not using the AUnit defaults. -@item actual unit test stubs +@item actual unit test stubs: a test stub for each visible subprogram is created in a separate file, if it doesn't exist already. By default, those separate test files are located in a "tests" directory that is created in the directory containing the source file @@ -18053,10 +18057,10 @@ source, option @option{--separate-root} can be used. For example, if a source file my_unit.ads in directory src contains a visible subprogram Proc, then the corresponding unit test will be found in file src/tests/my_unit-tests-proc_<code>.adb. <code> is a signature encoding used to -differentiate test names in cases of overloading. +differentiate test names in case of overloading. -Note that if the project already has both my_unit.ads and my_unit-tests.ads this -will cause name a conflict with generated test package. +Note that if the project already has both my_unit.ads and my_unit-tests.ads, +this will cause a name conflict with the generated test package. @end itemize @node Switches for gnattest diff --git a/gcc/ada/par-ch6.adb b/gcc/ada/par-ch6.adb index 36691f34d28..56e64c28390 100644 --- a/gcc/ada/par-ch6.adb +++ b/gcc/ada/par-ch6.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -772,7 +772,10 @@ package body Ch6 is (N_Expression_Function, Sloc (Specification_Node)); Set_Specification (Body_Node, Specification_Node); Set_Expression (Body_Node, P_Expression); - T_Semicolon; + + -- Expression functions can carry pre/postconditions + + P_Aspect_Specifications (Body_Node); Pop_Scope_Stack; -- Subprogram body case diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb index 5d2499deb3b..284f9f0b6e5 100644 --- a/gcc/ada/prj-nmsc.adb +++ b/gcc/ada/prj-nmsc.adb @@ -8172,6 +8172,14 @@ package body Prj.Nmsc is -- Check the aggregate project attributes, reject any not supported -- attributes. + procedure Check_Aggregated + (Project : Project_Id; + Data : in out Tree_Processing_Data); + -- Check aggregated projects which should not be externally built. + -- What is Data??? if same as outer Data, why passed??? + -- What exact check is performed here??? Seems a bad idea to have + -- two procedures with such close names ??? + --------------------- -- Check_Aggregate -- --------------------- @@ -8180,7 +8188,6 @@ package body Prj.Nmsc is (Project : Project_Id; Data : in out Tree_Processing_Data) is - procedure Check_Not_Defined (Name : Name_Id); -- Report an error if Var is defined @@ -8203,6 +8210,8 @@ package body Prj.Nmsc is end if; end Check_Not_Defined; + -- Start of processing for Check_Aggregate + begin Check_Not_Defined (Snames.Name_Library_Dir); Check_Not_Defined (Snames.Name_Library_Interface); @@ -8216,6 +8225,43 @@ package body Prj.Nmsc is Check_Not_Defined (Snames.Name_Library_Version); end Check_Aggregate; + ---------------------- + -- Check_Aggregated -- + ---------------------- + + procedure Check_Aggregated + (Project : Project_Id; + Data : in out Tree_Processing_Data) + is + L : Aggregated_Project_List; + + begin + -- Check that aggregated projects are not externally built + + L := Project.Aggregated_Projects; + while L /= null loop + declare + Var : constant Prj.Variable_Value := + Prj.Util.Value_Of + (Snames.Name_Externally_Built, + L.Project.Decl.Attributes, + Data.Tree.Shared); + begin + if not Var.Default then + Error_Msg_Name_1 := L.Project.Display_Name; + Error_Msg + (Data.Flags, + "cannot aggregate externally build library %%", + Var.Location, Project); + end if; + end; + + L := L.Next; + end loop; + end Check_Aggregated; + + -- Local Variables + Shared : constant Shared_Project_Tree_Data_Access := Data.Tree.Shared; Prj_Data : Project_Processing_Data; @@ -8231,9 +8277,11 @@ package body Prj.Nmsc is case Project.Qualifier is when Aggregate => - null; + Check_Aggregated (Project, Data); when Aggregate_Library => + Check_Aggregated (Project, Data); + if Project.Object_Directory = No_Path_Information then Project.Object_Directory := Project.Directory; end if; @@ -8251,10 +8299,9 @@ package body Prj.Nmsc is end if; end case; - -- Check configuration. This must be done even for gnatmake (even - -- though no user configuration file was provided) since the default - -- config we generate indicates whether libraries are supported for - -- instance. + -- Check configuration. Must be done for gnatmake (even though no + -- user configuration file was provided) since the default config we + -- generate indicates whether libraries are supported for instance. Check_Configuration (Project, Data); @@ -8318,6 +8365,9 @@ package body Prj.Nmsc is procedure Check_All_Projects is new For_Every_Project_Imported_Context (Tree_Processing_Data, Recursive_Check); + -- Comment required??? + + -- Local Variables Data : Tree_Processing_Data; @@ -8342,6 +8392,7 @@ package body Prj.Nmsc is List := Tree.Projects; while List /= null loop Proj := List.Project; + Exte := Proj; while Exte.Extended_By /= No_Project loop Exte := Exte.Extended_By; diff --git a/gcc/ada/prj.adb b/gcc/ada/prj.adb index f9cc7398cc0..c8c5958aad5 100644 --- a/gcc/ada/prj.adb +++ b/gcc/ada/prj.adb @@ -1893,6 +1893,7 @@ package body Prj is is Agg : Aggregated_Project_List; Ctx : Project_Context; + begin Action (Project, Tree, Context); @@ -1901,8 +1902,7 @@ package body Prj is (In_Aggregate_Lib => True, From_Encapsulated_Lib => Context.From_Encapsulated_Lib - or else - Project.Standalone_Library = Encapsulated); + or else Project.Standalone_Library = Encapsulated); Agg := Project.Aggregated_Projects; while Agg /= null loop @@ -1912,6 +1912,8 @@ package body Prj is end if; end Recursive_Process; + -- Start of processing for For_Project_And_Aggregated_Context + begin Recursive_Process (Root_Project, Root_Tree, Project_Context'(False, False)); diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads index 44aa94d8151..877d1b59b39 100644 --- a/gcc/ada/prj.ads +++ b/gcc/ada/prj.ads @@ -1621,7 +1621,7 @@ package Prj is With_State : in out State; Include_Aggregated : Boolean := True; Imported_First : Boolean := False); - -- As above but with an associated context + -- As for For_Every_Project_Imported but with an associated context generic with procedure Action @@ -1631,7 +1631,7 @@ package Prj is procedure For_Project_And_Aggregated_Context (Root_Project : Project_Id; Root_Tree : Project_Tree_Ref); - -- As above but with an associated context + -- As for For_Project_And_Aggregated but with an associated context function Extend_Name (File : File_Name_Type; diff --git a/gcc/ada/restrict.adb b/gcc/ada/restrict.adb index df2ec7a888c..ee45e05473d 100644 --- a/gcc/ada/restrict.adb +++ b/gcc/ada/restrict.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -532,6 +532,15 @@ package body Restrict is elsif not Restrictions.Set (R) then null; + -- Don't complain about No_Obsolescent_Features in an instance, since we + -- will complain on the template, which is much better. Are there other + -- cases like this ??? Do we need a more general mechanism ??? + + elsif R = No_Obsolescent_Features + and then Instantiation_Location (Sloc (N)) /= No_Location + then + null; + -- Here if restriction set, check for violation (either this is a -- Boolean restriction, or a parameter restriction with a value of -- zero and an unknown count, or a parameter restriction with a diff --git a/gcc/ada/s-dim.ads b/gcc/ada/s-dim.ads index 183aaab1817..ceb10d46737 100644 --- a/gcc/ada/s-dim.ads +++ b/gcc/ada/s-dim.ads @@ -66,4 +66,6 @@ -- 'm' is the symbolic name of dimensioned subtype Length package System.Dim is + pragma Pure; + end System.Dim; diff --git a/gcc/ada/s-os_lib.adb b/gcc/ada/s-os_lib.adb index 993cc8c5959..100b174bf2c 100755 --- a/gcc/ada/s-os_lib.adb +++ b/gcc/ada/s-os_lib.adb @@ -1695,12 +1695,11 @@ package body System.OS_Lib is else Res (J) := Arg (K); end if; - end loop; if Quote_Needed then - -- If null terminated string, put the quote before + -- Case of null terminated string if Res (J) = ASCII.NUL then @@ -1711,7 +1710,7 @@ package body System.OS_Lib is J := J + 1; end if; - -- Then adds the quote and the NUL character + -- Put a quote just before the null at the end Res (J) := '"'; J := J + 1; diff --git a/gcc/ada/s-tasren.adb b/gcc/ada/s-tasren.adb index 2d9baadc794..16873e85e01 100644 --- a/gcc/ada/s-tasren.adb +++ b/gcc/ada/s-tasren.adb @@ -110,8 +110,8 @@ package body System.Tasking.Rendezvous is procedure Local_Complete_Rendezvous (Ex : Ada.Exceptions.Exception_Id); -- Internal version of Complete_Rendezvous, used to implement -- Complete_Rendezvous and Exceptional_Complete_Rendezvous. - -- Should be called holding no locks, generally with abort not yet - -- deferred. + -- Should be called holding no locks, generally with abort + -- not yet deferred. procedure Boost_Priority (Call : Entry_Call_Link; Acceptor : Task_Id); pragma Inline (Boost_Priority); @@ -538,7 +538,7 @@ package body System.Tasking.Rendezvous is Called_PO : STPE.Protection_Entries_Access; Acceptor_Prev_Priority : Integer; - Ceiling_Violation : Boolean; + Ceiling_Violation : Boolean; use type Ada.Exceptions.Exception_Id; procedure Transfer_Occurrence diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb index 77a831e01f6..993235210bb 100644 --- a/gcc/ada/sem_aggr.adb +++ b/gcc/ada/sem_aggr.adb @@ -3896,7 +3896,12 @@ package body Sem_Aggr is begin -- If there is a default expression for the aggregate, copy - -- it into a new association. + -- it into a new association. This copy must modify the scopes + -- of internal types that may be attached to the expression + -- (e.g. index subtypes of arrays) because in general the type + -- declaration and the aggregate appear in different scopes, + -- and the backend requires the scope of the type to match the + -- point at which it is elaborated. -- If the component has an initialization procedure (IP) we -- pass the component to the expander, which will generate @@ -3915,8 +3920,10 @@ package body Sem_Aggr is and then Present (Expression (Parent (Component))) then Expr := - New_Copy_Tree (Expression (Parent (Component)), - New_Sloc => Sloc (N)); + New_Copy_Tree + (Expression (Parent (Component)), + New_Scope => Current_Scope, + New_Sloc => Sloc (N)); Add_Association (Component => Component, diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb index 690da5c55e1..9d823164145 100644 --- a/gcc/ada/sem_ch12.adb +++ b/gcc/ada/sem_ch12.adb @@ -3704,18 +3704,37 @@ package body Sem_Ch12 is end if; end; - -- Note that we generate the instance body even when generating - -- calling stubs for an RCI unit: it may be required e.g. if it - -- provides stream attributes for some type used in the profile of a - -- remote subprogram. If the instantiation is within the visible part - -- of the RCI, then calling stubs for any relevant subprogram will - -- be inserted immediately after the subprogram declaration, and - -- will take precedence over the subsequent (original) body. (The - -- stub and original body will be complete homographs, but this is - -- permitted in an instance). - - -- Could we do better and remove the original subprogram body in that - -- case??? + -- For RCI unit calling stubs, we omit the instance body if the + -- instance is the RCI library unit itself. + + -- However there is a special case for nested instances: in this case + -- we do generate the instance body, as it might be required, e.g. + -- because it provides stream attributes for some type used in the + -- profile of a remote subprogram. This is consistent with 12.3(12), + -- which indicates that the instance body occurs at the place of the + -- instantiation, and thus is part of the RCI declaration, which is + -- present on all client partitions (this is E.2.3(18)). + + -- Note that AI12-0002 may make it illegal at some point to have + -- stream attributes defined in an RCI unit, in which case this + -- special case will become unnecessary. In the meantime, there + -- is known application code in production that depends on this + -- being possible, so we definitely cannot eliminate the body in + -- the case of nested instances for the time being. + + -- When we generate a nested instance body, calling stubs for any + -- relevant subprogram will be be inserted immediately after the + -- subprogram declarations, and will take precedence over the + -- subsequent (original) body. (The stub and original body will be + -- complete homographs, but this is permitted in an instance). + -- (Could we do better and remove the original body???) + + if Distribution_Stub_Mode = Generate_Caller_Stub_Body + and then Comes_From_Source (N) + and then Nkind (Parent (N)) = N_Compilation_Unit + then + Needs_Body := False; + end if; if Needs_Body then diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index eec427a0ddf..8df63dc958a 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -188,9 +188,9 @@ package body Sem_Ch6 is New_E : Entity_Id) return Boolean; -- Enforce the rule given in 12.3(18): a private operation in an instance -- overrides an inherited operation only if the corresponding operation - -- was overriding in the generic. This can happen for primitive operations - -- of types derived (in the generic unit) from formal private or formal - -- derived types. + -- was overriding in the generic. This needs to be checked for primitive + -- operations of types derived (in the generic unit) from formal private + -- or formal derived types. procedure Make_Inequality_Operator (S : Entity_Id); -- Create the declaration for an inequality operator that is implicitly @@ -7844,6 +7844,22 @@ package body Sem_Ch6 is -- If no match found, then the new subprogram does not -- override in the generic (nor in the instance). + -- If the type in question is not abstract, and the subprogram + -- is, this will be an error if the new operation is in the + -- private part of the instance. Emit a warning now, which will + -- make the subsequent error message easier to understand. + + if not Is_Abstract_Type (F_Typ) + and then Is_Abstract_Subprogram (Prev_E) + and then In_Private_Part (Current_Scope) + then + Error_Msg_Node_2 := F_Typ; + Error_Msg_NE + ("private operation& in generic unit does not override " & + "any primitive operation of& (RM 12.3 (18))?", + New_E, New_E); + end if; + return True; end; end if; diff --git a/gcc/ada/sem_dim.adb b/gcc/ada/sem_dim.adb index bb81a470b66..4ba81f822d2 100644 --- a/gcc/ada/sem_dim.adb +++ b/gcc/ada/sem_dim.adb @@ -311,6 +311,10 @@ package body Sem_Dim is -- Given a dimension vector and a dimension system, return the proper -- string of symbols. + function Is_Dim_IO_Package_Entity (E : Entity_Id) return Boolean; + -- Return True if E is the package entity of System.Dim.Float_IO or + -- System.Dim.Integer_IO. + function Is_Invalid (Position : Dimension_Position) return Boolean; -- Return True if Pos denotes the invalid position @@ -2165,7 +2169,6 @@ package body Sem_Dim is Dims_Of_Actual : Dimension_Type; Etyp : Entity_Id; New_Str_Lit : Node_Id := Empty; - Package_Name : Name_Id; System : System_Type; function Has_Dimension_Symbols return Boolean; @@ -2240,18 +2243,10 @@ package body Sem_Dim is then Ent := Cunit_Entity (Get_Source_Unit (Ent)); - -- Verify that the generic package is System.Dim.Float_IO or - -- System.Dim.Integer_IO. - - if Is_Library_Level_Entity (Ent) then - Package_Name := Chars (Ent); + -- Verify that the generic package is either + -- System.Dim.Float_IO or System.Dim.Integer_IO. - if Package_Name = Name_Float_IO - or else Package_Name = Name_Integer_IO - then - return Chars (Scope (Ent)) = Name_Dim; - end if; - end if; + return Is_Dim_IO_Package_Entity (Ent); end if; end if; @@ -2500,6 +2495,28 @@ package body Sem_Dim is return Exists (System_Of (Typ)); end Has_Dimension_System; + ------------------------------ + -- Is_Dim_IO_Package_Entity -- + ------------------------------ + + -- Why all this comparison of names, why not use Is_RTE and Is_RTU ??? + + function Is_Dim_IO_Package_Entity (E : Entity_Id) return Boolean is + begin + -- Check the package entity is standard and its scope is either + -- System.Dim.Float_IO or System.Dim.Integer_IO. + + if Is_Library_Level_Entity (E) + and then (Chars (E) = Name_Float_IO + or else Chars (E) = Name_Integer_IO) + then + return Chars (Scope (E)) = Name_Dim + and Chars (Scope (Scope (E))) = Name_System; + end if; + + return False; + end Is_Dim_IO_Package_Entity; + ------------------------------------- -- Is_Dim_IO_Package_Instantiation -- ------------------------------------- @@ -2512,13 +2529,10 @@ package body Sem_Dim is if Is_Entity_Name (Gen_Id) then Ent := Entity (Gen_Id); - if Is_Library_Level_Entity (Ent) - and then - (Chars (Ent) = Name_Float_IO - or else Chars (Ent) = Name_Integer_IO) - then - return Chars (Scope (Ent)) = Name_Dim; - end if; + -- Verify that the instantiated package is either System.Dim.Float_IO + -- or System.Dim.Integer_IO. + + return Is_Dim_IO_Package_Entity (Ent); end if; return False; diff --git a/gcc/ada/sem_dim.ads b/gcc/ada/sem_dim.ads index b32322b9027..b339ff6090e 100644 --- a/gcc/ada/sem_dim.ads +++ b/gcc/ada/sem_dim.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2011-2012, Free Software Foundation, Inc. -- +-- Copyright (C) 2011-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index d564b1e590e..f1ea658a10b 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -278,13 +278,19 @@ package body Sem_Prag is -- overriding operation (see ARM12 6.6.1 (7)). if Class_Present (N) then - declare + Class_Wide_Condition : declare T : constant Entity_Id := Find_Dispatching_Type (S); ACW : Entity_Id := Empty; -- Access to T'class, created if there is a controlling formal -- that is an access parameter. + function Aspect_Name return String; + -- Return the name of the aspect being specified ("Pre" or "Post") + -- properly capitalized for use in an error message. Precondition + -- is Present (Corresponding_Aspect (N)), which will be satisfied + -- if Class_Present (N). + function Get_ACW return Entity_Id; -- If the expression has a reference to an controlling access -- parameter, create an access to T'class for the necessary @@ -299,6 +305,19 @@ package body Sem_Prag is -- type access-to-T'Class. This ensures the expression is well- -- defined for a primitive subprogram of a type descended from T. + ----------------- + -- Aspect_Name -- + ----------------- + + function Aspect_Name return String is + begin + if Chars (Identifier (Corresponding_Aspect (N))) = Name_Pre then + return "Pre"; + else + return "Post"; + end if; + end Aspect_Name; + ------------- -- Get_ACW -- ------------- @@ -365,9 +384,29 @@ package body Sem_Prag is procedure Replace_Type is new Traverse_Proc (Process); + -- Start of processing for Class_Wide_Condition + begin + if not Present (T) then + + -- This is weird code, why not just set Err_Msg_Name_1 to + -- Identifier (Corresponding_Aspect (N)), and Err_Msg_Name_2 + -- to Name_Class and then use + + -- "aspect `%''%` can only be specified ... + + -- That would be the more normal way of doing things ??? + -- Then you get proper identifier casing mode as well, + -- instead of presuming mixed case ??? + + Error_Msg_N + ("aspect " & Aspect_Name & "''Class can only be specified " & + "for a primitive operation of a tagged type", + Corresponding_Aspect (N)); + end if; + Replace_Type (Get_Pragma_Arg (Arg1)); - end; + end Class_Wide_Condition; end if; -- Remove the subprogram from the scope stack now that the pre-analysis @@ -1818,6 +1857,7 @@ package body Sem_Prag is ("aspect % requires ''Class for null procedure"); elsif not Nkind_In (PO, N_Subprogram_Declaration, + N_Expression_Function, N_Generic_Subprogram_Declaration, N_Entry_Declaration) then diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index 3d693e033bc..1b2eef0a90d 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -4239,8 +4239,8 @@ package body Sem_Res is and then Nkind (Expression (E)) = N_Function_Call then declare - Pool : constant Entity_Id - := Associated_Storage_Pool (Root_Type (Typ)); + Pool : constant Entity_Id := + Associated_Storage_Pool (Root_Type (Typ)); begin if Present (Pool) and then diff --git a/gcc/ada/sinput.adb b/gcc/ada/sinput.adb index b31e041670a..5e1ac44b617 100644 --- a/gcc/ada/sinput.adb +++ b/gcc/ada/sinput.adb @@ -250,6 +250,10 @@ package body Sinput is return Name_Buffer (1 .. Name_Len); end Build_Location_String; + ------------------- + -- Check_For_BOM -- + ------------------- + procedure Check_For_BOM is BOM : BOM_Kind; Len : Natural; diff --git a/gcc/ada/sinput.ads b/gcc/ada/sinput.ads index 816fa72d094..32aab9d3966 100644 --- a/gcc/ada/sinput.ads +++ b/gcc/ada/sinput.ads @@ -544,6 +544,14 @@ package Sinput is -- Functional form returning a string, which does not include a terminating -- null character. The contents of Name_Buffer is destroyed. + procedure Check_For_BOM; + -- Check if the current source starts with a BOM. Scan_Ptr needs to be at + -- the start of the current source. If the current source starts with a + -- recognized BOM, then some flags such as Wide_Character_Encoding_Method + -- are set accordingly, and the Scan_Ptr on return points past this BOM. + -- An error message is output and Unrecoverable_Error raised if a non- + -- recognized BOM is detected. The call has no effect if no BOM is found. + function Get_Column_Number (P : Source_Ptr) return Column_Number; -- The ones-origin column number of the specified Source_Ptr value is -- determined and returned. Tab characters if present are assumed to @@ -712,16 +720,6 @@ package Sinput is -- Writes out internal tables to current tree file using the relevant -- Table.Tree_Write routines. - procedure Check_For_BOM; - -- Check if the current source starts with a BOM. Scan_Ptr needs to be at - -- the start of the current source. - -- If the current source starts with a recognized BOM, then some flags - -- such as Wide_Character_Encoding_Method are set accordingly. - -- An exception is raised if a BOM is found that indicates an unrecognized - -- format. - -- This procedure has no effect if there is no BOM at the beginning of the - -- current source. - private pragma Inline (File_Name); pragma Inline (First_Mapped_Line); diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index ae3090e2b13..516f187fedd 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -471,11 +471,17 @@ verify_edge_corresponds_to_fndecl (struct cgraph_edge *e, tree decl) return false; node = cgraph_function_or_thunk_node (node, NULL); - if ((e->callee->former_clone_of != node->decl) + if ((e->callee->former_clone_of != node->decl + && (!node->same_body_alias + || e->callee->former_clone_of != node->thunk.alias)) /* IPA-CP sometimes redirect edge to clone and then back to the former - function. This ping-pong has to go, eventaully. */ + function. This ping-pong has to go, eventually. */ && (node != cgraph_function_or_thunk_node (e->callee, NULL)) - && !clone_of_p (node, e->callee)) + && !clone_of_p (node, e->callee) + /* If decl is a same body alias of some other decl, allow e->callee to be + a clone of a clone of that other decl too. */ + && (!node->same_body_alias + || !clone_of_p (cgraph_get_node (node->thunk.alias), e->callee))) return true; else return false; @@ -667,7 +673,7 @@ verify_cgraph_node (struct cgraph_node *node) for (i = 0; ipa_ref_list_reference_iterate (&node->ref_list, i, ref); i++) if (ref->use != IPA_REF_ALIAS) { - error ("Alias has non-alias refernece"); + error ("Alias has non-alias reference"); error_found = true; } else if (ref_found) diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 24253320208..3e6efd79061 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -615,7 +615,7 @@ int darwin_label_is_anonymous_local_objc_name (const char *name); else if (!strncmp (xname, ".objc_class_name_", 17)) \ fprintf (FILE, "%s", xname); \ else if (xname[0] != '"' && name_needs_quotes (xname)) \ - fprintf (FILE, "\"%s\"", xname); \ + asm_fprintf (FILE, "\"%U%s\"", xname); \ else \ asm_fprintf (FILE, "%U%s", xname); \ } while (0) diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index fad5e66d9c9..7c5ed4da579 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11823,6 +11823,13 @@ legitimate_pic_address_disp_p (rtx disp) break; if (GET_CODE (op0) == LABEL_REF) return true; + if (GET_CODE (op0) == CONST + && GET_CODE (XEXP (op0, 0)) == UNSPEC + && XINT (XEXP (op0, 0), 1) == UNSPEC_PCREL) + return true; + if (GET_CODE (op0) == UNSPEC + && XINT (op0, 1) == UNSPEC_PCREL) + return true; if (GET_CODE (op0) != SYMBOL_REF) break; /* FALLTHRU */ diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 56863fa88ea..1a262675290 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -592,6 +592,9 @@ struct target_globals *mips16_globals; and returned from mips_sched_reorder2. */ static int cached_can_issue_more; +/* True if the output uses __mips16_rdhwr. */ +static bool mips_need_mips16_rdhwr_p; + /* Index R is the smallest register class that contains register R. */ const enum reg_class mips_regno_to_class[FIRST_PSEUDO_REGISTER] = { LEA_REGS, LEA_REGS, M16_REGS, V1_REG, @@ -2842,7 +2845,9 @@ mips_get_tp (void) tp = gen_reg_rtx (Pmode); if (TARGET_MIPS16) { + mips_need_mips16_rdhwr_p = true; fn = mips16_stub_function ("__mips16_rdhwr"); + SYMBOL_REF_FLAGS (fn) |= SYMBOL_FLAG_LOCAL; if (!call_insn_operand (fn, VOIDmode)) fn = force_reg (Pmode, fn); emit_insn (PMODE_INSN (gen_tls_get_tp_mips16, (tp, fn))); @@ -5827,6 +5832,33 @@ mips_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, return addr; } +/* Declare a unique, locally-binding function called NAME, then start + its definition. */ + +static void +mips_start_unique_function (const char *name) +{ + tree decl; + + decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL, + get_identifier (name), + build_function_type_list (void_type_node, NULL_TREE)); + DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL, + NULL_TREE, void_type_node); + TREE_PUBLIC (decl) = 1; + TREE_STATIC (decl) = 1; + + DECL_COMDAT_GROUP (decl) = DECL_ASSEMBLER_NAME (decl); + + targetm.asm_out.unique_section (decl, 0); + switch_to_section (get_named_section (decl, NULL, 0)); + + targetm.asm_out.globalize_label (asm_out_file, name); + fputs ("\t.hidden\t", asm_out_file); + assemble_name (asm_out_file, name); + putc ('\n', asm_out_file); +} + /* Start a definition of function NAME. MIPS16_P indicates whether the function contains MIPS16 code. */ @@ -5865,6 +5897,26 @@ mips_end_function_definition (const char *name) } } +/* Output a definition of the __mips16_rdhwr function. */ + +static void +mips_output_mips16_rdhwr (void) +{ + const char *name; + + name = "__mips16_rdhwr"; + mips_start_unique_function (name); + mips_start_function_definition (name, false); + fprintf (asm_out_file, + "\t.set\tpush\n" + "\t.set\tmips32r2\n" + "\t.set\tnoreorder\n" + "\trdhwr\t$3,$29\n" + "\t.set\tpop\n" + "\tj\t$31\n"); + mips_end_function_definition (name); +} + /* Return true if calls to X can use R_MIPS_CALL* relocations. */ static bool @@ -6387,7 +6439,20 @@ mips16_build_call_stub (rtx retval, rtx *fn_ptr, rtx args_size, int fp_code) assemble_start_function (stubdecl, stubname); mips_start_function_definition (stubname, false); - if (!fp_ret_p) + if (fp_ret_p) + { + fprintf (asm_out_file, "\t.cfi_startproc\n"); + + /* Create a fake CFA 4 bytes below the stack pointer. + This works around unwinders (like libgcc's) that expect + the CFA for non-signal frames to be unique. */ + fprintf (asm_out_file, "\t.cfi_def_cfa 29,-4\n"); + + /* "Save" $sp in itself so we don't use the fake CFA. + This is: DW_CFA_val_expression r29, { DW_OP_reg29 }. */ + fprintf (asm_out_file, "\t.cfi_escape 0x16,29,1,0x6d\n"); + } + else { /* Load the address of the MIPS16 function into $25. Do this first so that targets with coprocessor interlocks can use @@ -6405,12 +6470,7 @@ mips16_build_call_stub (rtx retval, rtx *fn_ptr, rtx args_size, int fp_code) registers. */ mips_output_args_xfer (fp_code, 't'); - if (!fp_ret_p) - { - /* Jump to the previously-loaded address. */ - output_asm_insn ("jr\t%^", NULL); - } - else + if (fp_ret_p) { /* Save the return address in $18 and call the non-MIPS16 function. The stub's caller knows that $18 might be clobbered, even though @@ -6418,6 +6478,7 @@ mips16_build_call_stub (rtx retval, rtx *fn_ptr, rtx args_size, int fp_code) fprintf (asm_out_file, "\tmove\t%s,%s\n", reg_names[GP_REG_FIRST + 18], reg_names[RETURN_ADDR_REGNUM]); output_asm_insn (MIPS_CALL ("jal", &fn, 0, -1), &fn); + fprintf (asm_out_file, "\t.cfi_register 31,18\n"); /* Move the result from floating-point registers to general registers. */ @@ -6470,6 +6531,12 @@ mips16_build_call_stub (rtx retval, rtx *fn_ptr, rtx args_size, int fp_code) gcc_unreachable (); } fprintf (asm_out_file, "\tjr\t%s\n", reg_names[GP_REG_FIRST + 18]); + fprintf (asm_out_file, "\t.cfi_endproc\n"); + } + else + { + /* Jump to the previously-loaded address. */ + output_asm_insn ("jr\t%^", NULL); } #ifdef ASM_DECLARE_FUNCTION_SIZE @@ -8452,6 +8519,15 @@ mips_file_start (void) ASM_COMMENT_START, mips_small_data_threshold, mips_arch_info->name, mips_isa); } + +/* Implement TARGET_ASM_CODE_END. */ + +static void +mips_code_end (void) +{ + if (mips_need_mips16_rdhwr_p) + mips_output_mips16_rdhwr (); +} /* Make the last instruction frame-related and note that it performs the operation described by FRAME_PATTERN. */ @@ -17342,6 +17418,8 @@ mips_expand_vec_minmax (rtx target, rtx op0, rtx op1, #define TARGET_ASM_FILE_START mips_file_start #undef TARGET_ASM_FILE_START_FILE_DIRECTIVE #define TARGET_ASM_FILE_START_FILE_DIRECTIVE true +#undef TARGET_ASM_CODE_END +#define TARGET_ASM_CODE_END mips_code_end #undef TARGET_INIT_LIBFUNCS #define TARGET_INIT_LIBFUNCS mips_init_libfuncs diff --git a/gcc/config/rl78/rl78.h b/gcc/config/rl78/rl78.h index 5980c418843..dba4b1cb2fb 100644 --- a/gcc/config/rl78/rl78.h +++ b/gcc/config/rl78/rl78.h @@ -258,7 +258,7 @@ enum reg_class { 0xff7fffff, 0x0000001f } /* All registers. */ \ } -#define SMALL_REGISTER_CLASSES 1 +#define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P hook_bool_mode_true #define N_REG_CLASSES (int) LIM_REG_CLASSES #define CLASS_MAX_NREGS(CLASS, MODE) ((GET_MODE_SIZE (MODE) \ + UNITS_PER_WORD - 1) \ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 97a3b81b08d..3ffc48c7e31 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -4701,28 +4701,25 @@ rs6000_expand_vector_init (rtx target, rtx vals) /* Double word values on VSX can use xxpermdi or lxvdsx. */ if (VECTOR_MEM_VSX_P (mode) && (mode == V2DFmode || mode == V2DImode)) { + rtx op0 = XVECEXP (vals, 0, 0); + rtx op1 = XVECEXP (vals, 0, 1); if (all_same) { - rtx element = XVECEXP (vals, 0, 0); + if (!MEM_P (op0) && !REG_P (op0)) + op0 = force_reg (inner_mode, op0); if (mode == V2DFmode) - emit_insn (gen_vsx_splat_v2df (target, element)); + emit_insn (gen_vsx_splat_v2df (target, op0)); else - emit_insn (gen_vsx_splat_v2di (target, element)); + emit_insn (gen_vsx_splat_v2di (target, op0)); } else { + op0 = force_reg (inner_mode, op0); + op1 = force_reg (inner_mode, op1); if (mode == V2DFmode) - { - rtx op0 = copy_to_mode_reg (DFmode, XVECEXP (vals, 0, 0)); - rtx op1 = copy_to_mode_reg (DFmode, XVECEXP (vals, 0, 1)); - emit_insn (gen_vsx_concat_v2df (target, op0, op1)); - } + emit_insn (gen_vsx_concat_v2df (target, op0, op1)); else - { - rtx op0 = copy_to_mode_reg (DImode, XVECEXP (vals, 0, 0)); - rtx op1 = copy_to_mode_reg (DImode, XVECEXP (vals, 0, 1)); - emit_insn (gen_vsx_concat_v2di (target, op0, op1)); - } + emit_insn (gen_vsx_concat_v2di (target, op0, op1)); } return; } @@ -4736,7 +4733,7 @@ rs6000_expand_vector_init (rtx target, rtx vals) if (all_same) { rtx freg = gen_reg_rtx (V4SFmode); - rtx sreg = copy_to_reg (XVECEXP (vals, 0, 0)); + rtx sreg = force_reg (SFmode, XVECEXP (vals, 0, 0)); emit_insn (gen_vsx_xscvdpsp_scalar (freg, sreg)); emit_insn (gen_vsx_xxspltw_v4sf (target, freg, const0_rtx)); @@ -4747,13 +4744,13 @@ rs6000_expand_vector_init (rtx target, rtx vals) rtx dbl_odd = gen_reg_rtx (V2DFmode); rtx flt_even = gen_reg_rtx (V4SFmode); rtx flt_odd = gen_reg_rtx (V4SFmode); + rtx op0 = force_reg (SFmode, XVECEXP (vals, 0, 0)); + rtx op1 = force_reg (SFmode, XVECEXP (vals, 0, 1)); + rtx op2 = force_reg (SFmode, XVECEXP (vals, 0, 2)); + rtx op3 = force_reg (SFmode, XVECEXP (vals, 0, 3)); - emit_insn (gen_vsx_concat_v2sf (dbl_even, - copy_to_reg (XVECEXP (vals, 0, 0)), - copy_to_reg (XVECEXP (vals, 0, 1)))); - emit_insn (gen_vsx_concat_v2sf (dbl_odd, - copy_to_reg (XVECEXP (vals, 0, 2)), - copy_to_reg (XVECEXP (vals, 0, 3)))); + emit_insn (gen_vsx_concat_v2sf (dbl_even, op0, op1)); + emit_insn (gen_vsx_concat_v2sf (dbl_odd, op2, op3)); emit_insn (gen_vsx_xvcvdpsp (flt_even, dbl_even)); emit_insn (gen_vsx_xvcvdpsp (flt_odd, dbl_odd)); rs6000_expand_extract_even (target, flt_even, flt_odd); diff --git a/gcc/config/rx/rx.h b/gcc/config/rx/rx.h index 10b16bda261..80c5b498f05 100644 --- a/gcc/config/rx/rx.h +++ b/gcc/config/rx/rx.h @@ -185,7 +185,6 @@ enum reg_class { 0x0000ffff } /* All registers. */ \ } -#define SMALL_REGISTER_CLASSES 0 #define N_REG_CLASSES (int) LIM_REG_CLASSES #define CLASS_MAX_NREGS(CLASS, MODE) ((GET_MODE_SIZE (MODE) \ + UNITS_PER_WORD - 1) \ diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 864b6d34506..faa85939428 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,19 @@ +2012-02-16 Jason Merrill <jason@redhat.com> + + PR c++/52248 + * decl.c (define_label): Use timevar_cond_start/stop. + +2012-02-16 Fabien Chêne <fabien@gcc.gnu.org> + + PR c++/52126 + * decl.c (xref_basetypes): call dependent_scope_p instead of + dependent_type_p. + +2012-02-16 Jason Merrill <jason@redhat.com> + + PR c++/51415 + * error.c (dump_expr): Handle lambda closures specifically. + 2012-02-14 Jason Merrill <jason@redhat.com> * parser.c (cp_parser_explicit_instantiation): Give a warning diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index f0ba1816384..2a6a5160fb6 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -2947,9 +2947,9 @@ tree define_label (location_t location, tree name) { tree ret; - timevar_start (TV_NAME_LOOKUP); + bool running = timevar_cond_start (TV_NAME_LOOKUP); ret = define_label_1 (location, name); - timevar_stop (TV_NAME_LOOKUP); + timevar_cond_stop (TV_NAME_LOOKUP, running); return ret; } @@ -11880,7 +11880,7 @@ xref_basetypes (tree ref, tree base_list) TYPE_FOR_JAVA (ref) = 1; base_binfo = NULL_TREE; - if (CLASS_TYPE_P (basetype) && !dependent_type_p (basetype)) + if (CLASS_TYPE_P (basetype) && !dependent_scope_p (basetype)) { base_binfo = TYPE_BINFO (basetype); /* The original basetype could have been a typedef'd type. */ diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 09c6caec9a4..4ec263b0c3f 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -2189,6 +2189,8 @@ dump_expr (tree t, int flags) } } } + if (TREE_TYPE (t) && LAMBDA_TYPE_P (TREE_TYPE (t))) + pp_string (cxx_pp, "<lambda closure object>"); if (TREE_TYPE (t) && EMPTY_CONSTRUCTOR_P (t)) { dump_type (TREE_TYPE (t), 0); diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index b666a2ef1c4..e4d17cf48ff 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -7092,6 +7092,11 @@ functions will map any runtime value to @code{__ATOMIC_SEQ_CST} rather than invoke a runtime library call or inline a switch statement. This is standard compliant, safe, and the simplest approach for now. +The memory model parameter is a signed int, but only the lower 8 bits are +reserved for the memory model. The remainder of the signed int is reserved +for future use and should be 0. Use of the predefined atomic values will +ensure proper usage. + @deftypefn {Built-in Function} @var{type} __atomic_load_n (@var{type} *ptr, int memmodel) This built-in function implements an atomic load operation. It returns the contents of @code{*@var{ptr}}. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 9718b1ed812..0b000792472 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1030,20 +1030,20 @@ compilation is done: @table @gcctabopt @item @var{file}.c -C source code which must be preprocessed. +C source code that must be preprocessed. @item @var{file}.i -C source code which should not be preprocessed. +C source code that should not be preprocessed. @item @var{file}.ii -C++ source code which should not be preprocessed. +C++ source code that should not be preprocessed. @item @var{file}.m Objective-C source code. Note that you must link with the @file{libobjc} library to make an Objective-C program work. @item @var{file}.mi -Objective-C source code which should not be preprocessed. +Objective-C source code that should not be preprocessed. @item @var{file}.mm @itemx @var{file}.M @@ -1052,7 +1052,7 @@ library to make an Objective-C++ program work. Note that @samp{.M} refers to a literal capital M@. @item @var{file}.mii -Objective-C++ source code which should not be preprocessed. +Objective-C++ source code that should not be preprocessed. @item @var{file}.h C, C++, Objective-C or Objective-C++ header file to be turned into a @@ -1066,16 +1066,16 @@ Ada spec (via the @option{-fdump-ada-spec} switch). @itemx @var{file}.CPP @itemx @var{file}.c++ @itemx @var{file}.C -C++ source code which must be preprocessed. Note that in @samp{.cxx}, +C++ source code that must be preprocessed. Note that in @samp{.cxx}, the last two letters must both be literally @samp{x}. Likewise, @samp{.C} refers to a literal capital C@. @item @var{file}.mm @itemx @var{file}.M -Objective-C++ source code which must be preprocessed. +Objective-C++ source code that must be preprocessed. @item @var{file}.mii -Objective-C++ source code which should not be preprocessed. +Objective-C++ source code that should not be preprocessed. @item @var{file}.hh @itemx @var{file}.H @@ -1090,27 +1090,27 @@ C++ header file to be turned into a precompiled header or Ada spec. @item @var{file}.f @itemx @var{file}.for @itemx @var{file}.ftn -Fixed form Fortran source code which should not be preprocessed. +Fixed form Fortran source code that should not be preprocessed. @item @var{file}.F @itemx @var{file}.FOR @itemx @var{file}.fpp @itemx @var{file}.FPP @itemx @var{file}.FTN -Fixed form Fortran source code which must be preprocessed (with the traditional +Fixed form Fortran source code that must be preprocessed (with the traditional preprocessor). @item @var{file}.f90 @itemx @var{file}.f95 @itemx @var{file}.f03 @itemx @var{file}.f08 -Free form Fortran source code which should not be preprocessed. +Free form Fortran source code that should not be preprocessed. @item @var{file}.F90 @itemx @var{file}.F95 @itemx @var{file}.F03 @itemx @var{file}.F08 -Free form Fortran source code which must be preprocessed (with the +Free form Fortran source code that must be preprocessed (with the traditional preprocessor). @item @var{file}.go @@ -1123,7 +1123,7 @@ Go source code. @c @var{file}.jar @item @var{file}.ads -Ada source code file which contains a library unit declaration (a +Ada source code file that contains a library unit declaration (a declaration of a package, subprogram, or generic, or a generic instantiation), or a library unit renaming declaration (a package, generic, or subprogram renaming declaration). Such files are also @@ -1145,7 +1145,7 @@ Assembler code. @item @var{file}.S @itemx @var{file}.sx -Assembler code which must be preprocessed. +Assembler code that must be preprocessed. @item @var{other} An object file to be fed straight into linking. @@ -1224,7 +1224,7 @@ Stop after the preprocessing stage; do not run the compiler proper. The output is in the form of preprocessed source code, which is sent to the standard output. -Input files which don't require preprocessing are ignored. +Input files that don't require preprocessing are ignored. @cindex output file option @item -o @var{file} @@ -1266,7 +1266,7 @@ understood by @command{gcc}. If the @option{-v} option is also specified then @option{--help} will also be passed on to the various processes invoked by @command{gcc}, so that they can display the command-line options they accept. If the @option{-Wextra} option has also been specified -(prior to the @option{--help} option), then command-line options which +(prior to the @option{--help} option), then command-line options that have no documentation associated with them will also be displayed. @item --target-help @@ -1312,15 +1312,15 @@ These are the supported qualifiers: @table @asis @item @samp{undocumented} -Display only those options which are undocumented. +Display only those options that are undocumented. @item @samp{joined} -Display options which take an argument that appears after an equal +Display options taking an argument that appears after an equal sign in the same continuous piece of text, such as: @samp{--help=target}. @item @samp{separate} -Display options which take an argument that appears as a separate word +Display options taking an argument that appears as a separate word following the original option, such as: @samp{-o output-file}. @end table @@ -1334,7 +1334,7 @@ switches supported by the compiler the following can be used: The sense of a qualifier can be inverted by prefixing it with the @samp{^} character, so for example to display all binary warning options (i.e., ones that are either on or off and that do not take an -argument), which have a description the following can be used: +argument) that have a description, use: @smallexample --help=warnings,^joined,^undocumented @@ -1684,7 +1684,7 @@ do not have an ISO standard meaning. GCC normally generates special code to handle certain built-in functions more efficiently; for instance, calls to @code{alloca} may become single -instructions that adjust the stack directly, and calls to @code{memcpy} +instructions which adjust the stack directly, and calls to @code{memcpy} may become inline copy loops. The resulting code is often both smaller and faster, but since the function calls no longer appear as such, you cannot set a breakpoint on those calls, nor can you change the behavior @@ -1782,7 +1782,7 @@ fields within structs/unions}, for details. Accept some non-standard constructs used in Plan 9 code. This enables @option{-fms-extensions}, permits passing pointers to -structures with anonymous fields to functions which expect pointers to +structures with anonymous fields to functions that expect pointers to elements of the type of the field, and permits referring to anonymous fields declared using a typedef. @xref{Unnamed Fields,,Unnamed struct/union fields within structs/unions}, for details. This is only @@ -1985,7 +1985,7 @@ Inject friend functions into the enclosing namespace, so that they are visible outside the scope of the class in which they are declared. Friend functions were documented to work this way in the old Annotated C++ Reference Manual, and versions of G++ before 4.1 always worked -that way. However, in ISO C++ a friend function which is not declared +that way. However, in ISO C++ a friend function that is not declared in an enclosing scope can only be found using argument dependent lookup. This option causes friends to be injected as they were in earlier releases. @@ -1996,7 +1996,7 @@ release of G++. @item -fno-elide-constructors @opindex fno-elide-constructors The C++ standard allows an implementation to omit creating a temporary -which is only used to initialize another object of the same type. +that is only used to initialize another object of the same type. Specifying this option disables that optimization, and forces G++ to call the copy constructor in all cases. @@ -2034,7 +2034,7 @@ word as an identifier. You can use the keyword @code{__typeof__} instead. @item -fno-implicit-templates @opindex fno-implicit-templates -Never emit code for non-inline templates which are instantiated +Never emit code for non-inline templates that are instantiated implicitly (i.e.@: by use); only emit code for explicit instantiations. @xref{Template Instantiation}, for more information. @@ -2099,7 +2099,7 @@ template followed by the template arguments and any typedefs or typenames in the signature (e.g. @code{void f(T) [with T = int]} rather than @code{void f(int)}) so that it's clear which template is involved. When an error message refers to a specialization of a class -template, the compiler will omit any template arguments which match +template, the compiler will omit any template arguments that match the default template arguments for that template. If either of these behaviors make it harder to understand the error message rather than easier, using @option{-fno-pretty-templates} will disable them. @@ -2129,11 +2129,11 @@ This information is generally only useful to the G++ development team. @item -fstrict-enums @opindex fstrict-enums Allow the compiler to optimize using the assumption that a value of -enumeration type can only be one of the values of the enumeration (as -defined in the C++ standard; basically, a value which can be +enumerated type can only be one of the values of the enumeration (as +defined in the C++ standard; basically, a value that can be represented in the minimum number of bits needed to represent all the enumerators). This assumption may not be valid if the program uses a -cast to convert an arbitrary integer value to the enumeration type. +cast to convert an arbitrary integer value to the enumerated type. @item -ftemplate-depth=@var{n} @opindex ftemplate-depth @@ -2210,13 +2210,13 @@ Types, but not their members, are not hidden by default. @item The One Definition Rule is relaxed for types without explicit -visibility specifications which are defined in more than one different +visibility specifications that are defined in more than one different shared object: those declarations are permitted if they would have been permitted when this option was not used. @end enumerate In new code it is better to use @option{-fvisibility=hidden} and -export those classes which are intended to be externally visible. +export those classes that are intended to be externally visible. Unfortunately it is possible for code to rely, perhaps accidentally, on the Visual Studio behavior. @@ -2411,7 +2411,7 @@ public static member functions. @item -Wdelete-non-virtual-dtor @r{(C++ and Objective-C++ only)} @opindex Wdelete-non-virtual-dtor @opindex Wno-delete-non-virtual-dtor -Warn when @samp{delete} is used to destroy an instance of a class which +Warn when @samp{delete} is used to destroy an instance of a class that has virtual functions and non-virtual destructor. It is unsafe to delete an instance of a derived class through a pointer to a base class if the base class does not have a virtual destructor. This warning is enabled @@ -2539,7 +2539,7 @@ function. Because this non-conforming behavior is no longer the default behavior for G++, @option{-Wnon-template-friend} allows the compiler to check existing code for potential trouble spots and is on by default. This new compiler behavior can be turned off with -@option{-Wno-non-template-friend} which keeps the conformant compiler code +@option{-Wno-non-template-friend}, which keeps the conformant compiler code but disables the helpful warning. @item -Wold-style-cast @r{(C++ and Objective-C++ only)} @@ -2687,11 +2687,11 @@ machines, and Version 2 on 64-bit target machines. @opindex fobjc-call-cxx-cdtors For each Objective-C class, check if any of its instance variables is a C++ object with a non-trivial default constructor. If so, synthesize a -special @code{- (id) .cxx_construct} instance method that will run +special @code{- (id) .cxx_construct} instance method which will run non-trivial default constructors on any such instance variables, in order, and then return @code{self}. Similarly, check if any instance variable is a C++ object with a non-trivial destructor, and if so, synthesize a -special @code{- (void) .cxx_destruct} method that will run +special @code{- (void) .cxx_destruct} method which will run all such default destructors, in reverse order. The @code{- (id) .cxx_construct} and @code{- (void) .cxx_destruct} @@ -2817,7 +2817,7 @@ Warn if multiple methods with differing argument and/or return types are found for a given selector when attempting to send a message using this selector to a receiver of type @code{id} or @code{Class}. When this flag is off (which is the default behavior), the compiler will omit such warnings -if any differences found are confined to types which share the same size +if any differences found are confined to types that share the same size and alignment. @item -Wundeclared-selector @r{(Objective-C and Objective-C++ only)} @@ -2882,7 +2882,7 @@ a message which is too long to fit on a single line. @item -fno-diagnostics-show-option @opindex fno-diagnostics-show-option @opindex fdiagnostics-show-option -By default, each diagnostic emitted includes text which indicates the +By default, each diagnostic emitted includes text indicating the command-line option that directly controls the diagnostic (if such an option is known to the diagnostic machinery). Specifying the @option{-fno-diagnostics-show-option} flag suppresses that behavior. @@ -2896,8 +2896,8 @@ option is known to the diagnostic machinery). Specifying the @cindex messages, warning @cindex suppressing warnings -Warnings are diagnostic messages that report constructions which -are not inherently erroneous but which are risky or suggest there +Warnings are diagnostic messages that report constructions that +are not inherently erroneous but that are risky or suggest there may have been an error. The following language-independent options do not enable specific @@ -2939,7 +2939,7 @@ warnings, for example @option{-Wno-error=switch} makes is in effect. The warning message for each controllable warning includes the -option which controls the warning. That option can then be used with +option that controls the warning. That option can then be used with @option{-Werror=} and @option{-Wno-error=} as described above. (Printing of the option in the warning message can be disabled using the @option{-fno-diagnostics-show-option} flag.) @@ -3112,10 +3112,10 @@ conditional expression. (C++ only) Ambiguous virtual bases. @item -(C++ only) Subscripting an array which has been declared @samp{register}. +(C++ only) Subscripting an array that has been declared @samp{register}. @item -(C++ only) Taking the address of a variable which has been declared +(C++ only) Taking the address of a variable that has been declared @samp{register}. @item @@ -3224,7 +3224,7 @@ aspects of format checking, the options @option{-Wformat-y2k}, @opindex Wformat-y2k @opindex Wno-format-y2k If @option{-Wformat} is specified, also warn about @code{strftime} -formats which may yield only a two-digit year. +formats that may yield only a two-digit year. @item -Wno-format-contains-nul @opindex Wno-format-contains-nul @@ -3292,7 +3292,7 @@ can be disabled with the @option{-Wno-nonnull} option. @item -Winit-self @r{(C, C++, Objective-C and Objective-C++ only)} @opindex Winit-self @opindex Wno-init-self -Warn about uninitialized variables which are initialized with themselves. +Warn about uninitialized variables that are initialized with themselves. Note this option can only be used with the @option{-Wuninitialized} option. For example, GCC will warn about @code{i} being uninitialized in the @@ -3631,12 +3631,12 @@ or if a variable may be clobbered by a @code{setjmp} call. In C++, warn if a non-static reference or non-static @samp{const} member appears in a class without constructors. -If you want to warn about code which uses the uninitialized value of the +If you want to warn about code that uses the uninitialized value of the variable in its own initializer, use the @option{-Winit-self} option. These warnings occur for individual uninitialized or clobbered elements of structure, union or array variables as well as for -variables which are uninitialized or clobbered as a whole. They do +variables that are uninitialized or clobbered as a whole. They do not occur for variables or elements declared @code{volatile}. Because these warnings depend on optimization, the exact variables or elements for which there are warnings will depend on the precise optimization @@ -3691,7 +3691,7 @@ The compiler sees only the calls to @code{setjmp}. It cannot know where @code{longjmp} will be called; in fact, a signal handler could call it at any point in the code. As a result, you may get a warning even when there is in fact no problem because @code{longjmp} cannot -in fact be called at the place which would cause a problem. +in fact be called at the place that would cause a problem. Some spurious warnings can be avoided if you declare all the functions you use that never return as @code{noreturn}. @xref{Function @@ -3705,7 +3705,7 @@ This warning is enabled by @option{-Wall} or @option{-Wextra}. @cindex warning for unknown pragmas @cindex unknown pragmas, warning @cindex pragmas, warning of unknown -Warn when a #pragma directive is encountered which is not understood by +Warn when a @code{#pragma} directive is encountered that is not understood by GCC@. If this command-line option is used, warnings will even be issued for unknown pragmas in system header files. This is not the case if the warnings were only enabled by the @option{-Wall} command-line option. @@ -3721,7 +3721,7 @@ invalid syntax, or conflicts between pragmas. See also @opindex Wstrict-aliasing @opindex Wno-strict-aliasing This option is only active when @option{-fstrict-aliasing} is active. -It warns about code which might break the strict aliasing rules that the +It warns about code that might break the strict aliasing rules that the compiler is using for optimization. The warning does not catch all cases, but does attempt to catch the more common pitfalls. It is included in @option{-Wall}. @@ -3731,7 +3731,7 @@ It is equivalent to @option{-Wstrict-aliasing=3} @opindex Wstrict-aliasing=n @opindex Wno-strict-aliasing=n This option is only active when @option{-fstrict-aliasing} is active. -It warns about code which might break the strict aliasing rules that the +It warns about code that might break the strict aliasing rules that the compiler is using for optimization. Higher levels correspond to higher accuracy (fewer false positives). Higher levels also correspond to more effort, similar to the way -O works. @@ -3743,20 +3743,20 @@ Possibly useful when higher levels do not warn but -fstrict-aliasing still breaks the code, as it has very few false negatives. However, it has many false positives. Warns for all pointer conversions between possibly incompatible types, -even if never dereferenced. Runs in the frontend only. +even if never dereferenced. Runs in the front end only. Level 2: Aggressive, quick, not too precise. May still have many false positives (not as many as level 1 though), and few false negatives (but possibly more than level 1). Unlike level 1, it only warns when an address is taken. Warns about -incomplete types. Runs in the frontend only. +incomplete types. Runs in the front end only. Level 3 (default for @option{-Wstrict-aliasing}): Should have very few false positives and few false negatives. Slightly slower than levels 1 or 2 when optimization is enabled. -Takes care of the common pun+dereference pattern in the frontend: +Takes care of the common pun+dereference pattern in the front end: @code{*(int*)&some_float}. -If optimization is enabled, it also runs in the backend, where it deals +If optimization is enabled, it also runs in the back end, where it deals with multiple statement cases using flow-sensitive points-to information. Only warns when the converted pointer is dereferenced. Does not warn about incomplete types. @@ -3772,10 +3772,10 @@ warn about all cases where the code might overflow: it only warns about cases where the compiler implements some optimization. Thus this warning depends on the optimization level. -An optimization which assumes that signed overflow does not occur is +An optimization that assumes that signed overflow does not occur is perfectly safe if the values of the variables involved are such that overflow never does, in fact, occur. Therefore this warning can -easily give a false positive: a warning about code which is not +easily give a false positive: a warning about code that is not actually a problem. To help focus on important issues, several warning levels are defined. No warnings are issued for the use of undefined signed overflow when estimating how many iterations a loop @@ -3784,7 +3784,7 @@ executed at all. @table @gcctabopt @item -Wstrict-overflow=1 -Warn about cases which are both questionable and easy to avoid. For +Warn about cases that are both questionable and easy to avoid. For example: @code{x + 1 > x}; with @option{-fstrict-overflow}, the compiler will simplify this to @code{1}. This level of @option{-Wstrict-overflow} is enabled by @option{-Wall}; higher levels @@ -3832,7 +3832,7 @@ attributes currently supported are listed below. @opindex Wsuggest-attribute=noreturn @opindex Wno-suggest-attribute=noreturn -Warn about functions which might be candidates for attributes +Warn about functions that might be candidates for attributes @code{pure}, @code{const} or @code{noreturn}. The compiler only warns for functions visible in other compilation units or (in the case of @code{pure} and @code{const}) if it cannot prove that the function returns normally. A function @@ -3903,7 +3903,7 @@ probably mistaken. @opindex Wno-traditional Warn about certain constructs that behave differently in traditional and ISO C@. Also warn about ISO C constructs that have no traditional C -equivalent, and/or problematic constructs which should be avoided. +equivalent, and/or problematic constructs that should be avoided. @itemize @bullet @item @@ -4041,7 +4041,7 @@ whether or not to issue a warning. @item -Wno-free-nonheap-object @opindex Wno-free-nonheap-object @opindex Wfree-nonheap-object -Do not warn when attempting to free an object which was not allocated +Do not warn when attempting to free an object that was not allocated on the heap. @item -Wstack-usage=@var{len} @@ -4133,7 +4133,7 @@ Warn whenever a pointer is cast so as to remove a type qualifier from the target type. For example, warn if a @code{const char *} is cast to an ordinary @code{char *}. -Also warn when making a cast which introduces a type qualifier in an +Also warn when making a cast that introduces a type qualifier in an unsafe way. For example, casting @code{char **} to @code{const char **} is unsafe, as in this example: @@ -4217,7 +4217,7 @@ while} statement. This warning is also enabled by @option{-Wextra}. @item -Wenum-compare @opindex Wenum-compare @opindex Wno-enum-compare -Warn about a comparison between values of different enum types. In C++ +Warn about a comparison between values of different enumerated types. In C++ this warning is enabled by default. In C this warning is enabled by @option{-Wall}. @@ -4227,8 +4227,8 @@ this warning is enabled by default. In C this warning is enabled by Warn if a @code{goto} statement or a @code{switch} statement jumps forward across the initialization of a variable, or jumps backward to a label after the variable has been initialized. This only warns about -variables which are initialized when they are declared. This warning is -only supported for C and Objective C; in C++ this sort of branch is an +variables that are initialized when they are declared. This warning is +only supported for C and Objective-C; in C++ this sort of branch is an error in any case. @option{-Wjump-misses-init} is included in @option{-Wc++-compat}. It @@ -4302,7 +4302,7 @@ warnings for redefinition of @code{__TIMESTAMP__}, @code{__TIME__}, @opindex Wno-strict-prototypes Warn if a function is declared or defined without specifying the argument types. (An old-style function definition is permitted without -a warning if preceded by a declaration which specifies the argument +a warning if preceded by a declaration that specifies the argument types.) @item -Wold-style-declaration @r{(C and Objective-C only)} @@ -4336,8 +4336,8 @@ This warning is also enabled by @option{-Wextra}. @opindex Wno-missing-prototypes Warn if a global function is defined without a previous prototype declaration. This warning is issued even if the definition itself -provides a prototype. The aim is to detect global functions that fail -to be declared in header files. +provides a prototype. The aim is to detect global functions that +are not declared in header files. @item -Wmissing-declarations @opindex Wmissing-declarations @@ -4379,7 +4379,7 @@ warnings without this one, use @samp{-Wextra -Wno-missing-field-initializers}. @opindex Wno-missing-format-attribute @opindex Wformat @opindex Wno-format -Warn about function pointers which might be candidates for @code{format} +Warn about function pointers that might be candidates for @code{format} attributes. Note these are only possible candidates, not absolute ones. GCC will guess that function pointers with @code{format} attributes that are used in assignment, initialization, parameter passing or return @@ -4389,7 +4389,7 @@ initialization, the type of the parameter variable, or the return type of the containing function respectively should also have a @code{format} attribute to avoid the warning. -GCC will also warn about function definitions which might be +GCC will also warn about function definitions that might be candidates for @code{format} attributes. Again, these are only possible candidates. GCC will guess that @code{format} attributes might be appropriate for any function that calls a function like @@ -4415,16 +4415,16 @@ outside the basic ASCII character set are used, you can have two different character sequences that look the same. To avoid confusion, the ISO 10646 standard sets out some @dfn{normalization rules} which when applied ensure that two sequences that look the same are turned into -the same sequence. GCC can warn you if you are using identifiers which +the same sequence. GCC can warn you if you are using identifiers that have not been normalized; this option controls that warning. -There are four levels of warning that GCC supports. The default is -@option{-Wnormalized=nfc}, which warns about any identifier which is +There are four levels of warning supported by GCC. The default is +@option{-Wnormalized=nfc}, which warns about any identifier that is not in the ISO 10646 ``C'' normalized form, @dfn{NFC}. NFC is the recommended form for most uses. -Unfortunately, there are some characters which ISO C and ISO C++ allow -in identifiers that when turned into NFC aren't allowable as +Unfortunately, there are some characters allowed in identifiers by +ISO C and ISO C++ that, when turned into NFC, are not allowed in identifiers. That is, there's no way to use these symbols in portable ISO C or C++ and have all your identifiers in NFC@. @option{-Wnormalized=id} suppresses the warning for these characters. @@ -4439,7 +4439,7 @@ otherwise you can easily create bugs that are literally impossible to see. Some characters in ISO 10646 have distinct meanings but look identical in some fonts or display methodologies, especially once formatting has been applied. For instance @code{\u207F}, ``SUPERSCRIPT LATIN SMALL -LETTER N'', will display just like a regular @code{n} which has been +LETTER N'', will display just like a regular @code{n} that has been placed in a superscript. ISO 10646 defines the @dfn{NFKC} normalization scheme to convert all these into a standard form as well, and GCC will warn if your code is not in NFKC if you use @@ -4613,11 +4613,11 @@ To inhibit the warning messages, use @option{-Wno-variadic-macros}. @opindex Wno-vector-operation-performance Warn if vector operation is not implemented via SIMD capabilities of the architecture. Mainly useful for the performance tuning. -Vector operation can be implemented @code{piecewise} which means that the +Vector operation can be implemented @code{piecewise}, which means that the scalar operation is performed on every vector element; -@code{in parallel} which means that the vector operation is implemented +@code{in parallel}, which means that the vector operation is implemented using scalars of wider type, which normally is more performance efficient; -and @code{as a single scalar} which means that vector fits into a +and @code{as a single scalar}, which means that vector fits into a scalar type. @item -Wvla @@ -4667,9 +4667,9 @@ Suppress warnings about constructs that cannot be instrumented by @item -Woverlength-strings @opindex Woverlength-strings @opindex Wno-overlength-strings -Warn about string constants which are longer than the ``minimum +Warn about string constants that are longer than the ``minimum maximum'' length specified in the C standard. Modern compilers -generally allow string constants which are much longer than the +generally allow string constants that are much longer than the standard's minimum limit, but very portable programs should avoid using longer strings. @@ -4740,7 +4740,7 @@ possible. Produce debugging information in stabs format (if that is supported), without GDB extensions. This is the format used by DBX on most BSD systems. On MIPS, Alpha and System V Release 4 systems this option -produces stabs debugging output which is not understood by DBX or SDB@. +produces stabs debugging output that is not understood by DBX or SDB@. On System V Release 4 systems this option requires the GNU assembler. @item -feliminate-unused-debug-symbols @@ -4805,8 +4805,8 @@ for maximum benefit. @item -grecord-gcc-switches @opindex grecord-gcc-switches -This switch causes the command-line options, that were used to invoke the -compiler and may affect code generation, to be appended to the +This switch causes the command-line options used to invoke the +compiler that may affect code generation to be appended to the DW_AT_producer attribute in DWARF debugging information. The options are concatenated with spaces separating them from each other and from the compiler version. See also @option{-frecord-gcc-switches} for another @@ -5002,7 +5002,7 @@ This option works only with DWARF 2. @opindex fmerge-debug-strings @opindex fno-merge-debug-strings Direct the linker to not merge together strings in the debugging -information which are identical in different object files. Merging is +information that are identical in different object files. Merging is not supported by all assemblers or linkers. Merging decreases the size of the debug information in the output file at the cost of increasing link processing time. Merging is enabled by default. @@ -5438,7 +5438,7 @@ Dump after post-reload optimizations. @itemx -fdump-rtl-pro_and_epilogue @opindex fdump-rtl-pro_and_epilogue -Dump after generating the function pro and epilogues. +Dump after generating the function prologues and epilogues. @item -fdump-rtl-regmove @opindex fdump-rtl-regmove @@ -5657,8 +5657,8 @@ language tree to a file. The file name is generated by appending a switch specific suffix to the source file name, and the file is created in the same directory as the output file. If the @samp{-@var{options}} form is used, @var{options} is a list of -@samp{-} separated options that control the details of the dump. Not -all options are applicable to all dumps, those which are not +@samp{-} separated options which control the details of the dump. Not +all options are applicable to all dumps; those that are not meaningful will be ignored. The following options are available @table @samp @@ -6294,7 +6294,7 @@ the member function name. @item -fno-defer-pop @opindex fno-defer-pop Always pop the arguments to each function call as soon as that function -returns. For machines which must pop arguments after a function call, +returns. For machines that must pop arguments after a function call, the compiler normally lets arguments accumulate on the stack for several function calls and pops them all at once. @@ -6601,7 +6601,7 @@ Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. @item -fcse-skip-blocks @opindex fcse-skip-blocks This is similar to @option{-fcse-follow-jumps}, but causes CSE to -follow jumps which conditionally skip over blocks. When CSE +follow jumps that conditionally skip over blocks. When CSE encounters a simple @code{if} statement with no else clause, @option{-fcse-skip-blocks} causes CSE to follow the jump around the body of the @code{if}. @@ -6630,7 +6630,7 @@ Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. @item -fgcse-lm @opindex fgcse-lm When @option{-fgcse-lm} is enabled, global common subexpression elimination will -attempt to move loads which are only killed by stores into themselves. This +attempt to move loads that are only killed by stores into themselves. This allows a loop containing a load/store sequence to be changed to a load outside the loop, and a copy/store within the loop. @@ -6721,7 +6721,7 @@ it cannot be null. Note however that in some environments this assumption is not true. Use @option{-fno-delete-null-pointer-checks} to disable this optimization -for programs which depend on that behavior. +for programs that depend on that behavior. Some targets, especially embedded ones, disable this option at all levels. Otherwise it is enabled at all levels: @option{-O0}, @option{-O1}, @@ -6765,56 +6765,65 @@ optimization. Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. @item -fira-algorithm=@var{algorithm} -Use specified coloring algorithm for the integrated register -allocator. The @var{algorithm} argument should be @code{priority} or -@code{CB}. The first algorithm specifies Chow's priority coloring, -the second one specifies Chaitin-Briggs coloring. The second -algorithm can be unimplemented for some architectures. If it is -implemented, it is the default because Chaitin-Briggs coloring as a -rule generates a better code. +Use the specified coloring algorithm for the integrated register +allocator. The @var{algorithm} argument can be @samp{priority}, which +specifies Chow's priority coloring, or @samp{CB}, which specifies +Chaitin-Briggs coloring. Chaitin-Briggs coloring is not implemented +for all architectures, but for those targets that do support it, it is +the default because it generates better code. @item -fira-region=@var{region} Use specified regions for the integrated register allocator. The -@var{region} argument should be one of @code{all}, @code{mixed}, or -@code{one}. The first value means using all loops as register -allocation regions, the second value which is enabled by default when -compiling with optimization for speed (@option{-O}, @option{-O2}, -@dots{}) means using all loops except for loops with small register -pressure as the regions, and third one which is enabled by default for -@option{-Os} or @option{-O0} means using all function as a single -region. The first value can give best result for machines with small -size and irregular register set, the third one results in faster and -generates decent code and the smallest size code, and the second value -usually give the best results in most cases and for most -architectures. +@var{region} argument should be one of the following: + +@table @samp + +@item all +Use all loops as register allocation regions. +This can give the best results for machines with a small and/or +irregular register set. + +@item mixed +Use all loops except for loops with small register pressure +as the regions. This value usually gives +the best results in most cases and for most architectures, +and is enabled by default when compiling with optimization for speed +(@option{-O}, @option{-O2}, @dots{}). + +@item one +Use all functions as a single region. +This typically results in the smallest code size, and is enabled by default for +@option{-Os} or @option{-O0}. + +@end table @item -fira-loop-pressure @opindex fira-loop-pressure -Use IRA to evaluate register pressure in loops for decision to move -loop invariants. Usage of this option usually results in generation -of faster and smaller code on machines with big register files (>= 32 -registers) but it can slow compiler down. +Use IRA to evaluate register pressure in loops for decisions to move +loop invariants. This option usually results in generation +of faster and smaller code on machines with large register files (>= 32 +registers), but it can slow the compiler down. This option is enabled at level @option{-O3} for some targets. @item -fno-ira-share-save-slots @opindex fno-ira-share-save-slots -Switch off sharing stack slots used for saving call used hard -registers living through a call. Each hard register will get a -separate stack slot and as a result function stack frame will be -bigger. +Disable sharing of stack slots used for saving call-used hard +registers living through a call. Each hard register gets a +separate stack slot, and as a result function stack frames are +larger. @item -fno-ira-share-spill-slots @opindex fno-ira-share-spill-slots -Switch off sharing stack slots allocated for pseudo-registers. Each -pseudo-register which did not get a hard register will get a separate -stack slot and as a result function stack frame will be bigger. +Disable sharing of stack slots allocated for pseudo-registers. Each +pseudo-register that does not get a hard register gets a separate +stack slot, and as a result function stack frames are larger. @item -fira-verbose=@var{n} @opindex fira-verbose -Set up how verbose dump file for the integrated register allocator -will be. Default value is 5. If the value is greater or equal to 10, -the dump file will be stderr as if the value were @var{n} minus 10. +Control the verbosity of the dump file for the integrated register allocator. +The default value is 5. If the value @var{n} is greater or equal to 10, +the dump output is sent to stderr using the same format as @var{n} minus 10. @item -fdelayed-branch @opindex fdelayed-branch @@ -7102,7 +7111,7 @@ Perform matrix flattening and transposing. Matrix flattening tries to replace an @math{m}-dimensional matrix with its equivalent @math{n}-dimensional matrix, where @math{n < m}. This reduces the level of indirection needed for accessing the elements -of the matrix. The second optimization is matrix transposing that +of the matrix. The second optimization is matrix transposing, which attempts to change the order of the matrix's dimensions in order to improve cache locality. Both optimizations need the @option{-fwhole-program} flag. @@ -7162,7 +7171,7 @@ enabled by default at @option{-O} and higher. @item -ftree-dse @opindex ftree-dse Perform dead store elimination (DSE) on trees. A dead store is a store into -a memory location which will later be overwritten by another store without +a memory location that is later overwritten by another store without any intervening loads. In this case the earlier store can be deleted. This flag is enabled by default at @option{-O} and higher. @@ -7268,7 +7277,7 @@ ENDDO @end smallexample which can be beneficial when @code{M} is larger than the caches, because the innermost loop will iterate over a smaller amount of data -that can be kept in the caches. This optimization applies to all the +which can be kept in the caches. This optimization applies to all the languages supported by GCC and is not limited to Fortran. To use this code transformation, GCC has to be configured with @option{--with-ppl} and @option{--with-cloog} to enable the Graphite loop transformation @@ -7379,7 +7388,7 @@ store motion. @item -ftree-loop-ivcanon @opindex ftree-loop-ivcanon -Create a canonical counter for number of iterations in the loop for that +Create a canonical counter for number of iterations in loops for which determining number of iterations requires complicated analysis. Later optimizations then may determine the number easily. Useful especially in connection with unrolling. @@ -7754,11 +7763,11 @@ Do not reorder top-level functions, variables, and @code{asm} statements. Output them in the same order that they appear in the input file. When this option is used, unreferenced static variables will not be removed. This option is intended to support existing code -which relies on a particular ordering. For new code, it is better to +that relies on a particular ordering. For new code, it is better to use attributes. -Enabled at level @option{-O0}. When disabled explicitly, it also imply -@option{-fno-section-anchors} that is otherwise enabled at @option{-O0} on some +Enabled at level @option{-O0}. When disabled explicitly, it also implies +@option{-fno-section-anchors}, which is otherwise enabled at @option{-O0} on some targets. @item -fweb @@ -7868,7 +7877,7 @@ GIMPLE bytecodes and final object code. GCC automatically selects which files to optimize in LTO mode and which files to link without further processing. -There are some code generation flags that GCC preserves when +There are some code generation flags preserved by GCC when generating bytecodes, as they need to be used during the final link stage. Currently, the following options are saved into the GIMPLE bytecode files: @option{-fPIC}, @option{-fcommon} and all the @@ -8145,7 +8154,7 @@ This option causes the preprocessor macro @code{__FAST_MATH__} to be defined. This option is not turned on by any @option{-O} option besides @option{-Ofast} since it can result in incorrect output for programs -which depend on an exact implementation of IEEE or ISO rules/specifications +that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications. @@ -8157,7 +8166,7 @@ IEEE exceptions for math error handling may want to use this flag for speed while maintaining IEEE arithmetic compatibility. This option is not turned on by any @option{-O} option since -it can result in incorrect output for programs which depend on +it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications. @@ -8178,7 +8187,7 @@ or startup files that change the default FPU control word or other similar optimizations. This option is not turned on by any @option{-O} option since -it can result in incorrect output for programs which depend on +it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications. @@ -8194,7 +8203,7 @@ Allow re-association of operands in series of floating-point operations. This violates the ISO C and C++ language standard by possibly changing computation result. NOTE: re-ordering may change the sign of zero as well as ignore NaNs and inhibit or create underflow or overflow (and -thus cannot be used on a code which relies on rounding behavior like +thus cannot be used on code that relies on rounding behavior like @code{(x + 2**52) - 2**52}. May also reorder floating-point comparisons and thus may not be used when ordered comparisons are required. This option requires that both @option{-fno-signed-zeros} and @@ -8210,7 +8219,7 @@ The default is @option{-fno-associative-math}. Allow the reciprocal of a value to be used instead of dividing by the value if this enables optimizations. For example @code{x / y} -can be replaced with @code{x * (1/y)} which is useful if @code{(1/y)} +can be replaced with @code{x * (1/y)}, which is useful if @code{(1/y)} is subject to common subexpression elimination. Note that this loses precision and increases the number of flops operating on the value. @@ -8222,7 +8231,7 @@ Allow optimizations for floating-point arithmetic that assume that arguments and results are not NaNs or +-Infs. This option is not turned on by any @option{-O} option since -it can result in incorrect output for programs which depend on +it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications. @@ -8248,7 +8257,7 @@ that @option{-fno-signaling-nans} be in effect. Setting this option may allow faster code if one relies on ``non-stop'' IEEE arithmetic, for example. This option should never be turned on by any @option{-O} option since -it can result in incorrect output for programs which depend on +it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. @@ -8402,7 +8411,7 @@ the loop is entered. This usually makes programs run more slowly. @item -fpeel-loops @opindex fpeel-loops -Peels the loops for that there is enough information that they do not +Peels loops for which there is enough information that they do not roll much (from profile feedback). It also turns on complete loop peeling (i.e.@: complete removal of loops with small constant number of iterations). @@ -8504,7 +8513,7 @@ Not all targets support this option. @opindex param In some places, GCC uses various constants to control the amount of optimization that is done. For example, GCC will not inline functions -that contain more that a certain number of instructions. You can +that contain more than a certain number of instructions. You can control some of these constants on the command line using the @option{--param} option. @@ -8528,7 +8537,7 @@ more aggressive optimization, making the compilation time increase with probably small improvement in executable size. @item min-crossjump-insns -The minimum number of instructions which must be matched at the end +The minimum number of instructions that must be matched at the end of two blocks before crossjumping will be performed on them. This value is ignored in the case where all instructions in the block being crossjumped from are matched. The default value is 5. @@ -8605,7 +8614,7 @@ The limit specifying really large functions. For functions larger than this limit after inlining, inlining is constrained by @option{--param large-function-growth}. This parameter is useful primarily to avoid extreme compilation time caused by non-linear algorithms used by the -backend. +back end. The default value is 2700. @item large-function-growth @@ -8701,7 +8710,7 @@ to allow vectorization. The default value is 0. Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations. This is currently supported only in the code hoisting pass. The bigger the ratio, the more aggressive code hoisting -will be with simple expressions, i.e., the expressions which have cost +will be with simple expressions, i.e., the expressions that have cost less than @option{gcse-unrestricted-cost}. Specifying 0 will disable hoisting of simple expressions. The default value is 10. @@ -8722,7 +8731,7 @@ of huge functions. The default value is 30. @item max-tail-merge-comparisons The maximum amount of similar bbs to compare a bb with. This is used to -avoid quadratic behaviour in tree tail merging. The default value is 10. +avoid quadratic behavior in tree tail merging. The default value is 10. @item max-tail-merge-iterations The maximum amount of iterations of the pass over the function. This is used to @@ -8923,7 +8932,7 @@ by @option{ggc-min-expand}% beyond @option{ggc-min-heapsize}. Again, tuning this may improve compilation speed, and has no effect on code generation. -The default is the smaller of RAM/8, RLIMIT_RSS, or a limit which +The default is the smaller of RAM/8, RLIMIT_RSS, or a limit that tries to ensure that RLIMIT_DATA or RLIMIT_AS are not exceeded, but with a lower bound of 4096 (four megabytes) and an upper bound of 131072 (128 megabytes). If GCC is not able to calculate RAM on a @@ -9109,28 +9118,28 @@ function will not be done and optimizations depending on it will be disabled. The default maximum SCC size is 10000. @item ira-max-loops-num -IRA uses a regional register allocation by default. If a function -contains loops more than number given by the parameter, only at most -given number of the most frequently executed loops will form regions -for the regional register allocation. The default value of the +IRA uses regional register allocation by default. If a function +contains more loops than the number given by this parameter, only at most +the given number of the most frequently-executed loops form regions +for regional register allocation. The default value of the parameter is 100. -@item ira-max-conflict-table-size -Although IRA uses a sophisticated algorithm of compression conflict -table, the table can be still big for huge functions. If the conflict -table for a function could be more than size in MB given by the -parameter, the conflict table is not built and faster, simpler, and -lower quality register allocation algorithm will be used. The -algorithm do not use pseudo-register conflicts. The default value of -the parameter is 2000. +@item ira-max-conflict-table-size +Although IRA uses a sophisticated algorithm to compress the conflict +table, the table can still require excessive amounts of memory for +huge functions. If the conflict table for a function could be more +than the size in MB given by this parameter, the register allocator +instead uses a faster, simpler, and lower-quality +algorithm that does not require building a pseudo-register conflict table. +The default value of the parameter is 2000. @item ira-loop-reserved-regs IRA can be used to evaluate more accurate register pressure in loops -for decision to move loop invariants (see @option{-O3}). The number -of available registers reserved for some other purposes is described -by this parameter. The default value of the parameter is 2 which is -minimal number of registers needed for execution of typical -instruction. This value is the best found from numerous experiments. +for decisions to move loop invariants (see @option{-O3}). The number +of available registers reserved for some other purposes is given +by this parameter. The default value of the parameter is 2, which is +the minimal number of registers needed by typical instructions. +This value is the best found from numerous experiments. @item loop-invariant-max-bbs-in-loop Loop invariant motion can be very expensive, both in compilation time and @@ -9295,7 +9304,7 @@ options instead. @item -Xpreprocessor @var{option} @opindex Xpreprocessor Pass @var{option} as an option to the preprocessor. You can use this to -supply system-specific preprocessor options which GCC does not know how to +supply system-specific preprocessor options that GCC does not know how to recognize. If you want to pass an option that takes an argument, you must use @@ -9319,7 +9328,7 @@ contains commas, it is split into multiple options at the commas. @item -Xassembler @var{option} @opindex Xassembler Pass @var{option} as an option to the assembler. You can use this to -supply system-specific assembler options which GCC does not know how to +supply system-specific assembler options that GCC does not know how to recognize. If you want to pass an option that takes an argument, you must use @@ -9429,7 +9438,7 @@ mechanism when this option is specified. @cindex unresolved references and @option{-nodefaultlibs} One of the standard libraries bypassed by @option{-nostdlib} and @option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines -that GCC uses to overcome shortcomings of particular machines, or special +which GCC uses to overcome shortcomings of particular machines, or special needs for some languages. (@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler Collection (GCC) Internals}, @@ -9444,7 +9453,7 @@ GNU Compiler Collection (GCC) Internals}.) @item -pie @opindex pie -Produce a position independent executable on targets which support it. +Produce a position independent executable on targets that support it. For predictable results, you must also specify the same set of options that were used to generate code (@option{-fpie}, @option{-fPIE}, or model suboptions) when you specify this option. @@ -9546,8 +9555,7 @@ when linking to avoid references to undefined symbols. @item -Xlinker @var{option} @opindex Xlinker Pass @var{option} as an option to the linker. You can use this to -supply system-specific linker options which GCC does not know how to -recognize. +supply system-specific linker options that GCC does not recognize. If you want to pass an option that takes a separate argument, you must use @option{-Xlinker} twice, once for the option and once for the argument. @@ -9610,7 +9618,7 @@ If you really need to change the search order for system directories, use the @option{-nostdinc} and/or @option{-isystem} options. @item -iplugindir=@var{dir} -Set the directory to search for plugins which are passed +Set the directory to search for plugins that are passed by @option{-fplugin=@var{name}} instead of @option{-fplugin=@var{path}/@var{name}.so}. This option is not meant to be used by the user, but only passed by the driver. @@ -9639,7 +9647,7 @@ without @samp{@var{machine}/@var{version}/} (@pxref{Target Options}). For each subprogram to be run, the compiler driver first tries the @option{-B} prefix, if any. If that name is not found, or if @option{-B} -was not specified, the driver tries two standard prefixes, which are +was not specified, the driver tries two standard prefixes, @file{/usr/lib/gcc/} and @file{/usr/local/lib/gcc/}. If neither of those results in a file name that is found, the unmodified program name is searched for using the directories specified in your @@ -9673,7 +9681,7 @@ with boot-strapping the compiler. @item -specs=@var{file} @opindex specs Process @var{file} after the compiler reads in the standard @file{specs} -file, in order to override the defaults that the @file{gcc} driver +file, in order to override the defaults which the @file{gcc} driver program uses when determining what switches to pass to @file{cc1}, @file{cc1plus}, @file{as}, @file{ld}, etc. More than one @option{-specs=@var{file}} can be specified on the command line, and they @@ -9712,7 +9720,7 @@ In addition, the @option{-I-} option inhibits the use of the current directory (where the current input file came from) as the first search directory for @samp{#include "@var{file}"}. There is no way to override this effect of @option{-I-}. With @option{-I.} you can specify -searching the directory which was current when the compiler was +searching the directory that was current when the compiler was invoked. That is not exactly the same as what the preprocessor does by default, but it is often satisfactory. @@ -9741,7 +9749,7 @@ a spec file. @dfn{Spec files} are plaintext files that are used to construct spec strings. They consist of a sequence of directives separated by blank lines. The type of directive is determined by the first non-whitespace -character on the line and it can be one of the following: +character on the line, which can be one of the following: @table @code @item %@var{command} @@ -10446,7 +10454,7 @@ for direct calls. The default is @option{-mlong-calls}. @item -msmall16 @opindex msmall16 -Assume addresses can be loaded as 16 bit unsigned values. This does not +Assume addresses can be loaded as 16-bit unsigned values. This does not apply to function addresses for which @option{-mlong-calls} semantics are in effect. @@ -10493,8 +10501,8 @@ The default is @option{-mfp-mode=caller} @opindex mno-postinc @item -mno-postmodify @opindex mno-postmodify -Code generation tweaks that disable, respectively, splitting of 32 -bit loads, generation of post-increment addresses, and generation of +Code generation tweaks that disable, respectively, splitting of 32-bit +loads, generation of post-increment addresses, and generation of post-modify addresses. The defaults are @option{msplit-lohi}, @option{-mpost-inc}, and @option{-mpost-modify}. @@ -10583,7 +10591,7 @@ Generate reentrant, position independent code. The default is @item -mthumb-interwork @opindex mthumb-interwork -Generate code which supports calling between the ARM and Thumb +Generate code that supports calling between the ARM and Thumb instruction sets. Without this option, on pre-v5 architectures, the two instruction sets cannot be reliably used inside one program. The default is @option{-mno-thumb-interwork}, since slightly larger code @@ -10592,7 +10600,7 @@ configurations this option is meaningless. @item -mno-sched-prolog @opindex mno-sched-prolog -Prevent the reordering of instructions in the function prolog, or the +Prevent the reordering of instructions in the function prologue, or the merging of those instruction with the instructions in the function's body. This means that all functions will start with a recognizable set of instructions (or in fact one of a choice from a small set of @@ -10673,7 +10681,7 @@ See @option{-mtune} for more information. @option{-mcpu=native} causes the compiler to auto-detect the CPU of the build computer. At present, this feature is only supported on -Linux, and not all architectures are recognised. If the auto-detect is +Linux, and not all architectures are recognized. If the auto-detect is unsuccessful the option has no effect. @item -mtune=@var{name} @@ -10696,7 +10704,7 @@ this option may change in future GCC versions as CPU models come and go. @option{-mtune=native} causes the compiler to auto-detect the CPU of the build computer. At present, this feature is only supported on -Linux, and not all architectures are recognised. If the auto-detect is +Linux, and not all architectures are recognized. If the auto-detect is unsuccessful the option has no effect. @item -march=@var{name} @@ -10714,7 +10722,7 @@ of the @option{-mcpu=} option. Permissible names are: @samp{armv2}, @option{-march=native} causes the compiler to auto-detect the architecture of the build computer. At present, this feature is only supported on -Linux, and not all architectures are recognised. If the auto-detect is +Linux, and not all architectures are recognized. If the auto-detect is unsuccessful the option has no effect. @item -mfpu=@var{name} @@ -10783,7 +10791,7 @@ version of subroutine call instruction. Even if this switch is enabled, not all function calls will be turned into long calls. The heuristic is that static functions, functions -which have the @samp{short-call} attribute, functions that are inside +that have the @samp{short-call} attribute, functions that are inside the scope of a @samp{#pragma no_long_calls} directive and functions whose definitions have already been compiled within the current compilation unit, will not be turned into long calls. The exception to this rule is @@ -10909,7 +10917,7 @@ this option and always use the original scheme. @item -mword-relocations @opindex mword-relocations -Only generate absolute relocations on word sized values (i.e. R_ARM_ABS32). +Only generate absolute relocations on word-sized values (i.e. R_ARM_ABS32). This is enabled by default on targets (uClinux, SymbianOS) where the runtime loader imposes this restriction, and when @option{-fpic} or @option{-fPIC} is specified. @@ -11011,7 +11019,7 @@ executables because arguments need not to be removed from the stack after such a function call. This option can lead to reduced code size for functions that perform -several calls to functions which get their arguments on the stack like +several calls to functions that get their arguments on the stack like calls to printf-like functions. @item -mbranch-cost=@var{cost} @@ -11027,7 +11035,7 @@ subroutines. Code size will be smaller. @item -mint8 @opindex mint8 -Assume int to be 8 bit integer. This affects the sizes of all types: A +Assume int to be 8-bit integer. This affects the sizes of all types: a char will be 1 byte, an int will be 1 byte, a long will be 2 bytes and long long will be 4 bytes. Please note that this option does not comply to the C standards, but it will provide you with smaller code @@ -11208,7 +11216,7 @@ For even more AVR-specific built-in macros see @table @code @item __AVR_@var{Device}__ -Setting @code{-mmcu=@var{device}} defines this built-in macro that reflects +Setting @code{-mmcu=@var{device}} defines this built-in macro which reflects the device's name. For example, @code{-mmcu=atmega8} will define the built-in macro @code{__AVR_ATmega8__}, @code{-mmcu=attiny261a} defines @code{__AVR_ATtiny261A__}, etc. @@ -11217,7 +11225,7 @@ The built-in macros' names follow the scheme @code{__AVR_@var{Device}__} where @var{Device} is the device name as from the AVR user manual. The difference between @var{Device} in the built-in macro and @var{device} in -@code{-mmcu=@var{device}} is that the latter is always lower case. +@code{-mmcu=@var{device}} is that the latter is always lowercase. @item __AVR_HAVE_RAMPZ__ @item __AVR_HAVE_ELPM__ @@ -11257,7 +11265,7 @@ with up to 128@tie{}KiB of program memory. @item __AVR_HAVE_8BIT_SP__ @item __AVR_HAVE_16BIT_SP__ -The stack pointer (SP) is 8@tie{}bits resp. 16@tie{}bits wide. +The stack pointer (SP) is respectively 8 or 16 bits wide. The definition of these macros is affected by @code{-mtiny-stack}. @item __NO_INTERRUPTS__ @@ -11328,7 +11336,7 @@ Certain other options, such as @option{-mid-shared-library} and Don't keep the frame pointer in a register for leaf functions. This avoids the instructions to save, set up and restore frame pointers and makes an extra register available in leaf functions. The option -@option{-fomit-frame-pointer} removes the frame pointer for all functions +@option{-fomit-frame-pointer} removes the frame pointer for all functions, which might make debugging harder. @item -mspecld-anomaly @@ -11416,7 +11424,7 @@ This is the default. Tells the compiler to perform function calls by first loading the address of the function into a register and then performing a subroutine call on this register. This switch is needed if the target function -will lie outside of the 24 bit addressing range of the offset based +lies outside of the 24-bit addressing range of the offset-based version of subroutine call instruction. This feature is not enabled by default. Specifying @@ -11493,11 +11501,11 @@ assembly code. Permissible names are: @samp{c62x}, @item -mbig-endian @opindex mbig-endian -Generate code for a big endian target. +Generate code for a big-endian target. @item -mlittle-endian @opindex mlittle-endian -Generate code for a little endian target. This is the default. +Generate code for a little-endian target. This is the default. @item -msim @opindex msim @@ -11619,7 +11627,7 @@ arrange for stack-frame, writable data and constants to all be 32-bit, @opindex mno-prologue-epilogue @opindex mprologue-epilogue With @option{-mno-prologue-epilogue}, the normal function prologue and -epilogue that sets up the stack-frame are omitted and no return +epilogue which set up the stack frame are omitted and no return instructions or return sequences are generated in the code. Use this option only together with visual inspection of the compiled code: no warnings or errors are generated when call-saved registers must be saved, @@ -11779,7 +11787,7 @@ is @var{version}. Typical values of @var{version} include @code{10.1}, If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the -compiler is running, otherwise the default is to make choices which +compiler is running, otherwise the default is to make choices that are compatible with as many systems and code bases as possible. @item -mkernel @@ -12318,7 +12326,7 @@ routine for the debugger. @item -mmalloc64 @opindex mmalloc64 -Default to 64bit memory allocation routines. +Default to 64-bit memory allocation routines. @end table @node FR30 Options @@ -12432,7 +12440,7 @@ Do not use multiply and add/subtract instructions. @item -mfdpic @opindex mfdpic -Select the FDPIC ABI, that uses function descriptors to represent +Select the FDPIC ABI, which uses function descriptors to represent pointers to functions. Without any PIC/PIE-related options, it implies @option{-fPIE}. With @option{-fpic} or @option{-fpie}, it assumes GOT entries and small data are within a 12-bit range from the @@ -12736,9 +12744,9 @@ Make @code{int} data 32 bits by default. @item -malign-300 @opindex malign-300 On the H8/300H and H8S, use the same alignment rules as for the H8/300. -The default for the H8/300H and H8S is to align longs and floats on 4 -byte boundaries. -@option{-malign-300} causes them to be aligned on 2 byte boundaries. +The default for the H8/300H and H8S is to align longs and floats on +4-byte boundaries. +@option{-malign-300} causes them to be aligned on 2-byte boundaries. This option has no effect on the H8/300. @end table @@ -12801,7 +12809,7 @@ Such code is suitable for level 0 PA systems and kernels. @item -mfast-indirect-calls @opindex mfast-indirect-calls Generate code that assumes calls never cross space boundaries. This -allows GCC to emit code which performs faster indirect calls. +allows GCC to emit code that performs faster indirect calls. This option will not work in the presence of shared libraries or nested functions. @@ -12875,7 +12883,7 @@ are passed to that ld. The ld that is called is determined by the @option{--with-ld} configure option, GCC's program search path, and finally by the user's @env{PATH}. The linker used by GCC can be printed using @samp{which `gcc -print-prog-name=ld`}. This option is only available -on the 64 bit HP-UX GCC, i.e.@: configured with @samp{hppa*64*-*-hpux*}. +on the 64-bit HP-UX GCC, i.e.@: configured with @samp{hppa*64*-*-hpux*}. @item -mhp-ld @opindex mhp-ld @@ -12887,7 +12895,7 @@ which ld is called, it only changes what parameters are passed to that ld. The ld that is called is determined by the @option{--with-ld} configure option, GCC's program search path, and finally by the user's @env{PATH}. The linker used by GCC can be printed using @samp{which -`gcc -print-prog-name=ld`}. This option is only available on the 64 bit +`gcc -print-prog-name=ld`}. This option is only available on the 64-bit HP-UX GCC, i.e.@: configured with @samp{hppa*64*-*-hpux*}. @item -mlong-calls @@ -13146,7 +13154,7 @@ effective. For the x86-64 compiler, these extensions are enabled by default. The resulting code should be considerably faster in the majority of cases and avoid the numerical instability problems of 387 code, but may break some existing -code that expects temporaries to be 80bit. +code that expects temporaries to be 80 bits. This is the default choice for the x86-64 compiler. @@ -13215,9 +13223,9 @@ instructions are not generated unless you also use the @opindex malign-double @opindex mno-align-double Control whether GCC aligns @code{double}, @code{long double}, and -@code{long long} variables on a two word boundary or a one word -boundary. Aligning @code{double} variables on a two word boundary will -produce code that runs somewhat faster on a @samp{Pentium} at the +@code{long long} variables on a two-word boundary or a one-word +boundary. Aligning @code{double} variables on a two-word boundary +produces code that runs somewhat faster on a @samp{Pentium} at the expense of more memory. On x86-64, @option{-malign-double} is enabled by default. @@ -13234,17 +13242,17 @@ without that switch. @opindex m128bit-long-double These switches control the size of @code{long double} type. The i386 application binary interface specifies the size to be 96 bits, -so @option{-m96bit-long-double} is the default in 32 bit mode. +so @option{-m96bit-long-double} is the default in 32-bit mode. -Modern architectures (Pentium and newer) would prefer @code{long double} -to be aligned to an 8 or 16 byte boundary. In arrays or structures -conforming to the ABI, this would not be possible. So specifying a -@option{-m128bit-long-double} will align @code{long double} -to a 16 byte boundary by padding the @code{long double} with an additional -32 bit zero. +Modern architectures (Pentium and newer) prefer @code{long double} +to be aligned to an 8- or 16-byte boundary. In arrays or structures +conforming to the ABI, this is not possible. So specifying +@option{-m128bit-long-double} aligns @code{long double} +to a 16-byte boundary by padding the @code{long double} with an additional +32-bit zero. In the x86-64 compiler, @option{-m128bit-long-double} is the default choice as -its ABI specifies that @code{long double} is to be aligned on 16 byte boundary. +its ABI specifies that @code{long double} is to be aligned on 16-byte boundary. Notice that neither of these options enable any extra precision over the x87 standard of 80 bits for a @code{long double}. @@ -13367,10 +13375,10 @@ boundary. If @option{-mincoming-stack-boundary} is not specified, the one specified by @option{-mpreferred-stack-boundary} will be used. On Pentium and PentiumPro, @code{double} and @code{long double} values -should be aligned to an 8 byte boundary (see @option{-malign-double}) or +should be aligned to an 8-byte boundary (see @option{-malign-double}) or suffer significant run time performance penalties. On Pentium III, the Streaming SIMD Extension (SSE) data type @code{__m128} may not work -properly if it is not 16 byte aligned. +properly if it is not 16-byte aligned. To ensure proper alignment of this values on the stack, the stack boundary must be as aligned as that required by any value stored on the stack. @@ -13464,7 +13472,7 @@ generates new AVX instructions or AVX equivalence for all SSEx instructions when needed. These options will enable GCC to use these extended instructions in -generated code, even without @option{-mfpmath=sse}. Applications which +generated code, even without @option{-mfpmath=sse}. Applications that perform run-time CPU detection must compile separate files for each supported architecture, using the appropriate flags. In particular, the file containing the CPU detection code should be compiled without @@ -13478,7 +13486,7 @@ the DF flag to select between autoincrement or autodecrement mode. While the ABI specifies the DF flag to be cleared on function entry, some operating systems violate this specification by not clearing the DF flag in their exception dispatchers. The exception handler can be invoked with the DF flag -set which leads to wrong direction mode, when string instructions are used. +set, which leads to wrong direction mode when string instructions are used. This option can be enabled by default on 32-bit x86 targets by configuring GCC with the @option{--enable-cld} configure option. Generation of @code{cld} instructions can be suppressed with the @option{-mno-cld} compiler option @@ -13544,7 +13552,7 @@ doesn't need @option{-mrecip}. @item -mrecip=@var{opt} @opindex mrecip=opt This option allows to control which reciprocal estimate instructions -may be used. @var{opt} is a comma separated list of options, that may +may be used. @var{opt} is a comma separated list of options, which may be preceded by a @code{!} to invert the option: @code{all}: enable all estimate instructions, @code{default}: enable the default instructions, equivalent to @option{-mrecip}, @@ -13631,8 +13639,9 @@ but GCC doesn't know about it. @item -minline-all-stringops @opindex minline-all-stringops -By default GCC inlines string operations only when destination is known to be -aligned at least to 4 byte boundary. This enables more inlining, increase code +By default GCC inlines string operations only when the destination is +known to be aligned to least a 4-byte boundary. +This enables more inlining, increase code size, but may improve performance of code that depends on fast memcpy, strlen and memset for short lengths. @@ -13654,7 +13663,7 @@ expanding inline loop, @code{libcall} for always expanding library call. Don't keep the frame pointer in a register for leaf functions. This avoids the instructions to save, set up and restore frame pointers and makes an extra register available in leaf functions. The option -@option{-fomit-frame-pointer} removes the frame pointer for all functions +@option{-fomit-frame-pointer} removes the frame pointer for all functions, which might make debugging harder. @item -mtls-direct-seg-refs @@ -13835,11 +13844,11 @@ These are the @samp{-m} options defined for the Intel IA-64 architecture. @table @gcctabopt @item -mbig-endian @opindex mbig-endian -Generate code for a big endian target. This is the default for HP-UX@. +Generate code for a big-endian target. This is the default for HP-UX@. @item -mlittle-endian @opindex mlittle-endian -Generate code for a little endian target. This is the default for AIX5 +Generate code for a little-endian target. This is the default for AIX5 and GNU/Linux. @item -mgnu-as @@ -14124,7 +14133,7 @@ routine for the debugger. @item -mmalloc64 @opindex mmalloc64 -Default to 64bit memory allocation routines. +Default to 64-bit memory allocation routines. @end table @node LM32 Options @@ -14511,7 +14520,7 @@ deprecated in favor of that option. @item -m68020-40 @opindex m68020-40 Generate output for a 68040, without using any of the new instructions. -This results in code which can run relatively efficiently on either a +This results in code that can run relatively efficiently on either a 68020/68881 or a 68030 or a 68040. The generated code does use the 68881 instructions that are emulated on the 68040. @@ -14520,7 +14529,7 @@ The option is equivalent to @option{-march=68020} @option{-mtune=68020-40}. @item -m68020-60 @opindex m68020-60 Generate output for a 68060, without using any of the new instructions. -This results in code which can run relatively efficiently on either a +This results in code that can run relatively efficiently on either a 68020/68881 or a 68030 or a 68040. The generated code does use the 68881 instructions that are emulated on the 68060. @@ -14733,7 +14742,7 @@ Always treat bit-fields as int-sized. @itemx -mno-4byte-functions @opindex m4byte-functions @opindex mno-4byte-functions -Force all functions to be aligned to a four byte boundary. +Force all functions to be aligned to a 4-byte boundary. @item -mcallgraph-data @itemx -mno-callgraph-data @@ -14751,7 +14760,7 @@ Prefer word access when reading byte quantities. @itemx -mbig-endian @opindex mlittle-endian @opindex mbig-endian -Generate code for a little endian target. +Generate code for a little-endian target. @item -m210 @itemx -m340 @@ -14767,7 +14776,7 @@ simulator library (@file{libsim.a)} from the linker command line. @item -mstack-increment=@var{size} @opindex mstack-increment Set the maximum amount for a single stack increment operation. Large -values can increase the speed of programs which contain functions +values can increase the speed of programs that contain functions that need a large amount of stack space, but they can also trigger a segmentation fault if the stack is extended too much. The default value is 0x1000. @@ -14801,7 +14810,7 @@ registers. @opindex mbased= Variables of size @var{n} bytes or smaller will be placed in the @code{.based} section by default. Based variables use the @code{$tp} -register as a base register, and there is a 128 byte limit to the +register as a base register, and there is a 128-byte limit to the @code{.based} section. @item -mbitops @@ -14901,7 +14910,7 @@ low-overhead looping. @item -ms @opindex ms Causes all variables to default to the @code{.tiny} section. Note -that there is a 65536 byte limit to this section. Accesses to these +that there is a 65536-byte limit to this section. Accesses to these variables use the @code{%gp} base register. @item -msatur @@ -14933,7 +14942,7 @@ this option, functions default to the @code{.near} section. Variables that are @var{n} bytes or smaller will be allocated to the @code{.tiny} section. These variables use the @code{$gp} base register. The default for this option is 4, but note that there's a -65536 byte limit to the @code{.tiny} section. +65536-byte limit to the @code{.tiny} section. @end table @@ -15798,7 +15807,7 @@ Enable or disable use of Branch Likely instructions, regardless of the default for the selected architecture. By default, Branch Likely instructions may be generated if they are supported by the selected architecture. An exception is for the MIPS32 and MIPS64 architectures -and processors which implement those architectures; for those, Branch +and processors that implement those architectures; for those, Branch Likely instructions will not be generated by default because the MIPS32 and MIPS64 architectures specifically deprecate their use. @@ -15982,20 +15991,20 @@ MN10300 processors. @item -mam33 @opindex mam33 -Generate code which uses features specific to the AM33 processor. +Generate code using features specific to the AM33 processor. @item -mno-am33 @opindex mno-am33 -Do not generate code which uses features specific to the AM33 processor. This +Do not generate code using features specific to the AM33 processor. This is the default. @item -mam33-2 @opindex mam33-2 -Generate code which uses features specific to the AM33/2.0 processor. +Generate code using features specific to the AM33/2.0 processor. @item -mam34 @opindex mam34 -Generate code which uses features specific to the AM34 processor. +Generate code using features specific to the AM34 processor. @item -mtune=@var{cpu-type} @opindex mtune @@ -16006,7 +16015,7 @@ type. The CPU type must be one of @samp{mn10300}, @samp{am33}, @item -mreturn-pointer-on-d0 @opindex mreturn-pointer-on-d0 -When generating a function which returns a pointer, return the pointer +When generating a function that returns a pointer, return the pointer in both @code{a0} and @code{d0}. Otherwise, the pointer is returned only in a0, and attempts to call such functions without a prototype would result in errors. Note that this option is on by default; use @@ -16184,13 +16193,13 @@ rather than being permanently enabled. @item -mno-inefficient-warnings Disables warnings about the generation of inefficient code. These -warnings can be generated, for example, when compiling code which +warnings can be generated, for example, when compiling code that performs byte-level memory operations on the MAC AE type. The MAC AE has no hardware support for byte-level memory operations, so all byte load/stores must be synthesized from word load/store operations. This is inefficient and a warning will be generated indicating to the programmer that they should rewrite the code to avoid byte operations, or to target -an AE type which has the necessary hardware support. This option enables +an AE type that has the necessary hardware support. This option enables the warning to be turned off. @end table @@ -16677,10 +16686,10 @@ Perform optimizations for the floating-point unit on Xilinx PPC 405/440. Generate code that uses (does not use) the load multiple word instructions and the store multiple word instructions. These instructions are generated by default on POWER systems, and not -generated on PowerPC systems. Do not use @option{-mmultiple} on little -endian PowerPC systems, since those instructions do not work when the -processor is in little endian mode. The exceptions are PPC740 and -PPC750 which permit the instructions usage in little endian mode. +generated on PowerPC systems. Do not use @option{-mmultiple} on little-endian +PowerPC systems, since those instructions do not work when the +processor is in little-endian mode. The exceptions are PPC740 and +PPC750 which permit these instructions in little-endian mode. @item -mstring @itemx -mno-string @@ -16690,10 +16699,10 @@ Generate code that uses (does not use) the load string instructions and the store string word instructions to save multiple registers and do small block moves. These instructions are generated by default on POWER systems, and not generated on PowerPC systems. Do not use -@option{-mstring} on little endian PowerPC systems, since those -instructions do not work when the processor is in little endian mode. -The exceptions are PPC740 and PPC750 which permit the instructions -usage in little endian mode. +@option{-mstring} on little-endian PowerPC systems, since those +instructions do not work when the processor is in little-endian mode. +The exceptions are PPC740 and PPC750 which permit these instructions +in little-endian mode. @item -mupdate @itemx -mno-update @@ -16754,9 +16763,9 @@ and unions that contain bit-fields to be aligned to the base type of the bit-field. For example, by default a structure containing nothing but 8 -@code{unsigned} bit-fields of length 1 would be aligned to a 4 byte -boundary and have a size of 4 bytes. By using @option{-mno-bit-align}, -the structure would be aligned to a 1 byte boundary and be one byte in +@code{unsigned} bit-fields of length 1 is aligned to a 4-byte +boundary and has a size of 4 bytes. By using @option{-mno-bit-align}, +the structure is aligned to a 1-byte boundary and is 1 byte in size. @item -mno-strict-align @@ -16777,7 +16786,7 @@ PowerPC system loader should relocate the entire contents of a table of 32-bit addresses generated by this option. For this to work, all objects linked together must be compiled with @option{-mrelocatable} or @option{-mrelocatable-lib}. -@option{-mrelocatable} code aligns the stack to an 8 byte boundary. +@option{-mrelocatable} code aligns the stack to an 8-byte boundary. @item -mrelocatable-lib @itemx -mno-relocatable-lib @@ -16803,7 +16812,7 @@ used in the program. @opindex mlittle @opindex mlittle-endian On System V.4 and embedded PowerPC systems compile code for the -processor in little endian mode. The @option{-mlittle-endian} option is +processor in little-endian mode. The @option{-mlittle-endian} option is the same as @option{-mlittle}. @item -mbig @@ -16811,7 +16820,7 @@ the same as @option{-mlittle}. @opindex mbig @opindex mbig-endian On System V.4 and embedded PowerPC systems compile code for the -processor in big endian mode. The @option{-mbig-endian} option is +processor in big-endian mode. The @option{-mbig-endian} option is the same as @option{-mbig}. @item -mdynamic-no-pic @@ -16845,7 +16854,7 @@ by the target during instruction scheduling. The argument @var{all}: all dependences are costly, @var{true_store_to_load}: a true dependence from store to load is costly, @var{store_to_load}: any dependence from store to load is costly, -@var{number}: any dependence which latency >= @var{number} is costly. +@var{number}: any dependence for which latency >= @var{number} is costly. @item -minsert-sched-nops=@var{scheme} @opindex minsert-sched-nops @@ -16853,7 +16862,7 @@ This option controls which nop insertion scheme will be used during the second scheduling pass. The argument @var{scheme} takes one of the following values: @var{no}: Don't insert nops. -@var{pad}: Pad with nops any dispatch group which has vacant issue slots, +@var{pad}: Pad with nops any dispatch group that has vacant issue slots, according to the scheduler's grouping. @var{regroup_exact}: Insert nops to force costly dependent insns into separate groups. Insert exactly as many nops as needed to force an insn @@ -16993,11 +17002,11 @@ header to indicate that @samp{eabi} extended relocations are used. On System V.4 and embedded PowerPC systems do (do not) adhere to the Embedded Applications Binary Interface (eabi) which is a set of modifications to the System V.4 specifications. Selecting @option{-meabi} -means that the stack is aligned to an 8 byte boundary, a function +means that the stack is aligned to an 8-byte boundary, a function @code{__eabi} is called to from @code{main} to set up the eabi environment, and the @option{-msdata} option can use both @code{r2} and @code{r13} to point to two separate small data areas. Selecting -@option{-mno-eabi} means that the stack is aligned to a 16 byte boundary, +@option{-mno-eabi} means that the stack is aligned to a 16-byte boundary, do not call an initialization function from @code{main}, and the @option{-msdata} option will only use @code{r13} to point to a single small data area. The @option{-meabi} option is on by default if you @@ -17141,7 +17150,7 @@ roots. @item -mrecip=@var{opt} @opindex mrecip=opt This option allows to control which reciprocal estimate instructions -may be used. @var{opt} is a comma separated list of options, that may +may be used. @var{opt} is a comma separated list of options, which may be preceded by a @code{!} to invert the option: @code{all}: enable all estimate instructions, @code{default}: enable the default instructions, equivalent to @option{-mrecip}, @@ -17207,7 +17216,7 @@ the floating-point number is too large to fit in an integer. @opindex mpointers-to-nested-functions Generate (do not generate) code to load up the static chain register (@var{r11}) when calling through a pointer on AIX and 64-bit Linux -systems where a function pointer points to a 3 word descriptor giving +systems where a function pointer points to a 3-word descriptor giving the function address, TOC value to be loaded in register @var{r2}, and static chain value to be loaded in register @var{r11}. The @option{-mpointers-to-nested-functions} is on by default. You will @@ -17276,7 +17285,7 @@ selected. @opindex mbig-endian-data @opindex mlittle-endian-data Store data (but not code) in the big-endian format. The default is -@option{-mlittle-endian-data}, i.e.@: to store data in the little endian +@option{-mlittle-endian-data}, i.e.@: to store data in the little-endian format. @item -msmall-data-limit=@var{N} @@ -17292,7 +17301,7 @@ could result in slower and/or larger code if variables which once could have been held in the reserved register are now pushed onto the stack. -Note, common variables (variables which have not been initialised) and +Note, common variables (variables that have not been initialized) and constants are not placed into the small data area as they are assigned to other sections in the output executable. @@ -17431,7 +17440,7 @@ instructions. This is the default for @option{-march=z9-ec} or higher. @opindex mlong-double-64 @opindex mlong-double-128 These switches control the size of @code{long double} type. A size -of 64bit makes the @code{long double} type equivalent to the @code{double} +of 64 bits makes the @code{long double} type equivalent to the @code{double} type. This is the default. @item -mbackchain @@ -17569,7 +17578,7 @@ hardware floating point is used. @opindex mwarn-framesize Emit a warning if the current function exceeds the given frame size. Because this is a compile-time check it doesn't need to be a real problem when the program -runs. It is intended to identify functions which most probably cause +runs. It is intended to identify functions that most probably cause a stack overflow. It is useful to be used in an environment with limited stack size e.g.@: the linux kernel. @@ -17606,11 +17615,11 @@ These options are defined for Score implementations: @table @gcctabopt @item -meb @opindex meb -Compile code for big endian mode. This is the default. +Compile code for big-endian mode. This is the default. @item -mel @opindex mel -Compile code for little endian mode. +Compile code for little-endian mode. @item -mnhwloop @opindex mnhwloop @@ -17731,11 +17740,11 @@ instructions at the moment. @item -mb @opindex mb -Compile code for the processor in big endian mode. +Compile code for the processor in big-endian mode. @item -ml @opindex ml -Compile code for the processor in little endian mode. +Compile code for the processor in little-endian mode. @item -mdalign @opindex mdalign @@ -17785,7 +17794,7 @@ Mark the @code{MAC} register as call-clobbered, even if @opindex mieee Increase IEEE compliance of floating-point code. At the moment, this is equivalent to @option{-fno-finite-math-only}. -When generating 16 bit SH opcodes, getting IEEE-conforming results for +When generating 16-bit SH opcodes, getting IEEE-conforming results for comparisons of NANs / infinities incurs extra overhead in every floating-point comparison, therefore the default is set to @option{-ffinite-math-only}. @@ -17884,7 +17893,7 @@ needed for unwinding to avoid changing the stack frame around conditional code. @item -mdivsi3_libfunc=@var{name} @opindex mdivsi3_libfunc=@var{name} -Set the name of the library function used for 32 bit signed division to +Set the name of the library function used for 32-bit signed division to @var{name}. This only affect the name used in the call and inv:call division strategies, and the compiler will still expect the same sets of input/output/clobbered registers as if this option was not present. @@ -17906,12 +17915,12 @@ TARGET_ADJUST_UNROLL_MAX target hook. @item -mindexed-addressing @opindex mindexed-addressing Enable the use of the indexed addressing mode for SHmedia32/SHcompact. -This is only safe if the hardware and/or OS implement 32 bit wrap-around +This is only safe if the hardware and/or OS implement 32-bit wrap-around semantics for the indexed addressing mode. The architecture allows the -implementation of processors with 64 bit MMU, which the OS could use to -get 32 bit addressing, but since no current hardware implementation supports +implementation of processors with 64-bit MMU, which the OS could use to +get 32-bit addressing, but since no current hardware implementation supports this or any other way to make the indexed addressing mode safe to use in -the 32 bit ABI, the default is -mno-indexed-addressing. +the 32-bit ABI, the default is @option{-mno-indexed-addressing}. @item -mgettrcost=@var{number} @opindex mgettrcost=@var{number} @@ -18065,11 +18074,11 @@ this is much slower than calling the ABI library routines. Thus the @itemx -munaligned-doubles @opindex mno-unaligned-doubles @opindex munaligned-doubles -Assume that doubles have 8 byte alignment. This is the default. +Assume that doubles have 8-byte alignment. This is the default. -With @option{-munaligned-doubles}, GCC assumes that doubles have 8 byte +With @option{-munaligned-doubles}, GCC assumes that doubles have 8-byte alignment only if they are contained in another type, or if they have an -absolute address. Otherwise, it assumes they have 4 byte alignment. +absolute address. Otherwise, it assumes they have 4-byte alignment. Specifying this option avoids some rare compatibility problems with code generated by other compilers. It is not the default because it results in a performance loss, especially for floating-point code. @@ -18079,7 +18088,7 @@ in a performance loss, especially for floating-point code. @opindex mno-faster-structs @opindex mfaster-structs With @option{-mfaster-structs}, the compiler assumes that structures -should have 8 byte alignment. This enables the use of pairs of +should have 8-byte alignment. This enables the use of pairs of @code{ldd} and @code{std} instructions for copies in structure assignment, in place of twice as many @code{ld} and @code{st} pairs. However, the use of this changed alignment directly violates the SPARC @@ -18187,7 +18196,7 @@ native Solaris and GNU/Linux toolchains, @samp{native} can also be used. @opindex mno-v8plus With @option{-mv8plus}, GCC generates code for the SPARC-V8+ ABI@. The difference from the V8 ABI is that the global and out registers are -considered 64-bit wide. This is enabled by default on Solaris in 32-bit +considered 64 bits wide. This is enabled by default on Solaris in 32-bit mode for all SPARC-V9 processors. @item -mvis @@ -18345,8 +18354,8 @@ relocation. @option{-mno-error-reloc} disables the error, @opindex msafe-dma @opindex munsafe-dma -Instructions which initiate or test completion of DMA must not be -reordered with respect to loads and stores of the memory which is being +Instructions that initiate or test completion of DMA must not be +reordered with respect to loads and stores of the memory that is being accessed. Users typically address this problem using the volatile keyword, but that can lead to inefficient code in places where the memory is known to not change. Rather than mark the memory as volatile @@ -18370,7 +18379,7 @@ or to make an object a little bit smaller. By default, GCC generates code assuming that addresses are never larger than 18 bits. With @option{-mlarge-mem} code is generated that assumes -a full 32 bit address. +a full 32-bit address. @item -mstdmain @opindex mstdmain @@ -18452,7 +18461,7 @@ sure it is within 125. @item -msafe-hints @opindex msafe-hints -Work around a hardware bug which causes the SPU to stall indefinitely. +Work around a hardware bug that causes the SPU to stall indefinitely. By default, GCC will insert the @code{hbrp} instruction to make sure this stall won't happen. @@ -18847,16 +18856,16 @@ used in code generation. Most of them have both positive and negative forms; the negative form of @option{-ffoo} would be @option{-fno-foo}. In the table below, only -one of the forms is listed---the one which is not the default. You +one of the forms is listed---the one that is not the default. You can figure out the other form by either removing @samp{no-} or adding it. @table @gcctabopt @item -fbounds-check @opindex fbounds-check -For front-ends that support it, generate additional code to check that +For front ends that support it, generate additional code to check that indices used to access arrays are within the declared range. This is -currently only supported by the Java and Fortran front-ends, where +currently only supported by the Java and Fortran front ends, where this option defaults to true and false respectively. @item -ftrapv @@ -18870,7 +18879,7 @@ This option instructs the compiler to assume that signed arithmetic overflow of addition, subtraction and multiplication wraps around using twos-complement representation. This flag enables some optimizations and disables others. This option is enabled by default for the Java -front-end, as required by the Java language specification. +front end, as required by the Java language specification. @item -fexceptions @opindex fexceptions @@ -18879,7 +18888,7 @@ exceptions. For some targets, this implies GCC will generate frame unwind information for all functions, which can produce significant data size overhead, although it does not affect execution. If you do not specify this option, GCC will enable it by default for languages like -C++ which normally require exception handling, and disable it for +C++ that normally require exception handling, and disable it for languages like C that do not normally require it. However, you may need to enable this option when compiling C code that needs to interoperate properly with exception handlers written in C++. You may also wish to @@ -18949,7 +18958,7 @@ Use it to conform to a non-default application binary interface. @opindex fshort-enums Allocate to an @code{enum} type only as many bytes as it needs for the declared range of possible values. Specifically, the @code{enum} type -will be equivalent to the smallest integer type which has enough room. +will be equivalent to the smallest integer type that has enough room. @strong{Warning:} the @option{-fshort-enums} switch causes GCC to generate code that is not binary compatible with code generated without that switch. @@ -18992,7 +19001,7 @@ you will get a multiple-definition error when you link them. In this case, you must compile with @option{-fcommon} instead. Compiling with @option{-fno-common} is useful on targets for which it provides better performance, or if you wish to verify that the -program will work on other systems which always treat uninitialized +program will work on other systems that always treat uninitialized variable declarations this way. @item -fno-ident @@ -19085,7 +19094,7 @@ for @option{-fpie} and 2 for @option{-fPIE}. Do not use jump tables for switch statements even where it would be more efficient than other code generation strategies. This option is of use in conjunction with @option{-fpic} or @option{-fPIC} for -building code which forms part of a dynamic linker and cannot +building code that forms part of a dynamic linker and cannot reference the address of a jump table. On some targets, jump tables do not require a GOT and this option is not needed. @@ -19285,7 +19294,7 @@ The resulting program has a discontiguous stack which can only overflow if the program is unable to allocate any more memory. This is most useful when running threaded programs, as it is no longer necessary to calculate a good stack size to use for each thread. This -is currently only implemented for the i386 and x86_64 backends running +is currently only implemented for the i386 and x86_64 back ends running GNU/Linux. When code compiled with @option{-fsplit-stack} calls code compiled @@ -19387,20 +19396,20 @@ is at @uref{http://gcc.gnu.org/@/wiki/@/Visibility}. @item -fstrict-volatile-bitfields @opindex fstrict-volatile-bitfields -This option should be used if accesses to volatile bitfields (or other +This option should be used if accesses to volatile bit-fields (or other structure fields, although the compiler usually honors those types anyway) should use a single access of the width of the field's type, aligned to a natural alignment if possible. For example, targets with memory-mapped peripheral registers might require all such accesses to be 16 bits wide; with this flag the user could -declare all peripheral bitfields as ``unsigned short'' (assuming short -is 16 bits on these targets) to force GCC to use 16 bit accesses -instead of, perhaps, a more efficient 32 bit access. +declare all peripheral bit-fields as ``unsigned short'' (assuming short +is 16 bits on these targets) to force GCC to use 16-bit accesses +instead of, perhaps, a more efficient 32-bit access. If this option is disabled, the compiler will use the most efficient instruction. In the previous example, that might be a 32-bit load instruction, even though that will access bytes that do not contain -any portion of the bitfield, or memory-mapped registers unrelated to +any portion of the bit-field, or memory-mapped registers unrelated to the one being updated. If the target requires strict alignment, and honoring the field @@ -19454,7 +19463,7 @@ GNU Compiler Collection (GCC) Internals}. @findex LC_ALL @cindex locale These environment variables control the way that GCC uses -localization information that allow GCC to work with different +localization information which allows GCC to work with different national conventions. GCC inspects the locale categories @env{LC_CTYPE} and @env{LC_MESSAGES} if it has been configured to do so. These locale categories can be set to any value supported by your diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index d6fbce6771c..5c7d8aabadc 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -7471,14 +7471,6 @@ copy_decls_walk (dw_die_ref unit, dw_die_ref die, htab_t decl_table) dw_die_ref parent = unit; dw_die_ref copy = clone_die (targ); - FOR_EACH_CHILD (targ, c, - add_child_die (copy, - clone_tree_hash (c, decl_table))); - - /* Make sure the cloned tree is marked as part of the - type unit. */ - mark_dies (copy); - /* Record in DECL_TABLE that TARG has been copied. Need to do this now, before the recursive call, because DECL_TABLE may be expanded and SLOT @@ -7488,6 +7480,14 @@ copy_decls_walk (dw_die_ref unit, dw_die_ref die, htab_t decl_table) entry->copy = copy; *slot = entry; + FOR_EACH_CHILD (targ, c, + add_child_die (copy, + clone_tree_hash (c, decl_table))); + + /* Make sure the cloned tree is marked as part of the + type unit. */ + mark_dies (copy); + /* If TARG has surrounding context, copy its ancestor tree into the new type unit. */ if (targ->die_parent != NULL diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index defca3f3512..f6b54d7767f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,40 @@ +2012-02-18 Tobias Burnus <burnus@net-b.de> + + PR fortran/52295 + * interface.c (check_interface0): Internal procs in + generic interfaces are allowed in Fortran 2008. + +2012-02-17 Tobias Burnus <burnus@net-b.de> + Roland Stigge <stigge@antcom.de> + + PR translation/52273 + * interface.c (compare_actual_formal): Fix typo "at at". + +2012-02-17 Tobias Burnus <burnus@net-b.de> + + * gfortran.texi (Q exponent-letter): Fix grammar. + +2012-02-17 Tobias Burnus <burnus@net-b.de> + + * gfortran.texi (Status): Fix typos. + * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with + a majuscule. + +2012-02-17 Tobias Burnus <burnus@net-b.de> + Roland Stigge <stigge@antcom.de> + + PR translation/52232 + PR translation/52234 + PR translation/52245 + PR translation/52246 + PR translation/52262 + PR translation/52273 + * io.c (gfc_match_open): Fix typo. + * interface.c (compare_actual_formal): Ditto. + * lang.opt (freal-4-real-8, freal-4-real-16, freal-8-real-16): Ditto. + * match.c (alloc_opt_list, gfc_match_nullify): Ditto. + * check.c (gfc_check_associated, gfc_check_null): Ditto. + 2012-02-12 Mikael Morin <mikael@gcc.gnu.org> PR fortran/50981 diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index 4b72a5fb0b3..afeb653a5a8 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -908,7 +908,7 @@ gfc_check_associated (gfc_expr *pointer, gfc_expr *target) if (attr1.pointer && gfc_is_coindexed (pointer)) { gfc_error ("'%s' argument of '%s' intrinsic at %L shall not be " - "conindexed", gfc_current_intrinsic_arg[0]->name, + "coindexed", gfc_current_intrinsic_arg[0]->name, gfc_current_intrinsic, &pointer->where); return FAILURE; } @@ -944,7 +944,7 @@ gfc_check_associated (gfc_expr *pointer, gfc_expr *target) if (attr1.pointer && gfc_is_coindexed (target)) { gfc_error ("'%s' argument of '%s' intrinsic at %L shall not be " - "conindexed", gfc_current_intrinsic_arg[1]->name, + "coindexed", gfc_current_intrinsic_arg[1]->name, gfc_current_intrinsic, &target->where); return FAILURE; } @@ -2851,7 +2851,7 @@ gfc_check_null (gfc_expr *mold) if (gfc_is_coindexed (mold)) { gfc_error ("'%s' argument of '%s' intrinsic at %L shall not be " - "conindexed", gfc_current_intrinsic_arg[0]->name, + "coindexed", gfc_current_intrinsic_arg[0]->name, gfc_current_intrinsic, &mold->where); return FAILURE; } diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index 4673a011b26..b1790c6ad5f 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -795,7 +795,7 @@ override type-bound procedures or to have deferred binding. @item Polymorphic entities (``@code{CLASS}'') for derived types -- including @code{SAME_TYPE_AS}, @code{EXTENDS_TYPE_OF} and @code{SELECT TYPE}. -Note that unlimited polymophism is currently not supported. +Note that unlimited polymorphism is currently not supported. @item Generic interface names, which have the same name as derived types, are now supported. This allows one to write constructor functions. Note @@ -835,7 +835,7 @@ association status not the value of the pointer target. @item Intrinsics @code{command_argument_count}, @code{get_command}, @code{get_command_argument}, and @code{get_environment_variable}. -@item Support for unicode characters (ISO 10646) and UTF-8, including +@item Support for Unicode characters (ISO 10646) and UTF-8, including the @code{SELECTED_CHAR_KIND} and @code{NEW_LINE} intrinsic functions. @item Support for binary, octal and hexadecimal (BOZ) constants in the @@ -1521,7 +1521,7 @@ of the @code{READ} statement, and the output item lists of the GNU Fortran accepts real literal constants with an exponent-letter of @code{Q}, for example, @code{1.23Q45}. The constant is interpreted -as a @code{REAL(16)} entity on targets that suppports this type. If +as a @code{REAL(16)} entity on targets that support this type. If the target does not support @code{REAL(16)} but has a @code{REAL(10)} type, then the real-literal-constant will be interpreted as a @code{REAL(10)} entity. In the absence of @code{REAL(16)} and diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 9acd1fb9627..e1f0cb6b2f8 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1292,9 +1292,10 @@ check_interface0 (gfc_interface *p, const char *interface_name) return 1; } + /* F2003, C1207. F2008, C1207. */ if (p->sym->attr.proc == PROC_INTERNAL - && gfc_notify_std (GFC_STD_GNU, "Extension: Internal procedure '%s' " - "in %s at %L", p->sym->name, interface_name, + && gfc_notify_std (GFC_STD_F2008, "Fortran 2008: Internal procedure " + "'%s' in %s at %L", p->sym->name, interface_name, &p->sym->declared_at) == FAILURE) return 1; } @@ -2305,7 +2306,7 @@ compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal, && a->expr->ts.type == BT_CHARACTER) { if (where) - gfc_error ("Actual argument argument at %L to allocatable or " + gfc_error ("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", &a->expr->where, f->sym->name); @@ -2429,7 +2430,7 @@ compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal, { if (where) gfc_error ("Coindexed ASYNCHRONOUS or VOLATILE actual argument at " - "at %L requires that dummy %s' has neither " + "%L requires that dummy '%s' has neither " "ASYNCHRONOUS nor VOLATILE", &a->expr->where, f->sym->name); return 0; diff --git a/gcc/fortran/invoke.texi b/gcc/fortran/invoke.texi index 410da2c4ecb..1f6de84b99f 100644 --- a/gcc/fortran/invoke.texi +++ b/gcc/fortran/invoke.texi @@ -204,7 +204,7 @@ accepted by the compiler: @itemx -ffixed-form @opindex @code{ffree-form} @opindex @code{fno-fixed-form} -@cindex options, fortran dialect +@cindex options, Fortran dialect @cindex file format, free @cindex file format, fixed Specify the layout used by the source file. The free form layout @@ -1425,7 +1425,7 @@ The default value for @var{n} is 32768. @item -fstack-arrays @opindex @code{fstack-arrays} -Adding this option will make the fortran compiler put all local arrays, +Adding this option will make the Fortran compiler put all local arrays, even those of unknown size onto stack memory. If your program uses very large local arrays it is possible that you will have to extend your runtime limits for stack memory on some operating systems. This flag is enabled diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index 88f7a249e00..b7eac6c9be1 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -2016,7 +2016,7 @@ gfc_match_open (void) /* Checks on the ROUND specifier. */ if (open->round) { - if (gfc_notify_std (GFC_STD_F2003, "Fortran F2003: ROUND= at %C " + if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: ROUND= at %C " "not allowed in Fortran 95") == FAILURE) goto cleanup; diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt index c27b58e4b54..56c589c6bdf 100644 --- a/gcc/fortran/lang.opt +++ b/gcc/fortran/lang.opt @@ -500,7 +500,7 @@ Enable range checking during compilation freal-4-real-8 Fortran RejectNegative -Interpret any REAl(4) as a REAL(8) +Interpret any REAL(4) as a REAL(8) freal-4-real-10 Fortran RejectNegative @@ -508,7 +508,7 @@ Interpret any REAL(4) as a REAL(10) freal-4-real-16 Fortran RejectNegative -Interpret any REAL(4) as a REAl(16) +Interpret any REAL(4) as a REAL(16) freal-8-real-4 Fortran RejectNegative @@ -520,7 +520,7 @@ Interpret any REAL(8) as a REAL(10) freal-8-real-16 Fortran RejectNegative -Interpret any REAL(8) as a REAl(16) +Interpret any REAL(8) as a REAL(16) frealloc-lhs Fortran diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 89b59bc8036..14381608c90 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -3661,7 +3661,7 @@ alloc_opt_list: if (head->next && gfc_notify_std (GFC_STD_F2008, "Fortran 2008: SOURCE tag at %L" - " with more than a single allocate objects", + " with more than a single allocate object", &tmp->where) == FAILURE) goto cleanup; @@ -3787,7 +3787,7 @@ gfc_match_nullify (void) /* F2008, C1242. */ if (gfc_is_coindexed (p)) { - gfc_error ("Pointer object at %C shall not be conindexed"); + gfc_error ("Pointer object at %C shall not be coindexed"); goto cleanup; } diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog index 255b3f55424..eb2638fd54d 100644 --- a/gcc/go/ChangeLog +++ b/gcc/go/ChangeLog @@ -1,3 +1,12 @@ +2012-02-17 Ian Lance Taylor <iant@google.com> + + * Make-lang.in (go/import.o): Add dependency on $(GO_LEX_H). + +2012-02-17 Ian Lance Taylor <iant@google.com> + + * gospec.c (lang_specific_driver): If linking, and no -o option + was used, add one. + 2012-02-14 Ian Lance Taylor <iant@google.com> PR go/48411 diff --git a/gcc/go/Make-lang.in b/gcc/go/Make-lang.in index 2994fe185ae..34e5584cc09 100644 --- a/gcc/go/Make-lang.in +++ b/gcc/go/Make-lang.in @@ -295,7 +295,8 @@ go/gogo.o: go/gofrontend/gogo.cc $(GO_SYSTEM_H) $(GO_C_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_TYPES_H) $(GO_EXPORT_H) $(GO_IMPORT_H) + $(GO_C_H) $(GO_GOGO_H) $(GO_LEX_H) $(GO_TYPES_H) $(GO_EXPORT_H) \ + $(GO_IMPORT_H) go/import-archive.o: go/gofrontend/import-archive.cc $(GO_SYSTEM_H) \ $(GO_IMPORT_H) go/lex.o: go/gofrontend/lex.cc $(GO_LEX_H) $(GO_SYSTEM_H) diff --git a/gcc/go/gofrontend/backend.h b/gcc/go/gofrontend/backend.h index 2605ffef2b1..d31404555e6 100644 --- a/gcc/go/gofrontend/backend.h +++ b/gcc/go/gofrontend/backend.h @@ -126,7 +126,9 @@ class Backend // Fill in a placeholder pointer type as a pointer. This takes a // type returned by placeholder_pointer_type and arranges for it to - // point to to_type. Returns true on success, false on failure. + // point to the type that TO_TYPE points to (that is, PLACEHOLDER + // becomes the same type as TO_TYPE). Returns true on success, + // false on failure. virtual bool set_placeholder_pointer_type(Btype* placeholder, Btype* to_type) = 0; diff --git a/gcc/go/gofrontend/export.cc b/gcc/go/gofrontend/export.cc index b6c0740cade..174596753ef 100644 --- a/gcc/go/gofrontend/export.cc +++ b/gcc/go/gofrontend/export.cc @@ -93,6 +93,7 @@ void Export::export_globals(const std::string& package_name, const std::string& unique_prefix, int package_priority, + const std::map<std::string, Package*>& imports, const std::string& import_init_fn, const std::set<Import_init>& imported_init_fns, const Bindings* bindings) @@ -149,6 +150,8 @@ Export::export_globals(const std::string& package_name, snprintf(buf, sizeof buf, "priority %d;\n", package_priority); this->write_c_string(buf); + this->write_imports(imports); + this->write_imported_init_fns(package_name, package_priority, import_init_fn, imported_init_fns); @@ -177,7 +180,46 @@ Export::export_globals(const std::string& package_name, this->stream_->write_checksum(s); } -// Write out the import control variables for this package. +// Sort imported packages. + +static bool +import_compare(const std::pair<std::string, Package*>& a, + const std::pair<std::string, Package*>& b) +{ + return a.first < b.first; +} + +// Write out the imported packages. + +void +Export::write_imports(const std::map<std::string, Package*>& imports) +{ + // Sort the imports for more consistent output. + std::vector<std::pair<std::string, Package*> > imp; + for (std::map<std::string, Package*>::const_iterator p = imports.begin(); + p != imports.end(); + ++p) + imp.push_back(std::make_pair(p->first, p->second)); + + std::sort(imp.begin(), imp.end(), import_compare); + + for (std::vector<std::pair<std::string, Package*> >::const_iterator p = + imp.begin(); + p != imp.end(); + ++p) + { + this->write_c_string("import "); + this->write_string(p->second->name()); + this->write_c_string(" "); + this->write_string(p->second->unique_prefix()); + this->write_c_string(" \""); + this->write_string(p->first); + this->write_c_string("\";\n"); + } +} + +// Write out the initialization functions which need to run for this +// package. void Export::write_imported_init_fns( @@ -189,7 +231,7 @@ Export::write_imported_init_fns( if (import_init_fn.empty() && imported_init_fns.empty()) return; - this->write_c_string("import"); + this->write_c_string("init"); if (!import_init_fn.empty()) { @@ -229,6 +271,17 @@ Export::write_imported_init_fns( this->write_c_string(";\n"); } +// Write a name to the export stream. + +void +Export::write_name(const std::string& name) +{ + if (name.empty()) + this->write_c_string("?"); + else + this->write_string(Gogo::message_name(name)); +} + // Export a type. We have to ensure that on import we create a single // Named_type node for each named type. We do this by keeping a hash // table mapping named types to reference numbers. The first time we diff --git a/gcc/go/gofrontend/export.h b/gcc/go/gofrontend/export.h index 087f477e482..0e03f4853d6 100644 --- a/gcc/go/gofrontend/export.h +++ b/gcc/go/gofrontend/export.h @@ -14,6 +14,7 @@ class Gogo; class Import_init; class Bindings; class Type; +class Package; // Codes used for the builtin types. These are all negative to make // them easily distinct from the codes assigned by Export::write_type. @@ -126,6 +127,7 @@ class Export : public String_dump export_globals(const std::string& package_name, const std::string& unique_prefix, int package_priority, + const std::map<std::string, Package*>& imports, const std::string& import_init_fn, const std::set<Import_init>& imported_init_fns, const Bindings* bindings); @@ -145,6 +147,10 @@ class Export : public String_dump write_bytes(const char* bytes, size_t length) { this->stream_->write_bytes(bytes, length); } + // Write a name to the export stream. If NAME is empty, write "?". + void + write_name(const std::string& name); + // Write out a type. This handles references back to previous // definitions. void @@ -154,6 +160,10 @@ class Export : public String_dump Export(const Export&); Export& operator=(const Export&); + // Write out the imported packages. + void + write_imports(const std::map<std::string, Package*>& imports); + // Write out the imported initialization functions. void write_imported_init_fns(const std::string& package_name, int priority, diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 8357ad75e4e..638cacbe2c9 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -522,8 +522,8 @@ Expression::convert_interface_to_interface(Translate_context* context, // first field is just the type descriptor of the object. go_assert(strcmp(IDENTIFIER_POINTER(DECL_NAME(field)), "__type_descriptor") == 0); - go_assert(TREE_TYPE(field) == TREE_TYPE(rhs_type_descriptor)); - elt->value = rhs_type_descriptor; + elt->value = fold_convert_loc(location.gcc_location(), + TREE_TYPE(field), rhs_type_descriptor); } else { @@ -5564,6 +5564,7 @@ Binary_expression::do_lower(Gogo* gogo, Named_object*, && op != OPERATOR_RSHIFT) { // May be a type error--let it be diagnosed later. + return this; } else if (is_comparison) { @@ -5667,6 +5668,7 @@ Binary_expression::do_lower(Gogo* gogo, Named_object*, && op != OPERATOR_RSHIFT) { // May be a type error--let it be diagnosed later. + return this; } else if (is_comparison) { @@ -5750,6 +5752,7 @@ Binary_expression::do_lower(Gogo* gogo, Named_object*, && left_type->base() != right_type->base()) { // May be a type error--let it be diagnosed later. + return this; } else if (op == OPERATOR_EQEQ || op == OPERATOR_NOTEQ) { @@ -5824,15 +5827,46 @@ Binary_expression::do_lower(Gogo* gogo, Named_object*, } // String constant expressions. - if (op == OPERATOR_PLUS - && left->type()->is_string_type() - && right->type()->is_string_type()) + if (left->type()->is_string_type() && right->type()->is_string_type()) { std::string left_string; std::string right_string; if (left->string_constant_value(&left_string) && right->string_constant_value(&right_string)) - return Expression::make_string(left_string + right_string, location); + { + if (op == OPERATOR_PLUS) + return Expression::make_string(left_string + right_string, + location); + else if (is_comparison) + { + int cmp = left_string.compare(right_string); + bool r; + switch (op) + { + case OPERATOR_EQEQ: + r = cmp == 0; + break; + case OPERATOR_NOTEQ: + r = cmp != 0; + break; + case OPERATOR_LT: + r = cmp < 0; + break; + case OPERATOR_LE: + r = cmp <= 0; + break; + case OPERATOR_GT: + r = cmp > 0; + break; + case OPERATOR_GE: + r = cmp >= 0; + break; + default: + go_unreachable(); + } + return Expression::make_boolean(r, location); + } + } } // Special case for shift of a floating point constant. @@ -11749,7 +11783,7 @@ Selector_expression::lower_method_expression(Gogo* gogo) p != method_parameters->end(); ++p, ++i) { - if (!p->name().empty() && p->name() != Import::import_marker) + if (!p->name().empty()) parameters->push_back(*p); else { diff --git a/gcc/go/gofrontend/gogo-tree.cc b/gcc/go/gofrontend/gogo-tree.cc index 352179df02a..603b97ec0c1 100644 --- a/gcc/go/gofrontend/gogo-tree.cc +++ b/gcc/go/gofrontend/gogo-tree.cc @@ -834,8 +834,15 @@ Gogo::write_globals() else if (init == NULL_TREE) ; else if (TREE_CONSTANT(init)) - this->backend()->global_variable_set_init(var, - tree_to_expr(init)); + { + if (expression_requires(no->var_value()->init(), NULL, no)) + error_at(no->location(), + "initialization expression for %qs depends " + "upon itself", + no->message_name().c_str()); + this->backend()->global_variable_set_init(var, + tree_to_expr(init)); + } else if (is_sink) var_init_tree = init; else diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc index fafd04fe18e..acc92317dcc 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -2859,6 +2859,7 @@ Gogo::do_exports() exp.export_globals(this->package_name(), this->unique_prefix(), this->package_priority(), + this->imports_, (this->need_init_fn_ && !this->is_main_package() ? this->get_init_fn_name() : ""), @@ -2929,8 +2930,6 @@ Gogo::convert_named_types() Runtime::convert_types(this); - Function_type::convert_types(this); - this->named_types_are_converted_ = true; } @@ -3276,7 +3275,10 @@ Function::export_func_with_type(Export* exp, const std::string& name, if (fntype->is_method()) { exp->write_c_string("("); - exp->write_type(fntype->receiver()->type()); + const Typed_identifier* receiver = fntype->receiver(); + exp->write_name(receiver->name()); + exp->write_c_string(" "); + exp->write_type(receiver->type()); exp->write_c_string(") "); } @@ -3296,6 +3298,8 @@ Function::export_func_with_type(Export* exp, const std::string& name, first = false; else exp->write_c_string(", "); + exp->write_name(p->name()); + exp->write_c_string(" "); if (!is_varargs || p + 1 != parameters->end()) exp->write_type(p->type()); else @@ -3310,7 +3314,7 @@ Function::export_func_with_type(Export* exp, const std::string& name, const Typed_identifier_list* results = fntype->results(); if (results != NULL) { - if (results->size() == 1) + if (results->size() == 1 && results->begin()->name().empty()) { exp->write_c_string(" "); exp->write_type(results->begin()->type()); @@ -3327,6 +3331,8 @@ Function::export_func_with_type(Export* exp, const std::string& name, first = false; else exp->write_c_string(", "); + exp->write_name(p->name()); + exp->write_c_string(" "); exp->write_type(p->type()); } exp->write_c_string(")"); @@ -3350,9 +3356,10 @@ Function::import_func(Import* imp, std::string* pname, if (imp->peek_char() == '(') { imp->require_c_string("("); + std::string name = imp->read_name(); + imp->require_c_string(" "); Type* rtype = imp->read_type(); - *preceiver = new Typed_identifier(Import::import_marker, rtype, - imp->location()); + *preceiver = new Typed_identifier(name, rtype, imp->location()); imp->require_c_string(") "); } @@ -3368,6 +3375,9 @@ Function::import_func(Import* imp, std::string* pname, parameters = new Typed_identifier_list(); while (true) { + std::string name = imp->read_name(); + imp->require_c_string(" "); + if (imp->match_c_string("...")) { imp->advance(3); @@ -3377,8 +3387,8 @@ Function::import_func(Import* imp, std::string* pname, Type* ptype = imp->read_type(); if (*is_varargs) ptype = Type::make_array_type(ptype, NULL); - parameters->push_back(Typed_identifier(Import::import_marker, - ptype, imp->location())); + parameters->push_back(Typed_identifier(name, ptype, + imp->location())); if (imp->peek_char() != ',') break; go_assert(!*is_varargs); @@ -3398,17 +3408,18 @@ Function::import_func(Import* imp, std::string* pname, if (imp->peek_char() != '(') { Type* rtype = imp->read_type(); - results->push_back(Typed_identifier(Import::import_marker, rtype, - imp->location())); + results->push_back(Typed_identifier("", rtype, imp->location())); } else { imp->require_c_string("("); while (true) { + std::string name = imp->read_name(); + imp->require_c_string(" "); Type* rtype = imp->read_type(); - results->push_back(Typed_identifier(Import::import_marker, - rtype, imp->location())); + results->push_back(Typed_identifier(name, rtype, + imp->location())); if (imp->peek_char() != ',') break; imp->require_c_string(", "); @@ -4180,6 +4191,11 @@ Variable::get_backend_variable(Gogo* gogo, Named_object* function, package != NULL, Gogo::is_hidden_name(name), this->location_); + else if (function == NULL) + { + go_assert(saw_errors()); + bvar = backend->error_variable(); + } else { tree fndecl = function->func_value()->get_decl(); diff --git a/gcc/go/gofrontend/import.cc b/gcc/go/gofrontend/import.cc index 44ffda61fba..58b0355c6c6 100644 --- a/gcc/go/gofrontend/import.cc +++ b/gcc/go/gofrontend/import.cc @@ -11,6 +11,7 @@ #include "go-c.h" #include "gogo.h" +#include "lex.h" #include "types.h" #include "export.h" #include "import.h" @@ -33,11 +34,6 @@ go_add_search_path(const char* path) search_path.push_back(std::string(path)); } -// The name used for parameters, receivers, and results in imported -// function types. - -const char* const Import::import_marker = "*imported*"; - // Find import data. This searches the file system for FILENAME and // returns a pointer to a Stream object to read the data that it // exports. If the file is not found, it returns NULL. @@ -308,7 +304,10 @@ Import::import(Gogo* gogo, const std::string& local_name, this->package_->set_priority(prio); this->require_c_string(";\n"); - if (stream->match_c_string("import ")) + while (stream->match_c_string("import")) + this->read_one_import(); + + if (stream->match_c_string("init")) this->read_import_init_fns(gogo); // Loop over all the input data for this package. @@ -348,12 +347,24 @@ Import::import(Gogo* gogo, const std::string& local_name, return this->package_; } +// Read an import line. We don't actually care about these. + +void +Import::read_one_import() +{ + this->require_c_string("import "); + Stream* stream = this->stream_; + while (stream->peek_char() != ';') + stream->advance(1); + this->require_c_string(";\n"); +} + // Read the list of import control functions. void Import::read_import_init_fns(Gogo* gogo) { - this->require_c_string("import"); + this->require_c_string("init"); while (!this->match_c_string(";")) { this->require_c_string(" "); @@ -749,6 +760,21 @@ Import::read_identifier() return ret; } +// Read a name from the stream. + +std::string +Import::read_name() +{ + std::string ret = this->read_identifier(); + if (ret == "?") + ret.clear(); + else if (!Lex::is_exported_name(ret)) + ret = ('.' + this->package_->unique_prefix() + + '.' + this->package_->name() + + '.' + ret); + return ret; +} + // Turn a string into a integer with appropriate error handling. bool diff --git a/gcc/go/gofrontend/import.h b/gcc/go/gofrontend/import.h index bdff0c2a9e1..67bdcb02d57 100644 --- a/gcc/go/gofrontend/import.h +++ b/gcc/go/gofrontend/import.h @@ -181,14 +181,15 @@ class Import std::string read_identifier(); + // Read a name. This is like read_identifier, except that a "?" is + // returned as an empty string. This matches Export::write_name. + std::string + read_name(); + // Read a type. Type* read_type(); - // The name used for parameters, receivers, and results in imported - // function types. - static const char* const import_marker; - private: static Stream* try_package_in_directory(const std::string&, Location); @@ -212,6 +213,10 @@ class Import find_archive_export_data(const std::string& filename, int fd, Location); + // Read an import line. + void + read_one_import(); + // Read the import control functions. void read_import_init_fns(Gogo*); diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index 6eb1981a4be..df28d2baf4b 100644 --- a/gcc/go/gofrontend/parse.cc +++ b/gcc/go/gofrontend/parse.cc @@ -2491,7 +2491,7 @@ Parse::operand(bool may_be_sink) if (token->is_op(OPERATOR_LPAREN)) { this->advance_token(); - ret = this->expression(PRECEDENCE_NORMAL, false, true, NULL); + ret = this->expression(PRECEDENCE_NORMAL, may_be_sink, true, NULL); if (!this->peek_token()->is_op(OPERATOR_RPAREN)) error_at(this->location(), "missing %<)%>"); else diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index 41bf491dff9..a2064bb6eea 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -34,10 +34,28 @@ extern "C" #include "backend.h" #include "types.h" +// Forward declarations so that we don't have to make types.h #include +// backend.h. + +static void +get_backend_struct_fields(Gogo* gogo, const Struct_field_list* fields, + bool use_placeholder, + std::vector<Backend::Btyped_identifier>* bfields); + +static void +get_backend_slice_fields(Gogo* gogo, Array_type* type, bool use_placeholder, + std::vector<Backend::Btyped_identifier>* bfields); + +static void +get_backend_interface_fields(Gogo* gogo, Interface_type* type, + bool use_placeholder, + std::vector<Backend::Btyped_identifier>* bfields); + // Class Type. Type::Type(Type_classification classification) - : classification_(classification), btype_(NULL), type_descriptor_var_(NULL) + : classification_(classification), btype_is_placeholder_(false), + btype_(NULL), type_descriptor_var_(NULL) { } @@ -895,7 +913,11 @@ Btype* Type::get_backend(Gogo* gogo) { if (this->btype_ != NULL) - return this->btype_; + { + if (this->btype_is_placeholder_ && gogo->named_types_are_converted()) + this->finish_backend(gogo); + return this->btype_; + } if (this->forward_declaration_type() != NULL || this->named_type() != NULL) @@ -966,6 +988,189 @@ Type::get_btype_without_hash(Gogo* gogo) return this->btype_; } +// Get the backend representation of a type without forcing the +// creation of the backend representation of all supporting types. +// This will return a backend type that has the correct size but may +// be incomplete. E.g., a pointer will just be a placeholder pointer, +// and will not contain the final representation of the type to which +// it points. This is used while converting all named types to the +// backend representation, to avoid problems with indirect references +// to types which are not yet complete. When this is called, the +// sizes of all direct references (e.g., a struct field) should be +// known, but the sizes of indirect references (e.g., the type to +// which a pointer points) may not. + +Btype* +Type::get_backend_placeholder(Gogo* gogo) +{ + if (gogo->named_types_are_converted()) + return this->get_backend(gogo); + if (this->btype_ != NULL) + return this->btype_; + + Btype* bt; + switch (this->classification_) + { + case TYPE_ERROR: + case TYPE_VOID: + case TYPE_BOOLEAN: + case TYPE_INTEGER: + case TYPE_FLOAT: + case TYPE_COMPLEX: + case TYPE_STRING: + case TYPE_NIL: + // These are simple types that can just be created directly. + return this->get_backend(gogo); + + case TYPE_FUNCTION: + { + Location loc = this->function_type()->location(); + bt = gogo->backend()->placeholder_pointer_type("", loc, true); + } + break; + + case TYPE_POINTER: + { + Location loc = Linemap::unknown_location(); + bt = gogo->backend()->placeholder_pointer_type("", loc, false); + } + break; + + case TYPE_STRUCT: + // We don't have to make the struct itself be a placeholder. We + // are promised that we know the sizes of the struct fields. + // But we may have to use a placeholder for any particular + // struct field. + { + std::vector<Backend::Btyped_identifier> bfields; + get_backend_struct_fields(gogo, this->struct_type()->fields(), + true, &bfields); + bt = gogo->backend()->struct_type(bfields); + } + break; + + case TYPE_ARRAY: + if (this->is_slice_type()) + { + std::vector<Backend::Btyped_identifier> bfields; + get_backend_slice_fields(gogo, this->array_type(), true, &bfields); + bt = gogo->backend()->struct_type(bfields); + } + else + { + Btype* element = this->array_type()->get_backend_element(gogo, true); + Bexpression* len = this->array_type()->get_backend_length(gogo); + bt = gogo->backend()->array_type(element, len); + } + break; + + case TYPE_MAP: + case TYPE_CHANNEL: + // All maps and channels have the same backend representation. + return this->get_backend(gogo); + + case TYPE_INTERFACE: + if (this->interface_type()->is_empty()) + return Interface_type::get_backend_empty_interface_type(gogo); + else + { + std::vector<Backend::Btyped_identifier> bfields; + get_backend_interface_fields(gogo, this->interface_type(), true, + &bfields); + bt = gogo->backend()->struct_type(bfields); + } + break; + + case TYPE_NAMED: + case TYPE_FORWARD: + // Named types keep track of their own dependencies and manage + // their own placeholders. + return this->get_backend(gogo); + + case TYPE_SINK: + case TYPE_CALL_MULTIPLE_RESULT: + default: + go_unreachable(); + } + + this->btype_ = bt; + this->btype_is_placeholder_ = true; + return bt; +} + +// Complete the backend representation. This is called for a type +// using a placeholder type. + +void +Type::finish_backend(Gogo* gogo) +{ + go_assert(this->btype_ != NULL); + if (!this->btype_is_placeholder_) + return; + + switch (this->classification_) + { + case TYPE_ERROR: + case TYPE_VOID: + case TYPE_BOOLEAN: + case TYPE_INTEGER: + case TYPE_FLOAT: + case TYPE_COMPLEX: + case TYPE_STRING: + case TYPE_NIL: + go_unreachable(); + + case TYPE_FUNCTION: + { + Btype* bt = this->do_get_backend(gogo); + if (!gogo->backend()->set_placeholder_function_type(this->btype_, bt)) + go_assert(saw_errors()); + } + break; + + case TYPE_POINTER: + { + Btype* bt = this->do_get_backend(gogo); + if (!gogo->backend()->set_placeholder_pointer_type(this->btype_, bt)) + go_assert(saw_errors()); + } + break; + + case TYPE_STRUCT: + // The struct type itself is done, but we have to make sure that + // all the field types are converted. + this->struct_type()->finish_backend_fields(gogo); + break; + + case TYPE_ARRAY: + // The array type itself is done, but make sure the element type + // is converted. + this->array_type()->finish_backend_element(gogo); + break; + + case TYPE_MAP: + case TYPE_CHANNEL: + go_unreachable(); + + case TYPE_INTERFACE: + // The interface type itself is done, but make sure the method + // types are converted. + this->interface_type()->finish_backend_methods(gogo); + break; + + case TYPE_NAMED: + case TYPE_FORWARD: + go_unreachable(); + + case TYPE_SINK: + case TYPE_CALL_MULTIPLE_RESULT: + default: + go_unreachable(); + } + + this->btype_is_placeholder_ = false; +} + // Return a pointer to the type descriptor for this type. tree @@ -2059,7 +2264,8 @@ Type::backend_type_size(Gogo* gogo, unsigned int *psize) { if (!this->is_backend_type_size_known(gogo)) return false; - size_t size = gogo->backend()->type_size(this->get_backend(gogo)); + Btype* bt = this->get_backend_placeholder(gogo); + size_t size = gogo->backend()->type_size(bt); *psize = static_cast<unsigned int>(size); if (*psize != size) return false; @@ -2074,7 +2280,8 @@ Type::backend_type_align(Gogo* gogo, unsigned int *palign) { if (!this->is_backend_type_size_known(gogo)) return false; - size_t align = gogo->backend()->type_alignment(this->get_backend(gogo)); + Btype* bt = this->get_backend_placeholder(gogo); + size_t align = gogo->backend()->type_alignment(bt); *palign = static_cast<unsigned int>(align); if (*palign != align) return false; @@ -2089,7 +2296,8 @@ Type::backend_type_field_align(Gogo* gogo, unsigned int *palign) { if (!this->is_backend_type_size_known(gogo)) return false; - size_t a = gogo->backend()->type_field_alignment(this->get_backend(gogo)); + Btype* bt = this->get_backend_placeholder(gogo); + size_t a = gogo->backend()->type_field_alignment(bt); *palign = static_cast<unsigned int>(a); if (*palign != a) return false; @@ -2387,7 +2595,7 @@ Integer_type::do_get_backend(Gogo* gogo) Expression* Integer_type::do_type_descriptor(Gogo* gogo, Named_type* name) { - go_assert(name != NULL); + go_assert(name != NULL || saw_errors()); return this->plain_type_descriptor(gogo, this->runtime_type_kind_, name); } @@ -2522,7 +2730,7 @@ Float_type::do_get_backend(Gogo* gogo) Expression* Float_type::do_type_descriptor(Gogo* gogo, Named_type* name) { - go_assert(name != NULL); + go_assert(name != NULL || saw_errors()); return this->plain_type_descriptor(gogo, this->runtime_type_kind_, name); } @@ -2649,7 +2857,7 @@ Complex_type::do_get_backend(Gogo* gogo) Expression* Complex_type::do_type_descriptor(Gogo* gogo, Named_type* name) { - go_assert(name != NULL); + go_assert(name != NULL || saw_errors()); return this->plain_type_descriptor(gogo, this->runtime_type_kind_, name); } @@ -2712,6 +2920,15 @@ String_type::do_get_backend(Gogo* gogo) Type* b = gogo->lookup_global("byte")->type_value(); Type* pb = Type::make_pointer_type(b); + + // We aren't going to get back to this field to finish the + // backend representation, so force it to be finished now. + if (!gogo->named_types_are_converted()) + { + pb->get_backend_placeholder(gogo); + pb->finish_backend(gogo); + } + fields[0].name = "__data"; fields[0].btype = pb->get_backend(gogo); fields[0].location = Linemap::predeclared_location(); @@ -2894,9 +3111,7 @@ Function_type::is_valid_redeclaration(const Function_type* t, // A redeclaration of a function is required to use the same names // for the receiver and parameters. if (this->receiver() != NULL - && this->receiver()->name() != t->receiver()->name() - && this->receiver()->name() != Import::import_marker - && t->receiver()->name() != Import::import_marker) + && this->receiver()->name() != t->receiver()->name()) { if (reason != NULL) *reason = "receiver name changed"; @@ -2912,9 +3127,7 @@ Function_type::is_valid_redeclaration(const Function_type* t, p2 != parms2->end(); ++p2, ++p1) { - if (p1->name() != p2->name() - && p1->name() != Import::import_marker - && p2->name() != Import::import_marker) + if (p1->name() != p2->name()) { if (reason != NULL) *reason = "parameter name changed"; @@ -2943,9 +3156,7 @@ Function_type::is_valid_redeclaration(const Function_type* t, res2 != results2->end(); ++res2, ++res1) { - if (res1->name() != res2->name() - && res1->name() != Import::import_marker - && res2->name() != Import::import_marker) + if (res1->name() != res2->name()) { if (reason != NULL) *reason = "result name changed"; @@ -3117,7 +3328,7 @@ Function_type::do_hash_for_method(Gogo* gogo) const // Get the backend representation for a function type. Btype* -Function_type::get_function_backend(Gogo* gogo) +Function_type::do_get_backend(Gogo* gogo) { Backend::Btyped_identifier breceiver; if (this->receiver_ != NULL) @@ -3169,46 +3380,6 @@ Function_type::get_function_backend(Gogo* gogo) this->location()); } -// A hash table mapping function types to their backend placeholders. - -Function_type::Placeholders Function_type::placeholders; - -// Get the backend representation for a function type. If we are -// still converting types, and this types has multiple results, return -// a placeholder instead. We do this because for multiple results we -// build a struct, and we need to make sure that all the types in the -// struct are valid before we create the struct. - -Btype* -Function_type::do_get_backend(Gogo* gogo) -{ - if (!gogo->named_types_are_converted() - && this->results_ != NULL - && this->results_->size() > 1) - { - Btype* placeholder = - gogo->backend()->placeholder_pointer_type("", this->location(), true); - Function_type::placeholders.push_back(std::make_pair(this, placeholder)); - return placeholder; - } - return this->get_function_backend(gogo); -} - -// Convert function types after all named types are converted. - -void -Function_type::convert_types(Gogo* gogo) -{ - for (Placeholders::const_iterator p = Function_type::placeholders.begin(); - p != Function_type::placeholders.end(); - ++p) - { - Btype* bt = p->first->get_function_backend(gogo); - if (!gogo->backend()->set_placeholder_function_type(p->second, bt)) - go_assert(saw_errors()); - } -} - // The type of a function type descriptor. Type* @@ -3432,6 +3603,8 @@ Function_type::do_export(Export* exp) const first = false; else exp->write_c_string(", "); + exp->write_name(p->name()); + exp->write_c_string(" "); if (!is_varargs || p + 1 != this->parameters_->end()) exp->write_type(p->type()); else @@ -3447,7 +3620,7 @@ Function_type::do_export(Export* exp) const if (results != NULL) { exp->write_c_string(" "); - if (results->size() == 1) + if (results->size() == 1 && results->begin()->name().empty()) exp->write_type(results->begin()->type()); else { @@ -3461,6 +3634,8 @@ Function_type::do_export(Export* exp) const first = false; else exp->write_c_string(", "); + exp->write_name(p->name()); + exp->write_c_string(" "); exp->write_type(p->type()); } exp->write_c_string(")"); @@ -3483,6 +3658,9 @@ Function_type::do_import(Import* imp) parameters = new Typed_identifier_list(); while (true) { + std::string name = imp->read_name(); + imp->require_c_string(" "); + if (imp->match_c_string("...")) { imp->advance(3); @@ -3492,8 +3670,8 @@ Function_type::do_import(Import* imp) Type* ptype = imp->read_type(); if (is_varargs) ptype = Type::make_array_type(ptype, NULL); - parameters->push_back(Typed_identifier(Import::import_marker, - ptype, imp->location())); + parameters->push_back(Typed_identifier(name, ptype, + imp->location())); if (imp->peek_char() != ',') break; go_assert(!is_varargs); @@ -3512,17 +3690,18 @@ Function_type::do_import(Import* imp) if (imp->peek_char() != '(') { Type* rtype = imp->read_type(); - results->push_back(Typed_identifier(Import::import_marker, rtype, - imp->location())); + results->push_back(Typed_identifier("", rtype, imp->location())); } else { imp->advance(1); while (true) { + std::string name = imp->read_name(); + imp->require_c_string(" "); Type* rtype = imp->read_type(); - results->push_back(Typed_identifier(Import::import_marker, - rtype, imp->location())); + results->push_back(Typed_identifier(name, rtype, + imp->location())); if (imp->peek_char() != ',') break; imp->require_c_string(", "); @@ -3595,7 +3774,7 @@ Pointer_type::do_hash_for_method(Gogo* gogo) const return this->to_type_->hash_for_method(gogo) << 4; } -// The tree for a pointer type. +// Get the backend representation for a pointer type. Btype* Pointer_type::do_get_backend(Gogo* gogo) @@ -4346,6 +4525,7 @@ Struct_type::method_function(const std::string& name, bool* is_ambiguous) const static void get_backend_struct_fields(Gogo* gogo, const Struct_field_list* fields, + bool use_placeholder, std::vector<Backend::Btyped_identifier>* bfields) { bfields->resize(fields->size()); @@ -4355,7 +4535,9 @@ get_backend_struct_fields(Gogo* gogo, const Struct_field_list* fields, ++p, ++i) { (*bfields)[i].name = Gogo::unpack_hidden_name(p->field_name()); - (*bfields)[i].btype = p->type()->get_backend(gogo); + (*bfields)[i].btype = (use_placeholder + ? p->type()->get_backend_placeholder(gogo) + : p->type()->get_backend(gogo)); (*bfields)[i].location = p->location(); } go_assert(i == fields->size()); @@ -4367,10 +4549,25 @@ Btype* Struct_type::do_get_backend(Gogo* gogo) { std::vector<Backend::Btyped_identifier> bfields; - get_backend_struct_fields(gogo, this->fields_, &bfields); + get_backend_struct_fields(gogo, this->fields_, false, &bfields); return gogo->backend()->struct_type(bfields); } +// Finish the backend representation of the fields of a struct. + +void +Struct_type::finish_backend_fields(Gogo* gogo) +{ + const Struct_field_list* fields = this->fields_; + if (fields != NULL) + { + for (Struct_field_list::const_iterator p = fields->begin(); + p != fields->end(); + ++p) + p->type()->get_backend(gogo); + } +} + // The type of a struct type descriptor. Type* @@ -4776,8 +4973,8 @@ Struct_type::backend_field_offset(Gogo* gogo, unsigned int index, { if (!this->is_backend_type_size_known(gogo)) return false; - size_t offset = gogo->backend()->type_field_offset(this->get_backend(gogo), - index); + Btype* bt = this->get_backend_placeholder(gogo); + size_t offset = gogo->backend()->type_field_offset(bt, index); *poffset = static_cast<unsigned int>(offset); if (*poffset != offset) return false; @@ -5295,13 +5492,15 @@ Array_type::get_length_tree(Gogo* gogo) // size which does not fit in int. static void -get_backend_slice_fields(Gogo* gogo, Array_type* type, +get_backend_slice_fields(Gogo* gogo, Array_type* type, bool use_placeholder, std::vector<Backend::Btyped_identifier>* bfields) { bfields->resize(3); Type* pet = Type::make_pointer_type(type->element_type()); - Btype* pbet = pet->get_backend(gogo); + Btype* pbet = (use_placeholder + ? pet->get_backend_placeholder(gogo) + : pet->get_backend(gogo)); Location ploc = Linemap::predeclared_location(); Backend::Btyped_identifier* p = &(*bfields)[0]; @@ -5333,22 +5532,26 @@ Array_type::do_get_backend(Gogo* gogo) if (this->length_ == NULL) { std::vector<Backend::Btyped_identifier> bfields; - get_backend_slice_fields(gogo, this, &bfields); + get_backend_slice_fields(gogo, this, false, &bfields); return gogo->backend()->struct_type(bfields); } else { - Btype* element = this->get_backend_element(gogo); + Btype* element = this->get_backend_element(gogo, false); Bexpression* len = this->get_backend_length(gogo); return gogo->backend()->array_type(element, len); } } // Return the backend representation of the element type. + Btype* -Array_type::get_backend_element(Gogo* gogo) +Array_type::get_backend_element(Gogo* gogo, bool use_placeholder) { - return this->element_type_->get_backend(gogo); + if (use_placeholder) + return this->element_type_->get_backend_placeholder(gogo); + else + return this->element_type_->get_backend(gogo); } // Return the backend representation of the length. @@ -5359,6 +5562,22 @@ Array_type::get_backend_length(Gogo* gogo) return tree_to_expr(this->get_length_tree(gogo)); } +// Finish backend representation of the array. + +void +Array_type::finish_backend_element(Gogo* gogo) +{ + Type* et = this->array_type()->element_type(); + et->get_backend(gogo); + if (this->is_slice_type()) + { + // This relies on the fact that we always use the same + // structure for a pointer to any given type. + Type* pet = Type::make_pointer_type(et); + pet->get_backend(gogo); + } +} + // Return a tree for a pointer to the values in ARRAY. tree @@ -6252,7 +6471,7 @@ Interface_type::finalize_methods() } Named_type* nt = t->named_type(); - if (nt != NULL) + if (nt != NULL && it->parse_methods_ != NULL) { std::vector<Named_type*>::const_iterator q; for (q = seen.begin(); q != seen.end(); ++q) @@ -6651,6 +6870,7 @@ Interface_type::get_backend_empty_interface_type(Gogo* gogo) static void get_backend_interface_fields(Gogo* gogo, Interface_type* type, + bool use_placeholder, std::vector<Backend::Btyped_identifier>* bfields) { Location loc = type->location(); @@ -6668,8 +6888,37 @@ get_backend_interface_fields(Gogo* gogo, Interface_type* type, p != type->methods()->end(); ++p, ++i) { + // The type of the method in Go only includes the parameters. + // The actual method also has a receiver, which is always a + // pointer. We need to add that pointer type here in order to + // generate the correct type for the backend. + Function_type* ft = p->type()->function_type(); + go_assert(ft->receiver() == NULL); + + const Typed_identifier_list* params = ft->parameters(); + Typed_identifier_list* mparams = new Typed_identifier_list(); + if (params != NULL) + mparams->reserve(params->size() + 1); + Type* vt = Type::make_pointer_type(Type::make_void_type()); + mparams->push_back(Typed_identifier("", vt, ft->location())); + if (params != NULL) + { + for (Typed_identifier_list::const_iterator pp = params->begin(); + pp != params->end(); + ++pp) + mparams->push_back(*pp); + } + + Typed_identifier_list* mresults = (ft->results() == NULL + ? NULL + : ft->results()->copy()); + Function_type* mft = Type::make_function_type(NULL, mparams, mresults, + ft->location()); + mfields[i].name = Gogo::unpack_hidden_name(p->name()); - mfields[i].btype = p->type()->get_backend(gogo); + mfields[i].btype = (use_placeholder + ? mft->get_backend_placeholder(gogo) + : mft->get_backend(gogo)); mfields[i].location = loc; // Sanity check: the names should be sorted. go_assert(p->name() > last_name); @@ -6709,7 +6958,7 @@ Interface_type::do_get_backend(Gogo* gogo) this->interface_btype_ = gogo->backend()->placeholder_struct_type("", this->location_); std::vector<Backend::Btyped_identifier> bfields; - get_backend_interface_fields(gogo, this, &bfields); + get_backend_interface_fields(gogo, this, false, &bfields); if (!gogo->backend()->set_placeholder_struct_type(this->interface_btype_, bfields)) this->interface_btype_ = gogo->backend()->error_type(); @@ -6717,6 +6966,24 @@ Interface_type::do_get_backend(Gogo* gogo) } } +// Finish the backend representation of the methods. + +void +Interface_type::finish_backend_methods(Gogo* gogo) +{ + if (!this->interface_type()->is_empty()) + { + const Typed_identifier_list* methods = this->methods(); + if (methods != NULL) + { + for (Typed_identifier_list::const_iterator p = methods->begin(); + p != methods->end(); + ++p) + p->type()->get_backend(gogo); + } + } +} + // The type of an interface type descriptor. Type* @@ -6920,7 +7187,7 @@ Interface_type::do_export(Export* exp) const { if (pm->name().empty()) { - exp->write_c_string("$ "); + exp->write_c_string("? "); exp->write_type(pm->type()); } else @@ -6944,6 +7211,8 @@ Interface_type::do_export(Export* exp) const first = false; else exp->write_c_string(", "); + exp->write_name(pp->name()); + exp->write_c_string(" "); if (!is_varargs || pp + 1 != parameters->end()) exp->write_type(pp->type()); else @@ -6961,7 +7230,7 @@ Interface_type::do_export(Export* exp) const if (results != NULL) { exp->write_c_string(" "); - if (results->size() == 1) + if (results->size() == 1 && results->begin()->name().empty()) exp->write_type(results->begin()->type()); else { @@ -6976,6 +7245,8 @@ Interface_type::do_export(Export* exp) const first = false; else exp->write_c_string(", "); + exp->write_name(p->name()); + exp->write_c_string(" "); exp->write_type(p->type()); } exp->write_c_string(")"); @@ -7002,7 +7273,7 @@ Interface_type::do_import(Import* imp) { std::string name = imp->read_identifier(); - if (name == "$") + if (name == "?") { imp->require_c_string(" "); Type* t = imp->read_type(); @@ -7022,6 +7293,9 @@ Interface_type::do_import(Import* imp) parameters = new Typed_identifier_list; while (true) { + std::string name = imp->read_name(); + imp->require_c_string(" "); + if (imp->match_c_string("...")) { imp->advance(3); @@ -7031,8 +7305,8 @@ Interface_type::do_import(Import* imp) Type* ptype = imp->read_type(); if (is_varargs) ptype = Type::make_array_type(ptype, NULL); - parameters->push_back(Typed_identifier(Import::import_marker, - ptype, imp->location())); + parameters->push_back(Typed_identifier(name, ptype, + imp->location())); if (imp->peek_char() != ',') break; go_assert(!is_varargs); @@ -7051,17 +7325,18 @@ Interface_type::do_import(Import* imp) if (imp->peek_char() != '(') { Type* rtype = imp->read_type(); - results->push_back(Typed_identifier(Import::import_marker, - rtype, imp->location())); + results->push_back(Typed_identifier("", rtype, imp->location())); } else { imp->advance(1); while (true) { + std::string name = imp->read_name(); + imp->require_c_string(" "); Type* rtype = imp->read_type(); - results->push_back(Typed_identifier(Import::import_marker, - rtype, imp->location())); + results->push_back(Typed_identifier(name, rtype, + imp->location())); if (imp->peek_char() != ',') break; imp->require_c_string(", "); @@ -7567,6 +7842,11 @@ Find_type_use::type(Type* type) this->find_type_->add_dependency(type->named_type()); break; + case Type::TYPE_NAMED: + case Type::TYPE_FORWARD: + go_assert(saw_errors()); + break; + case Type::TYPE_VOID: case Type::TYPE_SINK: case Type::TYPE_FUNCTION: @@ -7575,8 +7855,6 @@ Find_type_use::type(Type* type) case Type::TYPE_MAP: case Type::TYPE_CHANNEL: case Type::TYPE_INTERFACE: - case Type::TYPE_NAMED: - case Type::TYPE_FORWARD: default: go_unreachable(); } @@ -7747,7 +8025,7 @@ Named_type::convert(Gogo* gogo) { std::vector<Backend::Btyped_identifier> bfields; get_backend_struct_fields(gogo, base->struct_type()->fields(), - &bfields); + true, &bfields); if (!gogo->backend()->set_placeholder_struct_type(bt, bfields)) bt = gogo->backend()->error_type(); } @@ -7757,7 +8035,7 @@ Named_type::convert(Gogo* gogo) // Slice types were completed in create_placeholder. if (!base->is_slice_type()) { - Btype* bet = base->array_type()->get_backend_element(gogo); + Btype* bet = base->array_type()->get_backend_element(gogo, true); Bexpression* blen = base->array_type()->get_backend_length(gogo); if (!gogo->backend()->set_placeholder_array_type(bt, bet, blen)) bt = gogo->backend()->error_type(); @@ -7889,7 +8167,7 @@ Named_type::create_placeholder(Gogo* gogo) // because we can fill them in completely here with the final // size. std::vector<Backend::Btyped_identifier> bfields; - get_backend_slice_fields(gogo, base->array_type(), &bfields); + get_backend_slice_fields(gogo, base->array_type(), true, &bfields); if (!gogo->backend()->set_placeholder_struct_type(bt, bfields)) this->named_btype_ = gogo->backend()->error_type(); } @@ -7900,7 +8178,8 @@ Named_type::create_placeholder(Gogo* gogo) // because we can fill them in completely here with the final // size. std::vector<Backend::Btyped_identifier> bfields; - get_backend_interface_fields(gogo, base->interface_type(), &bfields); + get_backend_interface_fields(gogo, base->interface_type(), true, + &bfields); if (!gogo->backend()->set_placeholder_struct_type(bt, bfields)) this->named_btype_ = gogo->backend()->error_type(); } @@ -7959,9 +8238,33 @@ Named_type::do_get_backend(Gogo* gogo) case TYPE_NIL: case TYPE_MAP: case TYPE_CHANNEL: + return bt; + case TYPE_STRUCT: + if (!this->seen_in_get_backend_) + { + this->seen_in_get_backend_ = true; + base->struct_type()->finish_backend_fields(gogo); + this->seen_in_get_backend_ = false; + } + return bt; + case TYPE_ARRAY: + if (!this->seen_in_get_backend_) + { + this->seen_in_get_backend_ = true; + base->array_type()->finish_backend_element(gogo); + this->seen_in_get_backend_ = false; + } + return bt; + case TYPE_INTERFACE: + if (!this->seen_in_get_backend_) + { + this->seen_in_get_backend_ = true; + base->interface_type()->finish_backend_methods(gogo); + this->seen_in_get_backend_ = false; + } return bt; case TYPE_FUNCTION: diff --git a/gcc/go/gofrontend/types.h b/gcc/go/gofrontend/types.h index 4398ef1e639..72c42ebb4ba 100644 --- a/gcc/go/gofrontend/types.h +++ b/gcc/go/gofrontend/types.h @@ -852,6 +852,16 @@ class Type Btype* get_backend(Gogo*); + // Return a placeholder for the backend representation of the type. + // This will return a type of the correct size, but for which some + // of the fields may still need to be completed. + Btype* + get_backend_placeholder(Gogo*); + + // Finish the backend representation of a placeholder. + void + finish_backend(Gogo*); + // Build a type descriptor entry for this type. Return a pointer to // it. The location is the location which causes us to need the // entry. @@ -1179,6 +1189,9 @@ class Type // The type classification. Type_classification classification_; + // Whether btype_ is a placeholder type used while named types are + // being converted. + bool btype_is_placeholder_; // The backend representation of the type, once it has been // determined. Btype* btype_; @@ -1730,10 +1743,6 @@ class Function_type : public Type Function_type* copy_with_receiver(Type*) const; - // Finishing converting function types. - static void - convert_types(Gogo*); - static Type* make_function_type_descriptor_type(); @@ -1773,16 +1782,6 @@ class Function_type : public Type type_descriptor_params(Type*, const Typed_identifier*, const Typed_identifier_list*); - Btype* - get_function_backend(Gogo*); - - // A list of function types with multiple results and their - // placeholder backend representations, used to postpone building - // the structs we use for multiple results until all types are - // converted. - typedef std::vector<std::pair<Function_type*, Btype*> > Placeholders; - static Placeholders placeholders; - // The receiver name and type. This will be NULL for a normal // function, non-NULL for a method. Typed_identifier* receiver_; @@ -2079,6 +2078,10 @@ class Struct_type : public Type bool backend_field_offset(Gogo*, unsigned int index, unsigned int* poffset); + // Finish the backend representation of all the fields. + void + finish_backend_fields(Gogo*); + // Import a struct type. static Struct_type* do_import(Import*); @@ -2193,12 +2196,16 @@ class Array_type : public Type // Return the backend representation of the element type. Btype* - get_backend_element(Gogo*); + get_backend_element(Gogo*, bool use_placeholder); // Return the backend representation of the length. Bexpression* get_backend_length(Gogo*); + // Finish the backend representation of the element type. + void + finish_backend_element(Gogo*); + static Type* make_array_type_descriptor_type(); @@ -2521,6 +2528,10 @@ class Interface_type : public Type static Btype* get_backend_empty_interface_type(Gogo*); + // Finish the backend representation of the method types. + void + finish_backend_methods(Gogo*); + static Type* make_interface_type_descriptor_type(); diff --git a/gcc/go/gofrontend/unsafe.cc b/gcc/go/gofrontend/unsafe.cc index 6e8a4042e72..9508feaaf97 100644 --- a/gcc/go/gofrontend/unsafe.cc +++ b/gcc/go/gofrontend/unsafe.cc @@ -34,6 +34,8 @@ Gogo::import_unsafe(const std::string& local_name, bool is_local_name_exported, package->set_location(location); package->set_is_imported(); + this->imports_.insert(std::make_pair("unsafe", package)); + Bindings* bindings = package->bindings(); // The type may have already been created by an import. diff --git a/gcc/go/gospec.c b/gcc/go/gospec.c index 8e8aa2dd2de..20372f0f470 100644 --- a/gcc/go/gospec.c +++ b/gcc/go/gospec.c @@ -109,6 +109,11 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, /* Whether the -o option was used. */ bool saw_opt_o = false; + /* Whether the -c option was used. Also used for -E, -fsyntax-only, + in general anything which implies only compilation and not + linking. */ + bool saw_opt_c = false; + /* Whether the -S option was used. */ bool saw_opt_S = false; @@ -172,6 +177,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, case OPT_fsyntax_only: /* Don't specify libraries if we won't link, since that would cause a warning. */ + saw_opt_c = true; library = -1; break; @@ -272,31 +278,39 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, j++; } - /* If we are not linking, add a -o option. This is because we need + /* If we didn't see a -o option, add one. This is because we need the driver to pass all .go files to go1. Without a -o option the - driver will invoke go1 separately for each input file. */ - if (library < 0 && first_go_file != NULL && !saw_opt_o) + driver will invoke go1 separately for each input file. FIXME: + This should probably use some other interface to force the driver + to set combine_inputs. */ + if (first_go_file != NULL && !saw_opt_o) { - const char *base; - int baselen; - int alen; - char *out; - - base = lbasename (first_go_file); - baselen = strlen (base) - 3; - alen = baselen + 3; - out = XNEWVEC (char, alen); - memcpy (out, base, baselen); - /* The driver will convert .o to some other suffix (e.g., .obj) - if appropriate. */ - out[baselen] = '.'; - if (saw_opt_S) - out[baselen + 1] = 's'; + if (saw_opt_c || saw_opt_S) + { + const char *base; + int baselen; + int alen; + char *out; + + base = lbasename (first_go_file); + baselen = strlen (base) - 3; + alen = baselen + 3; + out = XNEWVEC (char, alen); + memcpy (out, base, baselen); + /* The driver will convert .o to some other suffix (e.g., + .obj) if appropriate. */ + out[baselen] = '.'; + if (saw_opt_S) + out[baselen + 1] = 's'; + else + out[baselen + 1] = 'o'; + out[baselen + 2] = '\0'; + generate_option (OPT_o, out, 1, CL_DRIVER, + &new_decoded_options[j]); + } else - out[baselen + 1] = 'o'; - out[baselen + 2] = '\0'; - generate_option (OPT_o, out, 1, CL_DRIVER, - &new_decoded_options[j]); + generate_option (OPT_o, "a.out", 1, CL_DRIVER, + &new_decoded_options[j]); j++; } diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index 8e1e8466437..34e6ef9346b 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -1,5 +1,5 @@ /* IRA hard register and memory cost calculation for allocnos or pseudos. - Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 + Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Contributed by Vladimir Makarov <vmakarov@redhat.com>. @@ -1306,14 +1306,21 @@ scan_one_insn (rtx insn) Similarly if we're loading other constants from memory (constant pool, TOC references, small data areas, etc) and this is the only - assignment to the destination pseudo. */ + assignment to the destination pseudo. + + Don't do this if SET_SRC (set) isn't a general operand, if it is + a memory requiring special instructions to load it, decreasing + mem_cost might result in it being loaded using the specialized + instruction into a register, then stored into stack and loaded + again from the stack. See PR52208. */ if (set != 0 && REG_P (SET_DEST (set)) && MEM_P (SET_SRC (set)) && (note = find_reg_note (insn, REG_EQUIV, NULL_RTX)) != NULL_RTX && ((MEM_P (XEXP (note, 0))) || (CONSTANT_P (XEXP (note, 0)) && targetm.legitimate_constant_p (GET_MODE (SET_DEST (set)), XEXP (note, 0)) - && REG_N_SETS (REGNO (SET_DEST (set))) == 1))) + && REG_N_SETS (REGNO (SET_DEST (set))) == 1)) + && general_operand (SET_SRC (set), GET_MODE (SET_SRC (set)))) { enum reg_class cl = GENERAL_REGS; rtx reg = SET_DEST (set); diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index 8cb2272a4fc..5401180dd54 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,11 @@ +2012-02-19 Joseph Myers <joseph@codesourcery.com> + + * sv.po: Update. + +2012-02-16 Joseph Myers <joseph@codesourcery.com> + + * de.po: Update. + 2012-02-15 Joseph Myers <joseph@codesourcery.com> * de.po: Update. diff --git a/gcc/po/de.po b/gcc/po/de.po index d03a49b76d7..75926b20a58 100644 --- a/gcc/po/de.po +++ b/gcc/po/de.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gcc 4.7-b20120128\n" "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" "POT-Creation-Date: 2012-01-27 16:13+0000\n" -"PO-Revision-Date: 2012-02-14 21:55+0200\n" +"PO-Revision-Date: 2012-02-15 21:55+0200\n" "Last-Translator: Roland Stigge <stigge@antcom.de>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "Language: de\n" @@ -807,7 +807,7 @@ msgstr "" #: gcov.c:471 #, c-format msgid " -s, --source-prefix DIR Source prefix to elide\n" -msgstr "" +msgstr " -s, --source-prefix VERZ wegzulassender Quellen-Präfix\n" #: gcov.c:472 #, c-format @@ -1308,7 +1308,7 @@ msgstr "Dieser Schalter ist undokumentiert" #: opts.c:1028 msgid "[default]" -msgstr "" +msgstr "[Standard]" #: opts.c:1039 msgid "[enabled]" @@ -1326,7 +1326,7 @@ msgstr " Keine Optionen mit den gewünschten Eigenschaften gefunden\n" #: opts.c:1067 #, c-format msgid " None found. Use --help=%s to show *all* the options supported by the %s front-end\n" -msgstr "" +msgstr " Nichts gefunden. --help=%s verwenden, um *alle* vom Frontend %s unterstützten Optionen anzuzeigen\n" #: opts.c:1073 #, c-format @@ -1650,7 +1650,7 @@ msgstr "Perm. Fehler: " #: params.def:46 msgid "Maximal estimated outcome of branch considered predictable" -msgstr "" +msgstr "Größtes geschätztes Ergebnis eines als vorhersagbar betrachteten Sprungs" #: params.def:63 msgid "The maximum number of instructions in a single function eligible for inlining" @@ -1690,7 +1690,7 @@ msgstr "Wahrscheinlichkeit, dass COMDAT-Funktion mit anderer Kompilationseinheit #: params.def:120 msgid "Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen" -msgstr "" +msgstr "Größte Wahrscheinlichkeit des Einsprung-BB der geteilten Region (in Prozent relativ zum Einsprung-BB der Funktion), um teilweises »inline« durchzuführen" #: params.def:127 msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling" @@ -1738,7 +1738,7 @@ msgstr "Wie viel die gegebene Kompilationseinheit durch die interprozedurale Kon #: params.def:197 msgid "Maximal estimated growth of function body caused by early inlining of single call" -msgstr "" +msgstr "Größtes durch frühes »inline« eines einzelnen Aufrufs abgeschätztes Wachstum des Funktionskörpers" #: params.def:201 msgid "The size of stack frame to be considered large" @@ -1766,15 +1766,15 @@ msgstr "Der Anteil-Schwellwert des Ausführungszählers kritischer Kanten, die R #: params.def:245 msgid "Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations" -msgstr "" +msgstr "Skalierungsfaktor bei Berechnung der größten Entfernung, um die ein Ausdruck durch GCSE-Optimierungen verschoben werden kann" #: params.def:251 msgid "Cost at which GCSE optimizations will not constraint the distance an expression can travel" -msgstr "" +msgstr "Kosten, zu denen GCSE-Optimierungen nicht die Entfernung beeinträchtigen werden, um die ein Ausdruck verschoben werden kann" #: params.def:259 msgid "Maximum depth of search in the dominator tree for expressions to hoist" -msgstr "" +msgstr "Größte Tiefe der Suche im Nenner-Baum für anzuhebende Ausdrücke" #: params.def:271 msgid "The maximum number of instructions to consider to unroll in a loop" @@ -1834,7 +1834,7 @@ msgstr "Ein Faktor, um die obere Schranke des Swing-Modulo-Schedulers für Schle #: params.def:347 msgid "The minimum value of stage count that swing modulo scheduler will generate." -msgstr "" +msgstr "Kleinster Wert der Stufenzahl, den der Swing-Modulo-Scheduler erzeugen wird" #: params.def:351 msgid "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA" @@ -1990,7 +1990,7 @@ msgstr "Höchstzahl der rückwärts zu suchenden Anweisungen, wenn nach äquival #: params.def:571 msgid "Target block's relative execution frequency (as a percentage) required to sink a statement" -msgstr "" +msgstr "Zum Absenken einer Anweisung nötige relative Ausführungsfrequenz des Ziel-Blocks (in Prozent)" #: params.def:576 params.def:586 msgid "The maximum number of blocks in a region to be considered for interblock scheduling" @@ -2066,7 +2066,7 @@ msgstr "Höchstzahl der vom Scheduler während der ersten Planphase fertig zur A #: params.def:711 msgid "Maximum number of active local stores in RTL dead store elimination" -msgstr "" +msgstr "Höchstzahl der aktiven lokalen Speicherungen bei RTL-Eliminierung toter Speicherungen" #: params.def:721 msgid "The number of insns executed before prefetch is completed" @@ -2130,7 +2130,7 @@ msgstr "Höchstzahl der Basis-Blöcke pro Funktion, die von Graphite analysiert #: params.def:826 msgid "Maximum number of datarefs in loop for building loop data dependencies" -msgstr "" +msgstr "Höchstzahl der Datenreferenzen in Schleife zum Aufbau der Abhängigkeiten der Schleifendaten" #: params.def:833 msgid "Max basic blocks number in loop for loop invariant motion" @@ -2154,7 +2154,7 @@ msgstr "Maximale Größe variablenverfolgender Hash-Tabellen" #: params.def:865 msgid "Max. recursion depth for expanding var tracking expressions" -msgstr "" +msgstr "Größte Rekursionstiefe für Ersetzung von variablenverfolgenden Ausdrücken" #: params.def:872 msgid "The minimum UID to be used for a nondebug insn" @@ -2166,7 +2166,7 @@ msgstr "Maximales Größenwachstum neuer von ipa-sra durch Ersetzen von Zeigern #: params.def:883 msgid "Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs" -msgstr "" +msgstr "Größe in Bytes nach der thread-lokale Zusammenfassungen mit Logging-Funktionen statt mit Save/Restore-Paaren instrumentiert werden sollten" #: params.def:890 msgid "Maximum size of a list of values associated with each parameter for interprocedural constant propagation" @@ -2174,7 +2174,7 @@ msgstr "Maximale Größe einer jedem Parameter zugeordneten Liste von Werten fü #: params.def:896 msgid "Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone." -msgstr "" +msgstr "Schwellwert für Auswertung der Möglichkeit von IPA-CP, der noch als vorteilhaft zum Kopieren betrachtet wird" #: params.def:904 msgid "Number of partitions the program should be split to" @@ -2194,7 +2194,7 @@ msgstr "Höchstzahl von bedingten Speicherpaaren, die ausgegeben werden können" #: params.def:931 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 "" +msgstr "Kleinste Zahl unterschiedlicher Werte für die eine Sprungtabelle besser als ein Baum bedingter Sprünge ist; bei 0 wird der Standard für diese Maschine verwendet" #: params.def:939 msgid "Allow new data races on loads to be introduced" @@ -2214,19 +2214,19 @@ msgstr "Neue Daten-Races bei gepackten Speicheroperationen zulassen" #: params.def:960 msgid "Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic." -msgstr "" +msgstr "Höchstzahl der parallel ausgeführten Befehle im neuverbundenen Baum setzen. Bei 0 die zielabhängige Heuristik verwenden." #: params.def:966 msgid "Maximum amount of similar bbs to compare a bb with" -msgstr "" +msgstr "Höchstzahl der ähnlichen BBs, mit denen ein BB verglichen wird" #: params.def:971 msgid "Maximum amount of iterations of the pass over a function" -msgstr "" +msgstr "Höchstzahl der Iterationen des Durchgangs über eine Funktion" #: params.def:978 msgid "Maximum number of strings for which strlen optimization pass will track string lengths" -msgstr "" +msgstr "Höchstzahl der Zeichenketten, für die der Strlen-Optimierungsdurchgang Zeichenkettenlängen aufzeichnet" #: c-family/c-format.c:367 msgid "format" @@ -3277,11 +3277,11 @@ msgstr "MMIX-intern: Dies ist keine Konstante:" #: config/picochip/picochip.c:2665 msgid "picochip_print_memory_address - Operand isn't memory based" -msgstr "" +msgstr "picochip_print_memory_address - Operand ist nicht speicherbasiert" #: config/picochip/picochip.c:2924 msgid "Unknown mode in print_operand (CONST_DOUBLE) :" -msgstr "" +msgstr "Unbekannte Betriebsart in print_operand (CONST_DOUBLE):" #: config/picochip/picochip.c:2970 config/picochip/picochip.c:3002 msgid "Bad address, not (reg+disp):" @@ -3294,7 +3294,7 @@ msgstr "Falsche Adresse, nicht Register:" #: config/rl78/rl78.c:1204 config/rl78/rl78.c:1243 #, c-format msgid "q/Q modifiers invalid for symbol references" -msgstr "" +msgstr "q/Q-Modifizierer für Symbolreferenzen ungültig" #: config/rs6000/host-darwin.c:95 #, c-format @@ -4367,7 +4367,7 @@ msgstr "Element in READ" #: fortran/resolve.c:8472 msgid "ACQUIRED_LOCK variable" -msgstr "" +msgstr "Variable ACQUIRED_LOCK" #: fortran/trans-array.c:1408 #, c-format @@ -4464,7 +4464,7 @@ msgstr "Versuch, nicht reserviertes »%s« freizugeben" #: go/go-backend.c:170 msgid "lseek failed while reading export data" -msgstr "" +msgstr "lseek beim Lesen von Exportdaten gescheitert" #: go/go-backend.c:177 msgid "memory allocation failed while reading export data" @@ -5012,7 +5012,7 @@ msgstr "Bei im gewählten Standard nicht vorhandenen Intrinsics warnen" #: fortran/lang.opt:247 msgid "Warn about real-literal-constants with 'q' exponent-letter" -msgstr "" +msgstr "Bei literalen Realkonstanten mit »q«-Exponentenbuchstaben warnen" #: fortran/lang.opt:255 msgid "Warn about \"suspicious\" constructs" @@ -5044,7 +5044,7 @@ msgstr "Vorverarbeitung ausschalten" #: fortran/lang.opt:291 msgid "Eliminate multiple function invokations also for impure functions" -msgstr "" +msgstr "Mehrere Funktionsaufrufe auch für unreine Funktionen entfernen" #: fortran/lang.opt:295 msgid "Enable alignment of COMMON blocks" @@ -5149,7 +5149,7 @@ msgstr "Annehmen, dass Quelldatei in fester Form vorliegt" #: fortran/lang.opt:399 msgid "Interpret any INTEGER(4) as an INTEGER(8)" -msgstr "" +msgstr "Jeden INTEGER(4) als INTEGER(8) interpretieren" #: fortran/lang.opt:403 msgid "Specify where to find the compiled intrinsic modules" @@ -5245,27 +5245,27 @@ msgstr "Bereichsprüfung während Kompilierung einschalten" #: fortran/lang.opt:503 msgid "Interpret any REAl(4) as a REAL(8)" -msgstr "" +msgstr "Jeden REAL(4) als REAL(8) interpretieren" #: fortran/lang.opt:507 msgid "Interpret any REAL(4) as a REAL(10)" -msgstr "" +msgstr "Jeden REAL(4) als REAL(10) interpretieren" #: fortran/lang.opt:511 msgid "Interpret any REAL(4) as a REAl(16)" -msgstr "" +msgstr "Jeden REAL(4) als REAL(16) interpretieren" #: fortran/lang.opt:515 msgid "Interpret any REAL(8) as a REAL(4)" -msgstr "" +msgstr "Jeden REAL(8) als REAL(4) interpretieren" #: fortran/lang.opt:519 msgid "Interpret any REAL(8) as a REAL(10)" -msgstr "" +msgstr "Jeden REAL(8) als REAL(10) interpretieren" #: fortran/lang.opt:523 msgid "Interpret any REAL(8) as a REAl(16)" -msgstr "" +msgstr "Jeden REAL(8) als REAL(16) interpretieren" #: fortran/lang.opt:527 msgid "Reallocate the LHS in assignments" @@ -5496,7 +5496,7 @@ msgstr "Ziel-CPU-Typ angeben" #: config/frv/frv.opt:73 msgid "Known FR-V CPUs (for use with the -mcpu= option):" -msgstr "" +msgstr "Bekannte FR-V-CPUs (für Verwendung mit Option -mcpu=):" #: config/frv/frv.opt:122 msgid "Use fp double instructions" @@ -5734,7 +5734,7 @@ msgstr "z/Architektur" #: config/s390/s390.opt:146 msgid "Set the branch costs for conditional branch instructions. Reasonable" -msgstr "" +msgstr "Sprungkosten für bedingte Sprungbefehle setzen. Sinnvoll" #: config/ia64/ilp32.opt:3 msgid "Generate ILP32 code" @@ -5831,7 +5831,7 @@ msgstr "Bereich der zu fixierenden Register angeben" #: config/ia64/ia64.opt:127 msgid "Known Itanium CPUs (for use with the -mtune= option):" -msgstr "" +msgstr "Bekannte Itanium-CPUs (für Verwendung mit Option -mtune=):" #: config/ia64/ia64.opt:137 msgid "Use data speculation before reload" @@ -5887,11 +5887,11 @@ msgstr "Annahme, dass Gleitkomma-Speichern und -Laden wahrscheinlich keinen Konf #: config/ia64/ia64.opt:189 msgid "Soft limit on number of memory insns per instruction group, giving lower priority to subsequent memory insns attempting to schedule in the same insn group. Frequently useful to prevent cache bank conflicts. Default value is 1" -msgstr "" +msgstr "Weiche Grenzen für Anzahl der Speicherbefehle pro Befehlsgruppe. Späteren Speicherbefehlen, die versuchen, in gleicher Befehlsgruppe zu planen, wird niedrigere Priorität gegeben. Oft hilfreich, um Konflikte von Cachebänken zu vermeiden. Standard: 1" #: config/ia64/ia64.opt:193 msgid "Disallow more than 'msched-max-memory-insns' in instruction group. Otherwise, limit is 'soft' (prefer non-memory operations when limit is reached)" -msgstr "" +msgstr "Mehr als »msched-max-memory-insns« in Befehlsgruppe verbieten. Ansonsten ist Grenze »weich« (Nicht-Speicheroperationen beim Erreichen der Grenze bevorzugen)" #: config/ia64/ia64.opt:197 msgid "Don't generate checks for control speculation in selective scheduling" @@ -6019,11 +6019,11 @@ msgstr "Strenge Prüfung für 32-bit psABI Strukturrückgabe einschalten" #: config/sparc/sparc.opt:197 msgid "Enable workaround for single erratum of AT697F processor" -msgstr "" +msgstr "Workaround für einzelnes Erratum des AT697F-Prozessors einschalten" #: config/sparc/sparc.opt:221 msgid "Specify the memory model in effect for the program." -msgstr "" +msgstr "Für Programm zu verwendendes Speichermodell angeben" #: config/m32r/m32r.opt:34 msgid "Compile for the m32rx" @@ -6252,15 +6252,15 @@ msgstr "IEEE-Arithmetik für Gleitkommavergleiche verwenden" #: config/m68k/m68k-tables.opt:25 msgid "Known M68K CPUs (for use with the -mcpu= option):" -msgstr "" +msgstr "Bekannte M68K-CPUs (für Verwendung mit Option -mcpu=):" #: config/m68k/m68k-tables.opt:347 msgid "Known M68K microarchitectures (for use with the -mtune= option):" -msgstr "" +msgstr "Bekannte M68K-Mikroarchitekturen (für Verwendung mit Option -mtune=):" #: config/m68k/m68k-tables.opt:393 msgid "Known M68K ISAs (for use with the -march= option):" -msgstr "" +msgstr "Bekannte M68K-ISAs (für Verwendung mit Option -march=):" #: config/i386/interix.opt:33 config/i386/cygming.opt:47 msgid "Use the GNU extension to the PE format for aligned common data" @@ -6320,7 +6320,7 @@ msgstr "Gegebenen Assemblerdialekt verwenden" #: config/i386/i386.opt:123 msgid "Known assembler dialects (for use with the -masm-dialect= option):" -msgstr "" +msgstr "Bekannte Assemblerdialekte (für Verwendung mit Option -masm-dialect=):" #: config/i386/i386.opt:133 msgid "Branches are this expensive (1-5, arbitrary units)" @@ -6336,7 +6336,7 @@ msgstr "Gegebenes x86-64-Codemodell verwenden" #: config/i386/i386.opt:145 config/rs6000/linux64.opt:32 msgid "Known code models (for use with the -mcmodel= option):" -msgstr "" +msgstr "Bekannte Codemodelle (für Verwendung mit Option -mcmodel=):" #: config/i386/i386.opt:163 msgid "%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead" @@ -6473,7 +6473,7 @@ msgstr "Reziproke statt divss und sqrtss erzeugen." #: config/i386/i386.opt:387 msgid "Control generation of reciprocal estimates." -msgstr "" +msgstr "Erstellen der Steuerung für Kehrwertabschätzungen." #: config/i386/i386.opt:391 msgid "Generate cld instruction in the function prologue." @@ -6649,11 +6649,11 @@ msgstr "32-/64-Bit Ganzzahldivision in vorzeichenlose 8-Bit Ganzzahldivision mit #: config/i386/i386.opt:571 msgid "Split 32-byte AVX unaligned load" -msgstr "" +msgstr "Nicht ausgerichtetes 32-Byte AVX-Laden auftrennen" #: config/i386/i386.opt:575 msgid "Split 32-byte AVX unaligned store" -msgstr "" +msgstr "Nicht ausgerichtetes 32-Byte AVX-Speichern auftrennen" #: config/i386/cygming.opt:23 msgid "Create console application" @@ -6689,7 +6689,7 @@ msgstr "Unicode-Start verwenden und UNICODE-Makro definieren" #: config/rs6000/476.opt:24 msgid "Preserve the PowerPC 476's link stack by matching up a blr with the bcl/bl insns used for GOT accesses" -msgstr "" +msgstr "Bindestapel des PowerPC 476 durch Anpassen eines blr an bcl/bl-Befehle für GOT-Zugriffe beibehalten" #: config/rs6000/darwin.opt:38 config/rs6000/sysv4.opt:142 msgid "Generate 64-bit code" @@ -7029,11 +7029,11 @@ msgstr "Xilinx-FPU angeben" #: config/rs6000/rs6000.opt:530 msgid "Use/do not use r11 to hold the static link in calls to functions via pointers." -msgstr "" +msgstr "r11 verwenden/nicht verwenden, um die statische Bindung in Funktionsaufrufen über Zeiger zu speichern" #: config/rs6000/rs6000.opt:534 msgid "Control whether we save the TOC in the prologue for indirect calls or generate the save inline" -msgstr "" +msgstr "TOC wird im Prolog für indirekte Sprünge gespeichert, oder die Sicherung »inline« erzeugen" #: config/rs6000/aix64.opt:24 msgid "Compile for 64-bit pointers" @@ -7135,7 +7135,7 @@ msgstr "Code für altes ausführbares BSS PLT erzeugen" #: config/rs6000/rs6000-tables.opt:24 msgid "Known CPUs (for use with the -mcpu= and -mtune= options):" -msgstr "" +msgstr "Bekannte CPUs (für Verwendung mit Optionen -mcpu= und -mtune=):" #: config/spu/spu.opt:20 msgid "Emit warnings when run-time relocations are generated" @@ -7551,7 +7551,7 @@ msgstr "Beim Binden Adressreferenzen verkürzen" #: config/sh/sh.opt:324 msgid "Use software atomic sequences supported by kernel" -msgstr "" +msgstr "Vom Kernel unterstützte atomare Softwaresequenzen verwenden" #: config/sh/sh.opt:328 msgid "Deprecated. Use -Os instead" @@ -7579,7 +7579,7 @@ msgstr "Laufzeitname." #: config/arm/arm.opt:26 msgid "TLS dialect to use:" -msgstr "" +msgstr "Zu verwendene TLS-Dialekte:" #: config/arm/arm.opt:36 msgid "Specify an ABI" @@ -7587,7 +7587,7 @@ msgstr "ABI angeben" #: config/arm/arm.opt:40 msgid "Known ARM ABIs (for use with the -mabi= option):" -msgstr "" +msgstr "Bekannte ARM-ABIs (für Verwendung mit Option -mabi=):" #: config/arm/arm.opt:59 msgid "Generate a call to abort if a noreturn function returns" @@ -7635,7 +7635,7 @@ msgstr "Angeben, ob Gleitkommahardware verwendet werden sollte" #: config/arm/arm.opt:118 msgid "Known floating-point ABIs (for use with the -mfloat-abi= option):" -msgstr "" +msgstr "Bekannte Gleitkomma-ABIs (für Verwendung mit Option -mfloat-abi=):" #: config/arm/arm.opt:137 msgid "Specify the __fp16 floating-point format" @@ -7723,7 +7723,7 @@ msgstr "Sich überschneidende Ziel- und Addressregister bei LDRD-Befehlen vermei #: config/arm/arm.opt:269 msgid "Enable unaligned word and halfword accesses to packed data." -msgstr "" +msgstr "Nicht ausgerichtete Wort- und Halbwortzugriffe auf gepackte Daten einschalten" #: config/arm/pe.opt:23 msgid "Ignore dllimport attribute for functions" @@ -7731,15 +7731,15 @@ msgstr "Attribut dllimport für Funktionen ignorieren" #: config/arm/arm-tables.opt:25 msgid "Known ARM CPUs (for use with the -mcpu= and -mtune= options):" -msgstr "" +msgstr "Bekannte ARM-CPUs (für Verwendung mit Optionen -mcpu= und -mtune=):" #: config/arm/arm-tables.opt:275 msgid "Known ARM architectures (for use with the -march= option):" -msgstr "" +msgstr "Bekannte ARM-Architekturen (für Verwendung mit Option -march=):" #: config/arm/arm-tables.opt:357 msgid "Known ARM FPUs (for use with the -mfpu= option):" -msgstr "" +msgstr "Bekannte ARM-FPUs (für Verwendung mit Option -mfpu=):" #: config/pdp11/pdp11.opt:23 msgid "Generate code for an 11/10" @@ -7819,7 +7819,7 @@ msgstr "Stapel-Zeiger ändern, ohne Unterbrechung (Interrupt) auszuschalten" #: config/avr/avr.opt:45 msgid "Set the branch costs for conditional branch instructions. Reasonable values are small, non-negative integers. The default branch cost is 0." -msgstr "" +msgstr "Sprungkosten für bedingte Sprungbefehle setzen. Angemessene Werte sind kleine, nicht-negative Ganzzahlen. Standard: 0" #: config/avr/avr.opt:55 msgid "Use rjmp/rcall (limited range) on >8K devices" @@ -7839,15 +7839,15 @@ msgstr "Maschine zur Binder-Entspannung soll annehmen, dass ein Befehlszählerü #: config/avr/avr.opt:71 msgid "Accumulate outgoing function arguments and acquire/release the needed stack space for outpoing function arguments in function prologue/epilogue. Without this option, outgoing arguments are pushed before calling a function and popped afterwards. This option can lead to reduced code size for functions that call many functions that get their arguments on the stack like, for example printf." -msgstr "" +msgstr "Ausgehende Funktionsargumente sammeln und den nötigen Stapelspeicher für ausgehende Argumente im Prolog/Epilog der Funktion reservieren/freigeben. Ohne diese Option werden ausgehende Argumente auf den Stack geschoben und hinter zurückgeholt. Diese Option kann für Funktionen, die viele Funktionen mit Argumentübergabe über den Stack aufrufen, z.B. printf, zu kleinerem Code führen" #: config/avr/avr.opt:75 msgid "When accessing RAM, use X as imposed by the hardware, i.e. just use pre-decrement, post-increment and indirect addressing with the X register. Without this option, the compiler may assume that there is an addressing mode X+const similar to Y+const and Z+const and emit instructions to emulate such an addressing mode for X." -msgstr "" +msgstr "Bei RAM-Zugriff X wie durch Hardware vorgegeben verwenden, d.h. Pre-Dekrement, Post-Inkrement und indirekte Adressiering mit dem X-Register. Ohne diese Option nimmt der Kompiler an, dass es einen Adressierungsmodus X+const, ähnlich zu Y+const und Z+const gibt und erzeugt Befehle, die diesen Adressierungsmodus für X emulieren." #: config/avr/avr-tables.opt:24 msgid "Known MCU names:" -msgstr "" +msgstr "Bekannte MCU-Namen:" #: config/rl78/rl78.opt:27 config/rx/rx.opt:84 msgid "Use the simulator runtime." @@ -7855,7 +7855,7 @@ msgstr "Simulator-Laufzeitumgebung verwenden" #: config/rl78/rl78.opt:31 msgid "Select hardware or software multiplication support." -msgstr "" +msgstr "Hardware- oder Softwaremultiplikation wählen" #: config/pa/pa-hpux.opt:27 msgid "Generate cpp defines for server IO" @@ -7976,7 +7976,7 @@ msgstr "-mabi=ABI\tCode erzeugen, der zum angegebenen ABI passt" #: config/mips/mips.opt:36 msgid "Known MIPS ABIs (for use with the -mabi= option):" -msgstr "" +msgstr "Bekannte MIPS-ABIs (für Verwendung mit Option -mabi=):" #: config/mips/mips.opt:55 msgid "Generate code that can be used in SVR4-style dynamic objects" @@ -8252,11 +8252,11 @@ msgstr "Beschränkungen für GOT-Größe aufheben" #: config/mips/mips-tables.opt:24 msgid "Known MIPS CPUs (for use with the -march= and -mtune= options):" -msgstr "" +msgstr "Bekannte MIPS-CPUs (für Verwendung mit Optionen -march= und -mtune=):" #: config/mips/mips-tables.opt:28 msgid "Known MIPS ISA levels (for use with the -mips option):" -msgstr "" +msgstr "Bekannte MIPS-ISA-Stufen (für Verwendung mit Option -mips):" #: config/fr30/fr30.opt:23 msgid "Assume small address space" @@ -8560,7 +8560,7 @@ msgstr "CPU für Planzwecke angeben" #: config/iq2000/iq2000.opt:51 msgid "Known IQ2000 CPUs (for use with the -mcpu= option):" -msgstr "" +msgstr "Bekannte IQ2000-CPUs (für Verwendung mit Option -mcpu=):" #: config/iq2000/iq2000.opt:65 config/microblaze/microblaze.opt:80 msgid "Use GP relative sdata/sbss sections" @@ -8624,11 +8624,11 @@ msgstr "Annahme, dass ICPLBs zur Laufzeit aktiviert sind." #: config/epiphany/epiphany.opt:24 msgid "Don't use any of r32..r63." -msgstr "" +msgstr "r32..r63 nicht verwenden" #: config/epiphany/epiphany.opt:28 msgid "preferentially allocate registers that allow short instruction generation." -msgstr "" +msgstr "vorzugsweise Register reservieren, die kurze Befehle ermöglichen" #: config/epiphany/epiphany.opt:32 msgid "Set branch cost" @@ -8684,11 +8684,11 @@ msgstr "Für Doppelwort-Operationen vektorisieren." #: config/epiphany/epiphany.opt:124 msgid "Split unaligned 8 byte vector moves before post-modify address generation." -msgstr "" +msgstr "Nicht ausgerichtete 8-Byte-Vektor-Bewegungen vor Nach-Bewegungs-Adresserzeugung aufteilen" #: config/epiphany/epiphany.opt:128 msgid "Set register to hold -1." -msgstr "" +msgstr "Register auf -1 setzen" #: config/picochip/picochip.opt:23 msgid "Specify which type of AE to target. This option sets the mul-type and byte-access." @@ -8800,7 +8800,7 @@ msgstr "SCORE 7D ISA unterstützen" #: config/score/score.opt:51 msgid "Known SCORE architectures (for use with the -march= option):" -msgstr "" +msgstr "Bekannte SCORE-Architekturen (für Verwendung mit Option -march=):" #: config/linux.opt:24 msgid "Use Bionic C library" @@ -8968,7 +8968,7 @@ msgstr "Maximalgröße der globalen und statischen Variable, die in kleine Daten #: config/rx/rx.opt:90 msgid "Generate assembler output that is compatible with the Renesas AS100 assembler. This may restrict some of the compiler's capabilities. The default is to generate GAS compatable syntax." -msgstr "" +msgstr "Assemblerausgabe erzeugen, die mit Renesas AS100-Assembler verträglich ist. Dies schränkt einige Kompilerfähigkeiten ein. Standard: GAS-verträgliche Syntax" #: config/rx/rx.opt:96 msgid "Enable linker relaxation." @@ -8988,7 +8988,7 @@ msgstr "Angabe, ob Interruptfunktionen das Akkumulator-Register sichern und wied #: config/rx/rx.opt:120 msgid "Enables Position-Independent-Data (PID) mode." -msgstr "" +msgstr "Betriebsart für positionsunabhängige Daten (PID) einschalten" #: config/lm32/lm32.opt:24 msgid "Enable multiply instructions" @@ -9221,7 +9221,7 @@ msgstr "Warnen, wenn Funktionen in unverträgliche Typen umgewandelt werden" #: c-family/c.opt:284 msgid "Warn when a built-in preprocessor macro is undefined or redefined" -msgstr "" +msgstr "Bei undefiniertem oder redefiniertem eingebauten Präprozessormakro warnen" #: c-family/c.opt:288 msgid "Warn about C constructs that are not in the common subset of C and C++" @@ -9429,7 +9429,7 @@ msgstr "Bei Verwendung von Zeichenkonstanten mit mehreren Zeichen warnen" #: c-family/c.opt:502 msgid "Warn about narrowing conversions within { } that are ill-formed in C++11" -msgstr "" +msgstr "Bei verengenden Umwandlungen innerhalb von { }, die in C++11 unzulässig sind, warnen" #: c-family/c.opt:506 msgid "Warn about \"extern\" declarations not at file scope" @@ -9437,7 +9437,7 @@ msgstr "Bei »extern«-Deklarationen außerhalb des Dateisichtbarkeitsbereiches #: c-family/c.opt:510 msgid "Warn when a noexcept expression evaluates to false even though the expression can't actually throw" -msgstr "" +msgstr "Warnen, wenn eine Noexcept-Ausnahme zu »falsch« auswertet, obwohl der Ausdruck nicht werfen kann" #: c-family/c.opt:514 msgid "Warn when non-templatized friend functions are declared within a template" @@ -9481,7 +9481,7 @@ msgstr "Beim Ãœberschreiben von Initialisierungen ohne Seiteneffekte warnen" #: c-family/c.opt:554 msgid "Warn about packed bit-fields whose offset changed in GCC 4.4" -msgstr "" +msgstr "Bei gepackten Bitfeldern, deren Offset sich in GCC 4.4 geändert hat, warnen" #: c-family/c.opt:558 msgid "Warn about possibly missing parentheses" @@ -9589,7 +9589,7 @@ msgstr "Bei Gleitkommakonstanten ohne Suffix warnen" #: c-family/c.opt:666 msgid "Warn about" -msgstr "" +msgstr "Warnen vor" #: c-family/c.opt:670 msgid "Warn about macros defined in the main file that are not used" @@ -9768,7 +9768,7 @@ msgstr "Friend-Funktionen in umgebenden Namensraum einfügen" #: c-family/c.opt:859 msgid "Don't emit dllexported inline functions unless needed" -msgstr "" +msgstr "Keine DLL-exportierten Inline-Funktionen erzeugen, außer wenn nötig" #: c-family/c.opt:866 msgid "Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types." @@ -9800,11 +9800,11 @@ msgstr "Annehmen, dass Empfänger von Objective-C-Nachrichten Null sein können" #: c-family/c.opt:906 msgid "Treat a throw() exception specification as noexcept to improve code size" -msgstr "" +msgstr "Um Codegröße zu verbessern, eine throw()-Ausnahmespezifikation als »noexcept« behandeln" #: c-family/c.opt:910 msgid "Specify which ABI to use for Objective-C family code and meta-data generation." -msgstr "" +msgstr "Zu verwendendes ABI für Code der Objective-C-Familie und Metadaten angeben" #: c-family/c.opt:916 msgid "Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed" @@ -9824,7 +9824,7 @@ msgstr "Garbage Collection (GC) in Objective-C/Objective-C++-Programmen einschal #: c-family/c.opt:934 msgid "Enable inline checks for nil receivers with the NeXT runtime and ABI version 2." -msgstr "" +msgstr "»inline«-Prüfungen für NIL-Empfänger mit NeXT-Laufzeitumgebung und ABI-Version 2 einschalten" #: c-family/c.opt:939 msgid "Enable Objective-C setjmp exception handling runtime" @@ -9860,7 +9860,7 @@ msgstr "Die Eingabedatei als bereits vorverarbeitet behandeln" #: c-family/c.opt:982 msgid "-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messages" -msgstr "" +msgstr "-ftrack-macro-expansion=<0|1|2> Orte der aus Makroersetzung entstehenden Zeichen verfolgen und in Fehlermeldungen anzeigen" #: c-family/c.opt:986 msgid "-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the arguments" @@ -10120,7 +10120,7 @@ msgstr "-fgo-dump-<Typ>\tInterne Information des Go-Frontends in Datei ausgeben" #: go/lang.opt:46 msgid "-fgo-optimize-<type>\tTurn on optimization passes in the frontend" -msgstr "" +msgstr "-fgo-optimize-<type>\tOptimierungsdurchläufe im Frontend einschalten" #: go/lang.opt:50 msgid "-fgo-prefix=<string>\tSet package-specific prefix for exported Go names" @@ -10228,7 +10228,7 @@ msgstr "-Wframe-larger-than=<Anzahl>\tWarnen, wenn der Stapelrahmen einer Funkti #: common.opt:548 msgid "Warn when attempting to free a non-heap object" -msgstr "" +msgstr "Beim Versuch der Freigabe eines Nicht-Heap-Objektes warnen" #: common.opt:552 msgid "Warn when an inlined function cannot be inlined" @@ -10236,7 +10236,7 @@ msgstr "Warnen, wenn eine inline-Funktion nicht als solche erzeugt werden kann" #: common.opt:556 msgid "Warn when an atomic memory model parameter is known to be outside the valid range." -msgstr "" +msgstr "Warnen, wenn ein Parameter des atomaren Speichermodells erkennbar außerhalb des Wertebereiches ist" #: common.opt:563 msgid "-Wlarger-than=<number>\tWarn if an object is larger than <number> bytes" @@ -10272,7 +10272,7 @@ msgstr "Warnen, wenn Stackzerstörungsschutz nicht ausgegeben wird" #: common.opt:595 msgid "Warn if stack usage might be larger than specified amount" -msgstr "" +msgstr "Warnen, wenn Stapelverwendung den angegebenen Betrag überschreitet" #: common.opt:599 common.opt:603 msgid "Warn about code which might break strict aliasing rules" @@ -10360,7 +10360,7 @@ msgstr "Warnen, wenn Profile in -fprofile-use nicht zueinander passen" #: common.opt:699 msgid "Warn when a vector operation is compiled outside the SIMD" -msgstr "" +msgstr "Warnen, wenn Vektoroperation außerhalb von SIMD kompiliert wird" #: common.opt:715 msgid "-aux-info <file>\tEmit declaration information into <file>" @@ -10504,7 +10504,7 @@ msgstr "In Fehlersuchinfo einen Verzeichnisnamen auf einen anderen abbilden" #: common.opt:965 msgid "Output .debug_types section when using DWARF v4 debuginfo." -msgstr "" +msgstr ".debug_types-Abschnitt ausgeben, wenn DWARF v4-Debuginfo verwendet wird" #: common.opt:971 msgid "Defer popping functions args from stack until later" @@ -10532,11 +10532,11 @@ msgstr "Die geeignete Diagnosemeldung mit der Kommandozeilenoption erweitern, di #: common.opt:1008 msgid "-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass" -msgstr "" +msgstr "-fdisable-[tree|rtl|ipa]-<Durchgang>=range1+range2 schaltet einen Optimierungsdurchgang aus" #: common.opt:1012 msgid "-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass" -msgstr "" +msgstr "-fenable-[tree|rtl|ipa]-<Durchgang>=range1+range2 schaltet einen Optimierungsdurchgang ein" #: common.opt:1016 msgid "-fdump-<type>\tDump various compiler internals to a file" @@ -10609,7 +10609,7 @@ msgstr "unbekannte Art überschüssiger Genauigkeit %qs" #: common.opt:1099 msgid "Output lto objects containing both the intermediate language and binary output." -msgstr "" +msgstr "LTO-Objekte ausgeben, die sowohl Zwischensprache als auch Binärausgabe enthalten" #: common.opt:1103 msgid "Assume no NaNs or infinities are generated" @@ -10629,7 +10629,7 @@ msgstr "Schritt zur Vorwärts-Ãœbertragung auf RTL durchführen" #: common.opt:1123 msgid "-ffp-contract=[off|on|fast] Perform floating-point expression contraction." -msgstr "" +msgstr "-ffp-contract=[off|on|fast] Schrumpfung von Gleitkommaausdrücken durchführen" #: common.opt:1126 #, c-format @@ -10690,7 +10690,7 @@ msgstr "Transformation des Loop Blocking einschalten" #: common.opt:1198 msgid "Enable support for GNU transactional memory" -msgstr "" +msgstr "Unterstützung für GNU-Transaktionsspeicher einschalten" #: common.opt:1202 msgid "Enable Loop Flattening transformation" @@ -10754,7 +10754,7 @@ msgstr "-finline-limit=<Zahl>\tGröße von »inline«-Funktionen auf <Zahl> besc #: common.opt:1278 msgid "Inline __atomic operations when a lock free instruction sequence is available." -msgstr "" +msgstr "__atomic-Operationen »inline« erzeugen, wenn Lock-freie Befehlssequenz verfügbar ist" #: common.opt:1282 msgid "Instrument function entry and exit with profiling calls" @@ -10860,11 +10860,11 @@ msgstr "Optimierungen zur Linkzeit mit Anzahl paralleler Jobs oder Jobserver." #: common.opt:1405 msgid "Partition functions and vars at linktime based on object files they originate from" -msgstr "" +msgstr "Funktionen und Variablen zum Linkzeitpunkt aufgrund ihrer Objektdatei-Herkunft partitionieren" #: common.opt:1409 msgid "Partition functions and vars at linktime into approximately same sized buckets" -msgstr "" +msgstr "Funktionen und Variablen zum Linkzeitpunkt in ungefähr gleich große Gruppen partitionieren" #: common.opt:1413 msgid "Disable partioning and streaming" @@ -11020,11 +11020,11 @@ msgstr "Arc-basierten Programm-Profilierungscode einfügen" #: common.opt:1573 msgid "Set the top-level directory for storing the profile data." -msgstr "" +msgstr "Ãœbergeordnetes Verzeichnis zum Speichern der Profildaten setzen" #: common.opt:1578 msgid "Enable correction of flow inconsistent profile data input" -msgstr "" +msgstr "Korrektur fluss-unstimmiger Profildateneingabe einschalten" #: common.opt:1582 msgid "Enable common options for generating profile info for profile feedback directed optimizations" @@ -11092,7 +11092,7 @@ msgstr "Planung über Basisblöcke hinaus einschalten" #: common.opt:1659 msgid "Enable register pressure sensitive insn scheduling" -msgstr "" +msgstr "Registerdruckempfindliche Befehlsplanung einschalten" #: common.opt:1663 msgid "Allow speculative motion of non-loads" @@ -11124,7 +11124,7 @@ msgstr "Befehle nach Registerbelegung neu planen" #: common.opt:1698 msgid "Schedule instructions using selective scheduling algorithm" -msgstr "" +msgstr "Befehle mit selektivem Planungs-Algorithmus einplanen" #: common.opt:1702 msgid "Run selective scheduling after reload" @@ -11132,15 +11132,15 @@ msgstr "Ausgewählte Planung nach Neuladen laufen lassen" #: common.opt:1706 msgid "Perform software pipelining of inner loops during selective scheduling" -msgstr "" +msgstr "Während selektiver Planung Software-Pipelining innerer Schleifen durchführen" #: common.opt:1710 msgid "Perform software pipelining of outer loops during selective scheduling" -msgstr "" +msgstr "Während selektiver Planung Software-Pipelining äußerer Schleifen durchführen" #: common.opt:1714 msgid "Reschedule pipelined regions without pipelining" -msgstr "" +msgstr "Regionen mit Pipelining ohne Pipelining neu planen" #: common.opt:1720 msgid "Allow premature scheduling of queued insns" @@ -11180,7 +11180,7 @@ msgstr "Heuristik für letzte Befehle im Planer einschalten" #: common.opt:1760 msgid "Enable the dependent count heuristic in the scheduler" -msgstr "" +msgstr "Abhängige Zähl-Heuristik bei Planung einschalten" #: common.opt:1764 msgid "Access data in the same section from shared anchor points" @@ -11188,7 +11188,7 @@ msgstr "Auf Daten im gleichen Abschnitt von gemeinsam benutzten Ankerpunkten zug #: common.opt:1776 msgid "Turn on Redundant Extensions Elimination pass." -msgstr "" +msgstr "Redundante Erweiterungsentfernung einschalten" #: common.opt:1780 msgid "Show column numbers in diagnostics, when available. Default on" @@ -11196,7 +11196,7 @@ msgstr "Spaltenzahlen in Diagnose zeigen, wenn verfügbar. Standard: Ein" #: common.opt:1784 msgid "Emit function prologues only before parts of the function that need it," -msgstr "" +msgstr "Funktionsprologe nur vor Teilen der Funktion erzeugen, die diese benötigt" #: common.opt:1789 msgid "Disable optimizations observable by IEEE signaling NaNs" @@ -11720,7 +11720,7 @@ msgstr "ungültiger Typ für »make«-Funktion" #: go/gofrontend/expressions.cc:7750 msgid "length required when allocating a slice" -msgstr "" +msgstr "Bei Reservierung einer Scheibe wird Länge benötigt" #: go/gofrontend/expressions.cc:7764 msgid "bad size for make" @@ -11728,7 +11728,7 @@ msgstr "falsche Größe für make" #: go/gofrontend/expressions.cc:7776 msgid "bad capacity when making slice" -msgstr "" +msgstr "Falsche Größe bei Scheiben-Erzeugung" #: go/gofrontend/expressions.cc:7784 msgid "too many arguments to make" @@ -11812,7 +11812,7 @@ msgstr "Scheibenende muss eine Ganzzahl sein" #: go/gofrontend/expressions.cc:10596 msgid "slice of unaddressable value" -msgstr "" +msgstr "Scheibe ohne adressierbaren Wert" #: go/gofrontend/expressions.cc:11175 msgid "incompatible type for map index" @@ -11973,12 +11973,12 @@ msgstr "unterschiedliche Ergebnistypen" #: go/gofrontend/types.cc:4054 #, c-format msgid "implicit assignment of %s%s%s hidden field %s%s%s" -msgstr "" +msgstr "implizite Zuweisung an verstecktes Feld %4$s%5$s%6$s von %1$s%2$s%3$s" #: go/gofrontend/types.cc:6423 #, c-format msgid "need explicit conversion; missing method %s%s%s" -msgstr "" +msgstr "explizite Umwandlung nötig; Methode %s%s%s fehlt" #: go/gofrontend/types.cc:6440 go/gofrontend/types.cc:6582 #, c-format @@ -12236,7 +12236,7 @@ msgstr "Zweiter Parameter von %<va_start%> ist nicht letztgenanntes Argument" #: builtins.c:12124 #, gcc-internal-format msgid "undefined behaviour when second parameter of %<va_start%> is declared with %<register%> storage" -msgstr "" +msgstr "undefiniertes Verhalten, wenn zweiter Parameter von %<va_start%> mit %<register%>-Speicher deklariert wird" #: builtins.c:12360 #, gcc-internal-format @@ -12261,12 +12261,12 @@ msgstr "%KAufruf von %D könnte Zielpuffer überlaufen lassen" #: builtins.c:12647 #, gcc-internal-format msgid "%Kattempt to free a non-heap object %qD" -msgstr "" +msgstr "%KVersuch, Nicht-Heap-Objekt %qD freizugeben" #: builtins.c:12650 #, gcc-internal-format msgid "%Kattempt to free a non-heap object" -msgstr "" +msgstr "%KVersuch, Nicht-Heap-Objekt freizugeben" #. Except for passing an argument to an unprototyped function, #. this is a constraint violation. When passing an argument to @@ -14496,27 +14496,27 @@ msgstr "%<threadprivate%> %qE hat unvollständigen Typen" #: c-parser.c:10768 cp/parser.c:27165 #, gcc-internal-format msgid "%<__transaction_cancel%> without transactional memory support enabled" -msgstr "" +msgstr "%<__transaction_cancel%> ohne eingeschaltete Unterstützung für transaktionsbasierten Speicher" #: c-parser.c:10774 cp/parser.c:27171 #, gcc-internal-format msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>" -msgstr "" +msgstr "%<__transaction_cancel%> innerhalb eines %<__transaction_relaxed%>" #: c-parser.c:10783 cp/parser.c:27180 #, gcc-internal-format msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>" -msgstr "" +msgstr "äußeres %<__transaction_cancel%> nicht innerhalb des äußeren %<__transaction_atomic%>" #: c-parser.c:10785 cp/parser.c:27183 #, gcc-internal-format msgid " or a %<transaction_may_cancel_outer%> function" -msgstr "" +msgstr " oder einer %<transaction_may_cancel_outer%>-Funktion" #: c-parser.c:10791 cp/parser.c:27189 #, gcc-internal-format msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>" -msgstr "" +msgstr "%<__transaction_cancel%> nicht innerhalb von %<__transaction_atomic%>" #: c-typeck.c:214 #, gcc-internal-format @@ -14685,12 +14685,12 @@ msgstr "Vektorargumente von __builtin_shuffle müssen gleichen Typ haben" #: c-typeck.c:2912 #, gcc-internal-format msgid "__builtin_shuffle number of elements of the argument vector(s) and the mask vector should be the same" -msgstr "" +msgstr "Anzahl der Elemente des/der Argumentvektors/en und des Maskenvektors für __builtin_shuffle sollten gleich sein" #: c-typeck.c:2921 #, gcc-internal-format msgid "__builtin_shuffle argument vector(s) inner type must have the same size as inner type of the mask" -msgstr "" +msgstr "Innere Typen des/der Argumentvektors/en und Maske von __builtin_shuffle müssen gleiche Größe haben" #: c-typeck.c:3033 #, gcc-internal-format @@ -14973,17 +14973,17 @@ msgstr "Typkonvertierung in union-Typ von nicht in union vorhandenem Typen" #: c-typeck.c:4699 #, gcc-internal-format, gfc-internal-format msgid "cast to %s address space pointer from disjoint generic address space pointer" -msgstr "" +msgstr "Umwandlung in %s-Adressraumzeiger aus getrenntem allgemeinen Adressraumzeiger" #: c-typeck.c:4704 #, gcc-internal-format, gfc-internal-format msgid "cast to generic address space pointer from disjoint %s address space pointer" -msgstr "" +msgstr "Umwandlung in allgemeinen Adressraumzeiger von getrenntem %s-Adressraumzeiger" #: c-typeck.c:4709 #, gcc-internal-format, gfc-internal-format msgid "cast to %s address space pointer from disjoint %s address space pointer" -msgstr "" +msgstr "Umwandlung in %s-Adressraumzeiger von getrenntem %s-Adressraumzeiger" #: c-typeck.c:4729 #, gcc-internal-format @@ -15555,7 +15555,7 @@ msgstr "Ausdrucksanweisung hat unvollständigen Typ" #: c-typeck.c:9456 c-typeck.c:9491 c-typeck.c:9505 #, gcc-internal-format msgid "conversion of scalar to vector involves truncation" -msgstr "" +msgstr "Umwandlung von Skalar in Vektor führt zum Abschneiden" #: c-typeck.c:9933 cp/typeck.c:3926 #, gcc-internal-format @@ -16026,7 +16026,7 @@ msgstr "verify_flow_info: REG_BR_PROB passt nicht zu cfg %wi %i" #: cfgrtl.c:1902 #, gcc-internal-format msgid "EDGE_CROSSING incorrectly set across same section" -msgstr "" +msgstr "EDGE_CROSSING falsch gesetzt im selben Abschnitt" #: cfgrtl.c:1907 #, gcc-internal-format, gfc-internal-format @@ -16286,37 +16286,37 @@ msgstr "same_comdat_group ist keine ringförmige Liste" #: cgraphunit.c:664 #, gcc-internal-format msgid "Alias has call edges" -msgstr "" +msgstr "Alias hat Aufruf-Kanten" #: cgraphunit.c:670 #, gcc-internal-format msgid "Alias has non-alias refernece" -msgstr "" +msgstr "Alias hat Nicht-Alias-Referenz" #: cgraphunit.c:675 #, gcc-internal-format msgid "Alias has more than one alias reference" -msgstr "" +msgstr "Alias hat mehr als eine Alias-Reference" #: cgraphunit.c:682 #, gcc-internal-format msgid "Analyzed alias has no reference" -msgstr "" +msgstr "Analysierter Alias hat keine Referenz" #: cgraphunit.c:690 #, gcc-internal-format msgid "No edge out of thunk node" -msgstr "" +msgstr "Keine Kante aus Thunk-Knoten" #: cgraphunit.c:695 #, gcc-internal-format msgid "More than one edge out of thunk node" -msgstr "" +msgstr "Mehr als eine Kante aus Thunk-Knoten" #: cgraphunit.c:700 #, gcc-internal-format msgid "Thunk is not supposed to have body" -msgstr "" +msgstr "Thunk sollte keinen Körper haben" #: cgraphunit.c:730 #, gcc-internal-format @@ -16611,12 +16611,12 @@ msgstr "%qs übergelaufen" #: coverage.c:360 #, gcc-internal-format msgid "the control flow of function %qE does not match its profile data (counter %qs)" -msgstr "" +msgstr "Kontrollfluss der Funktion %qE passt nicht zu seinen Profildaten (Zähler %qs)" #: coverage.c:364 #, gcc-internal-format msgid "use -Wno-error=coverage-mismatch to tolerate the mismatch but performance may drop if the function is hot" -msgstr "" +msgstr "-Wno-error=coverage-mismatch verwenden, um Fehlzuordnung zu tolerieren, aber die Leistung sinkt, wenn die Funktion »heiß« ist" #: coverage.c:370 #, gcc-internal-format @@ -16641,7 +16641,7 @@ msgstr "dies kann zu schlecht optimiertem Code führen" #: coverage.c:384 #, gcc-internal-format msgid "source locations for function %qE have changed, the profile data may be out of date" -msgstr "" +msgstr "Quellorte der Funktion %qE haben sich geändert, Profildaten möglicherweise veraltet" #: coverage.c:602 #, gcc-internal-format @@ -16701,7 +16701,7 @@ msgstr " %s" #: dbxout.c:3363 #, gcc-internal-format msgid "common symbol debug info is not structured as symbol+offset" -msgstr "" +msgstr "Gemeinsame Symbol-Debuginfo ist nicht als Symbol+Offset strukturiert" #: diagnostic.c:899 #, gcc-internal-format, gfc-internal-format @@ -16721,12 +16721,12 @@ msgstr "Herrscher über %d sollte %d sein, nicht %d" #: dwarf2out.c:1035 #, gcc-internal-format msgid "multiple EH personalities are supported only with assemblers supporting .cfi_personality directive" -msgstr "" +msgstr "Mehrere EH-Persönlichkeiten werden nur mit Assemblern unterstützt, die die Direktive .cfi_personality unterstützen" #: dwarf2out.c:10672 #, gcc-internal-format, gfc-internal-format msgid "non-delegitimized UNSPEC %s (%d) found in variable location" -msgstr "" +msgstr "Nicht-Delegitimiertes UNSPEC %s (%d) am Variablenort gefunden" #: emit-rtl.c:2541 #, gcc-internal-format @@ -17523,32 +17523,32 @@ msgstr "%s kann nicht hier in »asm« verwendet werden" #: lto-cgraph.c:1010 #, gcc-internal-format, gfc-internal-format msgid "bytecode stream: found multiple instances of cgraph node %d" -msgstr "" +msgstr "Bytecode-Strom: Mehrere Instanzen des Cgraph-Knoten %d gefunden" #: lto-cgraph.c:1147 #, gcc-internal-format msgid "bytecode stream: no caller found while reading edge" -msgstr "" +msgstr "Bytecode-Strom: Kein Aufrufer beim Lesen der Kante gefunden" #: lto-cgraph.c:1153 #, gcc-internal-format msgid "bytecode stream: no callee found while reading edge" -msgstr "" +msgstr "Bytecode-Strom: Kein Gerufener beim Lesen der Kante gefunden" #: lto-cgraph.c:1217 #, gcc-internal-format msgid "bytecode stream: found empty cgraph node" -msgstr "" +msgstr "Bytecode-Strom: Leeren Cgraph-Knoten gefunden" #: lto-cgraph.c:1382 #, gcc-internal-format, gfc-internal-format msgid "At most %i profile runs is supported. Perhaps corrupted profile?" -msgstr "" +msgstr "Es werden höchstens %i Profildurchläufe unterstützt. Evtl. beschädigte Datei?" #: lto-cgraph.c:1430 #, gcc-internal-format, gfc-internal-format msgid "Profile information in %s corrupted" -msgstr "" +msgstr "Profilinformation in %s ist beschädigt" #: lto-cgraph.c:1465 #, gcc-internal-format, gfc-internal-format @@ -17579,7 +17579,7 @@ msgstr "Bytecode-Strom: Versuch, %d Bytes nach Ende des Eingabepuffers zu lesen" #: lto-section-in.c:433 #, gcc-internal-format, gfc-internal-format msgid "%s out of range: Range is %i to %i, value is %i" -msgstr "" +msgstr "%s außerhalb des Wertebereiches: Bereich ist %i bis %i, Wert ist %i" #: lto-streamer-in.c:77 #, gcc-internal-format, gfc-internal-format @@ -17796,7 +17796,7 @@ msgstr "-freorder-blocks-and-partition funktioniert auf dieser Architektur nicht #: opts.c:789 #, gcc-internal-format msgid "-fno-fat-lto-objects are supported only with linker plugin." -msgstr "" +msgstr "-fno-fat-lto-objects werden nur mit Linker-Plugin unterstützt" #: opts.c:797 #, gcc-internal-format @@ -18807,12 +18807,12 @@ msgstr "ungültiger Positions- oder Größenoperand für BIT_FIELD_REF" #: tree-cfg.c:2797 #, gcc-internal-format msgid "integral result type precision does not match field size of BIT_FIELD_REF" -msgstr "" +msgstr "Präzision des eingebauten Ergebnistypen passt nicht zur Feldgröße des BIT_FIELD_REF" #: tree-cfg.c:2805 #, gcc-internal-format msgid "mode precision of non-integral result does not match field size of BIT_FIELD_REF" -msgstr "" +msgstr "Betriebsart-Präzision des nicht-eingebauten Ergebnisses passt nicht zur Feldgröße des BIT_FIELD_REF" #: tree-cfg.c:2816 #, gcc-internal-format @@ -19513,7 +19513,7 @@ msgstr "nicht implementierte Funktionalität" #: tree-ssa-operands.c:1116 #, gcc-internal-format msgid "virtual definition of statement not up-to-date" -msgstr "" +msgstr "virtuelle Definition der Anweisung nicht aktuell" #: tree-ssa-operands.c:1123 #, gcc-internal-format @@ -19986,22 +19986,22 @@ msgstr "beschädigtes Werteprofil: %s-Profiler-Gesamtzähler (%d aus %d) passt n #: value-prof.c:1105 value-prof.c:1107 #, gcc-internal-format, gfc-internal-format msgid "Inconsistent profile: indirect call target (%d) does not exist" -msgstr "" +msgstr "Unstimmiges Profil: Indirektes Rufziel (%d) existiert nicht" #: value-prof.c:1129 #, gcc-internal-format, gfc-internal-format msgid "Skipping target %s with mismatching types for icall " -msgstr "" +msgstr "Ziel %s wird übersprungen mit unpassenden Typen für »icall« " #: var-tracking.c:6582 #, gcc-internal-format msgid "variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without" -msgstr "" +msgstr "Obere Größengrenze zur Variablenverfolgung mit -fvar-tracking-assignments überschritten; neuer Versuch ohne" #: var-tracking.c:6586 #, gcc-internal-format msgid "variable tracking size limit exceeded" -msgstr "" +msgstr "Grenze zur Variablenverfolgung überschritten" #: varasm.c:317 #, gcc-internal-format @@ -20218,7 +20218,7 @@ msgstr "komplexer Gleitkommaüberlauf in Ausdruck" #: c-family/c-common.c:1594 #, gcc-internal-format msgid "logical %<or%> applied to non-boolean constant" -msgstr "" +msgstr "Logisches %<or%> auf Nicht-Boolesche Konstante angewandt" #: c-family/c-common.c:1597 #, gcc-internal-format @@ -21750,12 +21750,12 @@ msgstr "ungültiger Ausdruckstyp für %<#pragma omp atomic%>" #: c-family/c-omp.c:201 #, gcc-internal-format msgid "%<#pragma omp atomic update%> uses two different variables for memory" -msgstr "" +msgstr "%<#pragma omp atomic update%> verwendet zwei unterschiedliche Variablen für Speicher" #: c-family/c-omp.c:203 c-family/c-omp.c:215 #, gcc-internal-format msgid "%<#pragma omp atomic capture%> uses two different variables for memory" -msgstr "" +msgstr "%<#pragma omp atomic capture%> verwendet zwei unterschiedliche Variablen für Speicher" #: c-family/c-omp.c:368 cp/semantics.c:4800 #, gcc-internal-format @@ -21800,7 +21800,7 @@ msgstr "veraltete Option -I- verwendet, bitte stattdessen -iquote verwenden" #: c-family/c-opts.c:494 #, gcc-internal-format msgid "-Werror=normalized=: set -Wnormalized=nfc" -msgstr "" +msgstr "-Werror=normalized=: -Wnormalized=nfc gesetzt" #: c-family/c-opts.c:508 #, gcc-internal-format @@ -21815,7 +21815,7 @@ msgstr "Ausgabedatei doppelt angegeben" #: c-family/c-opts.c:878 #, gcc-internal-format msgid "-fexcess-precision=standard for C++" -msgstr "" +msgstr "-fexcess-precision=standard für C++" #: c-family/c-opts.c:891 #, gcc-internal-format @@ -22694,7 +22694,7 @@ msgstr "Die Ãœbergabe von Gleitkommaargumenten in FP-Registern wird noch nicht u #: config/arm/arm.c:1702 #, gcc-internal-format msgid "%<mwords-little-endian%> is deprecated and will be removed in a future release" -msgstr "" +msgstr "%<mwords-little-endian%> ist veraltet und wird in einer zukünftigen Version entfernt" #: config/arm/arm.c:1764 #, gcc-internal-format @@ -22734,7 +22734,7 @@ msgstr "Thumb-2 iWMMXt" #: config/arm/arm.c:1838 #, gcc-internal-format msgid "__fp16 and no ldrh" -msgstr "" +msgstr "__fp16 ohne ldrh" #: config/arm/arm.c:1858 #, gcc-internal-format @@ -22855,7 +22855,7 @@ msgstr "Interrupt-Dienst-Routinen können nicht im »Thumb«-Modus codiert werde #: config/arm/arm.c:24404 #, gcc-internal-format msgid "the mangling of %<va_list%> has changed in GCC 4.4" -msgstr "" +msgstr "Zerstörung von %<va_list%> hat sich in GCC 4.4 geändert" #: config/arm/pe.c:158 config/mcore/mcore.c:2951 #, gcc-internal-format @@ -22870,22 +22870,22 @@ msgstr "statische Variable %q+D ist als »dllimport« markiert" #: config/avr/avr.c:742 #, gcc-internal-format msgid "'builtin_return_address' contains only 2 bytes of address" -msgstr "" +msgstr "»builtin_return_address« enthält nur 2 Adressbytes" #: config/avr/avr.c:1778 #, gcc-internal-format msgid "pointer offset from symbol maybe incorrect" -msgstr "" +msgstr "Zeigeroffset von Symbol könnte falsch sein" #: config/avr/avr.c:1895 #, gcc-internal-format msgid "accessing data memory with program memory address" -msgstr "" +msgstr "Zugriff auf Datenspeicher mit Programmspeicheradresse" #: config/avr/avr.c:1944 #, gcc-internal-format msgid "accessing program memory with data memory address" -msgstr "" +msgstr "Zugriff auf Programmspeicher mit Datenspeicheradresse" #: config/avr/avr.c:2350 #, gcc-internal-format, gfc-internal-format @@ -23180,7 +23180,7 @@ msgstr "Argument des Attributes %qE ist keine Zeichenkettenkonstante" #: config/epiphany/epiphany.c:448 #, gcc-internal-format msgid "argument of %qE attribute is not \"reset\", \"software_exception\", \"page_miss\", \"timer0\", \"timer1\", \"message\", \"dma0\", \"dma1\", \"wand\" or \"swi\"" -msgstr "" +msgstr "Argument des Attributs %qE ist nicht »reset«, »software_exception«, »page_miss«, »timer0«, »timer1«, »message«, »dma0«, »dma1«, »wand« oder »swi«" #: config/epiphany/epiphany.c:1428 #, gcc-internal-format @@ -23286,7 +23286,7 @@ msgstr "%stune=x86-64%s ist veraltet; stattdessen entsprechend %stune=k8%s oder #: config/i386/i386.c:3162 #, gcc-internal-format msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code" -msgstr "" +msgstr "-mstringop-strategy=rep_8byte wird für 32-Bit-Code nicht unterstützt" #: config/i386/i386.c:3183 config/i386/i386.c:3192 config/i386/i386.c:3204 #: config/i386/i386.c:3215 config/i386/i386.c:3226 @@ -24396,7 +24396,7 @@ msgstr "MMIX-intern: %s ist kein schiebbares int" #: config/mn10300/mn10300.c:111 #, gcc-internal-format msgid "-mtune= expects mn10300, am33, am33-2, or am34" -msgstr "" +msgstr "-mtune= erwartet mn10300, am33, am33-2, oder am34" #: config/pa/pa.c:496 #, gcc-internal-format @@ -25631,17 +25631,17 @@ msgstr "%s%#D" #: cp/call.c:3186 #, gcc-internal-format msgid " return type %qT of explicit conversion function cannot be converted to %qT with a qualification conversion" -msgstr "" +msgstr " Rückgabetyp %qT der expliziten Umwandlungsfunktion kann nicht mit Qualifizierungsänderung in %qT umgewandelt werden" #: cp/call.c:3192 #, gcc-internal-format msgid " conversion from return type %qT of template conversion function specialization to %qT is not an exact match" -msgstr "" +msgstr " Umwandlung von Rückgabetyp %qT der Spezialisierung der Template-Umwandlungsfunktion in %qT passt nicht exakt" #: cp/call.c:3203 #, gcc-internal-format msgid " substitution of deduced template arguments resulted in errors seen above" -msgstr "" +msgstr " Ersetzung der ermittelten Templateargumente führte zu obigen Fehlern" #. Re-run template unification with diagnostics. #: cp/call.c:3208 @@ -25652,7 +25652,7 @@ msgstr " Herleitung/Ersetzung von Templateargument gescheitert:" #: cp/call.c:3227 #, gcc-internal-format msgid " a constructor taking a single argument of its own class type is invalid" -msgstr "" +msgstr " Ein Konstruktor, der ein einzelnes Argument seines eigenen Klassentyps hat, ist ungültig" #: cp/call.c:3585 #, gcc-internal-format @@ -26055,7 +26055,7 @@ msgstr "%qE konnte nicht von %qT nach %qT umgewandelt werden" #: cp/call.c:8624 #, gcc-internal-format msgid "a temporary bound to %qD only persists until the constructor exits" -msgstr "" +msgstr "eine vorübergehende Bindung an %qD besteht nur, bis der Konstruktor beendet ist" #: cp/call.c:8730 #, gcc-internal-format @@ -26321,12 +26321,12 @@ msgstr "Initialisierung für nicht-virtuelle Methode %q+D angegeben" #: cp/class.c:4389 #, gcc-internal-format msgid "method overrides both %<transaction_pure%> and %qE methods" -msgstr "" +msgstr "Methode überschreibt Methoden %<transaction_pure%> und %qE" #: cp/class.c:4410 #, gcc-internal-format msgid "method declared %qE overriding %qE method" -msgstr "" +msgstr "als %qE deklarierte Methode überschreibt Methode %qE" #: cp/class.c:4876 cp/semantics.c:5732 #, gcc-internal-format @@ -26346,7 +26346,7 @@ msgstr " %q+T hat einen nicht-trivialen Destruktor" #: cp/class.c:4908 #, 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 "" +msgstr " %q+T ist kein Aggregat, hat keinen trivialen Standardkonstruktor und hat keinen Konstruktor mit konstantem Ausdruck, der kein Kopier- oder Bewegungskonstruktor ist" #: cp/class.c:4924 #, gcc-internal-format @@ -26508,7 +26508,7 @@ msgstr "verändert die Bedeutung von %qD von %q+#D" #: cp/cp-gimplify.c:1446 #, gcc-internal-format msgid "%qE implicitly determined as %<firstprivate%> has reference type" -msgstr "" +msgstr "implizit als %<firstprivate%> ermitteltes %qE hat Referenztyp" #: cp/cvt.c:90 #, gcc-internal-format @@ -26879,12 +26879,12 @@ msgstr "von vorheriger Deklaration %q+D" #: cp/decl.c:1214 #, gcc-internal-format msgid "literal operator template %q+D conflicts with raw literal operator %qD" -msgstr "" +msgstr "Literales Operatortemplate %q+D steht mit rohem Literaloperator %qD in Konflikt" #: cp/decl.c:1219 #, gcc-internal-format msgid "raw literal operator %q+D conflicts with literal operator template %qD" -msgstr "" +msgstr "roher Literaloperator %q+D steht mit literalem Operatortemplate %qD in Konflikt" #: cp/decl.c:1240 #, gcc-internal-format @@ -27484,7 +27484,7 @@ msgstr "Konstruktor ist nicht benutzerdefiniert, da er im Klassenkörper ausdrü #: cp/decl.c:4918 #, gcc-internal-format msgid "and the implicitly-defined constructor does not initialize %q+#D" -msgstr "" +msgstr "und der implizit definierte Konstruktor initialisiert nicht %q+#D" #: cp/decl.c:5037 #, gcc-internal-format @@ -27761,7 +27761,7 @@ msgstr "%<::main%> kann nicht statisch deklariert werden" #: cp/decl.c:7326 #, gcc-internal-format msgid "anonymous type with no linkage used to declare function %q#D with linkage" -msgstr "" +msgstr "anonymer Typ ohne Bindung verwendet, um Funktion %q#D mit Bindung zu deklarieren" #: cp/decl.c:7330 cp/decl.c:7687 cp/decl2.c:3673 #, gcc-internal-format @@ -27796,12 +27796,12 @@ msgstr "%qD hat ungültige Argumentliste" #: cp/decl.c:7392 #, gcc-internal-format msgid "integer suffix %<%s%> shadowed by implementation" -msgstr "" +msgstr "Ganzzahl-Suffix %<%s%> durch Implementierung überdeckt" #: cp/decl.c:7398 #, gcc-internal-format msgid "floating point suffix %<%s%> shadowed by implementation" -msgstr "" +msgstr "Gleitkomma-Suffix %<%s%> durch Implementierung überdeckt" #: cp/decl.c:7404 #, gcc-internal-format @@ -29802,12 +29802,12 @@ msgstr "weder der Destruktor noch der klassenspezifische Operator »delete« wir #: cp/init.c:3638 #, gcc-internal-format msgid "deleting object of abstract class type %qT which has non-virtual destructor will cause undefined behaviour" -msgstr "" +msgstr "Löschen des Objekts mit abstraktem Klassentyp %qT mit nicht-virtuellem Destruktor bewirkt undefiniertes Verhalten" #: cp/init.c:3643 #, gcc-internal-format msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behaviour" -msgstr "" +msgstr "Löschen des Objekts mit polymorphem Klassentyp %qT mit nicht-virtuellem Destruktor bewirkt möglicherweise undefiniertes Verhalten" #: cp/init.c:3665 #, gcc-internal-format @@ -29988,7 +29988,7 @@ msgstr "Lambda-Abschlusstyp hat gelöschten Kopier-Zuweisungsoperator" #: cp/method.c:1401 #, gcc-internal-format msgid "%q+#D is implicitly declared as deleted because %qT declares a move constructor or move assignment operator" -msgstr "" +msgstr "%q+#D ist implizit als gelöscht deklariert, da %qT einen Bewegungskonstruktor oder Bewegungs-Zuweisungsoperator deklariert" #: cp/method.c:1411 #, gcc-internal-format @@ -30013,7 +30013,7 @@ msgstr "Funktion %q+D wurde bei ihrer ersten Deklaration mit einer Ausnahmespezi #: cp/method.c:1657 #, gcc-internal-format msgid "explicitly defaulted function %q+D cannot be declared as constexpr because the implicit declaration is not constexpr:" -msgstr "" +msgstr "Explizit standardisierte Funktion %q+D kann nicht als konstanter Ausdruck deklariert werden, da die implizite Deklaration kein konstaner Ausdruck ist:" #: cp/method.c:1679 #, gcc-internal-format @@ -30580,7 +30580,7 @@ msgstr "Zeichenkettenliteral erwartet" #: cp/parser.c:3462 #, gcc-internal-format msgid "inconsistent user-defined literal suffixes %qD and %qD in string literal" -msgstr "" +msgstr "widersprüchliche benutzerdefinierte literale Suffixe %qD und %qD in Zeichenkettenliteral" #: cp/parser.c:3505 #, gcc-internal-format @@ -30590,7 +30590,7 @@ msgstr "eine Wide-Zeichenkette ist in diesem Kontext ungültig" #: cp/parser.c:3612 cp/parser.c:3622 #, gcc-internal-format msgid "unable to find character literal operator %qD with %qT argument" -msgstr "" +msgstr "Operator %qD für Zeichenliterale mit Argument %qT kann nicht gefunden werden" #: cp/parser.c:3719 #, gcc-internal-format @@ -30670,7 +30670,7 @@ msgstr "typedef-Name %qD als Destruktor-Deklarator verwendet" #: cp/parser.c:4824 #, gcc-internal-format msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization" -msgstr "" +msgstr "Literale Operator-Suffixe ohne vorangehendes %<_%> sind für zukünftige Standardisierungen reserviert" #: cp/parser.c:4835 cp/parser.c:16229 #, gcc-internal-format @@ -30802,7 +30802,7 @@ msgstr "unerwartetes Ende der Auffangliste" #: cp/parser.c:8194 #, gcc-internal-format msgid "explicit by-copy capture of %<this%> redundant with by-copy capture default" -msgstr "" +msgstr "Explizite Erfassung (als Kopie) von %<this%> ist mit Standarderfassung (als Kopie) gedoppelt" #: cp/parser.c:8235 #, gcc-internal-format @@ -30827,12 +30827,12 @@ msgstr "Erfassung der Variable %qD ohne automatische Speicherdauer" #: cp/parser.c:8305 #, gcc-internal-format msgid "explicit by-copy capture of %qD redundant with by-copy capture default" -msgstr "" +msgstr "Explizite Erfassung (als Kopie) von %qD ist mit Standarderfassung (als Kopie) gedoppelt" #: cp/parser.c:8310 #, gcc-internal-format msgid "explicit by-reference capture of %qD redundant with by-reference capture default" -msgstr "" +msgstr "Explizite Erfassung (als Referenz) von %qD ist mit Standarderfassung (als Referenz) gedoppelt" #: cp/parser.c:8365 #, gcc-internal-format @@ -30940,7 +30940,7 @@ msgstr "%<friend%> außerhalb einer Klasse verwendet" #: cp/parser.c:10642 #, gcc-internal-format msgid "%<auto%> changes meaning in C++11; please remove it" -msgstr "" +msgstr "Bedeutung von %<auto%> ändert in C++11 die Bedeutung; Bitte entfernen" #: cp/parser.c:10678 #, gcc-internal-format @@ -31577,7 +31577,7 @@ msgstr "ungültige explizite Spezialisierung" #: cp/parser.c:21204 #, gcc-internal-format msgid "literal operator template %qD has invalid parameter list. Expected non-type template argument pack <char...>" -msgstr "" +msgstr "Literales Operatortemplate %qD hat ungültige Parameterliste. Template für Nicht-Typ Argumentpack <char...> erwartet" #: cp/parser.c:21278 #, gcc-internal-format @@ -31847,12 +31847,12 @@ msgstr "zu wenig zusammengefallen für Schleifen" #: cp/parser.c:27033 cp/semantics.c:5022 #, gcc-internal-format msgid "%<__transaction_relaxed%> without transactional memory support enabled" -msgstr "" +msgstr "%<__transaction_relaxed%> ohne eingeschaltete Unterstützung für transaktionsgebundenen Speicher" #: cp/parser.c:27035 cp/semantics.c:5024 #, gcc-internal-format msgid "%<__transaction_atomic%> without transactional memory support enabled" -msgstr "" +msgstr "%<__transaction_atomic%> ohne eingeschaltete Unterstützung für transaktionsgebundenen Speicher" #: cp/parser.c:27232 #, gcc-internal-format @@ -33442,7 +33442,7 @@ msgstr "unerwarteter Ausdruck %qE der Art %s" #: cp/semantics.c:7823 #, gcc-internal-format msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects" -msgstr "" +msgstr "%qT kann nicht der Typ eines vollständigen konstanten Ausdrucks sein, da es veränderliche Sub-Objekte hat" #: cp/semantics.c:7836 #, gcc-internal-format @@ -34845,7 +34845,7 @@ msgstr "Iteratorschritt bei %L kann nicht Null sein" #: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5260 #, 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 "" +msgstr "Die Anzahl der Elemente im Feldkonstruktor bei %L erfordert Erhöhung der erlaubten oberen Grenze %d. Siehe Option -fmax-array-constructor" #: fortran/array.c:1818 #, gcc-internal-format, gfc-internal-format @@ -35109,7 +35109,7 @@ msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ein Standard-Real s #: fortran/check.c:1534 #, gcc-internal-format, gfc-internal-format msgid "'I' at %L and 'J' at %L cannot both be BOZ literal constants" -msgstr "" +msgstr "»I« bei %L und »J« bei %L können nicht beide literale BOZ-Konstanten sein" #: fortran/check.c:1665 #, gcc-internal-format, gfc-internal-format @@ -35194,7 +35194,7 @@ msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ein INTEGER sein" #: fortran/check.c:2739 #, gcc-internal-format, gfc-internal-format msgid "The TO arguments in MOVE_ALLOC at %L must be polymorphic if FROM is polymorphic" -msgstr "" +msgstr "Die TO-Argumente in MOVE_ALLOC bei %L müssen polymorph sein, wenn FROM polymorph ist" #: fortran/check.c:2750 #, gcc-internal-format, gfc-internal-format @@ -35344,7 +35344,7 @@ msgstr "Argument »%s« für IMAGE_INDEX muss Feld mit Rang 1 bei %L sein" #: fortran/check.c:3935 #, 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 "" +msgstr "Die Anzahl der Feldelemente des SUB-Arguments für IMAGE_INDEX bei %L sollte %d (Korang) sein, nicht %d" #: fortran/check.c:3959 #, gcc-internal-format, gfc-internal-format @@ -35394,7 +35394,7 @@ msgstr "Argument »%s« für intrinsisches »%s« bei %L muss INTEGER oder LOGIC #: fortran/class.c:345 #, gcc-internal-format, gfc-internal-format msgid "Assumed size polymorphic objects or components, such as that at %C, have not yet been implemented" -msgstr "" +msgstr "Polymorphe Objekte oder Komponenten mit vermuteter Größe, so wie bei %C, wurden noch nicht implementiert" #. Since the extension field is 8 bit wide, we can only have #. up to 255 extension levels. @@ -35808,7 +35808,7 @@ msgstr "Typname »%s« bei %C ist mehrdeutig" #: fortran/decl.c:2781 #, 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 "" +msgstr "Typname »%s« bei %C in Konflikt mit vorher deklarierter Entität bei %L, die den gleichen Namen hat" #: fortran/decl.c:2901 #, gcc-internal-format, gfc-internal-format @@ -37637,12 +37637,12 @@ msgstr "Koindiziertes effektives Argument bei %L an scheinreservierbares »%s« #: fortran/interface.c:2431 #, gcc-internal-format, gfc-internal-format msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at at %L requires that dummy %s' has neither ASYNCHRONOUS nor VOLATILE" -msgstr "" +msgstr "Koindiziertes effektives ASYNCHRONOUS- oder VOLATILE-Argument bei %L erfordert, dass Schein-»%s« weder ASYNCHRONOUS noch VOLATILE hat" #: fortran/interface.c:2445 #, 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 "" +msgstr "Koindiziertes effektives Argument bei %L mit reservierbarer endgültiger Komponente für Schein-»%s« erfordert entweder VALUE oder INTENT(IN)" #: fortran/interface.c:2457 #, gcc-internal-format, gfc-internal-format @@ -37712,7 +37712,7 @@ msgstr "Effektives koindiziertes Argument bei %L in PURE-Prozedur wird an POINTE #: fortran/interface.c:2866 #, gcc-internal-format, gfc-internal-format msgid "Coindexed polymorphic actual argument at %L is passed polymorphic dummy argument '%s'" -msgstr "" +msgstr "Koindiziertem polymorphen effektiven Argument bei %L wird polymorphes Scheinargument »%s« übergeben" #: fortran/interface.c:2892 #, gcc-internal-format, gfc-internal-format @@ -37752,7 +37752,7 @@ msgstr "Effektives Argument mit LOCK_TYPE oder mit LOCK_TYPE-Komponente bei %L e #: fortran/interface.c:2953 #, gcc-internal-format, gfc-internal-format msgid "MOLD argument to NULL required at %L" -msgstr "" +msgstr "MOLD-Argument an NULL bei %L erforderlich" #: fortran/interface.c:2984 #, gcc-internal-format, gfc-internal-format @@ -37762,12 +37762,12 @@ msgstr "Prozedur-Zeigerkomponente »%s« mit einer impliziten Schnittstelle bei #: fortran/interface.c:2995 #, gcc-internal-format, gfc-internal-format msgid "Keyword argument requires explicit interface for procedure pointer component '%s' at %L" -msgstr "" +msgstr "Schlüsselwortargument erfordert explizite Schnittstelle für Prozedurzeigerkomponente »%s« bei %L" #: fortran/interface.c:3075 #, gcc-internal-format, gfc-internal-format msgid "MOLD= required in NULL() argument at %L: Ambiguity between specific functions %s and %s" -msgstr "" +msgstr "In NULL()-Argument bei %L wird MOLD= benötigt: Mehrdeutig zwischen spezifischen Funktionen %s und %s" #: fortran/interface.c:3526 #, gcc-internal-format, gfc-internal-format @@ -37782,7 +37782,7 @@ msgstr "GENERIC »%s« bei %L kann nicht überschrieben werden" #: fortran/interface.c:3735 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE" -msgstr "" +msgstr "»%s« bei %L überschreibt eine Prozedurbindung, die als NON_OVERRIDABLE deklariert ist" #: fortran/interface.c:3743 #, gcc-internal-format, gfc-internal-format @@ -37852,22 +37852,22 @@ msgstr "»%s« bei %L muss die gleiche Anzahl formaler Argumente wie die übersc #: fortran/interface.c:3895 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS" -msgstr "" +msgstr "»%s« bei %L überschreibt eine NOPASS-Bindung und muss ebenfalls NOPASS sein" #: fortran/interface.c:3906 #, gcc-internal-format, gfc-internal-format msgid "'%s' at %L overrides a binding with PASS and must also be PASS" -msgstr "" +msgstr "»%s« bei %L überschreibt eine Bindung mit PASS und muss ebenfalls PASS sein" #: fortran/interface.c:3913 #, 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 "" +msgstr "Scheinargument des übergebenen Objektes von »%s« bei %L muss an der gleichen Stelle wie das Scheinargument des übergebenen Objektes der überschriebenen Prozedur stehen" #: fortran/intrinsic.c:935 #, gcc-internal-format, gfc-internal-format msgid "The intrinsic '%s' at %L is not included in the selected standard but %s and '%s' will be treated as if declared EXTERNAL. Use an appropriate -std=* option or define -fall-intrinsics to allow this intrinsic." -msgstr "" +msgstr "Das intrinsische »%s« bei %L ist nicht im ausgewählten Standard enthalten, aber %s und »%s« werden wie mit EXTERNAL deklariert behandelt. Passende Option -std=* verwenden oder -fall-intrinsics definieren, um dies zuzulassen" #: fortran/intrinsic.c:3518 #, gcc-internal-format, gfc-internal-format @@ -37937,12 +37937,12 @@ msgstr "%s kann nicht nach %s bei %L umgewandelt werden" #: fortran/intrinsic.c:4503 #, 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 "" +msgstr "Bei %2$L deklariertes »%1$s« überdeckt eingebaute Funktion mit gleichem Namen. Um die aufzurufen, sind explizite INTRINSIC-Deklarationen erforderlich." #: fortran/intrinsic.c:4508 #, 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 "" +msgstr "Bei %2$L deklariertes »%1$s« ist auch der Name einer eingebauten Funktion. Sie kann nur über eine explizite Schnittstelle oder als EXTERNAL deklariert aufgerufen werden." #: fortran/io.c:168 fortran/primary.c:872 #, gcc-internal-format, gfc-internal-format @@ -38172,7 +38172,7 @@ msgstr "UNIT-Spezifizierer mit NEWUNIT bei %C nicht erlaubt" #: fortran/io.c:1857 #, gcc-internal-format, gfc-internal-format msgid "NEWUNIT specifier must have FILE= or STATUS='scratch' at %C" -msgstr "" +msgstr "NEWUNIT-Spezifizierer muss FILE= oder STATUS='scratch' bei %C haben" #: fortran/io.c:1864 #, gcc-internal-format, gfc-internal-format @@ -38468,7 +38468,7 @@ msgstr "Name bei %C ist zu lang" #: fortran/match.c:559 #, gcc-internal-format, gfc-internal-format msgid "Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension" -msgstr "" +msgstr "Ungültiges Zeichen »$« bei %C. -fdollar-ok verwenden, um es als Erweiterung zuzulassen" #: fortran/match.c:610 fortran/match.c:658 #, gcc-internal-format, gfc-internal-format @@ -39321,12 +39321,12 @@ msgstr "Bei %2$C geöffnete Datei »%1$s« ist keine GFORTRAN-Moduldatei" #: fortran/module.c:6062 #, gcc-internal-format, gfc-internal-format msgid "Parse error when checking module version for file '%s' opened at %C" -msgstr "" +msgstr "Fehler beim Einlesen bei Prüfung der Modulversion der bei %2$C geöffneten Datei »%1$s«" #: fortran/module.c:6067 #, gcc-internal-format, gfc-internal-format msgid "Wrong module version '%s' (expected '%s') for file '%s' opened at %C" -msgstr "" +msgstr "Falsche Modulversion »%1$s« (»%2$s« erwartet) für bei %4$C geöffnete Datei »%3$s«" #: fortran/module.c:6082 #, gcc-internal-format @@ -39351,7 +39351,7 @@ msgstr "%s ist kein INTRINSIC-Prozedurname bei %C" #: fortran/openmp.c:414 #, gcc-internal-format, gfc-internal-format msgid "COLLAPSE clause argument not constant positive integer at %C" -msgstr "" +msgstr "Argument der COLLAPSE-Klausel ist keine konstante positive Ganzzahl bei %C" #: fortran/openmp.c:482 #, gcc-internal-format, gfc-internal-format @@ -40077,7 +40077,7 @@ msgstr "Benanntes Block-DO bei %L erfordert passenden ENDDO-Namen" #: fortran/parse.c:3606 #, gcc-internal-format, gfc-internal-format msgid "Missing !$OMP END ATOMIC after !$OMP ATOMIC CAPTURE at %C" -msgstr "" +msgstr "!$OMP END ATOMIC fehlt hinter !$OMP ATOMIC CAPTURE bei %C" #: fortran/parse.c:3757 #, gcc-internal-format, gfc-internal-format @@ -40260,7 +40260,7 @@ msgstr "Unbeendete Zeichenkonstante beginnend bei %C" #: fortran/primary.c:1089 #, gcc-internal-format, gfc-internal-format msgid "Character '%s' in string at %C is not representable in character kind %d" -msgstr "" +msgstr "Zeichen »%s« in Zeichenkette bei %C ist in Zeichenart %d nicht repräsentierbar" #: fortran/primary.c:1172 #, gcc-internal-format, gfc-internal-format @@ -40790,7 +40790,7 @@ msgstr "Ãœbergabe der eingebauten Prozedur über die Speicherstelle ist bei %L n #: fortran/resolve.c:1837 #, gcc-internal-format, gfc-internal-format msgid "Coindexed actual argument at %L with ultimate pointer component" -msgstr "" +msgstr "Koindiziertes effektives Argument bei %L mit endgültiger Zeigerkomponente" #: fortran/resolve.c:1960 #, gcc-internal-format, gfc-internal-format @@ -40823,44 +40823,44 @@ msgid "Procedure '%s' at %L with assumed-shape dummy argument '%s' must have an msgstr "Prozedur »%s« bei %L mit Scheinargument »%s« mit vermuteter Form muss explizite Schnittstelle haben" #: fortran/resolve.c:2206 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' at %L with coarray dummy argument '%s' must have an explicit interface" -msgstr "Prozedur »%s« in %s bei %L hat keine explizite Schnittstelle" +msgstr "Prozedur »%s« bei %L mit Koarray-Scheinargument »%s« muss explizite Schnittstelle haben" #: fortran/resolve.c:2214 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' at %L with parametrized derived type argument '%s' must have an explicit interface" -msgstr "Prozedur »%s« in %s bei %L hat keine explizite Schnittstelle" +msgstr "Prozedur »%s« bei %L mit parametrisiertem Argument »%s« abgeleiteten Typs muss explizite Schnittstelle haben" #: fortran/resolve.c:2223 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' at %L with polymorphic dummy argument '%s' must have an explicit interface" -msgstr "Prozedur »%s« in %s bei %L hat keine explizite Schnittstelle" +msgstr "Prozedur »%s« bei %L mit polymorphem Scheinargument »%s« muss explizite Schnittstelle haben" #: fortran/resolve.c:2235 #, 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 "" +msgstr "Referenz auf Funktion »%s« bei %L braucht entweder explizite Schnittstelle oder der Rang ist falsch" #: fortran/resolve.c:2247 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Function '%s' at %L with a POINTER or ALLOCATABLE result must have an explicit interface" -msgstr "Automatische Zeichenlängenfunktion »%s« bei %L muss eine explizite Schnittstelle haben" +msgstr "Funktion »%s« bei %L mit POINTER- oder ALLOCATABLE-Ergebnis muss eine explizite Schnittstelle haben" #: fortran/resolve.c:2260 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Nonconstant character-length function '%s' at %L must have an explicit interface" -msgstr "Automatische Zeichenlängenfunktion »%s« bei %L muss eine explizite Schnittstelle haben" +msgstr "Nichtkonstante Zeichenlängenfunktion »%s« bei %L muss eine explizite Schnittstelle haben" #: fortran/resolve.c:2270 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "ELEMENTAL procedure '%s' at %L must have an explicit interface" -msgstr "Prozedur »%s« in %s bei %L hat keine explizite Schnittstelle" +msgstr "Elementare Prozedur »%s« bei %L muss eine explizite Schnittstelle haben" #: fortran/resolve.c:2277 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' at %L with BIND(C) attribute must have an explicit interface" -msgstr "Prozedur »%s« bei %L muss das BIND(C)-Attribut haben, um mit C interoperabel zu sein" +msgstr "Prozedur »%s« bei %L mit BIND(C)-Attribut muss eine explizite Schnittstelle haben" #: fortran/resolve.c:2383 #, gcc-internal-format, gfc-internal-format @@ -40903,19 +40903,19 @@ msgid "Parameter '%s' to '%s' at %L must be either a TARGET or an associated poi msgstr "Parameter »%s« für »%s« bei %L muss entweder ein TARGET oder ein zugeordneter Zeiger sein" #: fortran/resolve.c:2814 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Coindexed argument not permitted in '%s' call at %L" -msgstr "Zeiger sind nicht als case-Werte zugelassen" +msgstr "Koindiziertes Argument bei »%s«-Aufruf bei %L nicht erlaubt" #: fortran/resolve.c:2837 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Array section not permitted in '%s' call at %L" -msgstr "Mehr effektive als formale Argumente in Aufruf von »%s« bei %L" +msgstr "Feldabschnitt bei »%s«-Aufruf bei %L nicht erlaubt" #: fortran/resolve.c:2848 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Array section in '%s' call at %L" -msgstr "Funktionsname »%s« nicht erlaubt bei %C" +msgstr "Feldabschnitt bei »%s«-Aufruf bei %L" #: fortran/resolve.c:2867 #, gcc-internal-format, gfc-internal-format @@ -40950,9 +40950,9 @@ msgid "Parameter '%s' to '%s' at %L must be a scalar" msgstr "Parameter »%s« für »%s« bei %L muss ein Skalar sein" #: fortran/resolve.c:2962 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Parameter '%s' to '%s' at %L must not be polymorphic" -msgstr "Parameter »%s« für »%s« bei %L muss ein Skalar sein" +msgstr "Parameter »%s« für »%s« bei %L darf nicht polymorph sein" #. TODO: Update this error message to allow for procedure #. pointers once they are implemented. @@ -40988,14 +40988,14 @@ msgid "User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE c msgstr "Benutzerdefinierte nicht-elementare Funktion »%s« bei %L ist in WORKSHARE-Konstrukt nicht erlaubt" #: fortran/resolve.c:3198 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Reference to non-PURE function '%s' at %L inside a FORALL %s" msgstr "Referenz auf Nicht-PURE-Funktion »%s« bei %L innerhalb eines FORALL %s" #: fortran/resolve.c:3205 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Reference to non-PURE function '%s' at %L inside a DO CONCURRENT %s" -msgstr "Referenz auf Nicht-PURE-Funktion »%s« bei %L innerhalb eines FORALL %s" +msgstr "Referenz auf Nicht-PURE-Funktion »%s« bei %L innerhalb eines DO CONCURRENT %s" #: fortran/resolve.c:3212 #, gcc-internal-format, gfc-internal-format @@ -41003,14 +41003,14 @@ msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE msgstr "Funktionsreferenz auf »%s« bei %L ist Nicht-PURE-Prozedur innerhalb einer PURE-Prozedur" #: fortran/resolve.c:3231 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE" -msgstr "Aufruf des Eintrags »%s« bei %L ist rekursiv, aber Funktion »%s« ist nicht als RECURSIVE deklariert" +msgstr "Eintrag »%s« bei %L kann nicht rekursiv aufgerufen werden, da Funktion »%s« nicht RECURSIVE ist" #: fortran/resolve.c:3235 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE" -msgstr "Funktion »%s« bei %L kann sich nicht selbst aufrufen, da sie nicht RECURSIVE ist" +msgstr "Funktion »%s« bei %L kann nicht rekursiv aufgerufen werden, da sie nicht RECURSIVE ist" #: fortran/resolve.c:3274 #, gcc-internal-format, gfc-internal-format @@ -41018,9 +41018,9 @@ msgid "Subroutine call to '%s' in FORALL block at %L is not PURE" msgstr "Unterprogrammaufruf von »%s« in FORALL-Block bei %L ist nicht PURE" #: fortran/resolve.c:3277 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Subroutine call to '%s' in DO CONCURRENT block at %L is not PURE" -msgstr "Unterprogrammaufruf von »%s« in FORALL-Block bei %L ist nicht PURE" +msgstr "Unterprogrammaufruf von »%s« in DO CONCURRENT-Block bei %L ist nicht PURE" #: fortran/resolve.c:3280 #, gcc-internal-format, gfc-internal-format @@ -41063,14 +41063,14 @@ msgid "'%s' at %L has a type, which is not consistent with the CALL at %L" msgstr "»%s« bei %L hat einen Typen, der nicht zum CALL bei %L passt" #: fortran/resolve.c:3680 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE" -msgstr "Aufruf des Eintrags »%s« bei %L ist rekursiv, aber Unterprogramm »%s« ist nicht als RECURSIVE deklariert" +msgstr "Eintrag »%s« bei %L kann nicht rekursiv aufgerufen werden, da Unterprogramm »%s« nicht RECURSIVE ist" #: fortran/resolve.c:3684 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE" -msgstr "SUBROUTINE »%s« bei %L kann sich nicht selbst aufrufen, da es nicht RECURSIVE ist" +msgstr "SUBROUTINE »%s« bei %L kann nicht rekursiv aufgerufen werden, da sie nicht RECURSIVE ist" #: fortran/resolve.c:3760 #, gcc-internal-format, gfc-internal-format @@ -41083,9 +41083,9 @@ msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d" msgstr "Feldreferenz bei %L ist außerhalb der Schranken (%ld < %ld) in Dimension %d" #: fortran/resolve.c:4263 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d" -msgstr "Feldreferenz bei %L ist außerhalb der Schranken (%ld < %ld) in Dimension %d" +msgstr "Feldreferenz bei %L ist außerhalb der Grenzen (%ld < %ld) in Kodimension %d" #: fortran/resolve.c:4273 #, gcc-internal-format, gfc-internal-format @@ -41093,9 +41093,9 @@ msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d" msgstr "Feldreferenz bei %L ist außerhalb der Schranken (%ld > %ld) in Dimension %d" #: fortran/resolve.c:4278 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d" -msgstr "Feldreferenz bei %L ist außerhalb der Schranken (%ld > %ld) in Dimension %d" +msgstr "Feldreferenz bei %L ist außerhalb der Grenzen (%ld > %ld) in Kodimension %d" #: fortran/resolve.c:4298 #, gcc-internal-format, gfc-internal-format @@ -41133,14 +41133,14 @@ msgid "Rank mismatch in array reference at %L (%d/%d)" msgstr "Unpassende Ränge in Feldreferenz bei %L (%d/%d)" #: fortran/resolve.c:4405 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Coindex rank mismatch in array reference at %L (%d/%d)" -msgstr "Unpassende Ränge in Feldreferenz bei %L (%d/%d)" +msgstr "Unpassende Ränge des Koindex in Feldreferenz bei %L (%d/%d)" #: fortran/resolve.c:4421 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Coindex of codimension %d must be a scalar at %L" -msgstr "Index in Dimension %d ist außerhalb der Grenzen bei %L" +msgstr "Koindex der Kodimension %d muss bei %L ein Skalar sein" #: fortran/resolve.c:4449 #, gcc-internal-format, gfc-internal-format @@ -41148,9 +41148,9 @@ msgid "Array index at %L must be scalar" msgstr "Feldindex bei %L muss skalar sein" #: fortran/resolve.c:4455 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Array index at %L must be of INTEGER type, found %s" -msgstr "Feldindex bei %L muss INTEGER-Typ haben" +msgstr "Feldindex bei %L muss INTEGER-Typ haben, %s gefunden" #: fortran/resolve.c:4461 #, gcc-internal-format, gfc-internal-format @@ -41203,9 +41203,9 @@ msgid "Substring end index at %L exceeds the string length" msgstr "End-Index der Teilzeichenkette bei %L überschreitet Zeichenkettenlänge" #: fortran/resolve.c:4771 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Substring end index at %L is too large" -msgstr "End-Index der Teilzeichenkette bei %L muss skalar sein" +msgstr "End-Index der Teilzeichenkette bei %L ist zu groß" #: fortran/resolve.c:4917 #, gcc-internal-format, gfc-internal-format @@ -41235,48 +41235,48 @@ msgstr "Variable »%s« wird bei %L vor Anweisung ENTRY verwendet, in der sie ei #: fortran/resolve.c:5217 #, gcc-internal-format, gfc-internal-format msgid "Polymorphic subobject of coindexed object at %L" -msgstr "" +msgstr "Polymorphes Subobjekt des koindizierten Objektes bei %L" #: fortran/resolve.c:5230 #, gcc-internal-format, gfc-internal-format msgid "Coindexed object with polymorphic allocatable subcomponent at %L" -msgstr "" +msgstr "Koindiziertes Objekt mit polymorpher reservierbarer Subkomponente bei %L" #: fortran/resolve.c:5556 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Passed-object at %L must be scalar" -msgstr "Markierung %s bei %L muss ein Skalar sein" +msgstr "Weitergegebenes Objekt bei %L muss Skalar sein" #: fortran/resolve.c:5563 #, gcc-internal-format, gfc-internal-format msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type '%s'" -msgstr "" +msgstr "Basisobjekt für Aufruf der Prozedurzeigerkomponente bei %L hat abstrakten Typ »%s«" #: fortran/resolve.c:5595 #, gcc-internal-format, gfc-internal-format msgid "Base object for type-bound procedure call at %L is of ABSTRACT type '%s'" -msgstr "" +msgstr "Basisobjekt für Aufruf der typgebundenen Prozedur bei %L hat abstrakten Typ »%s«" #: fortran/resolve.c:5604 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Base object for NOPASS type-bound procedure call at %L must be scalar" -msgstr "Argument »%s« der elementaren Prozedur bei %L muss skalar sein" +msgstr "Basisobjekt für Aufruf der typgebundenen NOPASS-Prozedur bei %L muss skalar sein" #. Nothing matching found! #: fortran/resolve.c:5789 #, gcc-internal-format, gfc-internal-format msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L" -msgstr "" +msgstr "Keine passende spezifische Bindung für Aufruf des GENERIC »%s« bei %L gefunden" #: fortran/resolve.c:5816 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "'%s' at %L should be a SUBROUTINE" -msgstr "'%s' bei %L ist kein WERT" +msgstr "'%s' bei %L sollte eine SUBROUTINE sein" #: fortran/resolve.c:5863 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "'%s' at %L should be a FUNCTION" -msgstr "Prozedur für Benutzeroperator »%s« bei %L muss eine FUNKTION sein" +msgstr "»%s« bei %L sollte eine FUNCTION sein" #: fortran/resolve.c:6380 #, gcc-internal-format, gfc-internal-format @@ -41284,9 +41284,9 @@ msgid "%s at %L must be a scalar" msgstr "%s bei %L muss skalar sein" #: fortran/resolve.c:6390 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Deleted feature: %s at %L must be integer" -msgstr "Gelöschte Funktion: %s bei %C muss eine Ganzzahl sein" +msgstr "Gelöscht: %s bei %L muss eine Ganzzahl sein" #: fortran/resolve.c:6394 fortran/resolve.c:6401 #, gcc-internal-format, gfc-internal-format @@ -41301,7 +41301,7 @@ msgstr "Schrittausdruck in DO-Schleife bei %L kann nicht Null sein" #: fortran/resolve.c:6477 #, gcc-internal-format, gfc-internal-format msgid "DO loop at %L will be executed zero times" -msgstr "" +msgstr "DO-Schleife bei %L wird null mal ausgeführt" #: fortran/resolve.c:6538 #, gcc-internal-format, gfc-internal-format @@ -41334,49 +41334,49 @@ msgid "FORALL index '%s' may not appear in triplet specification at %L" msgstr "FORALL-Index »%s« kann nicht in Tripel-Spezifikation bei %L auftreten" #: fortran/resolve.c:6675 fortran/resolve.c:6958 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER" -msgstr "Ausdruck in ALLOCATE-Anweisung bei %L muss ALLOCATABLE oder ein POINTER sein" +msgstr "ALLOCATE-Objekt bei %L muss ALLOCATABLE oder ein POINTER sein" #: fortran/resolve.c:6683 fortran/resolve.c:6924 #, gcc-internal-format, gfc-internal-format msgid "Coindexed allocatable object at %L" -msgstr "" +msgstr "Koindiziertes reservierbares Objekt bei %L" #: fortran/resolve.c:6788 #, 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 "" +msgstr "Quell-Ausdruck bei %L muss skalar sein oder den selben Rang wie das ALLOCATE-Objekt bei %L haben" #: fortran/resolve.c:6816 #, gcc-internal-format, gfc-internal-format msgid "Source-expr at %L and allocate-object at %L must have the same shape" -msgstr "" +msgstr "Quell-Ausdruck bei %L und ALLOCATE-Objekt bei %L müssen die selbe Form haben" #: fortran/resolve.c:6969 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Type of entity at %L is type incompatible with source-expr at %L" -msgstr "END-Markierung bei %L ist mit listengesteuertem Format (*) unverträglich" +msgstr "Typ der Entität bei %L ist mit Quellausdruck bei %L typunverträglich" #: fortran/resolve.c:6982 #, 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 "" +msgstr "Das ALLOCATE-Objekt bei %L und der Quellausdruck bei %L sollten Typparameter der gleichen Art haben" #: fortran/resolve.c:6996 #, 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 "" +msgstr "Der Quellausdruck bei %L sollte weder LOCK_TYPE noch LOCK_TYPE-Komponente haben, wenn ALLOCATE-Objekt bei %L ein Koarray ist" #: fortran/resolve.c:7009 #, gcc-internal-format, gfc-internal-format msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr" -msgstr "" +msgstr "Reservierung von %s mit ABSTRACT-Basistyp bei %L erfordert Typspezifikation oder Quellausdruck" #: fortran/resolve.c:7020 #, 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 "" +msgstr "Reservierung von %s bei %L mit Typspezifikation erfordert den selben Zeichenkettenlängenparameter wie in der Deklaration" #: fortran/resolve.c:7105 #, gcc-internal-format, gfc-internal-format @@ -41384,9 +41384,9 @@ msgid "Array specification required in ALLOCATE statement at %L" msgstr "In ALLOCATE-Anweisung bei %L ist Feld-Spezifikation erforderlich" #: fortran/resolve.c:7119 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Coarray specification required in ALLOCATE statement at %L" -msgstr "In ALLOCATE-Anweisung bei %L ist Feld-Spezifikation erforderlich" +msgstr "Koarray-Spezifikation in ALLOCATE-Anweisung bei %L erforderlich" #: fortran/resolve.c:7146 #, gcc-internal-format, gfc-internal-format @@ -41394,54 +41394,54 @@ msgid "Bad array specification in ALLOCATE statement at %L" msgstr "Falsche Feldspezifikation in ALLOCATE-Anweisung bei %L" #: fortran/resolve.c:7165 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "»%s« darf nicht bei %L in einer Feldspezifikation in der gleichen ALLOCATE-Anweisung auftreten, wo es selbst alloziert wird" #: fortran/resolve.c:7180 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Expected '*' in coindex specification in ALLOCATE statement at %L" -msgstr "Falsche Feldspezifikation in ALLOCATE-Anweisung bei %L" +msgstr "In Koindex-Spezifikation in ALLOCATE-Anweisung bei %L wird »*« erwartet" #: fortran/resolve.c:7191 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Bad coarray specification in ALLOCATE statement at %L" -msgstr "Falsche Feldspezifikation in ALLOCATE-Anweisung bei %L" +msgstr "Falsche Koarray-Spezifikation in ALLOCATE-Anweisung bei %L" #: fortran/resolve.c:7221 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Stat-variable at %L must be a scalar INTEGER variable" -msgstr "ASSIGN-Anweisung bei %L erfordert eine skalare Standard-INTEGER-Variable" +msgstr "Stat-Variable bei %L muss skalare INTEGER-Variable sein" #: fortran/resolve.c:7244 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Stat-variable at %L shall not be %sd within the same %s statement" -msgstr "Marke bei %L ist nicht im gleichen Block wie GOTO-Anweisung bei %L" +msgstr "Stat-Variable bei %L sollte nicht %s innerhalb der gleichen %s-Anweisung sein" #: fortran/resolve.c:7255 #, gcc-internal-format, gfc-internal-format msgid "ERRMSG at %L is useless without a STAT tag" -msgstr "" +msgstr "ERRMSG bei %L ist ohne STAT-Marke nutzlos" #: fortran/resolve.c:7265 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Errmsg-variable at %L must be a scalar CHARACTER variable" -msgstr "UNIT-Spezifikation bei %L muss ein INTEGER-Ausdruck oder eine CHARACTER-Variable sein" +msgstr "ERRMSG-Variable bei %L muss skalare CHARACTER-Variable sein" #: fortran/resolve.c:7288 #, gcc-internal-format, gfc-internal-format msgid "Errmsg-variable at %L shall not be %sd within the same %s statement" -msgstr "" +msgstr "ERRMSG-Variable bei %L sollte nicht »%s« innerhalb der selben »%s«-Anweisung sein" #: fortran/resolve.c:7318 #, gcc-internal-format, gfc-internal-format msgid "Allocate-object at %L also appears at %L" -msgstr "" +msgstr "ALLOCATE-Objekt bei %L tritt auch bei %L auf" #: fortran/resolve.c:7324 fortran/resolve.c:7330 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Allocate-object at %L is subobject of object at %L" -msgstr "Ausdruck in ALLOCATE-Anweisung bei %L muss ALLOCATABLE oder ein POINTER sein" +msgstr "ALLOCATE-Objekt bei %L ist Subobjekt des Objekts bei %L" #. The cases overlap, or they are the same #. element in the list. Either way, we must @@ -41458,9 +41458,9 @@ msgid "Expression in CASE statement at %L must be of type %s" msgstr "Ausdruck in CASE-Anweisung bei %L muss Typ %s haben" #: fortran/resolve.c:7587 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Expression in CASE statement at %L must be of kind %d" -msgstr "Ausdruck in CASE-Anweisung bei %L muss von Art %d sein" +msgstr "Ausdruck in CASE-Anweisung bei %L muss von der Art %d sein" #: fortran/resolve.c:7600 #, gcc-internal-format, gfc-internal-format @@ -41478,9 +41478,9 @@ msgid "Argument of SELECT statement at %L cannot be %s" msgstr "Argument der SELECT-Anweisung bei %L kann nicht %s sein" #: fortran/resolve.c:7682 fortran/resolve.c:7690 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Expression in CASE statement at %L is not in the range of %s" -msgstr "Ausdruck in CASE-Anweisung bei %L muss Typ %s haben" +msgstr "Ausdruck in CASE-Anweisung bei %L ist nicht im Bereich von %s" #: fortran/resolve.c:7752 fortran/resolve.c:8062 #, gcc-internal-format, gfc-internal-format @@ -41493,7 +41493,7 @@ msgid "Logical range in CASE statement at %L is not allowed" msgstr "Logischer Bereich in CASE-Anweisung bei %L ist nicht erlaubt" #: fortran/resolve.c:7790 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Constant logical value in CASE statement is repeated at %L" msgstr "Konstanter logischer Wert in CASE-Anweisung wird bei %L wiederholt" @@ -41508,55 +41508,55 @@ msgid "Logical SELECT CASE block at %L has more that two cases" msgstr "Logischer SELECT CASE Block bei %L hat mehr als zwei Fälle" #: fortran/resolve.c:7972 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Associate-name '%s' at %L is used as array" -msgstr "Globaler Name »%s« bei %L wird bereits als ein %s bei %L verwendet" +msgstr "Zugeordneter Name »%s« bei %L wird als Feld verwendet" #: fortran/resolve.c:8014 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Selector shall be polymorphic in SELECT TYPE statement at %L" -msgstr "Syntaxfehler in EQUIVALENCE-Anweisung bei %L" +msgstr "Selektor sollte in SELECT TYPE-Anweisung bei %L polymorph sein" #: fortran/resolve.c:8040 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' at %L must be extensible" -msgstr "Abgeleiteter Typ »%s« bei %L ist leer" +msgstr "Abgeleiteter Typ »%s« bei %L muss erweiterbar sein" #: fortran/resolve.c:8050 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Derived type '%s' at %L must be an extension of '%s'" -msgstr "Abgeleiteter Typ »%s« bei %L ist leer" +msgstr "Abgeleiteter Typ »%s« bei %L muss eine Erweiterung von »%s« sein" #: fortran/resolve.c:8222 #, gcc-internal-format, gfc-internal-format msgid "Double CLASS IS block in SELECT TYPE statement at %L" -msgstr "" +msgstr "Doppelter CLASS IS-Block in SELECT TYPE-Anweisung bei %L" #: fortran/resolve.c:8313 #, gcc-internal-format, gfc-internal-format msgid "NULL intrinsic at %L in data transfer statement requires MOLD=" -msgstr "" +msgstr "Intrinsisches NULL bei %L in Anweisung zum Datenaustausch erfordert MOLD=" #. FIXME: Test for defined input/output. #: fortran/resolve.c:8341 #, 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 "" +msgstr "Element zum Datenaustausch bei %L kann nicht polymorph sein, außer es wird von einer definierten E/A-Prozedur verarbeitet" #: fortran/resolve.c:8353 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "Datenübertragungselement bei %L kann keine POINTER-Komponenten haben" +msgstr "Datenübertragungselement bei %L kann keine POINTER-Komponenten haben, außer es wird von einer definierten E/A-Prozedur verarbeitet" #: fortran/resolve.c:8362 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Data transfer element at %L cannot have procedure pointer components" -msgstr "Datenübertragungselement bei %L kann keine POINTER-Komponenten haben" +msgstr "Datenübertragungselement bei %L kann keine Prozedurzeiger-Komponenten haben" #: fortran/resolve.c:8369 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "Datenübertragungselement bei %L kann keine ALLOCATABLE-Komponenten haben" +msgstr "Datenübertragungselement bei %L kann keine ALLOCATABLE-Komponenten haben, außer es wird von einer definierten E/A-Prozedur verarbeitet" #: fortran/resolve.c:8377 #, gcc-internal-format, gfc-internal-format @@ -41569,34 +41569,34 @@ msgid "Data transfer element at %L cannot be a full reference to an assumed-size msgstr "Datenübertragungselement bei %L kann keine vollständige Referenz auf Feld vermuteter Größe sein" #: fortran/resolve.c:8436 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Lock variable at %L must be a scalar of type LOCK_TYPE" -msgstr "ASSIGN-Anweisung bei %L erfordert eine skalare Standard-INTEGER-Variable" +msgstr "Lock-Variable bei %L muss Skalar mit LOCK_TYPE sein" #: fortran/resolve.c:8443 fortran/resolve.c:8507 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "STAT= argument at %L must be a scalar INTEGER variable" -msgstr "FORALL-Indexname bei %L muss skalarer INTEGER sein" +msgstr "»STAT=«-Argument bei %L muss skalare INTEGER-Variable sein" #: fortran/resolve.c:8455 fortran/resolve.c:8514 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable" -msgstr "ASSIGN-Anweisung bei %L erfordert eine skalare Standard-INTEGER-Variable" +msgstr "»ERRMSG=«-Argument bei %L muss skalare CHARACTER-Variable sein" #: fortran/resolve.c:8467 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable" -msgstr "FORALL-Indexname bei %L muss skalarer INTEGER sein" +msgstr "»ACQUIRED_LOCK=«-Argument bei %L muss skalare LOGICAL-Variable sein" #: fortran/resolve.c:8484 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression" -msgstr "Argument der SELECT-Anweisung bei %L muss ein skalarer Ausdruck sein" +msgstr "Argument für Imageset bei %L muss Skalar oder Rang-1-INTEGER-Ausdruck sein" #: fortran/resolve.c:8488 fortran/resolve.c:8498 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Imageset argument at %L must between 1 and num_images()" -msgstr "Argument von ACOS bei %L muss zwischen -1 und 1 liegen" +msgstr "Argument für Imageset bei %L muss zwischen 1 und num_images() liegen" #: fortran/resolve.c:8541 #, gcc-internal-format, gfc-internal-format @@ -41604,21 +41604,21 @@ msgid "Statement at %L is not a valid branch target statement for the branch sta msgstr "Anweisung bei %L ist keine gültige Sprungzielanweisung für Sprungziel bei %L" #: fortran/resolve.c:8550 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Branch at %L may result in an infinite loop" -msgstr "Sprung bei %L bewirkt Endlosschleife" +msgstr "Sprung bei %L könnte Endlosschleife bewirken" #. Note: A label at END CRITICAL does not leave the CRITICAL #. construct as END CRITICAL is still part of it. #: fortran/resolve.c:8567 fortran/resolve.c:8590 #, gcc-internal-format, gfc-internal-format msgid "GOTO statement at %L leaves CRITICAL construct for label at %L" -msgstr "" +msgstr "GOTO-Anweisung bei %L hinterlässt CRITICAL-Konstrukt für Marke bei %L" #: fortran/resolve.c:8571 fortran/resolve.c:8596 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L" -msgstr "Anweisung %s bei %C hinterlässt OpenMP-strukturierten Block" +msgstr "GOTO-Anweisung bei %L hinterlässt DO CONCURRENT-Konstrukt für Marke bei %L" #. The label is not in an enclosing block, so illegal. This was #. allowed in Fortran 66, so we allow it as extension. No @@ -41654,9 +41654,9 @@ msgid "Assignment to a FORALL index variable at %L" msgstr "Zuweisung an FORALL-Indexvariable bei %L" #: fortran/resolve.c:8757 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "Das FORALL mit Index »%s« bewirkt mehr als eine Zuweisung an dieses Objekt bei %L" +msgstr "Das FORALL mit Index »%s« wird nicht auf der linken Seite der Zuweisung bei %L verwendet und könnte somit mehrere Zuweisungen an dieses Objekt auslösen" #: fortran/resolve.c:8926 #, gcc-internal-format, gfc-internal-format @@ -41674,9 +41674,9 @@ msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L" msgstr "CHARACTER-Ausdruck wird in Zuweisung (%d/%d) bei %L abgeschnitten" #: fortran/resolve.c:9192 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "Die unreine Variable bei %L wird einer Variable abgeleiteten Typs mit einer POINTER-Komponente in einer PURE-Prozedur zugewiesen (12.6)" +msgstr "Koindizierter Ausdruck bei %L wird einer Variable abgeleiteten Typs mit einer POINTER-Komponente in einer PURE-Prozedur zugewiesen" #: fortran/resolve.c:9197 #, gcc-internal-format, gfc-internal-format @@ -41684,19 +41684,19 @@ msgid "The impure variable at %L is assigned to a derived type variable with a P msgstr "Die unreine Variable bei %L wird einer Variable abgeleiteten Typs mit einer POINTER-Komponente in einer PURE-Prozedur zugewiesen (12.6)" #: fortran/resolve.c:9207 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Assignment to coindexed variable at %L in a PURE procedure" -msgstr "Zuweisung an FORALL-Indexvariable bei %L" +msgstr "Zuweisung an koindizierte Variable bei %L in einer PURE-Prozedur" #: fortran/resolve.c:9238 #, 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 "" +msgstr "Variable darf in intrinsischer Zuweisung bei %L nicht polymorph sein - bitte prüfen, ob es ein passendes spezifisches Unterprogramm für den »=«-Operator gibt" #: fortran/resolve.c:9247 #, gcc-internal-format, gfc-internal-format msgid "Coindexed variable must not be have an allocatable ultimate component in assignment at %L" -msgstr "" +msgstr "Koindizierte Variable darf keine reservierbare endgültige Komponente in Zuweisung bei %L haben" #: fortran/resolve.c:9382 #, gcc-internal-format, gfc-internal-format @@ -41729,9 +41729,9 @@ msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression msgstr "Abbruchbedingung der DO WHILE-Schleife bei %L muss ein skalarer LOGICAL-Ausdruck sein" #: fortran/resolve.c:9607 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "FORALL mask clause at %L requires a scalar LOGICAL expression" -msgstr "FORALL-Maskenklausel bei %L erfordert einen LOGICAL-Ausdruck" +msgstr "FORALL-Maskenklausel bei %L erfordert einen skalaren LOGICAL-Ausdruck" #: fortran/resolve.c:9687 fortran/resolve.c:9743 #, gcc-internal-format, gfc-internal-format @@ -41769,12 +41769,12 @@ msgstr "Binde-Marke »%s« bei %L kollidiert mit globalem Eintrag »%s« bei %L" #: fortran/resolve.c:9912 #, gcc-internal-format, gfc-internal-format msgid "CHARACTER variable at %L has negative length %d, the length has been set to zero" -msgstr "" +msgstr "CHARACTER-Variable bei %L hat negative Länge %d, die Länge wurde auf Null gesetzt" #: fortran/resolve.c:9925 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "String length at %L is too large" -msgstr "Feldgröße von %qs ist zu groß" +msgstr "Zeichenkettenlänge bei %L ist zu groß" #: fortran/resolve.c:10262 #, gcc-internal-format, gfc-internal-format @@ -41797,14 +41797,14 @@ msgid "Array '%s' at %L cannot have a deferred shape" msgstr "Feld »%s« bei %L kann keine aufgeschobene Form haben" #: fortran/resolve.c:10297 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Type '%s' of CLASS variable '%s' at %L is not extensible" -msgstr "Der Typ für Funktion »%s« bei %L ist nicht erreichbar" +msgstr "Typ »%s« der CLASS-Variable »%s« bei %L ist nicht erweiterbar" #: fortran/resolve.c:10309 #, gcc-internal-format, gfc-internal-format msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer" -msgstr "" +msgstr "CLASS-Variable »%s« bei %L muss Attrappe, reservierbar oder Zeiger sein" #: fortran/resolve.c:10340 #, gcc-internal-format, gfc-internal-format @@ -41814,7 +41814,7 @@ msgstr "Der Typ %s kann bei %L nicht mit Wirt verbunden werden, da er von unvert #: fortran/resolve.c:10362 #, gcc-internal-format, gfc-internal-format msgid "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the default initialization" -msgstr "" +msgstr "Fortran 2008: Inbegriffenes SAVE für Modulvariable »%s« bei %L, benötigt wegen Standardkonstruktor" #. The shape of a main program or module array needs to be #. constant. @@ -41826,7 +41826,7 @@ msgstr "Das Feld »%s« im Modul oder Hauptprogramm bei %L muss konstante Form h #: fortran/resolve.c:10418 #, 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 "" +msgstr "Entität »%s« bei %L hat Parameter mit aufgeschobenem Typ und benötgt entweder das POINTER- oder ALLOCATABLE-Attribut" #: fortran/resolve.c:10432 #, gcc-internal-format, gfc-internal-format @@ -41839,9 +41839,9 @@ msgid "'%s' at %L must have constant character length in this context" msgstr "»%s« bei %L muss in diesem Zusammenhang konstante Zeichenlänge haben" #: fortran/resolve.c:10457 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "COMMON variable '%s' at %L must have constant character length" -msgstr "»%s« bei %L muss in diesem Zusammenhang konstante Zeichenlänge haben" +msgstr "COMMON-Variable »%s« bei %L muss konstante Zeichenlänge haben" #: fortran/resolve.c:10502 #, gcc-internal-format, gfc-internal-format @@ -41904,9 +41904,9 @@ msgid "ELEMENTAL function '%s' at %L must have a scalar result" msgstr "Elementare Funktion »%s« bei %L muss ein skalares Ergebnis haben" #: fortran/resolve.c:10668 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Statement function '%s' at %L may not have pointer or allocatable attribute" -msgstr "Anweisungsfunktion »%s« bei %L ist nicht als effektives Argument erlaubt" +msgstr "Anweisungsfunktion »%s« bei %L darf nicht POINTER- oder ALLOCATABLE-Attribut haben" #: fortran/resolve.c:10687 #, gcc-internal-format, gfc-internal-format @@ -41929,255 +41929,255 @@ msgid "CHARACTER(*) function '%s' at %L cannot be recursive" msgstr "CHARACTER(*)-Funktion »%s« bei %L kann nicht rekursiv sein" #: fortran/resolve.c:10711 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Obsolescent feature: CHARACTER(*) function '%s' at %L" -msgstr "CHARACTER(*)-Funktion »%s« bei %L kann nicht pure sein" +msgstr "Veraltet: CHARACTER(*)-Funktion »%s« bei %L" #: fortran/resolve.c:10766 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L" -msgstr "Attribut PROCEDURE steht mit Attribut NAMELIST in »%s« bei %L in Konflikt" +msgstr "Attribut PROCEDURE steht mit Attribut SAVE in »%s« bei %L in Konflikt" #: fortran/resolve.c:10772 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L" -msgstr "Attribut PROCEDURE steht mit Attribut NAMELIST in »%s« bei %L in Konflikt" +msgstr "Attribut PROCEDURE steht mit Attribut INTENT in »%s« bei %L in Konflikt" #: fortran/resolve.c:10778 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L" -msgstr "Attribut PROCEDURE steht mit Attribut NAMELIST in »%s« bei %L in Konflikt" +msgstr "Attribut PROCEDURE steht mit Attribut RESULT in »%s« bei %L in Konflikt" #: fortran/resolve.c:10786 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L" -msgstr "Attribut %s steht mit Attribut %s in »%s« bei %L in Konflikt" +msgstr "Attribut EXTERNAL steht mit Attribut FUNCTION in »%s« bei %L in Konflikt" #: fortran/resolve.c:10792 #, gcc-internal-format, gfc-internal-format msgid "Procedure pointer result '%s' at %L is missing the pointer attribute" -msgstr "" +msgstr "Dem Ergebnis »%s« als Prozedurzeiger bei %L fehlt das POINTER-Attribut" #: fortran/resolve.c:10838 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "FINAL procedure '%s' at %L is not a SUBROUTINE" -msgstr "Prozedur für Benutzeroperator »%s« bei %L muss eine FUNKTION sein" +msgstr "FINAL-Prozedur »%s« bei %L ist keine SUBROUTINE" #: fortran/resolve.c:10846 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "FINAL procedure at %L must have exactly one argument" -msgstr "Prozedur für Benutzeroperator »%s« bei %L muss mindestens ein Argument haben" +msgstr "FINAL-Prozedur bei %L muss genau ein Argument haben" #: fortran/resolve.c:10855 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument of FINAL procedure at %L must be of type '%s'" -msgstr "Argument von ICHAR bei %L muss Länge Eins haben" +msgstr "Argument der FINAL-Prozedur bei %L muss Typ »%s« haben" #: fortran/resolve.c:10863 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument of FINAL procedure at %L must not be a POINTER" -msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ein POINTER sein" +msgstr "Argument der FINAL-Prozedur bei %L darf kein POINTER sein" #: fortran/resolve.c:10869 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE" -msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ALLOCATABLE sein" +msgstr "Argument der FINAL-Prozedur bei %L darf nicht ALLOCATABLE sein" #: fortran/resolve.c:10875 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument of FINAL procedure at %L must not be OPTIONAL" -msgstr "Argument »%s« des intrinsischen »%s« bei %L darf nicht OPTIONAL sein" +msgstr "Argument der FINAL-Prozedur bei %L darf nicht OPTIONAL sein" #: fortran/resolve.c:10883 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)" -msgstr "Erstes Argument der Operatorschnittstelle bei %L muss INTENT(IN) sein" +msgstr "Argument der FINAL-Prozedur bei %L darf nicht INTENT(OUT) sein" #: fortran/resolve.c:10891 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Non-scalar FINAL procedure at %L should have assumed shape argument" -msgstr "Prozedur für Benutzeroperator »%s« bei %L muss mindestens ein Argument haben" +msgstr "Nicht-skalare FINAL-Prozedur bei %L sollte Argument mit vermuteter Form haben" #: fortran/resolve.c:10910 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'" -msgstr "Schnittstellenprozedur »%s« bei %L hat den selben Namen wie die umgebende Prozedur" +msgstr "Bei %2$L deklarierte FINAL-Prozedur »%1$s« hat den selben Rang (%3$d) wie »%4$s«" #: fortran/resolve.c:10943 #, gcc-internal-format, gfc-internal-format msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one" -msgstr "" +msgstr "Bei %2$L wurde nur FINAL-Feldprozedur für abgeleiteten Typ »%1$s« definiert, skalare wird ebenfalls empfohlen" #. TODO: Remove this error when finalization is finished. #: fortran/resolve.c:10948 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Finalization at %L is not yet implemented" -msgstr "Trampoline noch nicht implementiert" +msgstr "Finalisierung bei %L ist noch nicht implementiert" #: fortran/resolve.c:10978 #, gcc-internal-format, gfc-internal-format msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L" -msgstr "" +msgstr "»%s« und »%s« können nicht gemischte FUNCTION/SUBROUTINE für GENERIC »%s« bei %L sein" #: fortran/resolve.c:10987 #, gcc-internal-format, gfc-internal-format msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous" -msgstr "" +msgstr "»%s« und »%s« für GENERIC »%s« bei %L sind mehrdeutig" #: fortran/resolve.c:11046 #, gcc-internal-format, gfc-internal-format msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L" -msgstr "" +msgstr "Undefinierte spezifische Bindung »%s« als Ziel des GENERIC »%s« bei %L" #: fortran/resolve.c:11058 #, gcc-internal-format, gfc-internal-format msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too" -msgstr "" +msgstr "GENERIC »%s« bei %L muss auf spezifische Bindung abzielen, »%s« ist ebenfalls GENERIC" #: fortran/resolve.c:11088 #, gcc-internal-format, gfc-internal-format msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name" -msgstr "" +msgstr "GENERIC »%s« bei %L kann nicht spezifische Bindung mit gleichem Namen überschreiben" #: fortran/resolve.c:11144 #, gcc-internal-format, gfc-internal-format msgid "Type-bound operator at %L can't be NOPASS" -msgstr "" +msgstr "Typgebundener Operator bei %L kann nicht NOPASS sein" #: fortran/resolve.c:11307 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L" -msgstr "Prozedur »%s« mit einer impliziten Schnittstelle bei %L aufgerufen" +msgstr "»%s« muss eine Modulprozedur oder eine externe Prozedur mit expliziter Schnittstelle bei %L sein" #: fortran/resolve.c:11344 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'" -msgstr "Prozedur »%s« in %s bei %L hat keine explizite Schnittstelle" +msgstr "Prozedur »%s« mit PASS(%s) bei %L hat kein Argument »%s«" #: fortran/resolve.c:11358 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' with PASS at %L must have at least one argument" -msgstr "Prozedur für Benutzeroperator »%s« bei %L muss mindestens ein Argument haben" +msgstr "Prozedur »%s« mit PASS bei %L muss mindestens ein Argument haben" #: fortran/resolve.c:11372 fortran/resolve.c:11835 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Non-polymorphic passed-object dummy argument of '%s' at %L" -msgstr "Ungenutztes Scheinargument %s bei %L" +msgstr "Nicht-polymorphes Scheinargument von %s für weitergegebenes Objekt bei %L" #: fortran/resolve.c:11380 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'" -msgstr "Argument »%s« des intrinsischen »%s« bei %L darf kein abgeleiteter Typ sein" +msgstr "Argument »%s« von »%s« mit PASS(%s) bei %L muss abgeleiteten Typ »%s« haben" #: fortran/resolve.c:11389 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Passed-object dummy argument of '%s' at %L must be scalar" -msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ein Skalar sein" +msgstr "Scheinargument von %s für weitergegebenes Objekt bei %L muss ein Skalar sein" #: fortran/resolve.c:11395 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE" -msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ALLOCATABLE sein" +msgstr "Scheinargument von %s für weitergegebenes Objekt bei %L darf nicht ALLOCATABLE sein" #: fortran/resolve.c:11401 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Passed-object dummy argument of '%s' at %L must not be POINTER" -msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ein POINTER sein" +msgstr "Scheinargument von %s für weitergegebenes Objekt bei %L darf nicht POINTER sein" #: fortran/resolve.c:11430 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' at %L has the same name as a component of '%s'" -msgstr "Schnittstellenprozedur »%s« bei %L hat den selben Namen wie die umgebende Prozedur" +msgstr "Prozedur »%s« bei %L hat den gleichen Namen wie eine Komponente von »%s«" #: fortran/resolve.c:11439 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'" -msgstr "Schnittstellenprozedur »%s« bei %L hat den selben Namen wie die umgebende Prozedur" +msgstr "Prozedur »%s« bei %L hat den selben Namen wie eine vererbte Komponente von »%s«" #: fortran/resolve.c:11534 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED and not overridden" -msgstr "Abgeleiteter Typ »%s«, bei %L deklariert, muss BIND-Attribut haben, um C-kompatibel zu sein" +msgstr "Bei %2$L deklarierter abgeleiteter Typ »%1$s« muss ABSTRACT sein, da »%3$s« DEFERRED und nicht überschrieben ist" #: fortran/resolve.c:11592 #, 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 "" +msgstr "Da der erweiterte Typ »%s« bei %L eine Koarray-Komponente hat, sollte der Elterntyp »%s« auch eine haben" #: fortran/resolve.c:11605 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT" -msgstr "Komponente »%s« in abgeleitetem Typ »%s« bei %L könnte nicht C-kompatibel sein" +msgstr "Nicht-erweiterbarer abgeleiteter Typ »%s« bei %L darf nicht ABSTRACT sein" #: fortran/resolve.c:11618 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Deferred-length character component '%s' at %L is not yet supported" -msgstr "Parameter verschiedener Typen in Zeigerzuweisung bei %L" +msgstr "Zeichenkettenkomponente »%s« aufgeschobener Länge bei %L wird noch nicht unterstützt" #: fortran/resolve.c:11628 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Coarray component '%s' at %L must be allocatable with deferred shape" -msgstr "Feldzeiger »%s« bei %L muss aufgeschobene Form haben" +msgstr "Koarray-Komponente »%s« bei %L muss reservierbar mit aufgeschobener Form sein" #: fortran/resolve.c:11637 #, 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 "" +msgstr "Komponente »%s« bei %L mit TYPE(C_PTR) oder TYPE(C_FUNPTR) sollte kein Koarray sein" #: fortran/resolve.c:11647 #, gcc-internal-format, gfc-internal-format msgid "Component '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar" -msgstr "" +msgstr "Komponente »%s« bei %L mit Koarray-Komponente sollte ein Nicht-Zeiger und nicht-reservierbares Skalar sein" #: fortran/resolve.c:11656 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer" -msgstr "»%s« bei %L kann nicht das VALUE-Attribut haben, da es kein Scheinargument ist" +msgstr "Komponente »%s« bei %L hat das CONTIGUOUS-Attribut, aber ist kein Feldzeiger" #: fortran/resolve.c:11664 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "Schnittstelle »%s«, von Prozedur »%s« bei %L verwendet, ist in späterer PROCEDURE-Anweisung deklariert" +msgstr "Von Prozedurzeigerkomponente »%2$s« bei %3$L verwendete Schnittstelle »%1$s« ist in späterer PROCEDURE-Anweisung deklariert" #: fortran/resolve.c:11729 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Interface '%s' of procedure pointer component '%s' at %L must be explicit" -msgstr "Schnittstelle »%s« der Prozedur »%s« bei %L muss explizit sein" +msgstr "Schnittstelle »%s« der Prozedurzeiger-Komponente »%s« bei %L muss explizit sein" #: fortran/resolve.c:11769 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'" -msgstr "Die Zeigerkomponente »%s« bei »%s« bei %L hat nicht deklarierten Typ" +msgstr "Prozedurzeiger-Komponente »%s« mit PASS(%s) bei %L hat kein Argument »%s«" #: fortran/resolve.c:11783 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Procedure pointer component '%s' with PASS at %L must have at least one argument" -msgstr "Prozedur für Benutzeroperator »%s« bei %L muss mindestens ein Argument haben" +msgstr "Prozedurzeiger-Komponente »%s« mit PASS bei %L muss mindestens ein Argument haben" #: fortran/resolve.c:11799 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'" -msgstr "Argument »%s« des intrinsischen »%s« bei %L darf kein abgeleiteter Typ sein" +msgstr "Argument »%s« von »%s« mit PASS(%s) bei %L muss abgeleiteten Typ »%s« haben" #: fortran/resolve.c:11809 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar" -msgstr "Parameter »%s« für »%s« bei %L muss ein Skalar sein" +msgstr "Parameter »%s« von »%s« mit PASS(%s) bei %L muss skalar sein" #: fortran/resolve.c:11818 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute" -msgstr "Argument »%s« der elementaren Prozedur bei %L kann kein POINTER-Attribut haben" +msgstr "Argument »%s« von »%s« mit PASS(%s) bei %L darf kein POINTER-Attribut haben" #: fortran/resolve.c:11827 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE" -msgstr "Argument »%s« des intrinsischen »%s« bei %L muss ALLOCATABLE sein" +msgstr "Argument »%s« von »%s« mit PASS(%s) bei %L darf nicht ALLOCATABLE sein" #: fortran/resolve.c:11864 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure" -msgstr "Schnittstellenprozedur »%s« bei %L hat den selben Namen wie die umgebende Prozedur" +msgstr "Komponente »%s« von »%s« bei %L hat den gleichen Namen wie eine geerbte typgebundene Prozedur" #: fortran/resolve.c:11877 #, gcc-internal-format, gfc-internal-format @@ -42187,17 +42187,17 @@ msgstr "Zeichenlänge der Komponente »%s« muss ein konstanter Spezifikationsau #: fortran/resolve.c:11888 #, gcc-internal-format, gfc-internal-format msgid "Character component '%s' of '%s' at %L with deferred length must be a POINTER or ALLOCATABLE" -msgstr "" +msgstr "Zeichenkomponente »%s« von »%s« bei %L mit aufgeschobener Länge muss POINTER oder ALLOCATABLE sein" #: fortran/resolve.c:11900 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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" -msgstr "Die Komponente »%s« ist ein PRIVATE-Typ und kann nicht Komponente von »%s« sein, das PUBLIC bei %L ist" +msgstr "Fortran 2003: Die Komponente »%s« ist ein PRIVATE-Typ und kann nicht Komponente von »%s« sein, die PUBLIC bei %L ist" #: fortran/resolve.c:11908 #, gcc-internal-format, gfc-internal-format msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s" -msgstr "" +msgstr "Polymorphe Komponente %s bei %L in SEQUENCE oder BIND(C)-Typ %s" #: fortran/resolve.c:11917 #, gcc-internal-format, gfc-internal-format @@ -42215,9 +42215,9 @@ msgid "Component '%s' with CLASS at %L must be allocatable or pointer" msgstr "Komponente »%s« mit CLASS bei %L muss allozierbar oder Zeiger sein" #: fortran/resolve.c:12006 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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" -msgstr "Argument »%s« der reinen Funktion »%s« bei %L muss INTENT(IN) sein" +msgstr "Fortran 2003: Allgemeiner Name »%s« der Funktion »%s« bei %L ist der gleiche wie der des abgeleiteten Typs bei %L" #: fortran/resolve.c:12058 #, gcc-internal-format, gfc-internal-format @@ -42354,7 +42354,7 @@ msgstr "Fortran 2003: PUBLIC %s »%s« bei %L mit abgeleitetem PRIVATE-Typen »% #: fortran/resolve.c:12563 #, 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 "" +msgstr "Variable %s bei %L mit LOCK_TYPE oder mit Subkomponente mit LOCK_TYPE muss ein Koarray sein" #: fortran/resolve.c:12581 #, gcc-internal-format, gfc-internal-format @@ -42362,9 +42362,9 @@ msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot h msgstr "Das INTENT(OUT)-Scheinargument »%s« bei %L hat vermutete Größe und kann damit keine Standardinitialisierung haben" #: fortran/resolve.c:12593 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)" -msgstr "Scheinargument »%s« bei %L kann nicht INTENT(OUT) sein" +msgstr "Scheinargument »%s« bei %L mit LOCK_TYPE sollte nicht INTENT(OUT) sein" #: fortran/resolve.c:12605 #, gcc-internal-format, gfc-internal-format @@ -42382,9 +42382,9 @@ msgid "Variable '%s' at %L with coarray component shall be a nonpointer, nonallo msgstr "Variable »%s« bei %L mit Koarraykomponente sollte ein Nichtzeiger, nichtallozierbares Skalar sein" #: fortran/resolve.c:12641 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument" -msgstr "Variable »%s« bei %L ist ein Koarray oder hat eine Koarraykomponente und ist weder ALLOCATABLE, SAVE, noch ein Scheinargument" +msgstr "Variable »%s« bei %L ist ein Koarray und ist weder ALLOCATABLE, SAVE, noch ein Scheinargument" #: fortran/resolve.c:12649 #, gcc-internal-format, gfc-internal-format @@ -42861,9 +42861,9 @@ msgid "%s attribute not allowed in BLOCK DATA program unit at %L" msgstr "Attribut %s ungültig in BLOCK DATA - Programmeinheit bei %L" #: fortran/symbol.c:448 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Namelist group name at %L cannot have the SAVE attribute" -msgstr "Komponente bei %C muss ein POINTER-Attribut haben" +msgstr "Name der Namenslisten-Gruppe bei %L kann kein SAVE-Attribut haben" #: fortran/symbol.c:482 #, gcc-internal-format, gfc-internal-format @@ -43018,7 +43018,7 @@ msgstr "»%s« bei %L hat außerhalb seines INTERFACE-Körpers spezifizierte Att #: fortran/symbol.c:1682 #, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' at %L conflicts with symbol from module '%s', use-associated at %L" -msgstr "" +msgstr "Symbol »%s« bei %L steht mit Symbol aus Modul »%s« in Konflikt, verbunden durch Verwendung bei %L" #: fortran/symbol.c:1686 #, gcc-internal-format, gfc-internal-format @@ -43114,7 +43114,7 @@ msgstr "Abgeleiteter Typ »%s«, bei %L deklariert, muss BIND-Attribut haben, um #: fortran/symbol.c:3622 #, 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 "" +msgstr "Abgeleiteter Typ »%s« mit Attribut BIND(C) bei %L ist leer und könnte für entsprechenden C-Prozessor unerreichar sein" #: fortran/symbol.c:3643 #, gcc-internal-format, gfc-internal-format @@ -43122,9 +43122,9 @@ msgid "Component '%s' at %L cannot have the POINTER attribute because it is a me msgstr "Komponente »%s« bei %L kann nicht POINTER-Attribut haben, da es Element des BIND(C)-abgeleiteten Typs »%s« bei %L ist" #: fortran/symbol.c:3653 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "Komponente »%s« bei %L kann nicht POINTER-Attribut haben, da es Element des BIND(C)-abgeleiteten Typs »%s« bei %L ist" +msgstr "Komponente »%s« des Prozedurzeigers bei %L kann kein Element des BIND(C)-abgeleiteten Typs »%s« bei %L sein" #: fortran/symbol.c:3664 #, gcc-internal-format, gfc-internal-format @@ -43157,14 +43157,14 @@ msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is msgstr "Abgeleiteter Typ »%s« bei %L kann nicht das SEQUENCE-Attribut haben, da es BIND(C) ist" #: fortran/symbol.c:4740 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Symbol '%s' is used before it is typed at %L" -msgstr "Symbol »%s« bei %L in mehreren Klauseln vorhanden" +msgstr "Symbol »%s« wird bei %L verwendet, bevor es typisiert wird" #: fortran/symbol.c:4746 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Extension: Symbol '%s' is used before it is typed at %L" -msgstr "Erweiterung: Komma vor Ein-/Ausgabeelementliste bei %C" +msgstr "Erweiterung: Symbol »%s« wird bei %L verwendet, bevor es typisiert wird" #: fortran/target-memory.c:643 #, gcc-internal-format, gfc-internal-format @@ -43179,10 +43179,10 @@ msgstr "BOZ-konstante bei %L ist zu groß (%ld vs %ld Bits)" #: fortran/trans-array.c:6999 #, gcc-internal-format, gfc-internal-format msgid "Creating array temporary at %L for argument '%s'" -msgstr "" +msgstr "Bei %L wird ein vorübergehendes Feld für Argument »%s« erzeugt" #: fortran/trans-array.c:8074 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "Possible front-end bug: Deferred array size without pointer, allocatable attribute or derived type without allocatable components." msgstr "Möglicher Frontend-Fehler: Aufgeschobene Feldgröße ohne Zeiger, allozierbares Attribut oder abgeleiteter Typ ohne allozierbare Komponenten." @@ -43192,9 +43192,9 @@ msgid "bad expression type during walk (%d)" msgstr "Falscher Ausdruckstyp beim Durchlaufen (%d)" #: fortran/trans-common.c:400 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Named COMMON block '%s' at %L shall be of the same size as elsewhere (%lu vs %lu bytes)" -msgstr "Benannter COMMON-Block »%s« bei %L sollte die gleiche Größe haben" +msgstr "Benannter COMMON-Block »%s« bei %L sollte die gleiche Größe wie anderwso haben (vgl. %lu Bytes u. %lu Bytes)" #: fortran/trans-common.c:853 #, gcc-internal-format, gfc-internal-format @@ -43228,14 +43228,14 @@ msgid "The equivalence set for '%s' cause an invalid extension to COMMON '%s' at msgstr "Die Äquivalenzmenge für »%s« bewirkt eine ungültige Erweiterung für COMMON »%s« bei %L" #: fortran/trans-common.c:1129 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Padding of %d bytes required before '%s' in COMMON '%s' at %L; reorder elements or use -fno-align-commons" -msgstr "Auffüllen mit %d Bytes vor »%s« in COMMON »%s« bei %L erforderlich" +msgstr "Auffüllen mit %d Bytes vor »%s« in COMMON »%s« bei %L erforderlich; bitte Elemente umordnen oder -fno-align-commons verwenden" #: fortran/trans-common.c:1134 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Padding of %d bytes required before '%s' in COMMON at %L; reorder elements or use -fno-align-commons" -msgstr "Auffüllen mit %d Bytes vor »%s« in COMMON »%s« bei %L erforderlich" +msgstr "Auffüllen mit %d Bytes vor »%s« in COMMON bei %L erforderlich; bitte Elemente umordnen oder -fno-align-commons verwenden" #: fortran/trans-common.c:1155 #, gcc-internal-format, gfc-internal-format @@ -43243,19 +43243,19 @@ msgid "COMMON '%s' at %L does not exist" msgstr "COMMON »%s« bei %L existiert nicht" #: fortran/trans-common.c:1163 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "COMMON '%s' at %L requires %d bytes of padding; reorder elements or use -fno-align-commons" -msgstr "COMMON »%s« bei %L erfordert Auffüllen mit »%d« Bytes am Anfang" +msgstr "COMMON »%s« bei %L erfordert Auffüllen mit »%d« Bytes; bitte Elemente umordnen oder -fno-align-commons verwenden" #: fortran/trans-common.c:1167 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "COMMON at %L requires %d bytes of padding; reorder elements or use -fno-align-commons" -msgstr "COMMON »%s« bei %L erfordert Auffüllen mit »%d« Bytes am Anfang" +msgstr "COMMON bei %L erfordert Auffüllen mit »%d« Bytes; bitte Elemente umordnen oder -fno-align-commons verwenden" #: fortran/trans-const.c:313 #, gcc-internal-format, gfc-internal-format msgid "Assigning value other than 0 or 1 to LOGICAL has undefined result at %L" -msgstr "" +msgstr "Zuweisung eines anderen Wertes als 0 oder 1 an LOGICAL hat bei %L undefiniertes Ergebnis" #: fortran/trans-const.c:349 #, gcc-internal-format, gfc-internal-format @@ -43263,9 +43263,9 @@ msgid "gfc_conv_constant_to_tree(): invalid type: %s" msgstr "gfc_conv_constant_to_tree(): ungültiger Typ: %s" #: fortran/trans-const.c:380 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "non-constant initialization expression at %L" -msgstr "Initialisierungsausdruck bei %C erwartet" +msgstr "Nicht-konstanter Initialisierungsausdruck bei %L" #: fortran/trans-decl.c:1348 #, gcc-internal-format @@ -43273,14 +43273,14 @@ msgid "intrinsic variable which isn't a procedure" msgstr "innere Variable, die keine Prozedur ist" #: fortran/trans-decl.c:3519 fortran/trans-decl.c:5367 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Return value of function '%s' at %L not set" -msgstr "Rückgabetyp der BIND(C)-Funktion »%s« bei %L kann kein Feld sein" +msgstr "Rückgabewert der Funktion »%s« bei %L nicht gesetzt" #: fortran/trans-decl.c:3838 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "Deferred type parameter not yet supported" -msgstr "Parameter verschiedener Typen in Zeigerzuweisung bei %L" +msgstr "Parameter aufgeschobenen Typs wird noch nicht unterstützt" #: fortran/trans-decl.c:4045 #, gcc-internal-format, gfc-internal-format @@ -43293,9 +43293,9 @@ msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set" msgstr "Scheinargument »%s« bei %L war als INTENT(OUT) deklariert, aber nicht gesetzt" #: fortran/trans-decl.c:4573 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, 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 "Scheinargument »%s« bei %L war als INTENT(OUT) deklariert, aber nicht gesetzt" +msgstr "Scheinargument »%s« abgeleiteten Typs bei %L war als INTENT(OUT) deklariert, aber nicht gesetzt und hat keine Standardinitialisierung" #: fortran/trans-decl.c:4582 #, gcc-internal-format, gfc-internal-format @@ -43308,9 +43308,9 @@ msgid "Unused variable '%s' declared at %L" msgstr "Ungenutzte Variable »%s« bei %L deklariert" #: fortran/trans-decl.c:4602 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Unused module variable '%s' which has been explicitly imported at %L" -msgstr "Ungenutzte Variable »%s« bei %L deklariert" +msgstr "Ungenutzte Modulvariable »%s«, die bei %L ausdrücklich importiert wurde" #: fortran/trans-decl.c:4649 #, gcc-internal-format, gfc-internal-format @@ -43318,14 +43318,14 @@ msgid "Unused parameter '%s' declared at %L" msgstr "Ungenutzter Parameter »%s« bei %L deklariert" #: fortran/trans-decl.c:4652 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Unused parameter '%s' which has been explicitly imported at %L" -msgstr "Ungenutzter Parameter »%s« bei %L deklariert" +msgstr "Ungenutzter Parameter »%s«, der bei %L ausdrücklich importiert wurde" #: fortran/trans-decl.c:4667 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Return value '%s' of function '%s' declared at %L not set" -msgstr "Rückgabetyp der BIND(C)-Funktion »%s« bei %L kann kein Feld sein" +msgstr "Rückgabewert »%1$s« der bei %3$L deklarierten Funktion »%2$s« nicht gesetzt" #: fortran/trans-expr.c:1985 #, gcc-internal-format @@ -43359,9 +43359,9 @@ msgid "Bad IO basetype (%d)" msgstr "Falscher IO-Basistyp (%d)" #: fortran/trans-openmp.c:1837 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "gfc_trans_omp_workshare(): Bad statement code" -msgstr "gfc_trans_code(): Falscher Anweisungscode" +msgstr "gfc_trans_omp_workshare(): Falscher Anweisungscode" #: fortran/trans-stmt.c:517 #, gcc-internal-format, gfc-internal-format @@ -43371,37 +43371,37 @@ msgstr "Alternative Rückkehr bei %L ohne ein *-Scheinargument" #: fortran/trans-stmt.c:840 #, gcc-internal-format, gfc-internal-format msgid "Sorry, only support for integer kind %d implemented for image-set at %L" -msgstr "" +msgstr "Entschuldigung; für Image-Set bei %2$L ist nur Unterstützung für Ganzzahl-Art %1$d implementiert" #: fortran/trans-types.c:497 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "INTEGER(KIND=8) is not available for -fdefault-integer-8 option" -msgstr "integer kind=8 nicht verfügbar für Option -fdefault-integer-8" +msgstr "INTEGER(KIND=8) nicht verfügbar für Option -fdefault-integer-8" #: fortran/trans-types.c:505 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "INTEGER(KIND=8) is not available for -finteger-4-integer-8 option" -msgstr "integer kind=8 nicht verfügbar für Option -fdefault-integer-8" +msgstr "INTEGER(KIND=8) nicht verfügbar für Option -finteger-4-integer-8" #: fortran/trans-types.c:523 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "REAL(KIND=8) is not available for -fdefault-real-8 option" -msgstr "real kind=8 nicht verfügbar für Option -fdefault-real-8" +msgstr "REAL(KIND=8) nicht verfügbar für Option -fdefault-real-8" #: fortran/trans-types.c:530 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "REAL(KIND=8) is not available for -freal-4-real-8 option" -msgstr "real kind=8 nicht verfügbar für Option -fdefault-real-8" +msgstr "REAL(KIND=8) nicht verfügbar für Option -freal-4-real-8" #: fortran/trans-types.c:537 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "REAL(KIND=10) is not available for -freal-4-real-10 option" -msgstr "real kind=8 nicht verfügbar für Option -fdefault-real-8" +msgstr "REAL(KIND=10) nicht verfügbar für Option -freal-4-real-10" #: fortran/trans-types.c:544 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "REAL(KIND=16) is not available for -freal-4-real-16 option" -msgstr "real kind=8 nicht verfügbar für Option -fdefault-real-8" +msgstr "REAL(KIND=16) nicht verfügbar für Option -freal-4-real-16" #: fortran/trans-types.c:558 #, gcc-internal-format @@ -43409,24 +43409,24 @@ msgid "Use of -fdefault-double-8 requires -fdefault-real-8" msgstr "Verwendung von -fdefault-double-8 erfordert -fdefault-real-8" #: fortran/trans-types.c:567 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "REAL(KIND=4) is not available for -freal-8-real-4 option" -msgstr "real kind=8 nicht verfügbar für Option -fdefault-real-8" +msgstr "REAL(KIND=4) nicht verfügbar für Option -freal-8-real-4" #: fortran/trans-types.c:574 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "REAL(KIND=10) is not available for -freal-8-real-10 option" -msgstr "real kind=8 nicht verfügbar für Option -fdefault-real-8" +msgstr "REAL(KIND=10) nicht verfügbar für Option -freal-8-real-10" #: fortran/trans-types.c:581 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "REAL(KIND=10) is not available for -freal-8-real-16 option" -msgstr "real kind=8 nicht verfügbar für Option -fdefault-real-8" +msgstr "REAL(KIND=10) nicht verfügbar für Option -freal-8-real-16" #: fortran/trans-types.c:1432 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Array element size too big at %C" -msgstr "Feldelementgröße zu hoch" +msgstr "Feldelementgröße bei %C zu groß" #: fortran/trans.c:1550 #, gcc-internal-format @@ -43454,9 +43454,9 @@ msgid "ConstantValue attribute of field '%s' has wrong type" msgstr "ConstantValue-Attribut für Feld »%s« hat falschen Typ" #: java/class.c:1637 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "abstract method in non-abstract class" -msgstr "%Jabstrakte Methode in nicht-abstrakter Klasse" +msgstr "abstrakte Methode in nicht-abstrakter Klasse" #: java/class.c:2701 #, gcc-internal-format @@ -43549,7 +43549,7 @@ msgid "mismatching signature for field '%s' in '%s'" msgstr "unpassende Signatur für Feld »%s« in »%s«" #: java/expr.c:2921 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "assignment to final field %q+D not in field%'s class" msgstr "Zuweisung an final-Feld %q+D nicht in Klasse des Feldes" @@ -43570,7 +43570,7 @@ msgstr "unerreichbarer Bytecode von %d bis an's Ende der Methode" #. duplicate code from LOAD macro #: java/expr.c:3549 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unrecognized wide sub-instruction" msgstr "nicht erkannter breiter Teilbefehl" @@ -43631,9 +43631,9 @@ msgid "error while parsing final attributes" msgstr "Fehler beim Analysieren der final-Attribute" #: java/jcf-parse.c:1508 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "duplicate class will only be compiled once" -msgstr "%Hdoppelte Klasse wird nur einmal übersetzt" +msgstr "doppelte Klasse wird nur einmal übersetzt" #: java/jcf-parse.c:1604 #, gcc-internal-format @@ -43646,9 +43646,9 @@ msgid "no input file specified" msgstr "keine Eingabedatei angegeben" #: java/jcf-parse.c:1885 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "can%'t close input file %s: %m" -msgstr "die Eingabedatei »%s« kann nicht geschlossen werden: %m" +msgstr "Eingabedatei »%s« kann nicht geschlossen werden: %m" #: java/jcf-parse.c:1928 #, gcc-internal-format, gfc-internal-format @@ -43661,14 +43661,14 @@ msgid "error while reading %s from zip file" msgstr "Fehler beim Lesen von %s aus ZIP-Datei" #: java/jvspec.c:396 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "can%'t specify %<-D%> without %<--main%>" -msgstr "»-D« kann nicht ohne »--main« angegeben werden\n" +msgstr "%<-D%> kann nicht ohne %<--main%> angegeben werden" #: java/jvspec.c:399 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qs is not a valid class name" -msgstr "»%s« ist kein gültiger Klassenname" +msgstr "%qs ist kein gültiger Klassenname" #: java/jvspec.c:405 #, gcc-internal-format @@ -43676,9 +43676,9 @@ msgid "--resource requires -o" msgstr "--resource erfordert -o" #: java/jvspec.c:412 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "already-compiled .class files ignored with -C" -msgstr "Warnung: bereits kompilierte .class-Dateien mit -C ignoriert" +msgstr "bereits kompilierte .class-Dateien mit -C ignoriert" #: java/jvspec.c:419 #, gcc-internal-format @@ -43696,14 +43696,14 @@ msgid "using both @FILE with multiple files not implemented" msgstr "Verwendung von @FILE mit mehreren Dateien ist nicht implementiert" #: java/jvspec.c:537 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "cannot specify %<main%> class when not linking" msgstr "»main«-Klasse kann ohne Binden nicht angegeben werden" #: java/lang.c:583 #, gcc-internal-format msgid "-fexcess-precision=standard for Java" -msgstr "" +msgstr "-fexcess-precision=standard für Java" #: java/lang.c:594 #, gcc-internal-format @@ -43716,12 +43716,12 @@ msgid "-fjni is incompatible with -freduced-reflection" msgstr "-fjni ist mit -freduced-reflection unverträglich" #: java/lang.c:608 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "can%'t do dependency tracking with input from stdin" msgstr "Abhängigkeiten-Verfolgung kann bei Eingabe von stdin nicht durchgeführt werden" #: java/lang.c:624 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "couldn%'t determine target name for dependency tracking" msgstr "Zielname für Abhängigkeiten-Verfolgung konnte nicht ermittelt werden" @@ -43751,14 +43751,14 @@ msgid "bad pc in exception_table" msgstr "schlechtes PC in execution_table" #: lto/lto-lang.c:730 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "-fwpa and -fltrans are mutually exclusive" -msgstr "-G und -static schließen sich gegenseitig aus" +msgstr "-fwpa und -fltrans schließen sich gegenseitig aus" #: lto/lto-object.c:112 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "open %s failed: %s" -msgstr "Eingabedatei »%s« kann nicht geöffnet werden" +msgstr "»%s« kann nicht geöffnet werden: %s" #: lto/lto-object.c:153 lto/lto-object.c:186 lto/lto-object.c:284 #: lto/lto-object.c:341 lto/lto-object.c:365 @@ -43767,119 +43767,119 @@ msgid "%s: %s" msgstr "%s: %s" #: lto/lto-object.c:155 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "%s: %s: %s" -msgstr "%s %s%s\n" +msgstr "%s: %s: %s" #: lto/lto-object.c:195 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "close: %s" -msgstr "schließe %s" +msgstr "schließen: %s" #: lto/lto-object.c:252 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "two or more sections for %s" -msgstr "zwei oder mehr Datentypen in Deklaration von %qs" +msgstr "zwei oder mehr Abschnitte für %s" #: lto/lto.c:235 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "%s: section %s is missing" -msgstr "Zeichenkettenabschnitt fehlt" +msgstr "%s: Abschnitt %s fehlt" #: lto/lto.c:957 #, gcc-internal-format msgid "bytecode stream: garbage at the end of symbols section" -msgstr "" +msgstr "Bytecode-Strom: Ausschuss am Ende des »symbols«-Abschnitts" #: lto/lto.c:984 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "could not parse hex number" -msgstr "Datum und Zeit konnten nicht bestimmt werden" +msgstr "Hex-Zahl konnte nicht eingelesen werden" #: lto/lto.c:1017 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "unexpected file name %s in linker resolution file. Expected %s" -msgstr "Qualifizierten Namen in Friend-Deklaration für Destruktor %qD erwartet" +msgstr "unerwarteter Dateiname %s in Linker-Auflösungsdatei. %s erwartet" #: lto/lto.c:1026 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "could not parse file offset" -msgstr "Antwortdatei %s konnte nicht geöffnet werden" +msgstr "Datei-Offset konnte nicht eingelesen werden" #: lto/lto.c:1029 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unexpected offset" -msgstr "unerwarteter Operand" +msgstr "unerwarteter Offset" #: lto/lto.c:1050 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid line in the resolution file" -msgstr "ungültiges Register im Befehl" +msgstr "ungültige Zeile in Auflösungsdatei" #: lto/lto.c:1063 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid resolution in the resolution file" -msgstr "ungültiges Register im Befehl" +msgstr "ungültige Auflösung in Auflösungsdatei" #: lto/lto.c:1069 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "resolution sub id " -msgstr "Die Datei mit den Auflösungen" +msgstr "Auflösungs-Sub-ID " #: lto/lto.c:1164 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "cannot read LTO decls from %s" -msgstr "Klasse %qs kann nicht gefunden werden" +msgstr "LTO-Deklarationen von %s können nicht gelesen werden" #: lto/lto.c:1268 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Cannot open %s" -msgstr "Es ist nicht möglich, »%s« zu öffnen" +msgstr "»%s« kann nicht geöffnet werden" #: lto/lto.c:1289 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Cannot map %s" -msgstr "Es ist nicht möglich, »%s« zu öffnen" +msgstr "»%s« kann nicht abgebildet werden" #: lto/lto.c:1300 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Cannot read %s" -msgstr "Es ist nicht möglich, »%s« zu öffnen" +msgstr "»%s« kann nicht gelesen werden" #: lto/lto.c:2279 #, gcc-internal-format msgid "no LTRANS output list filename provided" -msgstr "" +msgstr "kein Dateiname für LTRANS-Ausgabeliste angegeben" #: lto/lto.c:2282 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "opening LTRANS output list %s: %m" -msgstr "Ausgabedatei »%s« wird geöffnet: %m" +msgstr "LTRANS-Ausgabeliste »%s« wird geöffnet: %m" #: lto/lto.c:2328 #, gcc-internal-format msgid "lto_obj_file_open() failed" -msgstr "" +msgstr "lto_obj_file_open() gescheitert" #: lto/lto.c:2354 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "writing to LTRANS output list %s: %m" -msgstr "beim Schreiben der Ausgabe nach %s: %m" +msgstr "beim Schreiben in LTRANS-Ausgabeliste %s: %m" #: lto/lto.c:2362 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "closing LTRANS output list %s: %m" -msgstr "Ausgabedatei »%s« wird geöffnet: %m" +msgstr "LTRANS-Ausgabeliste »%s« wird geschlossen: %m" #: lto/lto.c:2589 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "could not open symbol resolution file: %m" -msgstr "Antwortdatei %s konnte nicht geöffnet werden" +msgstr "Datei zur Symbolauflösung konnte nicht geöffnet werden: %m" #: lto/lto.c:2664 #, gcc-internal-format msgid "errors during merging of translation units" -msgstr "" +msgstr "Fehler beim Einfügen von Ãœbersetzungseinheiten" #: objc/objc-act.c:413 objc/objc-act.c:6776 #, gcc-internal-format @@ -43889,32 +43889,32 @@ msgstr "%<@end%> fehlt in Implementationskontext" #: objc/objc-act.c:566 #, gcc-internal-format msgid "class attributes are not available in Objective-C 1.0" -msgstr "" +msgstr "Klassenattribute sind in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:581 #, gcc-internal-format msgid "category attributes are not available in Objective-C 1.0" -msgstr "" +msgstr "Kategorie-Attribute sind in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:584 #, gcc-internal-format msgid "category attributes are not available in this version of the compiler, (ignored)" -msgstr "" +msgstr "Kategorie-Attribute sind in dieser Version des Kompilers nicht verfügbar (wird ignoriert)" #: objc/objc-act.c:590 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "class extensions are not available in Objective-C 1.0" -msgstr "diese Medienfunktion ist nur auf dem fr500 verfügbar" +msgstr "Klassenerweiterungen sind in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:604 #, gcc-internal-format msgid "class extension for class %qE declared after its %<@implementation%>" -msgstr "" +msgstr "Klassenerweiterung für Klasse %qE nach seiner %<@implementation%> deklariert" #: objc/objc-act.c:619 #, gcc-internal-format msgid "protocol attributes are not available in Objective-C 1.0" -msgstr "" +msgstr "Protokoll-Attribute sind in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:684 #, gcc-internal-format @@ -43924,77 +43924,77 @@ msgstr "%<@end%> muss in einem @implementation-Kontext auftreten" #: objc/objc-act.c:693 #, gcc-internal-format msgid "%<@package%> is not available in Objective-C 1.0" -msgstr "" +msgstr "%<@package%> ist in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:695 #, gcc-internal-format msgid "%<@package%> presently has the same effect as %<@public%>" -msgstr "" +msgstr "%<@package%> hat derzeit den gleichen Effekt wie %<@public%>" #: objc/objc-act.c:706 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<@optional%> is not available in Objective-C 1.0" -msgstr "diese Medienfunktion ist nur auf dem fr500 verfügbar" +msgstr "%<@optional%> ist in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:708 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<@required%> is not available in Objective-C 1.0" -msgstr "diese Medienfunktion ist nur auf dem fr500 verfügbar" +msgstr "%<@required%> ist in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:716 #, gcc-internal-format msgid "%<@optional%> is allowed in @protocol context only" -msgstr "" +msgstr "%<@optional%> ist nur im @protocol-Kontext erlaubt" #: objc/objc-act.c:718 #, gcc-internal-format msgid "%<@required%> is allowed in @protocol context only" -msgstr "" +msgstr "%<@required%> ist nur im @protocol-Kontext erlaubt" #: objc/objc-act.c:825 #, gcc-internal-format msgid "%<@property%> is not available in Objective-C 1.0" -msgstr "" +msgstr "%<@property%> ist in Objective-C 1.0 nicht verfügbar" #: objc/objc-act.c:829 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<readonly%> attribute conflicts with %<readwrite%> attribute" -msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt" +msgstr "Attribut %<readonly%> steht mit Attribut %<readwrite%> in Konflikt" #: objc/objc-act.c:846 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<readonly%> attribute conflicts with %<setter%> attribute" -msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt" +msgstr "Attribut %<readonly%> steht mit Attribut %<setter%> in Konflikt" #: objc/objc-act.c:852 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<assign%> attribute conflicts with %<retain%> attribute" -msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt" +msgstr "Attribut %<assign%> steht mit Attribut %<retain%> in Konflikt" #: objc/objc-act.c:857 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<assign%> attribute conflicts with %<copy%> attribute" -msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt" +msgstr "Attribut %<assign%> steht mit Attribut %<copy%> in Konflikt" #: objc/objc-act.c:862 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<retain%> attribute conflicts with %<copy%> attribute" -msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt" +msgstr "Attribut %<retain%> steht mit Attribut %<copy%> in Konflikt" #: objc/objc-act.c:879 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "property declaration not in @interface or @protocol context" -msgstr "Methodendeklaration nicht im @interface-Kontext" +msgstr "Eigenschaftsdeklaration nicht im @interface- oder @protocol-Kontext" #: objc/objc-act.c:890 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid property declaration" -msgstr "ungültige Funktionsdeklaration" +msgstr "ungültige Eigenschaftsdeklaration" #: objc/objc-act.c:898 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "property can not be an array" -msgstr "Externes »%s« bei %L kann keine Initialisierung haben" +msgstr "Eigenschaft kann kein Feld sein" #. A @property is not an actual variable, but it is a way to #. describe a pair of accessor methods, so its type (which is @@ -44004,68 +44004,68 @@ msgstr "Externes »%s« bei %L kann keine Initialisierung haben" #. underlying instance variable could be a bitfield, but that is #. a different matter. #: objc/objc-act.c:916 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "property can not be a bit-field" -msgstr "Externes »%s« bei %L kann keine Initialisierung haben" +msgstr "Eigenschaft kann kein Bitfeld sein" #: objc/objc-act.c:948 #, gcc-internal-format msgid "object property %qD has no %<assign%>, %<retain%> or %<copy%> attribute; assuming %<assign%>" -msgstr "" +msgstr "Objekt-Eigenschaft %qD hat kein Attribut %<assign%>, %<retain%> oder %<copy%>; es wird %<assign%> angenommen" #: objc/objc-act.c:951 #, gcc-internal-format msgid "%<assign%> can be unsafe for Objective-C objects; please state explicitly if you need it" -msgstr "" +msgstr "%<assign%> kann für Objective-C-Objekte unsicher sein; bitte explizit angeben, falls nötig" #: objc/objc-act.c:958 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<retain%> attribute is only valid for Objective-C objects" -msgstr "%q+D:Attribut »selectany« bezieht sich nur auf initialisierte Objekte" +msgstr "Attribut %<retain%> ist nur für Objective-C-Objekte gültig" #: objc/objc-act.c:962 #, gcc-internal-format msgid "%<copy%> attribute is only valid for Objective-C objects" -msgstr "" +msgstr "Attribut %<copy%> ist nur für Objective-C-Objekte gültig" #: objc/objc-act.c:1016 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "redeclaration of property %qD" -msgstr "Redeklaration von Aufzählung %q+D" +msgstr "Redeklaration der Eigenschaft %qD" #: objc/objc-act.c:1019 objc/objc-act.c:1084 objc/objc-act.c:1094 #: objc/objc-act.c:1107 objc/objc-act.c:1118 objc/objc-act.c:1129 #: objc/objc-act.c:1166 objc/objc-act.c:7547 objc/objc-act.c:7610 #: objc/objc-act.c:7632 objc/objc-act.c:7645 objc/objc-act.c:7663 #: objc/objc-act.c:7762 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "originally specified here" -msgstr "ursprüngliche Marke war hier" +msgstr "ursprüngliche hier spezifiziert" #: objc/objc-act.c:1081 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "'nonatomic' attribute of property %qD conflicts with previous declaration" -msgstr "Datenabschnitt von %q+D in Konflikt mit vorheriger Deklaration" +msgstr "Attribut »nonatomic« der Eigenschaft %qD in Konflikt mit vorheriger Deklaration" #: objc/objc-act.c:1091 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "'getter' attribute of property %qD conflicts with previous declaration" -msgstr "Datenabschnitt von %q+D in Konflikt mit vorheriger Deklaration" +msgstr "»Lese«-Attribut der Eigenschaft %qD in Konflikt mit vorheriger Deklaration" #: objc/objc-act.c:1104 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "'setter' attribute of property %qD conflicts with previous declaration" -msgstr "Datenabschnitt von %q+D in Konflikt mit vorheriger Deklaration" +msgstr "»Schreib«-Attribut der Eigenschaft %qD in Konflikt mit vorheriger Deklaration" #: objc/objc-act.c:1115 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "assign semantics attributes of property %qD conflict with previous declaration" -msgstr "Datenabschnitt von %q+D in Konflikt mit vorheriger Deklaration" +msgstr "Attribute der Zuweisungssemantik der Eigenschaft %qD in Konflikt mit vorheriger Deklaration" #: objc/objc-act.c:1126 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "'readonly' attribute of property %qD conflicts with previous declaration" -msgstr "Datenabschnitt von %q+D in Konflikt mit vorheriger Deklaration" +msgstr "Attribut »readonly« der Eigenschaft %qD in Konflikt mit vorheriger Deklaration" #: objc/objc-act.c:1164 #, gcc-internal-format @@ -44265,9 +44265,9 @@ msgid "global/static variable assignment has been intercepted" msgstr "Globale/statische Variablenzuweisung wurde abgefangen" #: objc/objc-act.c:3961 objc/objc-act.c:3989 objc/objc-act.c:4045 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "duplicate instance variable %q+D" -msgstr "Variable %q+D wird nicht verwendet" +msgstr "doppelte Instanzvariable %q+D" #: objc/objc-act.c:4105 #, gcc-internal-format @@ -44383,9 +44383,9 @@ msgstr "auch %<%c%s%> gefunden" #. class, or cast the receiver to 'id'. Note that #. rtype is an IDENTIFIER_NODE at this point. #: objc/objc-act.c:5395 objc/objc-act.c:5529 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "@interface of class %qE not found" -msgstr "Basisschnittstelle %qs von %s %qs nicht gefunden" +msgstr "@interface der Klasse %qE nicht gefunden" #: objc/objc-act.c:5403 #, gcc-internal-format @@ -44775,9 +44775,9 @@ msgid "type %qT does not have a known size" msgstr "Typ %qT hat keine bekannte Größe" #: objc/objc-encoding.c:720 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unknown type %<%T%> found during Objective-C encoding" -msgstr "unbekannter Typ %s bei Objective-C-Kodierung gefunden" +msgstr "unbekannter Typ %<%T%> bei Objective-C-Kodierung gefunden" #. Do not do any encoding, produce an error and keep going. #: objc/objc-encoding.c:803 diff --git a/gcc/po/sv.po b/gcc/po/sv.po index 9ff68b59428..5b68dccb7e1 100644 --- a/gcc/po/sv.po +++ b/gcc/po/sv.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: gcc 4.7-b20120128\n" "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" "POT-Creation-Date: 2012-01-27 16:13+0000\n" -"PO-Revision-Date: 2012-02-12 20:39+0100\n" +"PO-Revision-Date: 2012-02-19 21:58+0100\n" "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" @@ -12154,9 +12154,9 @@ msgid "%qD changed semantics in GCC 4.4" msgstr "%qD bytte semantik i GCC 4.4" #: builtins.c:5310 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid memory model argument to builtin" -msgstr "ogiltigt argument inbyggd funktion" +msgstr "ogiltigt minnesmodellargument till inbyggd funktion" #: builtins.c:5330 #, gcc-internal-format @@ -12174,14 +12174,14 @@ msgid "failure memory model cannot be stronger than success memory model for %<_ msgstr "felminnesmodellen kan inte vara starkare än den lyckade minnesmodellen för %<__atomic_compare_exchange%>" #: builtins.c:5418 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid memory model for %<__atomic_load%>" -msgstr "ogiltigt användning av %<auto%>" +msgstr "ogiltigt minnesmodell för %<_atomic_load%>" #: builtins.c:5448 builtins.c:5554 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid memory model for %<__atomic_store%>" -msgstr "ogiltigt användning av %<auto%>" +msgstr "ogiltigt minnesmodell för %<__atomic_store%>" #: builtins.c:5663 #, gcc-internal-format @@ -12692,9 +12692,9 @@ msgid "empty declaration with type qualifier does not redeclare tag" msgstr "tom deklaration med typkvalificerare deklarerar inte om en tagg" #: c-decl.c:3718 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "empty declaration with %<_Alignas%> does not redeclare tag" -msgstr "tom deklaration med typkvalificerare deklarerar inte om en tagg" +msgstr "tom deklaration med %<_Alignas%> deklarerar inte om en tagg" #: c-decl.c:3740 c-decl.c:3747 #, gcc-internal-format @@ -12707,9 +12707,9 @@ msgid "%<inline%> in empty declaration" msgstr "%<inline%> i tom deklaration" #: c-decl.c:3761 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<_Noreturn%> in empty declaration" -msgstr "%<inline%> i tom deklaration" +msgstr "%<_Noreturn%> i tom deklaration" #: c-decl.c:3767 #, gcc-internal-format @@ -12737,9 +12737,9 @@ msgid "useless type qualifier in empty declaration" msgstr "oanvändbar typkvalificerare i tom deklaration" #: c-decl.c:3800 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "useless %<_Alignas%> in empty declaration" -msgstr "oanvändbar %<__thread%> i tom deklaration" +msgstr "oanvändbar %<_Alignas%> i tom deklaration" #: c-decl.c:3807 c-parser.c:1498 #, gcc-internal-format @@ -13219,39 +13219,39 @@ msgid "%qs specified for structure field" msgstr "%qs angiven för postfält" #: c-decl.c:5764 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "alignment specified for typedef %qE" -msgstr "minnesjustering kan inte anges för %q+D" +msgstr "minnesjustering angiven för typedef %qE" #: c-decl.c:5766 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "alignment specified for %<register%> object %qE" -msgstr "%qs angiven för parameter %qE" +msgstr "minnesjustering angiven för %<register%>-objekt %qE" #: c-decl.c:5771 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "alignment specified for parameter %qE" -msgstr "%qs angiven för parameter %qE" +msgstr "minnesjustering angiven för parameter %qE" #: c-decl.c:5773 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "alignment specified for unnamed parameter" -msgstr "%qs angiven för namnlös parameter" +msgstr "minnesjustering angiven för namnlös parameter" #: c-decl.c:5778 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "alignment specified for bit-field %qE" -msgstr "minnesjustering kan inte anges för %q+D" +msgstr "minnesjustering angiven för bitfältet %qE" #: c-decl.c:5780 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "alignment specified for unnamed bit-field" -msgstr "%qs angiven för namnlös parameter" +msgstr "minnesjustering angiven för namnlöst bitfält" #: c-decl.c:5783 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "alignment specified for function %qE" -msgstr "tilldelning av funktion %qD" +msgstr "minnesjustering angiven för funktionen %qE" #: c-decl.c:5790 #, gcc-internal-format @@ -13269,9 +13269,9 @@ msgid "typedef %q+D declared %<inline%>" msgstr "typdef %q+D deklarerad %<inline%>" #: c-decl.c:5834 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "typedef %q+D declared %<_Noreturn%>" -msgstr "typdef %q+D deklarerad %<inline%>" +msgstr "typedef %q+D deklarerad %<_Noreturn%>" #: c-decl.c:5870 #, gcc-internal-format @@ -13300,9 +13300,9 @@ msgid "parameter %q+D declared %<inline%>" msgstr "parametern %q+D deklarerad %<inline%>" #: c-decl.c:5964 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "parameter %q+D declared %<_Noreturn%>" -msgstr "parametern %q+D deklarerad %<inline%>" +msgstr "parametern %q+D deklarerad %<_Noreturn%>" #: c-decl.c:5977 #, gcc-internal-format @@ -13330,19 +13330,19 @@ msgid "cannot inline function %<main%>" msgstr "kan inte inline:a funktionen %<main%>" #: c-decl.c:6070 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<main%> declared %<_Noreturn%>" -msgstr "%qE initierad och deklarerad %<extern%>" +msgstr "%<main%> deklarerad %<_Noreturn%>" #: c-decl.c:6083 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C99 does not support %<_Noreturn%>" -msgstr "ISO C99 stödjer inte %<_Static_assert%>" +msgstr "ISO C99 stödjer inte %<_Noreturn%>" #: c-decl.c:6086 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C90 does not support %<_Noreturn%>" -msgstr "ISO C90 stödjer inte %<long long%>" +msgstr "ISO C90 stödjer inte %<_Noreturn%>" #: c-decl.c:6115 #, gcc-internal-format @@ -13355,9 +13355,9 @@ msgid "variable %q+D declared %<inline%>" msgstr "variabeln %q+D deklarerad %<inline%>" #: c-decl.c:6127 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "variable %q+D declared %<_Noreturn%>" -msgstr "variabeln %q+D deklarerad %<inline%>" +msgstr "variabeln %q+D deklarerad %<_Noreturn%>" #: c-decl.c:6162 #, gcc-internal-format @@ -14062,14 +14062,14 @@ msgid "%<typeof%> applied to a bit-field" msgstr "%<typeof%> applicerat på ett bitfält" #: c-parser.c:2789 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C99 does not support %<_Alignas%>" -msgstr "ISO C90 stödjer inte %<long long%>" +msgstr "ISO C99 stödjer inte %<_Alignas%>" #: c-parser.c:2792 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C90 does not support %<_Alignas%>" -msgstr "ISO C90 stödjer inte %<long long%>" +msgstr "ISO C90 stödjer inte %<_Alignas%>" #: c-parser.c:3020 #, gcc-internal-format @@ -14221,24 +14221,24 @@ msgid "%<sizeof%> applied to a bit-field" msgstr "%<sizeof%> applicerat på ett bitfält" #: c-parser.c:6047 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C99 does not support %qE" -msgstr "%s stödjer inte %s" +msgstr "ISO C99 stödjer inte %qE" #: c-parser.c:6050 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C90 does not support %qE" -msgstr "ISO C90 stödjer inte %<long long%>" +msgstr "ISO C90 stödjer inte %qE" #: c-parser.c:6101 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C does not allow %<%E (expression)%>" -msgstr "ISO C++ tillåter inte %<alignof%> med annat än en typ" +msgstr "ISO C tillåter inte %<%E (uttryck)%>" #: c-parser.c:6126 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "cannot take address of %qs" -msgstr "kan inte ta adressen till bitfält %qD" +msgstr "kan inte ta adressen till %qs" #: c-parser.c:6297 c-parser.c:6742 c-parser.c:6761 #, gcc-internal-format @@ -14256,9 +14256,9 @@ msgid "ISO C forbids braced-groups within expressions" msgstr "ISO C förbjuder klammergrupper inuti uttryck" #: c-parser.c:6520 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "wrong number of arguments to %<__builtin_choose_expr%>" -msgstr "fel antal argument till funktionen %<__builtin_next_arg%>" +msgstr "fel antal argument till %<__builtin_choose_expr%>" #: c-parser.c:6536 #, gcc-internal-format @@ -14266,9 +14266,9 @@ msgid "first argument to %<__builtin_choose_expr%> not a constant" msgstr "första argumentet till %<__builtin_choose_expr%> är inte en konstant" #: c-parser.c:6602 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "wrong number of arguments to %<__builtin_complex%>" -msgstr "fel antal argument till funktionen %<__builtin_next_arg%>" +msgstr "fel antal argument till %<__builtin_complex%>" #: c-parser.c:6624 #, gcc-internal-format @@ -14276,14 +14276,14 @@ msgid "%<__builtin_complex%> operand not of real binary floating-point type" msgstr "%<__builtin_complex%>-operand är inte av en reel binär flyttalstyp" #: c-parser.c:6633 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<__builtin_complex%> operands of different types" -msgstr "andra argumentet till %<__builtin_longjmp%> måste vara 1" +msgstr "operander till %<__builtin_complex%> av olika typer" #: c-parser.c:6674 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "wrong number of arguments to %<__builtin_shuffle%>" -msgstr "fel antal argument till funktionen %<__builtin_next_arg%>" +msgstr "fel antal argument till %<__builtin_shuffle%>" #: c-parser.c:6796 #, gcc-internal-format @@ -14381,9 +14381,9 @@ msgid "%<#pragma omp taskwait%> may only be used in compound statements" msgstr "%<#pragma omp taskwait%> får bara användas i sammansatta satser" #: c-parser.c:8534 cp/parser.c:27326 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%<#pragma omp taskyield%> may only be used in compound statements" -msgstr "%<#pragma omp taskwait%> får bara användas i sammansatta satser" +msgstr "%<#pragma omp taskyield%> får bara användas i sammansatta satser" #: c-parser.c:8547 cp/parser.c:27354 #, gcc-internal-format @@ -14421,9 +14421,9 @@ msgid "%<num_threads%> value must be positive" msgstr "%<num_threads%>-värdet måste vara positivt" #: c-parser.c:9137 cp/parser.c:25331 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>" -msgstr "%<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%> eller %<||%> förväntades" +msgstr "%<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> eller %<max%> förväntades" #: c-parser.c:9226 cp/parser.c:25416 #, gcc-internal-format @@ -14451,9 +14451,9 @@ msgid "%qs is not valid for %qs" msgstr "%qs är inte giltigt för %qs" #: c-parser.c:9677 cp/parser.c:25860 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid form of %<#pragma omp atomic%>" -msgstr "ogiltig operator för %<#pragma omp atomic%>" +msgstr "ogiltig form på %<#pragma omp atomic%>" #: c-parser.c:9717 c-parser.c:9735 cp/parser.c:25891 cp/parser.c:25908 #, gcc-internal-format @@ -14685,19 +14685,19 @@ msgid "function with qualified void return type called" msgstr "funktion med kvalificerad void-returtyp anropad" #: c-typeck.c:2888 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "__builtin_shuffle last argument must be an integer vector" -msgstr "det sista argumentet måste vara en 8-bitars omedelbar" +msgstr "sista argumentet till __builtin_shuffle måste vara en heltalsvektor" #: c-typeck.c:2896 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "__builtin_shuffle arguments must be vectors" -msgstr "andra argumentet till %<__builtin_longjmp%> måste vara 1" +msgstr "argumenten till __builtin_shuffle måste vara vektorer" #: c-typeck.c:2902 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "__builtin_shuffle argument vectors must be of the same type" -msgstr "Aktuellt arkument till \"%s\" vid %L måste ha samma deklarerade typ" +msgstr "argumentvektorerna till __builtin_shuffle måste ha samma typ" #: c-typeck.c:2912 #, gcc-internal-format @@ -15595,14 +15595,14 @@ msgid "left shift count >= width of type" msgstr "vänstershiftoperanden >= storleken på typen" #: c-typeck.c:10015 c-typeck.c:10152 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "comparing vectors with different element types" -msgstr "Varna för jämförelser av skilda uppräkningstyper" +msgstr "jämför vektorer med skilda elementtyper" #: c-typeck.c:10022 c-typeck.c:10159 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "comparing vectors with different number of elements" -msgstr "olika antal resultat" +msgstr "jämför vektorer med olika antal element" #: c-typeck.c:10038 cp/typeck.c:4007 #, gcc-internal-format @@ -15681,9 +15681,9 @@ msgid "used union type value where scalar is required" msgstr "värde av uniontyp använt där skalär krävs" #: c-typeck.c:10580 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "used vector type where scalar is required" -msgstr "struct-typvärde använt där skalär krävs" +msgstr "vektortyp använd där skalär krävs" #: c-typeck.c:10734 cp/semantics.c:4205 #, gcc-internal-format @@ -15891,9 +15891,9 @@ msgid "%s does not support make_forwarder_block" msgstr "%s stödjer inte make_forwarder_block" #: cfghooks.c:889 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "%s does not support force_nonfallthru" -msgstr "%s stödjer inte inte move_block_after" +msgstr "%s stödjer inte inte force_nonfallthru" #: cfghooks.c:917 #, gcc-internal-format, gfc-internal-format @@ -16051,9 +16051,9 @@ msgid "fallthru edge crosses section boundary (bb %i)" msgstr "fall-igenom-båge korsar sektionsgräns (bb %i)" #: cfgrtl.c:1913 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "EH edge crosses section boundary (bb %i)" -msgstr "fall-igenom-båge korsar sektionsgräns (bb %i)" +msgstr "EH-båge korsar sektionsgräns (gb %i)" #: cfgrtl.c:1920 #, gcc-internal-format @@ -16386,9 +16386,9 @@ msgid "%<weakref%> attribute ignored because function is defined" msgstr "attributet %<weakref%> ignorerat för att funktionen är definierad" #: cgraphunit.c:1016 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "always_inline function might not be inlinable" -msgstr "Varna när en inline:ad funktion inte kan inline:as" +msgstr "always_inline-funktion kanske inte kan inline:as" #: cgraphunit.c:1050 #, gcc-internal-format @@ -16401,9 +16401,9 @@ msgid "failed to reclaim unneeded function" msgstr "misslyckades att återta funktion som inte behövs" #: cgraphunit.c:1430 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "failed to reclaim unneeded functionin same comdat group" -msgstr "misslyckades att återta funktion som inte behövs" +msgstr "misslyckades att återta funktion som inte behövs i samma comdat-grupp" #: cgraphunit.c:2233 #, gcc-internal-format @@ -16426,7 +16426,7 @@ msgid "LTO support has not been enabled in this configuration" msgstr "LTO-stöd har inte aktiverats i denna konfiguration" #: collect2.c:1470 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "can't open %s: %m" msgstr "det går inte att öppna %s: %m" @@ -16436,19 +16436,19 @@ msgid "unknown demangling style '%s'" msgstr "okänd avmanglingsstil \"%s\"" #: collect2.c:1680 collect2.c:1863 collect2.c:1898 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "fopen %s: %m" -msgstr "fopen %s" +msgstr "fopen %s: %m" #: collect2.c:1683 collect2.c:1868 collect2.c:1901 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "fclose %s: %m" -msgstr "fclose %s" +msgstr "fclose %s: %m" #: collect2.c:1965 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "can't get program status: %m" -msgstr "kan inte ta programstatus" +msgstr "kan inte ta programstatus: %m" #: collect2.c:1973 #, gcc-internal-format, gfc-internal-format @@ -16491,9 +16491,9 @@ msgid "cannot find 'nm'" msgstr "kan inte hitta \"nm\"" #: collect2.c:2639 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "can't open nm output: %m" -msgstr "kan inte öppna nm-utdata" +msgstr "kan inte öppna nm-utdata: %m" #: collect2.c:2722 #, gcc-internal-format, gfc-internal-format @@ -16511,9 +16511,9 @@ msgid "cannot find 'ldd'" msgstr "kan inte hitta \"ldd\"" #: collect2.c:2834 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "can't open ldd output: %m" -msgstr "kan inte öppna ldd-utdata" +msgstr "kan inte öppna ldd-utdata: %m" #: collect2.c:2852 #, gcc-internal-format, gfc-internal-format @@ -16601,14 +16601,14 @@ msgid "%qs is version %q.*s, expected version %q.*s" msgstr "%qs är version %q.*s, version %q.*s förväntades" #: coverage.c:275 coverage.c:284 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Profile data for function %u is corrupted" -msgstr "Profilinformation i %s är skadad" +msgstr "Profildata för funktion %u är trasig" #: coverage.c:276 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "checksum is (%x,%x) instead of (%x,%x)" -msgstr "kontrollsumma är %x istället för %x" +msgstr "kontrollsumma är (%x,%x) istället för (%x,%x)" #: coverage.c:285 #, gcc-internal-format, gfc-internal-format @@ -16741,9 +16741,9 @@ msgid "multiple EH personalities are supported only with assemblers supporting . msgstr "multipla EH-personligheter stöds endast med assemblerare som stödjer direktivet .cfi.personality." #: dwarf2out.c:10672 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "non-delegitimized UNSPEC %s (%d) found in variable location" -msgstr "odelegitimerad UNSPEC %d funnen på variabelplats" +msgstr "odelegitimerad UNSPEC %s (%d) funnen på variabelplats" #: emit-rtl.c:2541 #, gcc-internal-format @@ -16856,9 +16856,9 @@ msgid "when a volatile object spans multiple type-sized locations, the compiler msgstr "när ett flyktigt objekt sträcker sig över flera typstora platser måste kompilatorn välja mellan att använda en enda feljusterad åtkomst för att bevara flyktigheten, eller använder flera justerade åtkomster för att undvika fel vid körtillfället; denna kod kan misslyckas vid körning om maskinvaran inte tillåter denna åtkomst" #: expr.c:7479 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "local frame unavailable (naked function?)" -msgstr "global registervariabel %qD använd i nästad funktion" +msgstr "lokal ram otillgänglig (naken funktion?)" #: expr.c:9951 #, gcc-internal-format @@ -17232,9 +17232,9 @@ msgid "comparing final insns dumps" msgstr "jämför slutliga instruktionsdumpar" #: gcc.c:6853 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "-fuse-linker-plugin, but %s not found" -msgstr "-fuse-linker-plugin, men" +msgstr "-fuse-linker-plugin, men %s inte funnen" #: gcc.c:6883 #, gcc-internal-format, gfc-internal-format @@ -17520,9 +17520,9 @@ msgstr "Graphite-slingoptimeringar kan inte användas" #. with different version of compiler or different flags than the WPA #. unit, so this should never happen. #: ipa-inline-analysis.c:3122 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ipa inline summary is missing in input file" -msgstr "ipa-referenssammanfattning saknas i ltrans-enhet" +msgstr "ipa-inline-sammanfattning saknas i indatafil" #. 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 @@ -17604,9 +17604,9 @@ msgid "bytecode stream: unexpected tag %s" msgstr "bytekodström: oväntad tagg %s" #: lto-streamer-out.c:324 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "tree code %qs is not supported in LTO streams" -msgstr "trädkod %qs stöds inte i gimple-strömmar" +msgstr "trädkod %qs stöds inte i LTO-strömmar" #: lto-streamer.c:163 #, gcc-internal-format, gfc-internal-format @@ -17786,9 +17786,9 @@ msgid "toplevel reorder must be disabled when unit-at-a-time is disabled" msgstr "ordningsändring på toppnivå måste vara avaktiverat när unit-at-a-time är avaktiverat" #: opts.c:667 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "transactional memory is not supported with non-call exceptions" -msgstr "-static-libgfortran stöds inte i denna konfiguration" +msgstr "transaktionsminne stödjs inte i denna konfiguration" #: opts.c:686 #, gcc-internal-format @@ -17922,24 +17922,24 @@ msgid "invalid parameter %qs" msgstr "ogiltig parameter %qs" #: passes.c:700 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unrecognized option -fenable" -msgstr "okänd flagga %<-%s%>" +msgstr "okänd flagga -fenable" #: passes.c:702 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unrecognized option -fdisable" -msgstr "okänd flagga %<-%s%>" +msgstr "okänd flagga -fdisable" #: passes.c:710 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "unknown pass %s specified in -fenable" -msgstr "okänt fält %qE angivet i initierare" +msgstr "okänt pass %s angivet i -fenable" #: passes.c:712 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "unknown pass %s specified in -fdisble" -msgstr "okänt fält %qE angivet i initierare" +msgstr "okänt pass %s angivet i -fdisable" #: passes.c:739 passes.c:829 #, gcc-internal-format, gfc-internal-format @@ -17952,19 +17952,19 @@ msgid "disable pass %s for functions in the range of [%u, %u]" msgstr "" #: passes.c:778 passes.c:806 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "Invalid range %s in option %s" -msgstr "ogiltig flyttalsflagga: -mfpu=%s" +msgstr "Ogiltigt intervall %s i flaggan %s" #: passes.c:825 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "enable pass %s for function %s" -msgstr "ogiltig lagringsklass för funktionen %qE" +msgstr "aktivera pass %s för funktionen %s" #: passes.c:836 -#, fuzzy, gcc-internal-format, gfc-internal-format +#, gcc-internal-format, gfc-internal-format msgid "disable pass %s for function %s" -msgstr "ogiltig lagringsklass för funktionen %qE" +msgstr "avaktivera pass %s för funktionen %s" #: passes.c:1049 #, gcc-internal-format @@ -17992,7 +17992,7 @@ msgid "pass %qs not found but is referenced by new pass %qs" msgstr "pass %qs fanns inte men refereras av nytt pass %qs" #: plugin.c:152 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "inaccessible plugin file %s expanded from short plugin name %s: %m" msgstr "oåtkomlig insticksmodulsfil %s expanderad från kort namn på insticksmodul %s: %m" @@ -18187,14 +18187,14 @@ msgid "global register variable follows a function definition" msgstr "global registervariabel följer en funktionsdefinition" #: reginfo.c:886 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "register of %qD used for multiple global register variables" -msgstr "register använt till två globala registervariabler" +msgstr "register för %qD använt till flera globala registervariabler" #: reginfo.c:889 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "conflicts with %qD" -msgstr "motstridiga typer på %q+D" +msgstr "står i konflikt med %qD" #: reginfo.c:894 #, gcc-internal-format @@ -18507,14 +18507,14 @@ msgid "#pragma GCC target is not supported for this machine" msgstr "#pragma GCC target stöds inte för denna maskin" #: tlink.c:481 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "removing .rpo file: %m" -msgstr "tar bort .rpo-fil" +msgstr "tar bort .rpo-fil: %m" #: tlink.c:483 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "renaming .rpo file: %m" -msgstr "byter namn på .rpo-fil" +msgstr "byter namn på .rpo-fil: %m" #: tlink.c:487 #, gcc-internal-format, gfc-internal-format @@ -18547,9 +18547,9 @@ msgid "-frecord-gcc-switches is not supported by the current target" msgstr "-frecord-gcc-switches stöds inte för den aktuella målarkitekturen" #: toplev.c:1056 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "stack usage computation not supported for this target" -msgstr "-fstack-usage stödjs inte av denna målarkitektur" +msgstr "beräkning av stackanvändning stödjs inte av denna målarkitektur" #: toplev.c:1110 #, gcc-internal-format @@ -18557,14 +18557,14 @@ msgid "stack usage might be unbounded" msgstr "" #: toplev.c:1114 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "stack usage might be %wd bytes" -msgstr "för stor stackram: %d byte" +msgstr "stackanvändningen kan vara %wd byte" #: toplev.c:1117 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "stack usage is %wd bytes" -msgstr "för stor stackram: %d byte" +msgstr "stackanvändningen är %wd byte" #: toplev.c:1294 #, gcc-internal-format @@ -18682,9 +18682,9 @@ msgid "error closing %s: %m" msgstr "fel när %s stängdes: %m" #: trans-mem.c:570 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid volatile use of %qD inside transaction" -msgstr "ogiltig användning av %qD i länkklasspecifikation" +msgstr "ogiltig volatil användning av %qD inuti transaktion" #: trans-mem.c:596 #, gcc-internal-format @@ -18702,9 +18702,9 @@ msgid "unsafe function call %qE within atomic transaction" msgstr "" #: trans-mem.c:674 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unsafe indirect function call within atomic transaction" -msgstr "indirekt funktionsanrop med ett ännu ej fastställt anropsmål" +msgstr "osäkert indirekt funktionsanrop inuti en atomär transaktion" #: trans-mem.c:682 trans-mem.c:4070 #, gcc-internal-format @@ -18717,24 +18717,24 @@ msgid "unsafe function call %qE within %<transaction_safe%> function" msgstr "" #: trans-mem.c:692 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "unsafe indirect function call within %<transaction_safe%> function" -msgstr "indirekt funktionsanrop med ett ännu ej fastställt anropsmål" +msgstr "osäkert indirekt funktionsanrop inuti en %<transaction_safe%>-funktion" #: trans-mem.c:707 trans-mem.c:4109 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "asm not allowed in atomic transaction" -msgstr "namnrymd %qD är inte tillåten i using-deklaration" +msgstr "asm är inte tillåtet i en atomär transaktion" #: trans-mem.c:710 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "asm not allowed in %<transaction_safe%> function" -msgstr "attribut är inte tillåtna vid en funktionsdefinition" +msgstr "asm är inte tillåtet i en %<transaction_safe%>-funktion" #: trans-mem.c:721 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "relaxed transaction in atomic transaction" -msgstr "Placera varje funktion i sin egen sektion" +msgstr "relaxerad transaktion i atomär transaktion" #: trans-mem.c:724 #, gcc-internal-format @@ -18742,9 +18742,9 @@ msgid "relaxed transaction in %<transaction_safe%> function" msgstr "" #: trans-mem.c:731 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "outer transaction in transaction" -msgstr "pekare till funktion använd i subtraktion" +msgstr "yttre transaktion i transaktion" #: trans-mem.c:734 #, gcc-internal-format @@ -18847,9 +18847,9 @@ msgid "invalid operand to pointer plus, first operand is not a pointer" msgstr "ogiltig operand till pekarplus, första operanden är inte en pekare" #: tree-cfg.c:2844 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid operand to pointer plus, second operand is not an integer type of appropriate width" -msgstr "ogiltig operand till pekarplus, andra operanden är inte ett heltal med typen sizetype" +msgstr "ogiltig operand till pekarplus, andra operanden är inte en heltalstyp med lämplig bredd" #: tree-cfg.c:2895 #, gcc-internal-format @@ -18912,7 +18912,7 @@ msgid "invalid offset operand in MEM_REF" msgstr "ogiltig avståndsoperand i MEM_REF" #: tree-cfg.c:3060 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid address operand in TARGET_MEM_REF" msgstr "ogiltig adressoperand i in TARGET_MEM_REF" @@ -18987,24 +18987,24 @@ msgid "invalid operands in gimple comparison" msgstr "ogiltiga operander i gimple-jämförelse" #: tree-cfg.c:3270 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "mismatching comparison operand types" -msgstr "typfel i jämförelseuttryck" +msgstr "typen på operander i jämförelse stämmer inte överens" #: tree-cfg.c:3289 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "non-vector operands in vector comparison" -msgstr "ogiltiga operander i gimple-jämförelse" +msgstr "icke-vektoroperander i vektorjämförelse" #: tree-cfg.c:3299 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid vector comparison resulting type" -msgstr "ogiltig vektorpermutationskonstant" +msgstr "ogiltig resultattyp i vektorjämförelse" #: tree-cfg.c:3306 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "bogus comparison result type" -msgstr "Varna för jämförelser av skilda uppräkningstyper" +msgstr "felaktig resultatyp i jämförelse" #: tree-cfg.c:3328 #, gcc-internal-format @@ -19077,9 +19077,9 @@ msgid "non-element sized vector shift of floating point vector" msgstr "ej elementstor vektorskiftning eller flyttalsvektor" #: tree-cfg.c:3588 tree-cfg.c:3609 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "type mismatch in widening vector shift expression" -msgstr "typfel i vektorskiftuttryck" +msgstr "typfel i breddande vektorskiftuttryck" #: tree-cfg.c:3631 #, gcc-internal-format @@ -19122,14 +19122,14 @@ msgid "type mismatch in fused multiply-add expression" msgstr "typer stämmer inte i sammansmält multiplicera-addera-uttryck" #: tree-cfg.c:3836 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "type mismatch in vector permute expression" -msgstr "typfel i vektorskiftuttryck" +msgstr "typfel i vektorpermuteringsuttryck" #: tree-cfg.c:3848 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "vector types expected in vector permute expression" -msgstr "heltalsuttryck förväntades" +msgstr "vektortyper förväntades i vektorpermuteringsuttryck" #: tree-cfg.c:3862 #, gcc-internal-format @@ -19137,9 +19137,9 @@ msgid "vectors with different element number found in vector permute expression" msgstr "" #: tree-cfg.c:3875 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid mask type in vector permute expression" -msgstr "ogiltigt ökningsuttryck" +msgstr "ogiltig masktyp i vektorpermuteringsuttryck" #: tree-cfg.c:3911 #, gcc-internal-format @@ -19474,9 +19474,9 @@ msgid "function %q+F can never be inlined because it uses attributes conflicting msgstr "funktionen %q+F kan aldrig vara inline eftersom den använder attribut som står i konflikt med inline" #: tree-inline.c:3823 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "inlining failed in call to always_inline %q+F: %s" -msgstr "inline:ing misslyckades i anrop av %q+F: %s" +msgstr "inline:ing misslyckades i anrop av always_inline %q+F: %s" #: tree-inline.c:3825 tree-inline.c:3840 #, gcc-internal-format @@ -19535,9 +19535,9 @@ msgid "virtual definition of statement not up-to-date" msgstr "" #: tree-ssa-operands.c:1123 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "virtual def operand missing for stmt" -msgstr "ogiltig operand i retursats" +msgstr "virtuell definitionsoperand saknas för sats" #: tree-ssa-operands.c:1133 #, gcc-internal-format @@ -19555,19 +19555,19 @@ msgid "excess use operand for stmt" msgstr "" #: tree-ssa-operands.c:1164 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "use operand missing for stmt" -msgstr "operandnummer saknas efter %%-tecken" +msgstr "användningsoperand saknas för sats" #: tree-ssa-operands.c:1181 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "excess def operand for stmt" -msgstr "deklaration eller sats förväntades" +msgstr "överskjutande definitionsoperand för sats" #: tree-ssa-operands.c:1189 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "def operand missing for stmt" -msgstr "operandnummer saknas efter %%-tecken" +msgstr "definitionsoperand saknas för sats" #: tree-ssa-operands.c:1196 #, gcc-internal-format @@ -19705,14 +19705,14 @@ msgid "%qD is used uninitialized in this function" msgstr "%qD används oinitierad i denna funktion" #: tree-ssa.c:1687 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qE is used uninitialized in this function" -msgstr "%qD används oinitierad i denna funktion" +msgstr "%qE används oinitierad i denna funktion" #: tree-ssa.c:1692 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qE may be used uninitialized in this function" -msgstr "%qD kan användas oinitierad i denna funktion" +msgstr "%qE kan användas oinitierad i denna funktion" #: tree-streamer-in.c:306 tree-streamer-in.c:1075 #, gcc-internal-format @@ -19730,14 +19730,14 @@ msgid "cl_target_option size mismatch in LTO reader and writer" msgstr "cl_target_option-storlek stämmer inte överens i LTO-läsare och -skrivare" #: tree-streamer-in.c:920 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "cl_optimization size mismatch in LTO reader and writer" -msgstr "cl_target_option-storlek stämmer inte överens i LTO-läsare och -skrivare" +msgstr "cl_optimization-storlek stämmer inte överens i LTO-läsare och -skrivare" #: tree-streamer-out.c:364 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "tree bytecode streams do not support machine specific builtin functions on this target" -msgstr "gimple-bytekodströmmar stödjer inte maskinspecifika inbyggda fungerioner för detta mål" +msgstr "trädbytekodströmmar stödjer inte maskinspecifika inbyggda fungerioner för detta mål" #: tree-vect-generic.c:244 #, gcc-internal-format @@ -20024,9 +20024,9 @@ msgid "variable tracking size limit exceeded" msgstr "storleksgräns på variabelspårning överskriden" #: varasm.c:317 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%+D causes a section type conflict with %D" -msgstr "%+D orsakar en sektionstypkonflikt" +msgstr "%+D orsakar en sektionstypkonflikt med %D" #: varasm.c:958 #, gcc-internal-format @@ -20049,14 +20049,14 @@ msgid "data type of %q+D isn%'t suitable for a register" msgstr "datatyp %q+D passar inte för ett register" #: varasm.c:1212 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "the register specified for %q+D cannot be accessed by the current target" -msgstr "registret angivet för %q+D passar inte för datatypen" +msgstr "registret angivet för %q+D kan inte nås av det aktuella målet" #: varasm.c:1215 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "the register specified for %q+D is not general enough to be used as a register variable" -msgstr "register använt till två globala registervariabler" +msgstr "registret angivet för %q+D är inte tillräckligt generellt för att användas som en registervariabel" #: varasm.c:1218 #, gcc-internal-format @@ -20426,14 +20426,14 @@ msgid "invalid application of %<sizeof%> to a function type" msgstr "ogiltig användning av %<sizeof%> på en funktionstyp" #: c-family/c-common.c:4367 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C++ does not permit %<alignof%> applied to a function type" -msgstr "ISO C++ tillåter inte %<alignof%> med annat än en typ" +msgstr "ISO C++ tillåter inte %<alignof%> använt på en funktionstyp" #: c-family/c-common.c:4370 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "ISO C does not permit %<_Alignof%> applied to a function type" -msgstr "ISO C++ tillåter inte %<alignof%> med annat än en typ" +msgstr "ISO C tillåter inte %<_Alignof%> använt på en funktionstyp" #: c-family/c-common.c:4381 #, gcc-internal-format @@ -20441,14 +20441,14 @@ msgid "invalid application of %qs to a void type" msgstr "ogiltig användning av %qs på en void-typ" #: c-family/c-common.c:4390 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid application of %qs to incomplete type %qT" -msgstr "ogiltig tillämpning av %qs på ofullständig typ %qT " +msgstr "ogiltig tillämpning av %qs på ofullständig typ %qT" #: c-family/c-common.c:4398 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid application of %qs to array type %qT of incomplete element type" -msgstr "ogiltig tillämpning av %qs på ofullständig typ %qT " +msgstr "ogiltig tillämpning av %qs på vektortypen %qT med ofullständig elementtyp" #: c-family/c-common.c:4440 #, gcc-internal-format @@ -20652,9 +20652,9 @@ msgid "section attributes are not supported for this target" msgstr "attributet \"section\" stöds inte för denna målarkitektur" #: c-family/c-common.c:6747 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "requested alignment is not an integer constant" -msgstr "efterfrågad minnesjustering är inte konstant" +msgstr "efterfrågad minnesjustering är inte en heltalskonstant" #: c-family/c-common.c:6754 #, gcc-internal-format @@ -20778,34 +20778,34 @@ msgid "alloc_size parameter outside range" msgstr "alloc_size-parameter utanför giltigt intervall" #: c-family/c-common.c:7397 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qE attribute duplicated" -msgstr "attributet %qE ignorerat" +msgstr "attributet %qE dubblerat" #: c-family/c-common.c:7399 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qE attribute follows %qE" -msgstr "attributet %qE ignorerat för %qE" +msgstr "attributet %qE följer %qE" #: c-family/c-common.c:7498 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "type was previously declared %qE" -msgstr "tidigare deklarerad här" +msgstr "typen var tidigare deklarerad %qE" #: c-family/c-common.c:7551 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qE argument not an identifier" -msgstr "argumentet till cleanup är inte en identifierare" +msgstr "argument till %qE är inte en identifierare" #: c-family/c-common.c:7562 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "%qD is not compatible with %qD" -msgstr "%qD inte deklarerad i %qD" +msgstr "%qD är inte kompatibel med %qD" #: c-family/c-common.c:7565 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "transaction_wrap argument is not a function" -msgstr "argumentet till cleanup är inte en funktion" +msgstr "argumentet till transaction_wrap är inte en funktion" #: c-family/c-common.c:7613 #, gcc-internal-format @@ -20936,9 +20936,9 @@ msgid "non-const integer argument %u in call to function %qE" msgstr "heltalsargument %u som inte är konstant i anrop till funktionen %qE" #: c-family/c-common.c:8522 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "non-integer argument 3 in call to function %qE" -msgstr "heltalsargument %u som inte är konstant i anrop till funktionen %qE" +msgstr "argument 3 som inte är ett heltal i anrop till funktionen %qE" #: c-family/c-common.c:8847 #, gcc-internal-format @@ -21151,44 +21151,44 @@ msgid "size of array is too large" msgstr "storleken på vektorn är för stor" #: c-family/c-common.c:9425 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "incorrect number of arguments to function %qE" -msgstr "inte tillräckligt med argument till funktionen %qE" +msgstr "felaktigt antal argument till funktionen %qE" #: c-family/c-common.c:9433 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "argument 1 of %qE must be a non-void pointer type" -msgstr "argument %d till %qE måste vara en adress" +msgstr "argument 1 till %qE måste vara pekartyp som inte pekar på void" #: c-family/c-common.c:9442 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "argument 1 of %qE must be a pointer to a constant size type" -msgstr "%Kförsta argumentet till %D måste vara en pekare, det andra en heltalskonstant" +msgstr "argument 1 till %qE måste vara en pekare till en typ med konstant storlek" #: c-family/c-common.c:9453 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "argument 1 of %qE must be a pointer to a nonzero size object" -msgstr "%Kförsta argumentet till %D måste vara en pekare, det andra en heltalskonstant" +msgstr "argument 1 till %qE måste vara en pekare till ett objekt av storlek större än noll" #: c-family/c-common.c:9468 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "argument %d of %qE must be a pointer type" -msgstr "argument %d till %qE måste vara en adress" +msgstr "argument %d till %qE måste vara en pekartyp" #: c-family/c-common.c:9475 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "size mismatch in argument %d of %qE" -msgstr "när argument %P till %q+D skickades" +msgstr "storleken stämmer inte i argument %d till %qE" #: c-family/c-common.c:9491 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "invalid memory model argument %d of %qE" -msgstr "inkompatibel typ för argument %d av %qE" +msgstr "ogiltig minnesmodellsargument %d till %qE" #: c-family/c-common.c:9498 -#, fuzzy, gcc-internal-format +#, gcc-internal-format msgid "non-integer memory model argument %d of %qE" -msgstr "inkompatibel typ för argument %d av %qE" +msgstr "minnesmodellsargument %d som inte är heltal till %qE" #: c-family/c-common.c:10024 #, gcc-internal-format diff --git a/gcc/system.h b/gcc/system.h index 51520e19f51..6575acd308b 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -807,7 +807,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP JUMP_ALIGN_MAX_SKIP \ CAN_DEBUG_WITHOUT_FP UNLIKELY_EXECUTED_TEXT_SECTION_NAME \ HOT_TEXT_SECTION_NAME LEGITIMATE_CONSTANT_P ALWAYS_STRIP_DOTDOT \ - OUTPUT_ADDR_CONST_EXTRA + OUTPUT_ADDR_CONST_EXTRA SMALL_REGISTER_CLASSES /* Target macros only used for code built for the target, that have moved to libgcc-tm.h or have never been present elsewhere. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 64bdac5cfc2..8c66e09ee71 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,78 @@ +2012-02-18 Tobias Burnus <burnus@net-b.de> + + PR fortran/52295 + * gfortran.dg/interface_35.f90: Use -std=f2003. + * gfortran.dg/proc_ptr_comp_20.f90: Remove dg-warning. + * gfortran.dg/interface_assignment_4.f90: Ditto. + * gfortran.dg/bessel_1.f90: Ditto. + * gfortran.dg/func_result_6.f90: Ditto. + * gfortran.dg/hypot_1.f90: Ditto. + * gfortran.dg/proc_ptr_comp_21.f90: Ditto. + +2012-02-17 Tobias Burnus <burnus@net-b.de> + + PR translation/52232 + PR translation/52234 + PR translation/52245 + PR translation/52246 + PR translation/52262 + PR translation/52273 + * gfortran.dg/coarray_22.f90: Update dg-error. + * gfortran.dg/allocate_alloc_opt_4.f90: Ditto. + +2012-02-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR target/51753 + * lib/gcc-simulate-thread.exp: Load timeout.exp. + (simulate-thread): Use default timeout. + +2012-02-16 Jason Merrill <jason@redhat.com> + + PR c++/52248 + * g++.dg/ext/timevar1.C: New. + +2012-02-16 Fabien Chêne <fabien@gcc.gnu.org> + + PR c++/52126 + * g++.dg/template/using21.C: New. + * g++.dg/template/using22.C: Likewise. + +2012-02-16 Jason Merrill <jason@redhat.com> + + PR c++/51415 + * g++.dg/cpp0x/lambda/lambda-err1.C: New. + +2012-02-16 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/52255 + * gcc.c-torture/compile/pr52255.c: New test. + + PR debug/52260 + * g++.dg/debug/dwarf2/pr52260.C: New test. + + PR middle-end/51929 + * g++.dg/ipa/pr51929.C: New test. + +2012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com> + + PR target/52199 + * gcc.target/powerpc/pr52199.c: New file. + +2012-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR target/52152 + * objc.dg/stabs-1.m: xfail on mips-sgi-irix6.5. + +2012-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * gcc.dg/pr51867.c: Don't include <math.h>. + (sqrtf): Declare. + +2012-02-15 Georg-Johann Lay <avr@gjlay.de> + + * gcc.dg/lto/20091013-1_1.c: xfail for avr. + * gcc.dg/lto/20091013-1_2.c: xfail for avr. + 2012-02-15 Tobias Grosser <grosser@fim.uni-passau.de> PR tree-optimization/50561 diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err1.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err1.C new file mode 100644 index 00000000000..ebf0cbd078d --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err1.C @@ -0,0 +1,8 @@ +// PR c++/51415 +// { dg-do compile { target c++11 } } + +void foo() +{ + int x[1]; + [x]{} = 0; // { dg-error "lambda closure" } +} diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/pr52260.C b/gcc/testsuite/g++.dg/debug/dwarf2/pr52260.C new file mode 100644 index 00000000000..9ab2589ce11 --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/dwarf2/pr52260.C @@ -0,0 +1,133 @@ +// PR debug/52260 +// { dg-do compile } +// { dg-options "-gdwarf-4 -std=c++0x" } + +namespace { typedef decltype (nullptr) T1; } +struct B {}; +namespace A +{ + template <typename T, T __v> + struct C { static constexpr T value = __v; }; + typedef C <bool, false> D; + template <typename> + struct E : D {}; + template <typename T> + struct F : C <bool, (E <T>::value)> {}; + template <bool, typename T = void> + struct G { typedef T t; }; +} +template <typename T> +struct H {}; +namespace A +{ + template <typename T> + struct I : H <T> {}; + template <typename ...> struct J; + template <typename> struct K; + struct L + { + template <typename B2> + struct M + { + template <typename T> static bool m2 (T) { return false; } + }; + }; + template <typename, typename> struct N; + template <typename T, typename B2, typename ... B4> + struct N <T (B4 ...), B2> : L::M <B2> {}; + template <typename T, typename ... B4> + struct K <T (B4 ...)> :J <,>, L + { + typedef T O (B4 ...); + struct P {}; + template <typename B2> K (B2, typename G <!F <B2>::value, P>::t = P ()); + }; + template <typename T, typename ... B1> + template <typename B2> + K <T (B1 ...)>::K (B2 __f, typename G <!F < B2>::value, P>::t) + { + typedef N <O, B2> Q; + Q::m2 (__f); + }; +} +enum R { r1 }; +const R r2 = r1; +namespace A +{ + template <typename> + struct S {}; + template <typename T, typename _Dp = S <T>> + struct U {}; + template <typename T, R _Lp = r2> + struct V { T *operator -> (); }; + template <typename T> + struct W : V <T> + { + W (const W &); + W (T1) {} + W & operator= (W) {} + }; + template <typename> struct Z; + struct AA + { + struct AB + { + struct AC { void operator () () {} }; + }; + template <typename T> using AD = U <T, AB::AC>; + struct AE + { + typedef AD <AB> AZ; + virtual ~AE (); + void o3 (K <AZ ()>, bool = false) {} + template <typename, typename _Arg> struct AY; + struct C1 {}; + template <typename T> struct AY <T, C1> + { + AZ operator () () { return AZ (); } + Z <T> _M_Z; + }; + template <typename T> + static AY <T, C1> _s1 (B, Z <T> *); + }; + }; + template <> + struct Z <void> + { + typedef AA::AE AF; + W <AF> o4; + void foo (B __p) + { + auto _s1 = AF::_s1 (__p, this); + o4->o3 (_s1); + } + }; + template <typename T, typename _Alloc> + struct AG {}; + template <typename T, typename D1 = A::I <T>> + struct AH : AG <T, D1> + { + void bar (T) { baz (); } + template <typename ... _Args> + void baz (_Args && ...); + }; + template <typename T, typename D1> + template <typename ... _Args> + void AH <T, D1>::baz (_Args && ...) {} + namespace + { + typedef A::K <void ()> AI; + struct AF + { + int v2; + AI v1; + AF (int, unsigned, AI __t) : v2 (), v1 (__t) {} + }; + struct D3 : A::AH <AF> + { + typedef AF AFT; + void v3 (AI __t) { bar (AFT (4, v4, __t)); } + int v4; + }; + } +} diff --git a/gcc/testsuite/g++.dg/ext/timevar1.C b/gcc/testsuite/g++.dg/ext/timevar1.C new file mode 100644 index 00000000000..0d2d3f5f31d --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/timevar1.C @@ -0,0 +1,12 @@ +// PR c++/52248 +// { dg-options "-ftime-report" } +// { dg-prune-output "wall" } +// { dg-prune-output "times" } +// { dg-prune-output "TOTAL" } +// { dg-prune-output "checks" } + +void +foo () +{ + goto lab; // { dg-error "not defined" } +} diff --git a/gcc/testsuite/g++.dg/ipa/pr51929.C b/gcc/testsuite/g++.dg/ipa/pr51929.C new file mode 100644 index 00000000000..cfc3df212a1 --- /dev/null +++ b/gcc/testsuite/g++.dg/ipa/pr51929.C @@ -0,0 +1,32 @@ +// PR middle-end/51929 +// { dg-do compile } +// { dg-options "-O -fno-guess-branch-probability -fipa-cp -fipa-cp-clone --param=max-inline-insns-single=25" } + +struct A +{ + A (A, unsigned); + A (const char *); + ~A () { a1 (a4 ()); } + void a1 (int); + unsigned a2 (); + char *a3 (); + int a4 (); +}; + +template <typename T> +struct B +{ + A b; + B (A x, int y = 1) : b (x.a3 (), x.a2 ()) { if (y & 1) b.a2 (); } +}; + +extern template struct B <char>; +A a1 ("foo"), a2 ("bar"); +B<char> b1 (a1), b2 (a2, 8); + +void +foo () +{ + A a3 ("baz"); + B<char> b3 (a1), b4 (a3); +} diff --git a/gcc/testsuite/g++.dg/template/using21.C b/gcc/testsuite/g++.dg/template/using21.C new file mode 100644 index 00000000000..7f61f854749 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/using21.C @@ -0,0 +1,28 @@ +// PR c++/52126 +// { dg-do compile } + +template<typename T> +struct A +{ + int foo; + + struct B : A<T> + { + using A::foo; + }; + + struct C : A + { + using A::foo; + }; + + struct D : A<T> + { + using A<T>::foo; + }; + + struct E : A + { + using A<T>::foo; + }; +}; diff --git a/gcc/testsuite/g++.dg/template/using22.C b/gcc/testsuite/g++.dg/template/using22.C new file mode 100644 index 00000000000..b456e62e895 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/using22.C @@ -0,0 +1,33 @@ +// PR c++/52126 +// { dg-do compile } + +template <class T> struct Z {}; + +template<typename T> +struct A +{ + struct B : A<T> + { + using A::nonexist; // { dg-error "no members matching" } + }; + + struct C : A + { + using A::nonexist; // { dg-error "no members matching" } + }; + + struct D : A<T> + { + using A<T>::nonexist; // { dg-error "no members matching" } + }; + + struct E : A + { + using A<T>::nonexist; // { dg-error "no members matching" } + }; + + struct F : Z<T> + { + using Z<T>::nonexist; + }; +}; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr52255.c b/gcc/testsuite/gcc.c-torture/compile/pr52255.c new file mode 100644 index 00000000000..e68ae37dcb6 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr52255.c @@ -0,0 +1,12 @@ +/* PR tree-optimization/52255 */ + +int a, b, c[10], d[10] = { 0, 0 }; + +void +foo (void) +{ + for (a = 1; a <= 4; a += 1) + d[a] = d[1]; + for (; b; ++b) + c[0] |= 1; +} diff --git a/gcc/testsuite/gcc.dg/lto/20091013-1_1.c b/gcc/testsuite/gcc.dg/lto/20091013-1_1.c index 68294fa62cb..a4e37ce7a2c 100644 --- a/gcc/testsuite/gcc.dg/lto/20091013-1_1.c +++ b/gcc/testsuite/gcc.dg/lto/20091013-1_1.c @@ -1,3 +1,4 @@ +/* { dg-xfail-if "cast to pointer of different size" { "avr-*-*" } { "*" } { "" } } */ typedef struct HDC__ { int unused; } *HDC; typedef struct HFONT__ { int unused; } *HFONT; diff --git a/gcc/testsuite/gcc.dg/lto/20091013-1_2.c b/gcc/testsuite/gcc.dg/lto/20091013-1_2.c index 55f8ca1b46d..599bdbc9e3a 100644 --- a/gcc/testsuite/gcc.dg/lto/20091013-1_2.c +++ b/gcc/testsuite/gcc.dg/lto/20091013-1_2.c @@ -1,3 +1,4 @@ +/* { dg-xfail-if "cast to pointer of different size" { "avr-*-*" } { "*" } { "" } } */ typedef struct HDC__ { int unused; } *HDC; typedef struct HFONT__ { int unused; } *HFONT; diff --git a/gcc/testsuite/gcc.dg/pr51867.c b/gcc/testsuite/gcc.dg/pr51867.c index 3f1016e2c8f..3e669cf7b46 100644 --- a/gcc/testsuite/gcc.dg/pr51867.c +++ b/gcc/testsuite/gcc.dg/pr51867.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-O0 -fno-math-errno -fdump-rtl-expand" } */ -#include <math.h> + +extern float sqrtf(float); float a(float x) { diff --git a/gcc/testsuite/gcc.dg/tm/pr52141.c b/gcc/testsuite/gcc.dg/tm/pr52141.c deleted file mode 100644 index c5136f3e064..00000000000 --- a/gcc/testsuite/gcc.dg/tm/pr52141.c +++ /dev/null @@ -1,21 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-fgnu-tm -O1" } */ - -inline void asmfunc(void) -{ - __asm__ (""); /* { dg-error "asm not allowed in .transaction_safe" } */ -} - -__attribute__((transaction_safe)) -static void f(void) -{ - asmfunc(); -} - -int main() -{ - __transaction_atomic { - f(); - } - return 0; -} diff --git a/gcc/testsuite/gcc.target/powerpc/pr52199.c b/gcc/testsuite/gcc.target/powerpc/pr52199.c new file mode 100644 index 00000000000..e2231938839 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/pr52199.c @@ -0,0 +1,24 @@ +/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-require-effective-target powerpc_vsx_ok } */ +/* { dg-options "-O3 -mcpu=power7 -fmerge-all-constants" } */ + +struct locale_time_t +{ + const char *abday[7]; + const unsigned int *wabday[7]; +}; + +static const unsigned int empty_wstr[1] = { 0 }; + +void +time_read (struct locale_time_t *time) +{ + int cnt; + + for (cnt=0; cnt < 7; cnt++) + { + time->abday[cnt] = ""; + time->wabday[cnt] = empty_wstr; + } +} diff --git a/gcc/testsuite/gfortran.dg/allocate_alloc_opt_4.f90 b/gcc/testsuite/gfortran.dg/allocate_alloc_opt_4.f90 index ed035b57092..ee6c3635912 100644 --- a/gcc/testsuite/gfortran.dg/allocate_alloc_opt_4.f90 +++ b/gcc/testsuite/gfortran.dg/allocate_alloc_opt_4.f90 @@ -17,7 +17,7 @@ program a allocate(integer(4) :: i(4), source=n) ! { dg-error "conflicts with the typespec" } - allocate(i(4), j(n), source=n) ! { dg-error "Fortran 2008: SOURCE tag at .1. with more than a single allocate objects" } + allocate(i(4), j(n), source=n) ! { dg-error "Fortran 2008: SOURCE tag at .1. with more than a single allocate object" } allocate(x(4), source=n) ! { dg-error "type incompatible with" } diff --git a/gcc/testsuite/gfortran.dg/bessel_1.f90 b/gcc/testsuite/gfortran.dg/bessel_1.f90 index fb1e19beef5..728c5ce49ca 100644 --- a/gcc/testsuite/gfortran.dg/bessel_1.f90 +++ b/gcc/testsuite/gfortran.dg/bessel_1.f90 @@ -26,11 +26,11 @@ program test call check(bessel_yn (3,x4), bessel_yn (3,1.9_4)) contains - subroutine check_r4 (a, b) ! { dg-warning "Extension: Internal procedure" } + subroutine check_r4 (a, b) real(kind=4), intent(in) :: a, b if (abs(a - b) > 1.e-5 * abs(b)) call abort end subroutine - subroutine check_r8 (a, b) ! { dg-warning "Extension: Internal procedure" } + subroutine check_r8 (a, b) real(kind=8), intent(in) :: a, b if (abs(a - b) > 1.e-7 * abs(b)) call abort end subroutine diff --git a/gcc/testsuite/gfortran.dg/coarray_22.f90 b/gcc/testsuite/gfortran.dg/coarray_22.f90 index b09dfe38287..7860c3030df 100644 --- a/gcc/testsuite/gfortran.dg/coarray_22.f90 +++ b/gcc/testsuite/gfortran.dg/coarray_22.f90 @@ -15,14 +15,14 @@ type(t) :: x[*], y[*] if (associated(x%ptr)) stop 0 if (associated(x%ptr,y%ptr)) stop 0 -if (associated(x[1]%ptr)) stop 0 ! { dg-error "shall not be conindexed" } -if (associated(x%ptr,y[1]%ptr)) stop 0 ! { dg-error "shall not be conindexed" } +if (associated(x[1]%ptr)) stop 0 ! { dg-error "shall not be coindexed" } +if (associated(x%ptr,y[1]%ptr)) stop 0 ! { dg-error "shall not be coindexed" } nullify (x%ptr) -nullify (x[1]%ptr) ! { dg-error "shall not be conindexed" } +nullify (x[1]%ptr) ! { dg-error "shall not be coindexed" } x%ptr => null(x%ptr) -x%ptr => null(x[1]%ptr) ! { dg-error "shall not be conindexed" } +x%ptr => null(x[1]%ptr) ! { dg-error "shall not be coindexed" } x[1]%ptr => null(x%ptr) ! { dg-error "shall not have a coindex" } allocate(x%ptr) diff --git a/gcc/testsuite/gfortran.dg/func_result_6.f90 b/gcc/testsuite/gfortran.dg/func_result_6.f90 index e8347be587d..e64a2ef7abc 100644 --- a/gcc/testsuite/gfortran.dg/func_result_6.f90 +++ b/gcc/testsuite/gfortran.dg/func_result_6.f90 @@ -63,7 +63,7 @@ if (ptr /= 2) call abort() bar = gen() if (ptr /= 77) call abort() contains - function foo() ! { dg-warning "Extension: Internal procedure .foo. in generic interface" } + function foo() integer, allocatable :: foo(:) allocate(foo(2)) foo = [33, 77] diff --git a/gcc/testsuite/gfortran.dg/hypot_1.f90 b/gcc/testsuite/gfortran.dg/hypot_1.f90 index 0c1c6e2ae17..59022fab93c 100644 --- a/gcc/testsuite/gfortran.dg/hypot_1.f90 +++ b/gcc/testsuite/gfortran.dg/hypot_1.f90 @@ -18,11 +18,11 @@ program test call check(hypot(x4,y4), hypot(1.9_4,-2.1_4)) contains - subroutine check_r4 (a, b) ! { dg-warning "Extension: Internal procedure" } + subroutine check_r4 (a, b) real(kind=4), intent(in) :: a, b if (abs(a - b) > 1.e-5 * abs(b)) call abort end subroutine - subroutine check_r8 (a, b) ! { dg-warning "Extension: Internal procedure" } + subroutine check_r8 (a, b) real(kind=8), intent(in) :: a, b if (abs(a - b) > 1.e-7 * abs(b)) call abort end subroutine diff --git a/gcc/testsuite/gfortran.dg/interface_35.f90 b/gcc/testsuite/gfortran.dg/interface_35.f90 index 20aa4af786d..eb4de12c1bd 100644 --- a/gcc/testsuite/gfortran.dg/interface_35.f90 +++ b/gcc/testsuite/gfortran.dg/interface_35.f90 @@ -1,5 +1,5 @@ ! { dg-do compile } -! { dg-options "-std=f2008" } +! { dg-options "-std=f2003" } ! ! PR fortran/48112 (module_m) ! PR fortran/48279 (sidl_string_array, s_Hard) @@ -70,7 +70,7 @@ contains integer, intent(in) :: a end subroutine - integer function get1 (s) ! { dg-error "Extension: Internal procedure .get1. in generic interface .get." } + integer function get1 (s) ! { dg-error "Fortran 2008: Internal procedure .get1. in generic interface .get." } integer :: s end function diff --git a/gcc/testsuite/gfortran.dg/interface_assignment_4.f90 b/gcc/testsuite/gfortran.dg/interface_assignment_4.f90 index d55af2905d5..535e8842549 100644 --- a/gcc/testsuite/gfortran.dg/interface_assignment_4.f90 +++ b/gcc/testsuite/gfortran.dg/interface_assignment_4.f90 @@ -16,7 +16,7 @@ contains - subroutine op_assign_VS_CH (var, exp) ! { dg-warning "Extension: Internal procedure" } + subroutine op_assign_VS_CH (var, exp) type(varying_string), intent(out) :: var character(LEN=*), intent(in) :: exp end subroutine diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90 index e38e6545370..3cad7dfa66b 100644 --- a/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90 +++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90 @@ -35,12 +35,12 @@ o1%ppc => o2%ppc ! { dg-error "Type/rank mismatch" } contains - real function f1(a,b) ! { dg-warning "Extension: Internal procedure" } + real function f1(a,b) real,intent(in) :: a,b f1 = a + b end function - integer function f2(a,b) ! { dg-warning "Extension: Internal procedure" } + integer function f2(a,b) real,intent(in) :: a,b f2 = a - b end function diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90 index a21916bc844..c000896d549 100644 --- a/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90 +++ b/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90 @@ -19,7 +19,7 @@ contains - elemental subroutine op_assign (str, ch) ! { dg-warning "Extension: Internal procedure" } + elemental subroutine op_assign (str, ch) type(nf_t), intent(out) :: str character(len=*), intent(in) :: ch end subroutine diff --git a/gcc/testsuite/lib/gcc-simulate-thread.exp b/gcc/testsuite/lib/gcc-simulate-thread.exp index 2b1294cef3e..0b36947d512 100644 --- a/gcc/testsuite/lib/gcc-simulate-thread.exp +++ b/gcc/testsuite/lib/gcc-simulate-thread.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2011 Free Software Foundation, Inc. +# Copyright (C) 2011, 2012 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -14,6 +14,8 @@ # along with GCC; see the file COPYING3. If not see # <http://www.gnu.org/licenses/>. +load_lib timeout.exp + # Utility for running a given test through the simulate-thread harness # using gdb. This is invoked via dg-final. # @@ -56,8 +58,7 @@ proc simulate-thread { args } { set gdb_worked 0 - # Set timeout to 20 seconds due to huge amount of generated log. - remote_expect target 20 { + remote_expect target [timeout_value] { # Too old GDB -re "Unhandled dwarf expression|Error in sourced command file" { unsupported "$testcase $message" diff --git a/gcc/testsuite/objc.dg/stabs-1.m b/gcc/testsuite/objc.dg/stabs-1.m index feefc3bb119..79609a2b847 100644 --- a/gcc/testsuite/objc.dg/stabs-1.m +++ b/gcc/testsuite/objc.dg/stabs-1.m @@ -15,5 +15,5 @@ } @end -/* See PR 52152 for the xfail. */ -/* { dg-final { scan-assembler "(.SUBSPA.*\[\$\]CODE\[\$\]|.text\"?)\n\t.stabs.*100,0,0,(\[\.\$\])?L?L\[\$\]?etext\[0-9\]*\n(\[\.\$\])?L?L\[\$\]?etext" { xfail mips*-*-elf* } } } */ +/* See PR target/52152 for the xfail. */ +/* { dg-final { scan-assembler "(.SUBSPA.*\[\$\]CODE\[\$\]|.text\"?)\n\t.stabs.*100,0,0,(\[\.\$\])?L?L\[\$\]?etext\[0-9\]*\n(\[\.\$\])?L?L\[\$\]?etext" { xfail mips*-*-elf* mips-sgi-irix6.5 } } } */ diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c index b7320b5ee72..d760db34b2a 100644 --- a/gcc/trans-mem.c +++ b/gcc/trans-mem.c @@ -3736,10 +3736,6 @@ ipa_tm_scan_irr_block (basic_block bb) assembly statement is not relevant to the transaction is to wrap it in a __tm_waiver block. This is not yet implemented, so we can't check for it. */ - if (is_tm_safe (current_function_decl)) - error_at (gimple_location (stmt), - "asm not allowed in %<transaction_safe%> function %qE", - current_function_decl); return true; default: diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c index 87fc566ddee..02e1113f483 100644 --- a/gcc/tree-tailcall.c +++ b/gcc/tree-tailcall.c @@ -1,5 +1,5 @@ /* Tail call optimization on trees. - Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -400,9 +400,10 @@ find_tail_calls (basic_block bb, struct tailcall **ret) { stmt = gsi_stmt (gsi); - /* Ignore labels, returns and debug stmts. */ + /* Ignore labels, returns, clobbers and debug stmts. */ if (gimple_code (stmt) == GIMPLE_LABEL || gimple_code (stmt) == GIMPLE_RETURN + || gimple_clobber_p (stmt) || is_gimple_debug (stmt)) continue; @@ -523,6 +524,9 @@ find_tail_calls (basic_block bb, struct tailcall **ret) if (gimple_code (stmt) == GIMPLE_RETURN) break; + if (gimple_clobber_p (stmt)) + continue; + if (is_gimple_debug (stmt)) continue; diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c index 7ac3f674ac9..70c4f89f6ed 100644 --- a/gcc/tree-vect-loop-manip.c +++ b/gcc/tree-vect-loop-manip.c @@ -513,7 +513,7 @@ slpeel_update_phi_nodes_for_guard1 (edge guard_edge, struct loop *loop, !gsi_end_p (gsi_orig) && !gsi_end_p (gsi_update); gsi_next (&gsi_orig), gsi_next (&gsi_update)) { - source_location loop_locus, guard_locus;; + source_location loop_locus, guard_locus; orig_phi = gsi_stmt (gsi_orig); update_phi = gsi_stmt (gsi_update); @@ -1171,6 +1171,7 @@ slpeel_tree_peel_loop_to_edge (struct loop *loop, basic_block bb_before_first_loop; basic_block bb_between_loops; basic_block new_exit_bb; + gimple_stmt_iterator gsi; edge exit_e = single_exit (loop); LOC loop_loc; tree cost_pre_condition = NULL_TREE; @@ -1184,6 +1185,40 @@ slpeel_tree_peel_loop_to_edge (struct loop *loop, the function tree_duplicate_bb is called. */ gimple_register_cfg_hooks (); + /* If the loop has a virtual PHI, but exit bb doesn't, create a virtual PHI + in the exit bb and rename all the uses after the loop. This simplifies + the *guard[12] routines, which assume loop closed SSA form for all PHIs + (but normally loop closed SSA form doesn't require virtual PHIs to be + in the same form). Doing this early simplifies the checking what + uses should be renamed. */ + for (gsi = gsi_start_phis (loop->header); !gsi_end_p (gsi); gsi_next (&gsi)) + if (!is_gimple_reg (gimple_phi_result (gsi_stmt (gsi)))) + { + gimple phi = gsi_stmt (gsi); + for (gsi = gsi_start_phis (exit_e->dest); + !gsi_end_p (gsi); gsi_next (&gsi)) + if (!is_gimple_reg (gimple_phi_result (gsi_stmt (gsi)))) + break; + if (gsi_end_p (gsi)) + { + gimple new_phi = create_phi_node (SSA_NAME_VAR (PHI_RESULT (phi)), + exit_e->dest); + tree vop = PHI_ARG_DEF_FROM_EDGE (phi, EDGE_SUCC (loop->latch, 0)); + imm_use_iterator imm_iter; + gimple stmt; + tree new_vop = make_ssa_name (SSA_NAME_VAR (PHI_RESULT (phi)), + new_phi); + use_operand_p use_p; + + add_phi_arg (new_phi, vop, exit_e, UNKNOWN_LOCATION); + gimple_phi_set_result (new_phi, new_vop); + FOR_EACH_IMM_USE_STMT (stmt, imm_iter, vop) + if (stmt != new_phi && gimple_bb (stmt) != loop->header) + FOR_EACH_IMM_USE_ON_STMT (use_p, imm_iter) + SET_USE (use_p, new_vop); + } + break; + } /* 1. Generate a copy of LOOP and put it on E (E is the entry/exit of LOOP). Resulting CFG would be: diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 8219423a064..90edc28fb41 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,33 @@ +2012-02-19 Richard Sandiford <rdsandiford@googlemail.com> + + * config.host (mips64*-*-linux*, mipsisa64*-*-linux*) + (mips*-*-linux*): Remove t-slibgcc-libgcc. + * config/mips/t-mips16 (LIB1ASMFUNCS): Remove __mips16_rdhwr. + * config/mips/mips16.S (__mips16_rdhwr): Delete. + +2012-02-19 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips16.S (CALL_STUB_RET): Add CFI information. + +2012-02-15 Iain Sandoe <iains@gcc.gnu.org> + + PR libitm/52220 + * config/darwin-crt-tm.c: Correct typo. + +2012-02-15 Iain Sandoe <iains@gcc.gnu.org> + Patrick Marlier <patrick.marlier@gmail.com> + + PR libitm/52220 + * config/darwin-crt-tm.c: Generate dummy functions. + +2012-02-15 Iain Sandoe <iains@gcc.gnu.org> + Patrick Marlier <patrick.marlier@gmail.com> + + PR libitm/52042 + * config/darwin-crt-tm.c (getTMCloneTable): New function. + (__doTMRegistrations): Call it. + (__doTMdeRegistrations): Likewise. + 2012-01-15 Georg-Johann Lay <avr@gjlay.de> Anatoly Sokolov <aesok@post.ru> Eric Weddington <eric.weddington@atmel.com> diff --git a/libgcc/config.host b/libgcc/config.host index 5ad27caa172..ee1a62c78bf 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -746,12 +746,12 @@ mips*-*-netbsd*) # NetBSD/mips, either endian. ;; mips64*-*-linux* | mipsisa64*-*-linux*) extra_parts="$extra_parts crtfastmath.o" - tmake_file="${tmake_file} t-crtfm mips/t-mips16 mips/t-tpbit t-slibgcc-libgcc" + tmake_file="${tmake_file} t-crtfm mips/t-mips16 mips/t-tpbit" md_unwind_header=mips/linux-unwind.h ;; mips*-*-linux*) # Linux MIPS, either endian. extra_parts="$extra_parts crtfastmath.o" - tmake_file="${tmake_file} t-crtfm mips/t-mips16 t-slibgcc-libgcc" + tmake_file="${tmake_file} t-crtfm mips/t-mips16" md_unwind_header=mips/linux-unwind.h ;; mips*-*-openbsd*) diff --git a/libgcc/config/darwin-crt-tm.c b/libgcc/config/darwin-crt-tm.c index 23113374eea..e9058895a74 100644 --- a/libgcc/config/darwin-crt-tm.c +++ b/libgcc/config/darwin-crt-tm.c @@ -23,33 +23,68 @@ 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/>. */ +#include "tsystem.h" +#include <stddef.h> +#include <dlfcn.h> #include <mach-o/dyld.h> - -/* not listed in mach-o/dyld.h for some reason. */ -extern char * getsectdata (const char*,const char*,unsigned long*); +#include <mach-o/getsect.h> + +#ifdef __LP64__ +#define GET_DATA_TMCT(mh,size) \ + getsectdatafromheader_64 ((struct mach_header_64*) mh, \ + "__DATA", "__tm_clone_table", (uint64_t *)size) +#else +#define GET_DATA_TMCT(mh,size) \ + getsectdatafromheader (mh, "__DATA", "__tm_clone_table", (uint32_t *)size) +#endif #define WEAK __attribute__((weak)) +#define UNUSED __attribute__((unused)) extern void _ITM_registerTMCloneTable (void *, size_t) WEAK; extern void _ITM_deregisterTMCloneTable (void *) WEAK; +#if defined(START) || defined(END) +static inline void *getTMCloneTable (const void *f, size_t *tmct_siz) +{ + char *tmct_fixed, *tmct = NULL; + unsigned int i, img_count; + struct mach_header *mh; + Dl_info info; + + if (! dladdr (f, &info) || info.dli_fbase == NULL) + abort (); + + mh = (struct mach_header *) info.dli_fbase; + tmct_fixed = GET_DATA_TMCT (mh, tmct_siz); + *tmct_siz /= (sizeof (size_t) * 2); + /* No tm_clone_table or no clones. */ + if (tmct_fixed == NULL || *tmct_siz == 0) + return NULL; + + img_count = _dyld_image_count(); + for (i = 0; i < img_count && tmct == NULL; i++) + { + if (mh == _dyld_get_image_header(i)) + tmct = tmct_fixed + (unsigned long)_dyld_get_image_vmaddr_slide(i); + } + + return tmct; +} +#endif + #ifdef START void __doTMRegistrations (void) __attribute__ ((constructor)); void __doTMRegistrations (void) { - char * tm_clone_table_sect_data; - unsigned long tmct_siz; - - tm_clone_table_sect_data = getsectdata ("__DATA", - "__tm_clone_table", - &tmct_siz); - tmct_siz /= (sizeof (size_t) * 2); - if (_ITM_registerTMCloneTable != NULL - && tm_clone_table_sect_data != NULL - && tmct_siz > 0) - _ITM_registerTMCloneTable (tm_clone_table_sect_data, (size_t)tmct_siz); + size_t tmct_siz; + void *tmct; + + tmct = getTMCloneTable ((const void *)&__doTMRegistrations, &tmct_siz); + if (_ITM_registerTMCloneTable != NULL && tmct != NULL) + _ITM_registerTMCloneTable (tmct, (size_t)tmct_siz); } #endif @@ -60,18 +95,54 @@ void __doTMdeRegistrations (void) __attribute__ ((destructor)); void __doTMdeRegistrations (void) { - char * tm_clone_table_sect_data; - unsigned long tmct_siz; - - tm_clone_table_sect_data = getsectdata ("__DATA", - "__tm_clone_table", - &tmct_siz); - - if (_ITM_deregisterTMCloneTable != NULL - && tm_clone_table_sect_data != NULL - && tmct_siz > 0) - _ITM_deregisterTMCloneTable (tm_clone_table_sect_data); + size_t tmct_siz; + void *tmct; + tmct = getTMCloneTable ((const void *)&__doTMdeRegistrations, &tmct_siz); + if (_ITM_deregisterTMCloneTable != NULL && tmct != NULL) + _ITM_deregisterTMCloneTable (tmct); } +/* Provide dummy functions to satisfy linkage for versions of the Darwin + tool-chain that that can't handle undefined weak refs at the link stage. + ??? Define these dummy functions only when !HAVE_ELF_STYLE_WEAKREF. */ + +extern void *__cxa_allocate_exception (size_t) WEAK; +extern void __cxa_throw (void *, void *, void *) WEAK; +extern void *__cxa_begin_catch (void *) WEAK; +extern void *__cxa_end_catch (void) WEAK; +extern void __cxa_tm_cleanup (void *, void *, unsigned int) WEAK; + +extern void *_ZnwX (size_t) WEAK; +extern void _ZdlPv (void *) WEAK; +extern void *_ZnaX (size_t) WEAK; +extern void _ZdaPv (void *) WEAK; + +typedef const struct nothrow_t { } *c_nothrow_p; + +extern void *_ZnwXRKSt9nothrow_t (size_t, c_nothrow_p) WEAK; +extern void _ZdlPvRKSt9nothrow_t (void *, c_nothrow_p) WEAK; +extern void *_ZnaXRKSt9nothrow_t (size_t, c_nothrow_p) WEAK; +extern void _ZdaPvRKSt9nothrow_t (void *, c_nothrow_p) WEAK; + +void *__cxa_allocate_exception (size_t s UNUSED) { return NULL; } +void __cxa_throw (void * a UNUSED, void * b UNUSED, void * c UNUSED) + { return; } +void *__cxa_begin_catch (void * a UNUSED) { return NULL; } +void *__cxa_end_catch (void) { return NULL; } +void __cxa_tm_cleanup (void * a UNUSED, void * b UNUSED, unsigned int c UNUSED) + { return; } + +void *_ZnwX (size_t s UNUSED) { return NULL; } +void _ZdlPv (void * a UNUSED) { return; } +void *_ZnaX (size_t s UNUSED) { return NULL; } +void _ZdaPv (void * a UNUSED) { return; } + +void *_ZnwXRKSt9nothrow_t (size_t s UNUSED, c_nothrow_p b UNUSED) + { return NULL; } +void _ZdlPvRKSt9nothrow_t (void * a UNUSED, c_nothrow_p b UNUSED) { return; } +void *_ZnaXRKSt9nothrow_t (size_t s UNUSED, c_nothrow_p b UNUSED) + { return NULL; } +void _ZdaPvRKSt9nothrow_t (void * a UNUSED, c_nothrow_p b UNUSED) { return; } + #endif diff --git a/libgcc/config/mips/mips16.S b/libgcc/config/mips/mips16.S index c82a55da6aa..abfd3f6283d 100644 --- a/libgcc/config/mips/mips16.S +++ b/libgcc/config/mips/mips16.S @@ -566,15 +566,23 @@ CALL_STUB_NO_RET (__mips16_call_stub_10, 10) being called is 16 bits, in which case the copy is unnecessary; however, it's faster to always do the copy. */ -#define CALL_STUB_RET(NAME, CODE, MODE) \ -STARTFN (NAME); \ - move $18,$31; \ - STUB_ARGS_##CODE; \ - .set noreorder; \ - jalr $2; \ - move $25,$2; \ - .set reorder; \ - MOVE_##MODE##_RET (f, $18); \ +#define CALL_STUB_RET(NAME, CODE, MODE) \ +STARTFN (NAME); \ + .cfi_startproc; \ + /* Create a fake CFA 4 bytes below the stack pointer. */ \ + .cfi_def_cfa 29,-4; \ + /* "Save" $sp in itself so we don't use the fake CFA. \ + This is: DW_CFA_val_expression r29, { DW_OP_reg29 }. */ \ + .cfi_escape 0x16,29,1,0x6d; \ + move $18,$31; \ + .cfi_register 31,18; \ + STUB_ARGS_##CODE; \ + .set noreorder; \ + jalr $2; \ + move $25,$2; \ + .set reorder; \ + MOVE_##MODE##_RET (f, $18); \ + .cfi_endproc; \ ENDFN (NAME) /* First, instantiate the single-float set. */ @@ -710,17 +718,4 @@ CALL_STUB_RET (__mips16_call_stub_dc_10, 10, DC) #endif #endif /* !__mips_single_float */ -#ifdef L_m16rdhwr -STARTFN (__mips16_rdhwr) - /* Forced always hidden, because the PLT resolver function would - not preserve all necessary registers. */ - .hidden __mips16_rdhwr - .set push - .set mips32r2 - .set noreorder - rdhwr $3,$29 - .set pop - j $31 - ENDFN (__mips16_rdhwr) -#endif #endif diff --git a/libgcc/config/mips/t-mips16 b/libgcc/config/mips/t-mips16 index 7fe37f64f52..5553ed76e2d 100644 --- a/libgcc/config/mips/t-mips16 +++ b/libgcc/config/mips/t-mips16 @@ -36,8 +36,7 @@ LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \ _m16stubsc0 _m16stubsc1 _m16stubsc2 _m16stubsc5 _m16stubsc6 \ _m16stubsc9 _m16stubsc10 \ _m16stubdc0 _m16stubdc1 _m16stubdc2 _m16stubdc5 _m16stubdc6 \ - _m16stubdc9 _m16stubdc10 \ - _m16rdhwr + _m16stubdc9 _m16stubdc10 SYNC = yes SYNC_CFLAGS = -mno-mips16 diff --git a/libgo/config.h.in b/libgo/config.h.in index ae81ff45b47..d2aa2f67a1c 100644 --- a/libgo/config.h.in +++ b/libgo/config.h.in @@ -12,6 +12,9 @@ /* Define to 1 if you have the `faccessat' function. */ #undef HAVE_FACCESSAT +/* Define to 1 if you have the `fallocate' function. */ +#undef HAVE_FALLOCATE + /* Define to 1 if you have the `fchmodat' function. */ #undef HAVE_FCHMODAT @@ -130,6 +133,9 @@ /* 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/mount.h> header file. */ +#undef HAVE_SYS_MOUNT_H + /* Define to 1 if you have the <sys/prctl.h> header file. */ #undef HAVE_SYS_PRCTL_H @@ -142,6 +148,9 @@ /* Define to 1 if you have the <sys/socket.h> header file. */ #undef HAVE_SYS_SOCKET_H +/* Define to 1 if you have the <sys/statfs.h> header file. */ +#undef HAVE_SYS_STATFS_H + /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H @@ -157,6 +166,9 @@ /* Define to 1 if you have the <sys/utsname.h> header file. */ #undef HAVE_SYS_UTSNAME_H +/* Define to 1 if you have the <sys/vfs.h> header file. */ +#undef HAVE_SYS_VFS_H + /* Define to 1 if you have the `tee' function. */ #undef HAVE_TEE @@ -182,6 +194,9 @@ */ #undef LT_OBJDIR +/* Define if makecontext expects top of stack in uc_stack. */ +#undef MAKECONTEXT_STACK_TOP + /* Name of package */ #undef PACKAGE @@ -232,3 +247,6 @@ # undef WORDS_BIGENDIAN # endif #endif + +/* Define to `long int' if <sys/types.h> does not define. */ +#undef off_t diff --git a/libgo/configure b/libgo/configure index 9bbdfe92985..ecdd647e5b6 100755 --- a/libgo/configure +++ b/libgo/configure @@ -679,6 +679,7 @@ WARN_FLAGS CC_FOR_BUILD enable_static enable_shared +CPP OTOOL64 OTOOL LIPO @@ -695,10 +696,9 @@ OBJCOPY RANLIB LD FGREP -SED EGREP GREP -CPP +SED MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE @@ -1592,20 +1592,21 @@ fi } # 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 () +# 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 - if { { ac_try="$ac_cpp conftest.$ac_ext" + 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_cpp conftest.$ac_ext") 2>conftest.err + (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 @@ -1613,63 +1614,29 @@ $as_echo "$ac_try_echo"; } >&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 $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 - 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_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 + 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_run +} # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- @@ -1702,21 +1669,20 @@ $as_echo "$ac_res" >&6; } } # 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 () +# 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 - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" + 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_link") 2>conftest.err + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 @@ -1724,29 +1690,63 @@ $as_echo "$ac_try_echo"; } >&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 $ac_status = 0; } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$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 + 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_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 - # 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_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- @@ -4348,143 +4348,86 @@ 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 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 "$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 - # 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 + 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 - # 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 : + 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 - # Broken: fails on valid input. -continue + ac_cv_path_SED=$SED 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 +{ $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//" + -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 @@ -4617,220 +4560,6 @@ $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_includes_default - -{ $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 : @@ -6700,6 +6429,7 @@ fi + # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; @@ -7521,6 +7251,274 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac +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 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 + + for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default @@ -11102,7 +11100,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11105 "configure" +#line 11103 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11208,7 +11206,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11211 "configure" +#line 11209 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14510,7 +14508,7 @@ no) ;; esac -for ac_header in sys/mman.h syscall.h sys/epoll.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h sys/prctl.h +for ac_header in sys/mman.h syscall.h sys/epoll.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -14583,7 +14581,7 @@ else fi -for ac_func in epoll_create1 faccessat fchmodat fchownat futimesat inotify_add_watch inotify_init inotify_rm_watch mkdirat mknodat openat renameat splice tee unlinkat unshare +for ac_func in epoll_create1 faccessat fallocate fchmodat fchownat futimesat inotify_add_watch inotify_init inotify_rm_watch mkdirat mknodat openat renameat splice tee unlinkat unshare do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -14596,6 +14594,17 @@ _ACEOF fi done +ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" +if test "x$ac_cv_type_off_t" = x""yes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define off_t long int +_ACEOF + +fi + ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default" if test "x$ac_cv_type_loff_t" = x""yes; then : @@ -14873,6 +14882,20 @@ $as_echo "#define HAVE_STRUCT_EXCEPTION 1" >>confdefs.h fi +case "$target" in + sparc*-*-solaris2.[89]*) + libgo_cv_lib_makecontext_stack_top=yes + ;; + *) + libgo_cv_lib_makecontext_stack_top=no + ;; +esac +if test "$libgo_cv_lib_makecontext_stack_top" = "yes"; then + +$as_echo "#define MAKECONTEXT_STACK_TOP 1" >>confdefs.h + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setcontext clobbers TLS variables" >&5 $as_echo_n "checking whether setcontext clobbers TLS variables... " >&6; } if test "${libgo_cv_lib_setcontext_clobbers_tls+set}" = set; then : @@ -14974,6 +14997,9 @@ main () abort (); c.uc_stack.ss_sp = stack; +#ifdef MAKECONTEXT_STACK_TOP + c.uc_stack.ss_sp += sizeof stack; +#endif c.uc_stack.ss_flags = 0; c.uc_stack.ss_size = sizeof stack; c.uc_link = NULL; diff --git a/libgo/configure.ac b/libgo/configure.ac index 249918b15d0..81ed4924fda 100644 --- a/libgo/configure.ac +++ b/libgo/configure.ac @@ -33,8 +33,6 @@ AC_SUBST(CFLAGS) AM_MAINTAINER_MODE -AC_INCLUDES_DEFAULT - AC_PROG_LD AC_PROG_RANLIB AC_CHECK_TOOL(OBJCOPY, objcopy, missing-objcopy) @@ -455,7 +453,7 @@ no) ;; esac -AC_CHECK_HEADERS(sys/mman.h syscall.h sys/epoll.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h sys/prctl.h) +AC_CHECK_HEADERS(sys/mman.h syscall.h sys/epoll.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h) AC_CHECK_HEADERS([linux/filter.h linux/netlink.h linux/rtnetlink.h], [], [], [#ifdef HAVE_SYS_SOCKET_H @@ -469,7 +467,8 @@ AC_CHECK_FUNCS(strerror_r strsignal wait4 mincore setenv) AM_CONDITIONAL(HAVE_STRERROR_R, test "$ac_cv_func_strerror_r" = yes) AM_CONDITIONAL(HAVE_WAIT4, test "$ac_cv_func_wait4" = yes) -AC_CHECK_FUNCS(epoll_create1 faccessat fchmodat fchownat futimesat inotify_add_watch inotify_init inotify_rm_watch mkdirat mknodat openat renameat splice tee unlinkat unshare) +AC_CHECK_FUNCS(epoll_create1 faccessat fallocate fchmodat fchownat futimesat inotify_add_watch inotify_init inotify_rm_watch mkdirat mknodat openat renameat splice tee unlinkat unshare) +AC_TYPE_OFF_T AC_CHECK_TYPES([loff_t]) CFLAGS_hold="$CFLAGS" @@ -611,6 +610,21 @@ if test "$libgo_has_struct_exception" = "yes"; then [Define to 1 if <math.h> defines struct exception]) fi +dnl Check if makecontext expects the uc_stack member of ucontext to point +dnl to the top of the stack. +case "$target" in + sparc*-*-solaris2.[[89]]*) + libgo_cv_lib_makecontext_stack_top=yes + ;; + *) + libgo_cv_lib_makecontext_stack_top=no + ;; +esac +if test "$libgo_cv_lib_makecontext_stack_top" = "yes"; then + AC_DEFINE(MAKECONTEXT_STACK_TOP, 1, + [Define if makecontext expects top of stack in uc_stack.]) +fi + dnl See whether setcontext changes the value of TLS variables. AC_CACHE_CHECK([whether setcontext clobbers TLS variables], [libgo_cv_lib_setcontext_clobbers_tls], @@ -667,6 +681,9 @@ main () abort (); c.uc_stack.ss_sp = stack; +#ifdef MAKECONTEXT_STACK_TOP + c.uc_stack.ss_sp += sizeof stack; +#endif c.uc_stack.ss_flags = 0; c.uc_stack.ss_size = sizeof stack; c.uc_link = NULL; diff --git a/libgo/go/math/floor.go b/libgo/go/math/floor.go index b35066e58cb..c40be417152 100644 --- a/libgo/go/math/floor.go +++ b/libgo/go/math/floor.go @@ -58,11 +58,8 @@ func ceil(x float64) float64 { // Trunc(±Inf) = ±Inf // Trunc(NaN) = NaN -//extern trunc -func libc_trunc(float64) float64 - func Trunc(x float64) float64 { - return libc_trunc(x) + return trunc(x) } func trunc(x float64) float64 { diff --git a/libgo/go/math/log10.go b/libgo/go/math/log10.go index 07ba8ca165a..3d2cec6656c 100644 --- a/libgo/go/math/log10.go +++ b/libgo/go/math/log10.go @@ -21,11 +21,8 @@ func log10(x float64) float64 { // Log2 returns the binary logarithm of x. // The special cases are the same as for Log. -//extern log2 -func libc_log2(float64) float64 - func Log2(x float64) float64 { - return libc_log2(x) + return log2(x) } func log2(x float64) float64 { diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go index aa1440118e3..8a3d8c0e65e 100644 --- a/libgo/go/syscall/libcall_linux.go +++ b/libgo/go/syscall/libcall_linux.go @@ -178,9 +178,8 @@ func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) //sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) //faccessat(dirfd int, pathname *byte, mode int, flags int) int -// FIXME: Only in glibc 2.10 and later. -// //sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) -// //fallocate(fd int, mode int, offset Offset_t, len Offset_t) int +//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) +//fallocate(fd int, mode int, offset Offset_t, len Offset_t) int //sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) //fchmodat(dirfd int, pathname *byte, mode Mode_t, flags int) int @@ -191,9 +190,8 @@ func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) //sys Flock(fd int, how int) (err error) //flock(fd int, how int) int -// FIXME: mksysinfo statfs -// //sys Fstatfs(fd int, buf *Statfs_t) (err error) -// //fstatfs(fd int, buf *Statfs_t) int +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//fstatfs(fd int, buf *Statfs_t) int func Gettid() (tid int) { r1, _, _ := Syscall(SYS_GETTID, 0, 0, 0) @@ -283,9 +281,8 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i return } -// FIXME: mksysinfo statfs -// //sys Statfs(path string, buf *Statfs_t) (err error) -// //statfs(path *byte, buf *Statfs_t) int +//sys Statfs(path string, buf *Statfs_t) (err error) +//statfs(path *byte, buf *Statfs_t) int // FIXME: Only in glibc 2.6 and later. // //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh index 62296b8af2f..29846381315 100755 --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -93,6 +93,15 @@ cat > sysinfo.c <<EOF #if defined(HAVE_NET_IF_H) #include <net/if.h> #endif +#if defined(HAVE_SYS_MOUNT_H) +#include <sys/mount.h> +#endif +#if defined(HAVE_SYS_VFS_H) +#include <sys/vfs.h> +#endif +#if defined(HAVE_STATFS_H) +#include <sys/statfs.h> +#endif /* Constants that may only be defined as expressions on some systems, expressions too complex for -fdump-go-spec to handle. These are @@ -766,4 +775,35 @@ for n in IGNBRK BRKINT IGNPAR PARMRK INPCK ISTRIP INLCR IGNCR ICRNL IUCLC \ sed -e 's/^\(const \)_\([^=]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} done +# The mount flags +grep '^const _MS_' gen-sysinfo.go | + sed -e 's/^\(const \)_\(MS_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} + +# The fallocate flags. +grep '^const _FALLOC_' gen-sysinfo.go | + sed -e 's/^\(const \)_\(FALLOC_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} + +# The statfs struct. +# Prefer largefile variant if available. +statfs=`grep '^type _statfs64 ' gen-sysinfo.go || true` +if test "$statfs" != ""; then + grep '^type _statfs64 ' gen-sysinfo.go +else + grep '^type _statfs ' gen-sysinfo.go +fi | sed -e 's/type _statfs64/type Statfs_t/' \ + -e 's/type _statfs/type Statfs_t/' \ + -e 's/f_type/Type/' \ + -e 's/f_bsize/Bsize/' \ + -e 's/f_blocks/Blocks/' \ + -e 's/f_bfree/Bfree/' \ + -e 's/f_bavail/Bavail/' \ + -e 's/f_files/Files/' \ + -e 's/f_ffree/Ffree/' \ + -e 's/f_fsid/Fsid/' \ + -e 's/f_namelen/Namelen/' \ + -e 's/f_frsize/Frsize/' \ + -e 's/f_flags/Flags/' \ + -e 's/f_spare/Spare/' \ + >> ${OUT} + exit $? diff --git a/libgo/runtime/go-nosys.c b/libgo/runtime/go-nosys.c index 6b328544f0d..b2829589b14 100644 --- a/libgo/runtime/go-nosys.c +++ b/libgo/runtime/go-nosys.c @@ -48,6 +48,18 @@ faccessat (int fd __attribute__ ((unused)), } #endif +#ifndef HAVE_FALLOCATE +int +fallocate (int fd __attribute__ ((unused)), + int mode __attribute__ ((unused)), + off_t offset __attribute __ ((unused)), + off_t len __attribute__ ((unused))) +{ + errno = ENOSYS; + return -1; +} +#endif + #ifndef HAVE_FCHMODAT int fchmodat (int dirfd __attribute__ ((unused)), diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c index 609920a5619..d7e1e5ff405 100644 --- a/libgo/runtime/proc.c +++ b/libgo/runtime/proc.c @@ -1316,6 +1316,9 @@ __go_go(void (*fn)(void*), void* arg) getcontext(&newg->context); newg->context.uc_stack.ss_sp = sp; +#ifdef MAKECONTEXT_STACK_TOP + newg->context.uc_stack.ss_sp += spsize; +#endif newg->context.uc_stack.ss_size = spsize; makecontext(&newg->context, kickoff, 0); diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 3b54c8b7335..e103ca0288b 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,10 @@ +2012-02-15 Iain Sandoe <iains@gcc.gnu.org> + Patrick Marlier <patrick.marlier@gmail.com> + + PR libitm/52220 + * alloc_cpp.cc: No dummy definitions for darwin. + * eh_cpp.cc: Likewise. + 2012-02-14 Richard Henderson <rth@redhat.com> * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections. diff --git a/libitm/alloc_cpp.cc b/libitm/alloc_cpp.cc index 0789b2e5342..00a4d3211d9 100644 --- a/libitm/alloc_cpp.cc +++ b/libitm/alloc_cpp.cc @@ -60,7 +60,7 @@ extern void _ZdlPvRKSt9nothrow_t (void *, c_nothrow_p) __attribute__((weak)); extern void *_ZnaXRKSt9nothrow_t (size_t, c_nothrow_p) __attribute__((weak)); extern void _ZdaPvRKSt9nothrow_t (void *, c_nothrow_p) __attribute__((weak)); -#if !defined (HAVE_ELF_STYLE_WEAKREF) +#if !defined (HAVE_ELF_STYLE_WEAKREF) && !defined (__MACH__) void *_ZnwX (size_t) { return NULL; } void _ZdlPv (void *) { return; } void *_ZnaX (size_t) { return NULL; } diff --git a/libitm/eh_cpp.cc b/libitm/eh_cpp.cc index 352a313bee6..5c4ca284359 100644 --- a/libitm/eh_cpp.cc +++ b/libitm/eh_cpp.cc @@ -39,7 +39,7 @@ extern void *__cxa_begin_catch (void *) WEAK; extern void *__cxa_end_catch (void) WEAK; extern void __cxa_tm_cleanup (void *, void *, unsigned int) WEAK; -#if !defined (HAVE_ELF_STYLE_WEAKREF) +#if !defined (HAVE_ELF_STYLE_WEAKREF) && !defined (__MACH__) void *__cxa_allocate_exception (size_t) { return NULL; } void __cxa_throw (void *, void *, void *) { return; } void *__cxa_begin_catch (void *) { return NULL; } diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8510625e7ce..34fd1410cd7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,61 @@ +2012-02-17 Benjamin Kosnik <bkoz@redhat.com> + + PR libstdc++/51798 continued. + * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Grep for + __atomic_, not __sync. + * configure: Regenerated. + +2012-02-17 Benjamin Kosnik <bkoz@redhat.com> + + PR libstdc++/47058 + * acinclude.m4 (GLIBCXX_ENABLE_WERROR): New. + (GLIBCXX_EXPORT_FLAGS): Add -Wabi to WARN_FLAGS + * configure.ac: Use it. + * fragment.am: Set WERROR_FLAG conditionally on --disable-werror. + * configure: Regenerate. + * python/Makefile.in: Same. + * Makefile.in: Same. + * doc/Makefile.in: Same. + * include/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. + +2012-02-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR libstdc++/52189 + * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Handle + --enable-libstdcxx-threads. + Disable on Solaris 8/9 with symbol versioning. + * configure.ac (GLIBCXX_CHECK_GTHREADS): Move after + GLIBCXX_ENABLE_SYMVERS. + * configure: Regenerate. + * doc/xml/manual/configure.xml (--enable-libstdcxx-threads): Explain. + +2012-02-15 DJ Delorie <dj@redhat.com> + + * src/c++98/locale.cc (locale::facet::_S_get_c_locale): Fix typo. + +2012-02-15 Benjamin Kosnik <bkoz@redhat.com> + + PR libstdc++/51368 + * acinclude.m4 (GLIBCXX_ENABLE_PYTHON): New. + * configure.ac: Use it. + * python/Makefile.am: Same. + * configure: Regenerate. + * python/Makefile.in: Regenerate. + * Makefile.in: Same. + * doc/Makefile.in: Same. + * include/Makefile.in: Same. + * po/Makefile.in: Same. + * src/Makefile.in: Same. + * src/c++11/Makefile.in: Same. + * src/c++98/Makefile.in: Same. + * testsuite/Makefile.in: Same. + 2012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com> * 30_threads/thread/native_handle/typesizes.cc: Do not run on cygwin. @@ -30,7 +88,7 @@ * libsupc++/guard.cc (__cxa_guard_acquire): Same. 2012-02-10 Benjamin Kosnik <bkoz@redhat.com> - Jonathan Wakely <jwakely.gcc@gmail.com> + Jonathan Wakely <jwakely.gcc@gmail.com> PR libstdc++/51798 continued. * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Use __atomic_* diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index a6b15e2f312..94ec3e9080d 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -264,6 +264,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -287,6 +288,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -294,7 +297,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index e089b20dd4f..b832527ef28 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -729,7 +729,7 @@ AC_DEFUN([GLIBCXX_EXPORT_FLAGS], [ # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc AC_SUBST(OPTIMIZE_CXXFLAGS) - WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual' + WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi' AC_SUBST(WARN_FLAGS) ]) @@ -1737,26 +1737,26 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_PROTO], [ { return __builtin_fabsf(__x); } } ])], - [glibcxx_cv_abs_float=no], - [glibcxx_cv_abs_float=yes] + [glibcxx_cv_abs_float=no], + [glibcxx_cv_abs_float=yes] )]) # autoheader cannot handle indented templates. AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO1], - [/* Define if all C++ overloads are available in <math.h>. */ + [/* Define if all C++ overloads are available in <math.h>. */ #if __cplusplus >= 199711L #undef __CORRECT_ISO_CPP_MATH_H_PROTO1 #endif]) AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO2], - [/* Define if only double std::abs(double) is available in <math.h>. */ + [/* Define if only double std::abs(double) is available in <math.h>. */ #if __cplusplus >= 199711L #undef __CORRECT_ISO_CPP_MATH_H_PROTO2 #endif]) if test $glibcxx_cv_abs_float = yes; then - AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO1) + AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO1) else - AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO2) + AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO2) fi AC_MSG_RESULT($glibcxx_cv_abs_float) ;; @@ -1787,19 +1787,19 @@ AC_DEFUN([GLIBCXX_CHECK_STDLIB_PROTO], [ inline long abs(long __i) { return labs(__i); } } - ])], - [glibcxx_cv_abs_long=no], - [glibcxx_cv_abs_long=yes] + ])], + [glibcxx_cv_abs_long=no], + [glibcxx_cv_abs_long=yes] )]) # autoheader cannot handle indented templates. AH_VERBATIM([__CORRECT_ISO_CPP_STDLIB_H_PROTO], - [/* Define if all C++ overloads are available in <stdlib.h>. */ + [/* Define if all C++ overloads are available in <stdlib.h>. */ #if __cplusplus >= 199711L #undef __CORRECT_ISO_CPP_STDLIB_H_PROTO #endif]) if test $glibcxx_cv_abs_long = yes; then - AC_DEFINE(__CORRECT_ISO_CPP_STDLIB_H_PROTO, 1) + AC_DEFINE(__CORRECT_ISO_CPP_STDLIB_H_PROTO, 1) fi AC_MSG_RESULT($glibcxx_cv_abs_long) ;; @@ -2495,7 +2495,7 @@ template<typename T> int main() { - typename same<double, __float128>::type f1; + typename same<double, __float128>::type f1; typename same<long double, __float128>::type f2; } EOF @@ -2729,7 +2729,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2748,7 +2748,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2767,7 +2767,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2786,7 +2786,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2814,17 +2814,17 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); - + return 0; } EOF AC_MSG_CHECKING([for atomic builtins for bool]) if AC_TRY_EVAL(ac_compile); then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_bool=no else glibcxx_cv_atomic_bool=yes @@ -2843,7 +2843,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -2853,7 +2853,7 @@ EOF AC_MSG_CHECKING([for atomic builtins for short]) if AC_TRY_EVAL(ac_compile); then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_short=no else glibcxx_cv_atomic_short=yes @@ -2873,7 +2873,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -2883,7 +2883,7 @@ EOF AC_MSG_CHECKING([for atomic builtins for int]) if AC_TRY_EVAL(ac_compile); then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_int=no else glibcxx_cv_atomic_int=yes @@ -2902,7 +2902,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -2912,7 +2912,7 @@ EOF AC_MSG_CHECKING([for atomic builtins for long long]) if AC_TRY_EVAL(ac_compile); then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_long_long=no else glibcxx_cv_atomic_long_long=yes @@ -3328,7 +3328,14 @@ dnl Check if gthread implementation defines the types and functions dnl required by the c++0x thread library. Conforming gthread dnl implementations can define __GTHREADS_CXX0X to enable use with c++0x. dnl +dnl GLIBCXX_ENABLE_SYMVERS must be done before this. +dnl AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [ + GLIBCXX_ENABLE(libstdcxx-threads,auto,,[enable C++11 threads support]) + + if test x$enable_libstdcxx_threads = xauto || + test x$enable_libstdcxx_threads = xyes; then + AC_LANG_SAVE AC_LANG_CPLUSPLUS @@ -3348,13 +3355,13 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [ [ // In case of POSIX threads check _POSIX_TIMEOUTS. #if (defined(_PTHREADS) \ - && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0)) + && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0)) #error #endif ], [ac_gthread_use_mutex_timedlock=1], [ac_gthread_use_mutex_timedlock=0]) AC_DEFINE_UNQUOTED(_GTHREAD_USE_MUTEX_TIMEDLOCK, $ac_gthread_use_mutex_timedlock, - [Define to 1 if mutex_timedlock is available.]) + [Define to 1 if mutex_timedlock is available.]) if test $ac_gthread_use_mutex_timedlock = 1 ; then res_mutex_timedlock=yes ; else res_mutex_timedlock=no ; fi @@ -3367,7 +3374,28 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [ #ifndef __GTHREADS_CXX0X #error #endif - ], [ac_has_gthreads=yes], [ac_has_gthreads=no]) + ], [case $target_os in + # gthreads support breaks symbol versioning on Solaris 8/9 (PR + # libstdc++/52189). + solaris2.[[89]]*) + if test x$enable_symvers = xno; then + ac_has_gthreads=yes + elif test x$enable_libstdcxx_threads = xyes; then + AC_MSG_WARN([You have requested C++11 threads support, but]) + AC_MSG_WARN([this breaks symbol versioning.]) + ac_has_gthreads=yes + else + ac_has_gthreads=no + fi + ;; + *) + ac_has_gthreads=yes + ;; + esac], + [ac_has_gthreads=no]) + else + ac_has_gthreads=no + fi AC_MSG_RESULT([$ac_has_gthreads]) @@ -3543,6 +3571,38 @@ AC_DEFUN([GLIBCXX_CHECK_SYSCTL_HW_NCPU], [ AC_LANG_RESTORE ]) +dnl +dnl Check to see if python pretty printing can be activated. +dnl +dnl --with-python-dir=dir +dnl installs directory into $prefix/dir +AC_DEFUN([GLIBCXX_ENABLE_PYTHON], [ + +AC_MSG_CHECKING([for custom python install directory]) +AC_ARG_WITH([python-dir], + AS_HELP_STRING([--with-python-dir], + [the location to install Python modules. This path is relative starting from the prefix.]), + [with_python_dir=$withval], [with_python_dir="no"]) +AC_MSG_RESULT(${with_python_dir}) + +# Needed for installing Python modules during make install. +python_mod_dir="${with_python_dir}" +AC_SUBST(python_mod_dir) +GLIBCXX_CONDITIONAL(ENABLE_PYTHONDIR, test $python_mod_dir != no) +]) + +dnl +dnl Check to see if -Werror is disabled. +dnl +dnl --enable-werror/--disable-werror +AC_DEFUN([GLIBCXX_ENABLE_WERROR], [ + AC_MSG_CHECKING([for -Werror]) + GLIBCXX_ENABLE(werror,$1,,[turns on -Werror]) + AC_MSG_RESULT($enable_werror) + GLIBCXX_CONDITIONAL(ENABLE_WERROR, test $enable_werror = yes) +]) + + # Macros from the top-level gcc directory. m4_include([../config/gc++filt.m4]) m4_include([../config/tls.m4]) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 4755149c731..04ac0793358 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -664,6 +664,11 @@ LIBICONV OPT_LDFLAGS SECTION_LDFLAGS GLIBCXX_LIBS +ENABLE_WERROR_FALSE +ENABLE_WERROR_TRUE +ENABLE_PYTHONDIR_FALSE +ENABLE_PYTHONDIR_TRUE +python_mod_dir ENABLE_EXTERN_TEMPLATE_FALSE ENABLE_EXTERN_TEMPLATE_TRUE EXTRA_CXX_FLAGS @@ -856,6 +861,8 @@ enable_libstdcxx_debug enable_cxx_flags enable_fully_dynamic_string enable_extern_template +with_python_dir +enable_werror enable_libstdcxx_time enable_tls enable_rpath @@ -864,6 +871,7 @@ with_system_libunwind enable_linux_futex enable_symvers enable_libstdcxx_visibility +enable_libstdcxx_threads with_gxx_include_dir enable_version_specific_runtime_libs ' @@ -1544,6 +1552,7 @@ Optional Features: memory [default=no] --enable-extern-template enable extern template [default=yes] + --enable-werror turns on -Werror [default=yes] --enable-libstdcxx-time[=KIND] use KIND for check type [default=no] --enable-tls Use thread-local storage [default=yes] @@ -1554,6 +1563,8 @@ Optional Features: [default=yes] --enable-libstdcxx-visibility enables visibility safe usage [default=yes] + --enable-libstdcxx-threads + enable C++11 threads support [default=auto] --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory @@ -1568,6 +1579,8 @@ Optional Packages: --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-python-dir the location to install Python modules. This path is + relative starting from the prefix. --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir @@ -11486,7 +11499,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11489 "configure" +#line 11502 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11592,7 +11605,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11595 "configure" +#line 11608 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14950,7 +14963,7 @@ fi # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 14953 "configure" +#line 14966 "configure" struct S { ~S(); }; void bar(); void foo() @@ -15128,7 +15141,7 @@ typedef bool atomic_type; atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15170,7 +15183,7 @@ typedef short atomic_type; atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15212,7 +15225,7 @@ typedef int atomic_type; atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15254,7 +15267,7 @@ typedef long long atomic_type; atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15285,7 +15298,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; } # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF -#line 15288 "configure" +#line 15301 "configure" int main() { typedef bool atomic_type; @@ -15294,7 +15307,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15309,7 +15322,7 @@ $as_echo_n "checking for atomic builtins for bool... " >&6; } ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_bool=no else glibcxx_cv_atomic_bool=yes @@ -15320,7 +15333,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15323 "configure" +#line 15336 "configure" int main() { typedef short atomic_type; @@ -15329,7 +15342,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15344,7 +15357,7 @@ $as_echo_n "checking for atomic builtins for short... " >&6; } ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_short=no else glibcxx_cv_atomic_short=yes @@ -15355,7 +15368,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15358 "configure" +#line 15371 "configure" int main() { // NB: _Atomic_word not necessarily int. @@ -15365,7 +15378,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15380,7 +15393,7 @@ $as_echo_n "checking for atomic builtins for int... " >&6; } ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_int=no else glibcxx_cv_atomic_int=yes @@ -15391,7 +15404,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15394 "configure" +#line 15407 "configure" int main() { typedef long long atomic_type; @@ -15400,7 +15413,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -15415,7 +15428,7 @@ $as_echo_n "checking for atomic builtins for long long... " >&6; } ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if grep __sync_ conftest.s >/dev/null 2>&1 ; then + if grep __atomic_ conftest.s >/dev/null 2>&1 ; then glibcxx_cv_atomic_long_long=no else glibcxx_cv_atomic_long_long=yes @@ -15471,7 +15484,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 15474 "configure" +#line 15487 "configure" int main() { _Decimal32 d1; @@ -15513,7 +15526,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 15516 "configure" +#line 15529 "configure" template<typename T1, typename T2> struct same { typedef T2 type; }; @@ -15547,7 +15560,7 @@ $as_echo "$enable_int128" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15550 "configure" +#line 15563 "configure" template<typename T1, typename T2> struct same { typedef T2 type; }; @@ -17240,6 +17253,46 @@ $as_echo "$enable_extern_template" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for custom python install directory" >&5 +$as_echo_n "checking for custom python install directory... " >&6; } + +# Check whether --with-python-dir was given. +if test "${with_python_dir+set}" = set; then : + withval=$with_python_dir; with_python_dir=$withval +else + with_python_dir="no" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_python_dir}" >&5 +$as_echo "${with_python_dir}" >&6; } + +# Needed for installing Python modules during make install. +python_mod_dir="${with_python_dir}" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Werror" >&5 +$as_echo_n "checking for -Werror... " >&6; } + # Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; + case "$enableval" in + yes|no) ;; + *) as_fn_error "Argument to enable/disable werror must be yes or no" "$LINENO" 5 ;; + esac + +else + enable_werror=yes +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_werror" >&5 +$as_echo "$enable_werror" >&6; } + + + # Checks for operating systems support that doesn't require linking. @@ -17286,10 +17339,10 @@ fi if test $glibcxx_cv_abs_float = yes; then - $as_echo "#define __CORRECT_ISO_CPP_MATH_H_PROTO1 1" >>confdefs.h + $as_echo "#define __CORRECT_ISO_CPP_MATH_H_PROTO1 1" >>confdefs.h else - $as_echo "#define __CORRECT_ISO_CPP_MATH_H_PROTO2 1" >>confdefs.h + $as_echo "#define __CORRECT_ISO_CPP_MATH_H_PROTO2 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_abs_float" >&5 @@ -17347,7 +17400,7 @@ fi # autoheader cannot handle indented templates. if test $glibcxx_cv_abs_long = yes; then - $as_echo "#define __CORRECT_ISO_CPP_STDLIB_H_PROTO 1" >>confdefs.h + $as_echo "#define __CORRECT_ISO_CPP_STDLIB_H_PROTO 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_abs_long" >&5 @@ -19790,107 +19843,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -# For gthread support - - - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - - ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -fno-exceptions \ - -I${toplevel_srcdir}/libgcc -I${toplevel_builddir}/libgcc" - - target_thread_file=`$CXX -v 2>&1 | sed -n 's/^Thread model: //p'` - case $target_thread_file in - posix) - CXXFLAGS="$CXXFLAGS -DSUPPORTS_WEAK -DGTHREAD_USE_WEAK -D_PTHREADS" - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it can be safely assumed that mutex_timedlock is available" >&5 -$as_echo_n "checking whether it can be safely assumed that mutex_timedlock is available... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> -int -main () -{ - - // In case of POSIX threads check _POSIX_TIMEOUTS. - #if (defined(_PTHREADS) \ - && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0)) - #error - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_gthread_use_mutex_timedlock=1 -else - ac_gthread_use_mutex_timedlock=0 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - -cat >>confdefs.h <<_ACEOF -#define _GTHREAD_USE_MUTEX_TIMEDLOCK $ac_gthread_use_mutex_timedlock -_ACEOF - - - if test $ac_gthread_use_mutex_timedlock = 1 ; then res_mutex_timedlock=yes ; - else res_mutex_timedlock=no ; fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $res_mutex_timedlock" >&5 -$as_echo "$res_mutex_timedlock" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gthreads library" >&5 -$as_echo_n "checking for gthreads library... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include "gthr.h" -int -main () -{ - - #ifndef __GTHREADS_CXX0X - #error - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_has_gthreads=yes -else - ac_has_gthreads=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_has_gthreads" >&5 -$as_echo "$ac_has_gthreads" >&6; } - - if test x"$ac_has_gthreads" = x"yes"; then - -$as_echo "#define _GLIBCXX_HAS_GTHREADS 1" >>confdefs.h - - fi - - CXXFLAGS="$ac_save_CXXFLAGS" - 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_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = x""yes; then : @@ -65530,6 +65482,146 @@ done +# For gthread support. Depends on GLIBCXX_ENABLE_SYMVERS. + + # Check whether --enable-libstdcxx-threads was given. +if test "${enable_libstdcxx_threads+set}" = set; then : + enableval=$enable_libstdcxx_threads; + case "$enableval" in + yes|no) ;; + *) as_fn_error "Argument to enable/disable libstdcxx-threads must be yes or no" "$LINENO" 5 ;; + esac + +else + enable_libstdcxx_threads=auto +fi + + + + if test x$enable_libstdcxx_threads = xauto || + test x$enable_libstdcxx_threads = xyes; then + + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions \ + -I${toplevel_srcdir}/libgcc -I${toplevel_builddir}/libgcc" + + target_thread_file=`$CXX -v 2>&1 | sed -n 's/^Thread model: //p'` + case $target_thread_file in + posix) + CXXFLAGS="$CXXFLAGS -DSUPPORTS_WEAK -DGTHREAD_USE_WEAK -D_PTHREADS" + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it can be safely assumed that mutex_timedlock is available" >&5 +$as_echo_n "checking whether it can be safely assumed that mutex_timedlock is available... " >&6; } + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ + + // In case of POSIX threads check _POSIX_TIMEOUTS. + #if (defined(_PTHREADS) \ + && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0)) + #error + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_gthread_use_mutex_timedlock=1 +else + ac_gthread_use_mutex_timedlock=0 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + +cat >>confdefs.h <<_ACEOF +#define _GTHREAD_USE_MUTEX_TIMEDLOCK $ac_gthread_use_mutex_timedlock +_ACEOF + + + if test $ac_gthread_use_mutex_timedlock = 1 ; then res_mutex_timedlock=yes ; + else res_mutex_timedlock=no ; fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $res_mutex_timedlock" >&5 +$as_echo "$res_mutex_timedlock" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gthreads library" >&5 +$as_echo_n "checking for gthreads library... " >&6; } + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include "gthr.h" +int +main () +{ + + #ifndef __GTHREADS_CXX0X + #error + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + case $target_os in + # gthreads support breaks symbol versioning on Solaris 8/9 (PR + # libstdc++/52189). + solaris2.[89]*) + if test x$enable_symvers = xno; then + ac_has_gthreads=yes + elif test x$enable_libstdcxx_threads = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You have requested C++11 threads support, but" >&5 +$as_echo "$as_me: WARNING: You have requested C++11 threads support, but" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: this breaks symbol versioning." >&5 +$as_echo "$as_me: WARNING: this breaks symbol versioning." >&2;} + ac_has_gthreads=yes + else + ac_has_gthreads=no + fi + ;; + *) + ac_has_gthreads=yes + ;; + esac +else + ac_has_gthreads=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + ac_has_gthreads=no + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_has_gthreads" >&5 +$as_echo "$ac_has_gthreads" >&6; } + + if test x"$ac_has_gthreads" = x"yes"; then + +$as_echo "#define _GLIBCXX_HAS_GTHREADS 1" >>confdefs.h + + fi + + CXXFLAGS="$ac_save_CXXFLAGS" + 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 + + + # Define documentation rules conditionally. # See if makeinfo has been installed and is modern enough @@ -66046,6 +66138,24 @@ else fi + if test $python_mod_dir != no; then + ENABLE_PYTHONDIR_TRUE= + ENABLE_PYTHONDIR_FALSE='#' +else + ENABLE_PYTHONDIR_TRUE='#' + ENABLE_PYTHONDIR_FALSE= +fi + + + if test $enable_werror = yes; then + ENABLE_WERROR_TRUE= + ENABLE_WERROR_FALSE='#' +else + ENABLE_WERROR_TRUE='#' + ENABLE_WERROR_FALSE= +fi + + if test $enable_symvers != no; then ENABLE_SYMVERS_TRUE= ENABLE_SYMVERS_FALSE='#' @@ -66322,7 +66432,7 @@ $as_echo "$gxx_include_dir" >&6; } # OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc - WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual' + WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi' @@ -66499,6 +66609,14 @@ if test -z "${ENABLE_EXTERN_TEMPLATE_TRUE}" && test -z "${ENABLE_EXTERN_TEMPLATE as_fn_error "conditional \"ENABLE_EXTERN_TEMPLATE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_PYTHONDIR_TRUE}" && test -z "${ENABLE_PYTHONDIR_FALSE}"; then + as_fn_error "conditional \"ENABLE_PYTHONDIR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_WERROR_TRUE}" && test -z "${ENABLE_WERROR_FALSE}"; then + as_fn_error "conditional \"ENABLE_WERROR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${ENABLE_SYMVERS_TRUE}" && test -z "${ENABLE_SYMVERS_FALSE}"; then as_fn_error "conditional \"ENABLE_SYMVERS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 7607e5b732e..49de141be7b 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -130,6 +130,8 @@ GLIBCXX_ENABLE_PARALLEL([yes]) GLIBCXX_ENABLE_CXX_FLAGS GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no]) GLIBCXX_ENABLE_EXTERN_TEMPLATE([yes]) +GLIBCXX_ENABLE_PYTHON +GLIBCXX_ENABLE_WERROR([yes]) # Checks for operating systems support that doesn't require linking. GLIBCXX_CHECK_MATH_PROTO @@ -164,9 +166,6 @@ GLIBCXX_CHECK_GETTIMEOFDAY # NB: The default is [no], because otherwise it requires linking. GLIBCXX_ENABLE_LIBSTDCXX_TIME([no]) -# For gthread support -GLIBCXX_CHECK_GTHREADS - AC_LC_MESSAGES # For hardware_concurrency @@ -335,6 +334,9 @@ GLIBCXX_CONDITIONAL(GLIBCXX_LDBL_COMPAT, test $ac_ldbl_compat = yes) # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE. GLIBCXX_CONFIGURE_TESTSUITE +# For gthread support. Depends on GLIBCXX_ENABLE_SYMVERS. +GLIBCXX_CHECK_GTHREADS + # Define documentation rules conditionally. # See if makeinfo has been installed and is modern enough diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index 2aafe215825..f06084ed186 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -248,6 +248,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -271,6 +272,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -278,7 +281,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml index 026711eefab..727d886d316 100644 --- a/libstdc++-v3/doc/xml/manual/configure.xml +++ b/libstdc++-v3/doc/xml/manual/configure.xml @@ -161,6 +161,13 @@ </para> </listitem></varlistentry> + <varlistentry><term><code>--enable-libstdcxx-threads</code></term> + <listitem><para>Enable C++11 threads support. If not explicitly specified, + the configure process enables it if possible. It defaults to 'off' + on Solaris 8 and 9, where it would break symbol versioning. This + option can change the library ABI. + </para> + </listitem></varlistentry> <varlistentry><term><code>--enable-libstdcxx-time</code></term> <listitem><para>This is an abbreviated form of diff --git a/libstdc++-v3/fragment.am b/libstdc++-v3/fragment.am index 2bcbc1ab3d3..304d39637d9 100644 --- a/libstdc++-v3/fragment.am +++ b/libstdc++-v3/fragment.am @@ -13,12 +13,18 @@ STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +if ENABLE_WERROR +WERROR_FLAG=$(WERROR) +else +WERROR_FLAG= +endif + # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. AM_CPPFLAGS = $(GLIBCXX_INCLUDES) diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index b6f71c54b0b..d13a2732c7d 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -238,6 +238,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -261,6 +262,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -268,7 +271,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index 1153530a8c1..a77f8de57fa 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -304,6 +304,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -327,6 +328,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -334,7 +337,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index f4cfa0eecbe..50b7c961372 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -238,6 +238,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -261,6 +262,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -268,7 +271,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am index 457e45ba46d..49d8f86ac23 100644 --- a/libstdc++-v3/python/Makefile.am +++ b/libstdc++-v3/python/Makefile.am @@ -1,6 +1,6 @@ ## Makefile for the python subdirectory of the GNU C++ Standard library. ## -## Copyright (C) 2009 Free Software Foundation, Inc. +## Copyright (C) 2009, 2012 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## Process this file with automake to produce Makefile.in. @@ -24,7 +24,11 @@ include $(top_srcdir)/fragment.am ## Where to install the module code. +if ENABLE_PYTHONDIR +pythondir = $(prefix)/$(python_mod_dir) +else pythondir = $(datadir)/gcc-$(gcc_version)/python +endif all-local: gdb.py diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in index d2f8ecd471a..bbe8e936f7b 100644 --- a/libstdc++-v3/python/Makefile.in +++ b/libstdc++-v3/python/Makefile.in @@ -268,6 +268,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -291,6 +292,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -298,12 +301,13 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -pythondir = $(datadir)/gcc-$(gcc_version)/python +@ENABLE_PYTHONDIR_FALSE@pythondir = $(datadir)/gcc-$(gcc_version)/python +@ENABLE_PYTHONDIR_TRUE@pythondir = $(prefix)/$(python_mod_dir) nobase_python_DATA = \ libstdcxx/v6/printers.py \ libstdcxx/v6/__init__.py \ diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index da74cb69b71..5ffeb3aac99 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -295,6 +295,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -318,6 +319,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -325,7 +328,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in index 360cba44554..ba269a3ae0b 100644 --- a/libstdc++-v3/src/c++11/Makefile.in +++ b/libstdc++-v3/src/c++11/Makefile.in @@ -256,6 +256,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -279,6 +280,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -286,7 +289,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/src/c++98/Makefile.in b/libstdc++-v3/src/c++98/Makefile.in index 58e93cdf9d9..1cd42daf313 100644 --- a/libstdc++-v3/src/c++98/Makefile.in +++ b/libstdc++-v3/src/c++98/Makefile.in @@ -275,6 +275,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -298,6 +299,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -305,7 +308,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. diff --git a/libstdc++-v3/src/c++98/locale.cc b/libstdc++-v3/src/c++98/locale.cc index 09dccf0d7d3..8fd487394e1 100644 --- a/libstdc++-v3/src/c++98/locale.cc +++ b/libstdc++-v3/src/c++98/locale.cc @@ -206,7 +206,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __c_locale locale::facet::_S_get_c_locale() { -#ifdef __GHTREADS +#ifdef __GTHREADS if (__gthread_active_p()) __gthread_once(&_S_once, _S_initialize_once); else diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index 5520cf017b3..0d7cf167558 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -238,6 +238,7 @@ port_specific_symbol_files = @port_specific_symbol_files@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +python_mod_dir = @python_mod_dir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -264,6 +265,8 @@ PWD_COMMAND = $${PWDCMD-pwd} STAMP = echo timestamp > toolexecdir = $(glibcxx_toolexecdir) toolexeclibdir = $(glibcxx_toolexeclibdir) +@ENABLE_WERROR_FALSE@WERROR_FLAG = +@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR) # These bits are all figured out from configure. Look in acinclude.m4 # or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS. @@ -271,7 +274,7 @@ CONFIG_CXXFLAGS = \ $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@ WARN_CXXFLAGS = \ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi + $(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once # -I/-D flags to pass when compiling. |