1. 13 Nov, 2019 1 commit
    • Add C2x *_NORM_MAX constants to <float.h>. · 00be2a5f
      C2x adds <float.h> constants FLT_NORM_MAX, DBL_NORM_MAX and
      LDBL_NORM_MAX.  These are for the maximum "normalized" finite
      floating-point number, where the given definition of normalized is
      that all possible values with MANT_DIG significand digits (leading one
      not zero) can be represented with that exponent.  The effect of that
      definition is that these macros are the same as the corresponding MAX
      macros for all formats except IBM long double, where the NORM_MAX
      value has exponent 1 smaller than the MAX one so that all 106 digits
      can be 1.
      
      This patch adds those macros to GCC.  They are only defined for float,
      double and long double; C2x does not include such macros for DFP
      types, and while the integration of TS 18661-3 into C2x has not yet
      occurred, the draft proposed text does not add them for the _FloatN /
      _FloatNx types (where they would always be the same as the MAX
      macros).
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.  Also tested
      compilation of the new test for powerpc-linux-gnu to confirm the check
      of LDBL_NORM_MAX in the IBM long double case does get properly
      optimized out.
      
      gcc:
      	* ginclude/float.c [__STDC_VERSION__ > 201710L] (FLT_NORM_MAX,
      	DBL_NORM_MAX, LDBL_NORM_MAX): Define.
      	* real.c (get_max_float): Add norm_max argument.
      	* real.h (get_max_float): Update prototype.
      	* builtins.c (fold_builtin_interclass_mathfn): Update calls to
      	get_max_float.
      
      gcc/c-family:
      	* c-cppbuiltin.c (builtin_define_float_constants): Also define
      	NORM_MAX constants.  Update call to get_max_float.
      	(LAZY_HEX_FP_VALUES_CNT): Update value to include NORM_MAX
      	constants.
      
      gcc/d:
      	* d-target.cc (define_float_constants): Update call to
      	get_max_float.
      
      gcc/testsuite:
      	* gcc.dg/c11-float-3.c, gcc.dg/c2x-float-1.c: New tests.
      
      From-SVN: r278145
      Joseph Myers committed
  2. 10 Oct, 2019 1 commit
    • Update DFP macros in float.h for C2x and TS 18661-2. · 27dfdc0f
      GCC's <float.h> includes various macros for decimal floating-point
      types, defined if __STDC_WANT_DEC_FP__, as defined in TS 24732.
      
      TS 18661-2 and C2X make some changes to those macros.  In TS 18661-2,
      they are to be defined if __STDC_WANT_IEC_60559_DFP_EXT__, and the
      *_SUBNORMAL_MIN macros are renamed to *_TRUE_MIN.  In C2X, the macros
      are to be defined whenever DFP is supported, without needing any
      feature test macro to be defined.
      
      This patch updates the header accordingly.  There is no existing
      predefined macro for whether the target supports DFP; rather than
      adding a new macro for that purpose, this patch changes the predefined
      macros used in <float.h> so that they are only defined when DFP is
      supported and thus can be used as conditionals; this is the same way
      predefined macros for _FloatN and _FloatNx types work.  Although
      formally TR 24732 and TS 18661-2 say nothing about implementations
      lacking DFP support, it seems appropriate to avoid defining the macros
      in <float.h>, in the absence of DFP support, even if the respective
      feature test macros are defined.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.  Also tested
      the c2x-float-no-dfp-* tests for aarch64-linux-gnu to make sure they
      do pass in a no-DFP configuration.
      
      gcc:
      	* ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
      	macros.
      	[__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
      	Also define DFP macros for these conditions.
      	[!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
      	DEC128_SUBNORMAL_MIN): Do not define.
      	[__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
      	(DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Do not define macros for DFP
      	types if DFP not supported.
      
      gcc/testsuite:
      	* gcc.dg/c11-float-dfp-1.c, gcc.dg/c2x-float-no-dfp-1.c,
      	gcc.dg/c2x-float-no-dfp-2.c, gcc.dg/dfp/c2x-float-dfp-1.c,
      	gcc.dg/dfp/c2x-float-dfp-2.c, gcc.dg/dfp/c2x-float-dfp-3.c,
      	gcc.dg/dfp/tr24732-float-dfp-1.c,
      	gcc.dg/dfp/ts18661-2-float-dfp-1.c: New tests.
      
      From-SVN: r276854
      Joseph Myers committed
  3. 02 Oct, 2019 1 commit
    • Define WIDTH macros for C2x. · 202be586
      As part of the integration of TS 18661-1 into C2x, many features
      became unconditional features not depending on any feature test macro
      being defined.  This patch updates the conditionals on the *_WIDTH
      macros in limits.h and stdint.h accordingly so that they are defined
      for C2x.  The macro CR_DECIMAL_DIG in float.h does still require
      __STDC_WANT_IEC_60559_BFP_EXT__ to be defined, and a test for this is
      added.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc:
      	* ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
      	condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
      	(__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
      	* glimits.h: Likewise.
      
      gcc/testsuite:
      	* gcc.dg/cr-decimal-dig-2.c: New test.
      	* gcc.dg/limits-width-2.c: New test.  Based on limits-width-1.c.
      	* gcc.dg/stdint-width-2.c: New test.  Based on stdint-width-1.c.
      
      From-SVN: r276497
      Joseph Myers committed
  4. 10 Sep, 2019 1 commit
    • [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions · 5d727a4b
      The main difference with existing support is that function addresses
      are function descriptor addresses instead. This means that all code
      dealing with function pointers now has to cope with function
      descriptors instead.
      
      For the same reason, Linux kernel helpers can no longer be called by
      dereferencing their address, so we implement wrappers that directly
      call the kernel helpers.
      
      When restoring a function address, we also have to restore the FDPIC
      register value (r9).
      
      2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
      	Mickaël Guêné <mickael.guene@st.com>
      
      	gcc/
      	* ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
      	field.
      
      	libgcc/
      	* config/arm/linux-atomic.c (__kernel_cmpxchg): Add FDPIC support.
      	(__kernel_dmb): Likewise.
      	(__fdpic_cmpxchg): New function.
      	(__fdpic_dmb): New function.
      	* config/arm/unwind-arm.h (FDPIC_REGNUM): New define.
      	(gnu_Unwind_Find_got): New function.
      	(_Unwind_decode_typeinfo_ptr): Add FDPIC support.
      	* unwind-arm-common.inc (UCB_PR_GOT): New.
      	(funcdesc_t): New struct.
      	(get_eit_entry): Add FDPIC support.
      	(unwind_phase2): Likewise.
      	(unwind_phase2_forced): Likewise.
      	(__gnu_Unwind_RaiseException): Likewise.
      	(__gnu_Unwind_Resume): Likewise.
      	(__gnu_Unwind_Backtrace): Likewise.
      	* unwind-pe.h (read_encoded_value_with_base): Likewise.
      
      	libstdc++/
      	* libsupc++/eh_personality.cc (get_ttype_entry): Add FDPIC
      	support.
      
      
      Co-Authored-By: Mickaël Guêné <mickael.guene@st.com>
      
      From-SVN: r275568
      Christophe Lyon committed
  5. 24 Jun, 2019 1 commit
  6. 01 Jan, 2019 1 commit
  7. 25 Jun, 2018 1 commit
  8. 24 Jun, 2018 1 commit
  9. 20 Jun, 2018 1 commit
  10. 03 Jan, 2018 1 commit
  11. 15 Nov, 2017 1 commit
    • Add __builtin_tgmath for better tgmath.h implementation (bug 81156). · 3ca0dc60
      Various implementations of C99/C11 <tgmath.h> have the property that
      their macro expansions contain many copies of the macro arguments, so
      resulting in exponential blowup of the size of macro expansions where
      a call to such a macro contains other such calls in the macro
      arguments.
      
      This patch adds a (C-only) language feature __builtin_tgmath designed
      to avoid this problem by implementing the <tgmath.h> function
      selection rules directly in the compiler.  The effect is that
      type-generic macros can be defined simply as
      
      #define pow(a, b) __builtin_tgmath (powf, pow, powl, \
                                          cpowf, cpow, cpowl, a, b)
      
      as in the example added to the manual, with each macro argument
      expanded exactly once.  The details of __builtin_tgmath are as
      described in the manual.  This is C-only since C++ uses function
      overloading and just defines <ctgmath> to include <ccomplex> and
      <cmath>.
      
      __builtin_tgmath handles C99/C11 type-generic macros, and _FloatN,
      _FloatNx and decimal floating-point types (following the proposed
      resolution to the floating-point TS DR#9 that makes the rules for
      finding a common type from arguments to a type-generic macro follow
      the usual arithmetic conversions after adjustment of integer arguments
      to _Decimal64 or double - or to _Complex double in the case of GNU
      complex integer arguments).
      
      Type-generic macros for functions from TS 18661 that round their
      results to a narrower type are handled, but there are still some
      unresolved questions regarding such macros so further changes in that
      regard may be needed in future.  The current implementation follows an
      older version of the DR#13 resolution (allowing a function for a
      wide-enough argument type to be selected if no exactly-matching
      function is available), but with appropriate calls to __builtin_tgmath
      is still fully compatible with the latest version of the resolution
      (not yet in the DR log), and allowing such not-exactly-matching
      argument types to be chosen in that case avoids needing another
      special case to treat integers as _Float64 instead of double in
      certain cases.
      
      Regarding other possible language/library features, not currently
      implemented in GCC:
      
      * Imaginary types could be naturally supported by allowing cases where
        the type-generic type is an imaginary type T and arguments or return
        types may be T (as at present), or the corresponding real type to T
        (as at present), or (new) the corresponding real type if T is real
        or imaginary but T if T is complex.  (tgmath.h would need a series
        of functions such as
      
        static inline _Imaginary double
        __sin_imag (_Imaginary double __x)
        {
          return _Imaginary_I * sinh (__imag__ __x);
        }
      
        to be used in __builtin_tgmath calls.)
      
      * __builtin_tgmath would use the constant rounding direction in the
        presence of support for the FENV_ROUND / FENV_DEC_ROUND pragmas.
        Support for those would also require a new __builtin_<something> to
        cause a non-type-generic call to use the constant rounding
        direction (it seems cleaner to add a new __builtin_<something> when
        required than to make __builtin_tgmath handle a non-type-generic
        case with only one function argument).
      
      * TS 18661-5 __STDC_TGMATH_OPERATOR_EVALUATION__ would require new
        __builtin_<something> that evaluates with excess range and precision
        like arithmetic operators do.
      
      * The proposed C bindings for IEEE 754-2018 augmented arithmetic
        operations involve struct return types.  As currently implemented
        __builtin_tgmath does not handle those, but support could be added.
      
      There are many error cases that the implementation diagnoses.  I've
      tried to ensure reasonable error messages for erroneous uses of
      __builtin_tgmath, but the errors for erroneous uses of the resulting
      type-generic macros (that is, when the non-function arguments have
      inappropriate types) are more important as they are more likely to be
      seen by users.
      
      GCC's own tgmath.h, as used for some targets, is updated in this
      patch.  I've tested those changes minimally, via adjusting
      gcc.dg/c99-tgmath-* locally to use that tgmath.h version.  I've also
      run the glibc testsuite (which has much more thorough tests of
      correctness of tgmath.h function selection) with a glibc patch to use
      __builtin_tgmath in glibc's tgmath.h.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      	PR c/81156
      
      gcc:
      	* doc/extend.texi (Other Builtins): Document __builtin_tgmath.
      	* ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
      	(__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
      	(__TGMATH_REAL_2_3): Remove macros.
      	(__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
      	(__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
      	__builtin_tgmath.
      	(frexp, ldexp, nexttoward, scalbn, scalbln): Define using
      	__TGMATH_REAL_2.
      	(remquo): Define using __TGMATH_REAL_3.
      
      gcc/c:
      	* c-parser.c (check_tgmath_function): New function.
      	(enum tgmath_parm_kind): New enum.
      	(c_parser_postfix_expression): Handle __builtin_tgmath.
      
      gcc/c-family:
      	* c-common.c (c_common_reswords): Add __builtin_tgmath.
      	* c-common.h (enum rid): Add RID_BUILTIN_TGMATH.
      
      gcc/testsuite:
      	* gcc.dg/builtin-tgmath-1.c, gcc.dg/builtin-tgmath-2.c,
      	gcc.dg/builtin-tgmath-err-1.c, gcc.dg/builtin-tgmath-err-2.c,
      	gcc.dg/dfp/builtin-tgmath-dfp-err.c,
      	gcc.dg/dfp/builtin-tgmath-dfp.c: New tests.
      
      From-SVN: r254749
      Joseph Myers committed
  12. 01 Jan, 2017 1 commit
  13. 23 Nov, 2016 1 commit
    • [Patch 6/17] Migrate excess precision logic to use TARGET_EXCESS_PRECISION · 56d8ffc1
      gcc/
      
      	* toplev.c (init_excess_precision): Delete most logic.
      	* tree.c (excess_precision_type): Rewrite to use
      	TARGET_EXCESS_PRECISION.
      	* doc/invoke.texi (-fexcess-precision): Document behaviour in a
      	more generic fashion.
      	* ginclude/float.h: Wrap definition of FLT_EVAL_METHOD in
      	__STDC_WANT_IEC_60559_TYPES_EXT__.
      
      gcc/c-family/
      
      	* c-common.c (excess_precision_mode_join): New.
      	(c_ts18661_flt_eval_method): New.
      	(c_c11_flt_eval_method): Likewise.
      	(c_flt_eval_method): Likewise.
      	* c-common.h (excess_precision_mode_join): New.
      	(c_flt_eval_method): Likewise.
      	* c-cppbuiltin.c (c_cpp_flt_eval_method_iec_559): New.
      	(cpp_iec_559_value): Call it.
      	(c_cpp_builtins): Modify logic for __LIBGCC_*_EXCESS_PRECISION__,
      	call c_flt_eval_method to set __FLT_EVAL_METHOD__ and
      	__FLT_EVAL_METHOD_TS_18661_3__.
      
      gcc/testsuite/
      
      	* gcc.dg/fpermitted-flt-eval-methods_3.c: New.
      	* gcc.dg/fpermitted-flt-eval-methods_4.c: Likewise.
      
      From-SVN: r242776
      James Greenhalgh committed
  14. 19 Sep, 2016 2 commits
    • Define TS 18661-1 CR_DECIMAL_DIG in <float.h>. · 1f2071fa
      TS 18661-1 defines a macro CR_DECIMAL_DIG in <float.h>, for the number
      of decimal digits for which conversions between decimal character
      strings and (IEEE) binary formats, in both directions, are correctly
      rounded.  This patch implements support for this macro in GCC's
      <float.h>.
      
      The definition __UINTMAX_MAX__ is the right one for GCC's conversions
      of floating constants, since I made those use MPFR to make them
      correctly rounding.  The macro also covers standard library functions
      such as strtod and printf.  The definition is also correct for current
      glibc.  If any targets' libcs support correct rounding in a way that
      conforms to TS 18661-1 with a smaller value of CR_DECIMAL_DIG, making
      <float.h> reflect that could not be done in isolation without changes
      to the interpretation of floating constants as well, since a smaller
      CR_DECIMAL_DIG requires double rounding of floating constants (first
      to CR_DECIMAL_DIG decimal digits, then to the desired binary format).
      
      Boostrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc:
      	* ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
      	(CR_DECIMAL_DIG): New macro.
      
      gcc/testsuite:
      	* gcc.dg/cr-decimal-dig-1.c: New test.
      
      From-SVN: r240249
      Joseph Myers committed
    • Make max_align_t respect _Float128. · 63012d9a
      The _FloatN, _FloatNx, _DecimalN and _DecimalNx types are specified in
      such a way that they are basic types, meaning that max_align_t must be
      at least as aligned as those types.
      
      On 32-bit x86, max_align_t is currently 8-byte aligned, but
      _Decimal128 and _Float128 are 16-byte aligned, so the alignment of
      max_align_t needs to increase to meet the standard requirements for
      these types.
      
      This patch implements such an increase.  Because max_align_t needs to
      be usable for C++ as well as for C, <stddef.h> can't actually refer to
      _Float128, but needs to use __float128 (or some other notation for the
      type) instead.  And since __float128 is architecture-specific, there
      isn't a preprocessor conditional that means "__float128 is available"
      (whereas one could test __FLT128_MANT_DIG__ to see if _Float128 is
      available; __SIZEOF_FLOAT128__ is available on x86 only).  But I
      believe the only case that actually has an alignment problem here is
      32-bit x86, and <stddef.h> already has lots of conditional specific to
      particular architectures or OSes, so this patch uses a conditional on
      __i386__; that also is the minimal change that ensures neither size
      nor alignment of max_align_t is changed in any case other than where
      it is necessary.  If any other architectures turn out to have such an
      issue, it will show up as failures of one of the testcases added by
      this patch.
      
      Such an increase is of course an ABI change, but a reasonably safe
      one, in that max_align_t doesn't tend to appear in library interfaces
      (rather, it's something to use when writing allocators and similar
      code; most matches found on codesearch.debian.net look like copies of
      the gnulib stddef.h module rather than anything actually using
      max_align_t at all).
      
      max_align_t_align has a corresponding change (adding _Float128 to the
      types considered).
      
      (I think glibc malloc alignment should also increase to 16-byte on
      32-bit x86 so it works for allocating objects of these types, which is
      now straightforward given the fix made for 32-bit powerpc.)
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu, and
      spot-tested with -m32 that the new float128-align.c test now compiles
      where previously it didn't.
      
      gcc:
      	* ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
      	element.
      
      gcc/c-family:
      	* c-common.c (max_align_t_align): Also consider alignment of
      	float128_type_node.
      
      gcc/testsuite:
      	* gcc.dg/float128-align.c, gcc.dg/float128x-align.c,
      	gcc.dg/float16-align.c, gcc.dg/float32-align.c,
      	gcc.dg/float32x-align.c, gcc.dg/float64-align.c,
      	gcc.dg/float64x-align.c, gcc.dg/floatn-align.h: New tests.
      
      From-SVN: r240248
      Joseph Myers committed
  15. 09 Sep, 2016 1 commit
    • Define TS 18661-1 type width macros in <limits.h> and <stdint.h>. · c65248cb
      TS 18661-1 defines <limits.h> and <stdint.h> macros for widths of
      standard integer types and the typedefs defined in, or whose limits
      are defined in, <stdint.h>.  (The connection to the main
      floating-point subject matter of TS 18661-1 is that these are intended
      to be used with the fromfp functions to convert from floating point to
      integer types of any width in any rounding direction, though these
      macros may be of more general use.)
      
      This patch implements support for these macros in GCC's <limits.h> and
      <stdint.h>.  To avoid needing to implement fixincludes for system
      headers where GCC wraps the system libc's <stdint.h> in hosted mode,
      the test for the <stdint.h> macros uses -ffreestanding (I'll add the
      macros to glibc's headers separately) - but as usual for new features
      in these headers, platforms (primarily OpenBSD) that use USER_H to
      avoid using GCC's headers at all will have failures until the system
      headers have the feature added or appropriate fixincludes are
      implemented.
      
      The header macros are implemented using appropriate new predefined
      macros, with the code avoiding defining more such macros than
      necessary (so one predefined macro suffices for corresponding signed
      and unsigned types, while no such predefined macros are needed for the
      exact-width types such as int8_t).
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc:
      	* doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
      	(__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
      	(__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
      	(__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
      	(__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
      	(__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
      	(__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
      	Document.
      	* ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
      	width macros from TS 18661-1.
      	* glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
      
      gcc/c-family:
      	* c-cppbuiltin.c (builtin_define_type_width): New function.
      	(builtin_define_stdint_macros, c_cpp_builtins): Define type width
      	macros.
      
      gcc/testsuite:
      	* gcc.dg/limits-width-1.c, gcc.dg/stdint-width-1.c: New tests.
      
      From-SVN: r240048
      Joseph Myers committed
  16. 19 Aug, 2016 1 commit
    • Implement C _FloatN, _FloatNx types. · c65699ef
      ISO/IEC TS 18661-3:2015 defines C bindings to IEEE interchange and
      extended types, in the form of _FloatN and _FloatNx type names with
      corresponding fN/FN and fNx/FNx constant suffixes and FLTN_* / FLTNX_*
      <float.h> macros.  This patch implements support for this feature in
      GCC.
      
      The _FloatN types, for N = 16, 32, 64 or >= 128 and a multiple of 32,
      are types encoded according to the corresponding IEEE interchange
      format (endianness unspecified; may use either the NaN conventions
      recommended in IEEE 754-2008, or the MIPS NaN conventions, since the
      choice of convention is only an IEEE recommendation, not a
      requirement).  The _FloatNx types, for N = 32, 64 and 128, are IEEE
      "extended" types: types extending a narrower format with range and
      precision at least as big as those specified in IEEE 754 for each
      extended type (and with unspecified representation, but still
      following IEEE semantics for their values and operations - and with
      the set of values being determined by the precision and the maximum
      exponent, which means that while Intel "extended" is suitable for
      _Float64x, m68k "extended" is not).  These types are always distinct
      from and not compatible with each other and the standard floating
      types float, double, long double; thus, double, _Float64 and _Float32x
      may all have the same ABI, but they are three still distinct types.
      The type names may be used with _Complex to construct corresponding
      complex types (unlike __float128, which acts more like a typedef name
      than a keyword - thus, this patch may be considered to fix PR
      c/32187).  The new suffixes can be combined with GNU "i" and "j"
      suffixes for constants of complex types (e.g. 1.0if128, 2.0f64i).
      
      The set of types supported is implementation-defined.  In this GCC
      patch, _Float32 is SFmode if that is suitable; _Float32x and _Float64
      are DFmode if that is suitable; _Float128 is TFmode if that is
      suitable; _Float64x is XFmode if that is suitable, and otherwise
      TFmode if that is suitable.  There is a target hook to override the
      choices if necessary.  "Suitable" means both conforming to the
      requirements of that type, and supported as a scalar type including in
      libgcc.  The ABI is whatever the back end does for scalars of that
      mode (but note that _Float32 is passed without promotion in variable
      arguments, unlike float).  All the existing issues with exceptions and
      rounding modes for existing types apply equally to the new type names.
      
      No GCC port supports a floating-point format suitable for _Float128x.
      Although there is HFmode support for ARM and AArch64, use of that for
      _Float16 is not enabled.  Supporting _Float16 would require additional
      work on the excess precision aspects of TS 18661-3: there are new
      values of FLT_EVAL_METHOD, which are not currently supported in GCC,
      and FLT_EVAL_METHOD == 0 now means that operations and constants on
      types narrower than float are evaluated to the range and precision of
      float.  Implementing that, so that _Float16 gets evaluated with excess
      range and precision, would involve changes to the excess precision
      infrastructure so that the _Float16 case is enabled by default, unlike
      the x87 case which is only enabled for -fexcess-precision=standard.
      Other differences between _Float16 and __fp16 would also need to be
      disentangled.
      
      GCC has some prior support for nonstandard floating-point types in the
      form of __float80 and __float128.  Where these were previously types
      distinct from long double, they are made by this patch into aliases
      for _Float64x / _Float128 if those types have the required properties.
      
      In principle the set of possible _FloatN types is infinite.  This
      patch hardcodes the four such types for N <= 128, but with as much
      code as possible using loops over types to minimize the number of
      places with such hardcoding.  I don't think it's likely any further
      such types will be of use in future (or indeed that formats suitable
      for _Float128x will actually be implemented).  There is a corner case
      that all _FloatN, for N >= 128 and a multiple of 32, should be treated
      as keywords even when the corresponding type is not supported; I
      intend to deal with that in a followup patch.
      
      Tests are added for various functionality of the new types, mostly
      using type-generic headers.  The tests use dg-add-options to pass any
      extra options needed to enable the types; this is wired up to use the
      same options as for __float128 on powerpc to enable _Float128 and
      _Float64x, and effective-target keywords for runtime support do the
      same hardware test as for __float128 to make sure the VSX instructions
      generated by those options are supported.  (Corresponding additions
      would be needed for _Float16 on ARM as well if that were enabled with
      -mfp16-format=ieee required to use it rather than unconditionally
      available.  Of course, -mfp16-format=alternative enables use of a
      format which is not compatible with the requirements of the _Float16
      type.)
      
      C++ note: no support for the new types or constant suffixes is added
      for C++.  C++ decimal floating-point support was very different from
      the C support, using class types, and the same may well apply to any
      future C++ bindings for IEEE interchange and extended types.  There is
      a case, however, for supporting at least *f128 constants in C++, so
      that code using __float128 can use the newer style for constants
      throughout rather than needing to use the older *q constants in C++.
      Also, if built-in functions are added that may provide a way in which
      the types could leak into C++ code.
      
      Fortran note: the float128_type_node used in the Fortran front end is
      renamed to gfc_float128_type_node, since the semantics are different:
      in particular, if long double has binary128 format, then the new
      language-independent float128_type_node is a distinct type that also
      has binary128 format, but the Fortran node is expected to be NULL in
      that case.  Likewise, Fortran's complex_float128_type_node is renamed
      to gfc_complex_float128_type_node.
      
      PowerPC note: the back end had an inconsistency that if TFmode was
      binary128, *q constants were TFmode instead of KFmode but __float128
      was KFmode.  This patch follows the same logic as for *q constants, so
      that _Float128 prefers TFmode (and __float128 becomes an alias for
      _Float128).
      
      ARM note: __fp16 is promoted to double (by convert_arguments) when
      passed without a prototype / in variable arguments.  But this is only
      about the argument promotion; it is not handled as promoting in
      c-common.c:self_promoting_args_p / c-typeck.c:c_type_promotes_to,
      meaning that a K&R function definition for an argument of type __fp16
      corresponds to a prototype with an argument of that type, not to one
      with an argument of type double, whereas a float argument in a K&R
      function definition corresponds to a double prototype argument - and
      the same functions are also what's involved in making va_arg give a
      warning and generate a call to abort when called with type float.
      This is preserved by this patch, while arranging for _Float16 not to
      be promoted when passed without a prototype / in variable arguments
      (the promotion of float being considered a legacy feature, not applied
      to any new types in C99 or later).
      
      TS 18661-3 extends the set of decimal floating-point types similarly,
      and adds new constant suffixes for the existing types, but this patch
      does not do anything regarding that extension.
      
      This patch does nothing regarding built-in functions, although
      type-generic functions such as __builtin_isinf work for the new types
      and associated tests are included.  There are at least two levels of
      built-in function support possible for these types.  The minimal
      level, implemented in
      <https://gcc.gnu.org/ml/gcc-patches/2016-06/msg01702.html> (which
      needs updating to use dg-add-options), adds built-in functions similar
      to those x86 has for __float128: __builtin_inf* __builtin_huge_val*,
      __builtin_nan*, __builtin_nans*, __builtin_fabs*, __builtin_copysign*.
      That would be sufficient for glibc to use the *f128 names for built-in
      functions by default with *q used only for backwards compatibility
      when using older GCC versions.  That would also allow c_cpp_builtins's
      flag_building_libgcc code, defining __LIBGCC_%s_FUNC_EXT__, to use
      such suffixes rather than the present code hardcoding logic about
      target-specific constant suffixes and how those relate to function
      suffixes.
      
      Full built-in function support would cover the full range of built-in
      functions for existing floating-point types, adding variants for all
      the new types, except for a few obsolescent functions and
      non-type-generic variants of type-generic functions.  Some but not all
      references to such functions in GCC use macros such as CASE_FLT_FN to
      be type-generic; a fair amount of work would be needed to identify all
      places to update.  Adding all those functions would enable
      optimizations (for constant arguments and otherwise) for TS 18661-3
      functions, but it would also substantially expand the enum listing
      built-in functions (and we've had problems with the size of that enum
      in the past), and increase the amount of built-in function
      initialization to do - I don't know what the startup cost involved in
      built-in function initialization is, but it would be something to
      consider when adding such a large set of functions.
      
      There are also a range of optimizations, in match.pd and elsewhere,
      that only operate on the three standard floating-point types.  Ideally
      those would be made generic to all floating-point types, but this
      patch does nothing in that regard.  Special care would be needed
      regarding making sure library functions to which calls are generated
      actually exist.  For example, if sqrt is called on an argument of type
      _Float32, and the result converted to _Float32, this is equivalent to
      doing a square root operation directly on _Float32.  But if the user's
      libm does not have the sqrtf32 function, or the name is not reserved
      because __STDC_WANT_IEC_60559_TYPES_EXT__ was not defined before
      including <math.h>, you can only do that optimization if you convert
      to a call to sqrtf instead.
      
      DECIMAL_DIG now relates to all supported floating-point formats, not
      just float, double and long double; I've raised the question with WG14
      of how this relates to the formula for DECIMAL_DIG in C11 not
      considering this.  TS 18661-3 says it also covers non-arithmetic
      formats only supported by library conversion functions; this patch
      does not add any target hooks to allow for the case where there are
      such formats wider than any supported for arithmetic types (where
      e.g. libc supports conversions involving the binary128 representation,
      but the _Float128 type is not supported).
      
      GCC provides its own <tgmath.h> for some targets.  No attempt is made
      to adapt this to handle the new types.
      
      Nothing is done regarding debug info for the new types (see the
      "Debugger support for __float128 type?" thread on gcc@, Sep/Oct 2015).
      
      No __SIZEOF_*__ macros are added for the new types.
      
      Nothing is done with do_warn_double_promotion.
      
      Nothing is done to include the new types in those determining
      max_align_t, although properly it should be sufficiently aligned for
      any of those types.
      
      The logic for usual arithmetic conversions in c_common_type relies on
      TYPE_PRECISION for floating-point types, which is less than ideal
      (doesn't necessarily correspond to whether one type's values are
      subset of another); looking in more detail at the formats might be
      better.  But since I included code in build_common_tree_nodes to work
      around rs6000 KFmode having precision 113 not 128, I think it should
      work.  Ideally one might have errors in generic code for the case
      where the two types do not have one type's values a subset of the
      other (which is undefined behavior).  But the only case where this can
      actually occur is mixing IBM long double with binary128 on powerpc,
      and rs6000_invalid_binary_op deals with that at present.  TS 18661-3
      does not fully specify the type resulting from the usual arithmetic
      conversions in the case where two _FloatNx types have the same set of
      values; I arranged the code to prefer the greater value of N in that
      case.
      
      The __FP_FAST_FMA* macros are not extended to cover the new types,
      since there are no corresponding built-in functions (if built-in
      fmafN, fmafNx are added, the macros should be extended, and the new
      macros documented).  Also, only a limited set of modes is handled in
      mode_has_fma.
      
      Diagnostics relating to the use of the new types with -pedantic do not
      try to distinguish them from purely nonstandard types such as __int128
      and constant suffixes such as *q.
      
      If you use an unsupported _FloatN / _FloatNx type you get a warning
      about the type defaulting to int after the warning about the type not
      being supported.  That's less than ideal, but it's also a pre-existing
      condition if you use __int128 on a 32-bit system where it's
      unsupported.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.  Other
      back-end changes minimally tested by building cc1 for ia64-linux-gnu,
      powerpc64le-linux-gnu, pdp11-none (the last failed for unrelated
      reasons).
      
      	PR c/32187
      gcc:
      	* tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
      	(TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
      	(TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
      	(TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
      	(TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
      	(TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
      	(TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
      	(TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
      	(TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
      	tree_index values.
      	(NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
      	macros.
      	(struct floatn_type_info): New structure type.
      	(floatn_nx_types): New variable declaration.
      	* tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
      	(FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
      	(COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
      	* tree.c (floatn_nx_types): New variable.
      	(build_common_tree_nodes): Initialize _FloatN, _FloatNx and
      	corresponding complex types.
      	* target.def (floatn_mode): New hook.
      	* targhooks.c: Include "real.h".
      	(default_floatn_mode): New function.
      	* targhooks.h (default_floatn_mode): New prototype.
      	* doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
      	types.
      	* doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
      	effective-target and dg-add-options keywords.
      	(float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
      	Document new effective-target keywords.
      	* doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
      	* doc/tm.texi: Regenerate.
      	* ginclude/float.h (LDBL_DECIMAL_DIG): Define to
      	__LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
      	[__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
      	18661-3.
      	* real.h (struct real_format): Add field ieee_bits.
      	* real.c (ieee_single_format, mips_single_format)
      	(motorola_single_format, spu_single_format, ieee_double_format)
      	(mips_double_format, motorola_double_format)
      	(ieee_extended_motorola_format, ieee_extended_intel_96_format)
      	(ieee_extended_intel_128_format)
      	(ieee_extended_intel_96_round_53_format, ibm_extended_format)
      	(mips_extended_format, ieee_quad_format, mips_quad_format)
      	(vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
      	(decimal_double_format, decimal_quad_format, ieee_half_format)
      	(arm_half_format, real_internal_format: Initialize ieee_bits
      	field.
      	* config/i386/i386.c (ix86_init_builtin_types): Do not initialize
      	float128_type_node.  Set float80_type_node to float64x_type_node
      	if appropriate and long_double_type_node not appropriate.
      	* config/ia64/ia64.c (ia64_init_builtins): Likewise.
      	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
      	Initialize ieee_bits field.
      	* config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
      	(rs6000_init_builtins): Set ieee128_float_type_node to
      	float128_type_node.
      	(rs6000_floatn_mode): New function.
      
      gcc/c:
      	* c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
      	(struct c_declspecs): Add field floatn_nx_idx.
      	* c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
      	and _FloatNx type specifiers.
      	* c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
      	(c_parser_declspecs, c_parser_attribute_any_word)
      	(c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
      	* c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
      	(convert_arguments): Avoid promoting _FloatN and _FloatNx types
      	narrower than double.
      
      gcc/c-family:
      	* c-common.h (RID_FLOAT16, RID_FLOATN_NX_FIRST, RID_FLOAT32)
      	(RID_FLOAT64, RID_FLOAT128, RID_FLOAT32X, RID_FLOAT64X)
      	(RID_FLOAT128X): New enum rid values.
      	(CASE_RID_FLOATN_NX): New macro.
      	* c-common.c (c_common_reswords): Add _FloatN and _FloatNx
      	keywords.
      	(c_common_type_for_mode): Check for _FloatN and _FloatNx and
      	corresponding complex types.
      	(c_common_nodes_and_builtins): For non-C++, register _FloatN and
      	_FloatNx and corresponding complex types.
      	(keyword_begins_type_specifier): Use CASE_RID_FLOATN_NX.
      	* c-cppbuiltin.c (builtin_define_float_constants): Check _FloatN
      	and _FloatNx types for the widest type for determining
      	DECIMAL_DIG.  Define __LDBL_DECIMAL_DIG__ as well as
      	__DECIMAL_DIG__ for long double.  Handle FMA_SUFFIX being NULL.
      	(c_cpp_builtins): Call builtin_define_float_constants for _FloatN
      	and _FloatNx types.
      	* c-lex.c (interpret_float): Handle _FloatN and _FloatNx
      	constants.
      	* c-pretty-print.c (pp_c_floating_constant): Handle _FloatN and
      	_FloatNx types.
      
      gcc/fortran:
      	* trans-types.h (float128_type_node): Rename to
      	gfc_float128_type_node.
      	(complex_float128_type_node): Rename to
      	gfc_complex_float128_type_node.
      	* iso-c-binding.def, trans-intrinsic.c, trans-types.c: All users
      	changed.
      
      gcc/testsuite:
      	* lib/target-supports.exp (check_effective_target_float16)
      	(check_effective_target_float32, check_effective_target_float64)
      	(check_effective_target_float128, check_effective_target_float32x)
      	(check_effective_target_float64x)
      	(check_effective_target_float128x)
      	(check_effective_target_float16_runtime)
      	(check_effective_target_float32_runtime)
      	(check_effective_target_float64_runtime)
      	(check_effective_target_float128_runtime)
      	(check_effective_target_float32x_runtime)
      	(check_effective_target_float64x_runtime)
      	(check_effective_target_float128x_runtime)
      	(check_effective_target_floatn_nx_runtime)
      	(add_options_for_float16, add_options_for_float32)
      	(add_options_for_float64, add_options_for_float128)
      	(add_options_for_float32x, add_options_for_float64x)
      	(add_options_for_float128x): New procedures.
      	* gcc.dg/dfp/floatn.c, gcc.dg/float128-typeof.c,
      	gcc.dg/float128x-typeof.c, gcc.dg/float16-typeof.c,
      	gcc.dg/float32-typeof.c, gcc.dg/float32x-typeof.c,
      	gcc.dg/float64-typeof.c, gcc.dg/float64x-typeof.c,
      	gcc.dg/floatn-arithconv.c, gcc.dg/floatn-errs.c,
      	gcc.dg/floatn-typeof.h, gcc.dg/torture/float128-basic.c,
      	gcc.dg/torture/float128-complex.c,
      	gcc.dg/torture/float128-floath.c, gcc.dg/torture/float128-tg.c,
      	gcc.dg/torture/float128x-basic.c,
      	gcc.dg/torture/float128x-complex.c,
      	gcc.dg/torture/float128x-floath.c, gcc.dg/torture/float128x-tg.c,
      	gcc.dg/torture/float16-basic.c, gcc.dg/torture/float16-complex.c,
      	gcc.dg/torture/float16-floath.c, gcc.dg/torture/float16-tg.c,
      	gcc.dg/torture/float32-basic.c, gcc.dg/torture/float32-complex.c,
      	gcc.dg/torture/float32-floath.c, gcc.dg/torture/float32-tg.c,
      	gcc.dg/torture/float32x-basic.c,
      	gcc.dg/torture/float32x-complex.c,
      	gcc.dg/torture/float32x-floath.c, gcc.dg/torture/float32x-tg.c,
      	gcc.dg/torture/float64-basic.c, gcc.dg/torture/float64-complex.c,
      	gcc.dg/torture/float64-floath.c, gcc.dg/torture/float64-tg.c,
      	gcc.dg/torture/float64x-basic.c,
      	gcc.dg/torture/float64x-complex.c,
      	gcc.dg/torture/float64x-floath.c, gcc.dg/torture/float64x-tg.c,
      	gcc.dg/torture/floatn-basic.h, gcc.dg/torture/floatn-complex.h,
      	gcc.dg/torture/floatn-convert.c, gcc.dg/torture/floatn-floath.h,
      	gcc.dg/torture/floatn-tg.h,
      	gcc.dg/torture/fp-int-convert-float128-ieee-timode.c,
      	gcc.dg/torture/fp-int-convert-float128-ieee.c,
      	gcc.dg/torture/fp-int-convert-float128x-timode.c,
      	gcc.dg/torture/fp-int-convert-float128x.c,
      	gcc.dg/torture/fp-int-convert-float16-timode.c,
      	gcc.dg/torture/fp-int-convert-float16.c,
      	gcc.dg/torture/fp-int-convert-float32-timode.c,
      	gcc.dg/torture/fp-int-convert-float32.c,
      	gcc.dg/torture/fp-int-convert-float32x-timode.c,
      	gcc.dg/torture/fp-int-convert-float32x.c,
      	gcc.dg/torture/fp-int-convert-float64-timode.c,
      	gcc.dg/torture/fp-int-convert-float64.c,
      	gcc.dg/torture/fp-int-convert-float64x-timode.c,
      	gcc.dg/torture/fp-int-convert-float64x.c: New tests.
      	* gcc.dg/torture/fp-int-convert.h (TEST_I_F): Add argument for
      	maximum exponent of floating-point type.  Use it in testing
      	whether 0x8...0 fits in the floating-point type.  Always treat -1
      	(signed 0xf...f) as fitting in the floating-point type.
      	(M_OK1): New macro.
      	* gcc.dg/torture/fp-int-convert-double.c,
      	gcc.dg/torture/fp-int-convert-float.c,
      	gcc.dg/torture/fp-int-convert-float128-timode.c,
      	gcc.dg/torture/fp-int-convert-float128.c,
      	gcc.dg/torture/fp-int-convert-float80-timode.c,
      	gcc.dg/torture/fp-int-convert-float80.c,
      	gcc.dg/torture/fp-int-convert-long-double.c,
      	gcc.dg/torture/fp-int-convert-timode.c: Update calls to TEST_I_F.
      
      libcpp:
      	* include/cpplib.h (CPP_N_FLOATN, CPP_N_FLOATNX)
      	(CPP_N_WIDTH_FLOATN_NX, CPP_FLOATN_SHIFT, CPP_FLOATN_MAX): New
      	macros.
      	* expr.c (interpret_float_suffix): Handle fN, fNx, FN and FNx
      	suffixes.
      
      From-SVN: r239625
      Joseph Myers committed
  17. 29 Jan, 2016 2 commits
  18. 04 Jan, 2016 1 commit
  19. 17 Dec, 2015 1 commit
  20. 18 Nov, 2015 1 commit
    • Add out-of-line versions of some <stdatomic.h> functions (PR c/65083). · c29c36ad
      PR c/65083 notes that some functions in <stdatomic.h> are normal
      functions, not generic functions, and so need to have out-of-line
      copies that can be called when macro expansion is suppressed (unlike
      the generic functions where DR#419 makes it undefined if you suppress
      a macro expansion).
      
      This patch adds such out-of-line definitions in libatomic for those
      six functions, at a new LIBATOMIC_1.2 symbol version, as trivial
      wrappers to the <stdatomic.h> macros, along with declarations of those
      functions in <stdatomic.h>.  Tests are added that are based on the
      corresponding tests for the macros, but with parentheses around the
      function names to force the out-of-line functions to be used.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc:
      	* ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
      	(atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
      	(atomic_flag_clear, atomic_flag_clear_explicit): Declare as
      	functions before defining as macros.
      
      gcc/testsuite:
      	* gcc.dg/atomic/stdatomic-fence-2.c,
      	gcc.dg/atomic/stdatomic-flag-2.c: New tests.
      
      libatomic:
      	* fence.c, flag.c: New files.
      	* Makefile.am (libatomic_la_SOURCES): Add fence.c and flag.c.
      	* Makefile.in: Regenerate.
      	* configure.ac (libtool_VERSION): Change to 3:0:2.
      	* configure: Regenerate.
      	* libatomic.map (LIBATOMIC_1.2): New symbol version.
      
      From-SVN: r230578
      Joseph Myers committed
  21. 09 Jan, 2015 2 commits
    • unwind-arm-common.h: Revert previous commit. · 4c470097
      gcc:
          * ginclude/unwind-arm-common.h: Revert previous commit.
      
      libstdc++-v3:
          * libsupc++/unwind-cxx.h: Revert previous commit.
      
      From-SVN: r219392
      Andreas Tobler committed
    • configure.ac: Don't add ${libgcj} for arm*-*-freebsd*. · 82a19768
      toplevel:
      
          * configure.ac: Don't add ${libgcj} for arm*-*-freebsd*.
          * configure: Regenerate.
      gcc:
          * config.gcc (arm*-*-freebsd*): New configuration.
          * config/arm/freebsd.h: New file.
          * config.host: Add extra components for arm*-*-freebsd*.
          * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
          * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
      
      libgcc:
      
          * config.host (arm*-*-freebsd*): Add new configuration for
          arm*-*-freebsd*.
          * config/arm/freebsd-atomic.c: New file.
          * config/arm/t-freebsd: Likewise.
          * config/arm/unwind-arm.h: Add __FreeBSD__ to the list of
          'PC-relative indirect' OS's.
      
      libatomic:
      
          * configure.tgt: Exclude arm*-*-freebsd* from try_ifunc.
      
      libstdc++-v3:
      
          * configure.host: Add arm*-*-freebsd* port_specific_symbol_files.
      
      From-SVN: r219388
      Andreas Tobler committed
  22. 05 Jan, 2015 1 commit
  23. 24 Oct, 2014 1 commit
  24. 11 Sep, 2014 1 commit
  25. 14 Aug, 2014 1 commit
    • DR 458 · 0ee9c843
      	DR 458
      	* ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
      	(ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
      
      	* gcc.dg/c11-stdatomic-2.c: New test.
      
      From-SVN: r213981
      Marek Polacek committed
  26. 21 May, 2014 1 commit
    • config.gcc (*-*-dragonfly*): New target. · dbed5a9b
      2014-05-21  John Marino  <gnugcc@marino.st>
      
      gcc:
      
      	* config.gcc (*-*-dragonfly*): New target.
      	* configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
      	* configure: Regenerate.
      	* config/dragonfly-stdint.h: New.
      	* config/dragonfly.h: New.
      	* config/dragonfly.opt: New.
      	* config/i386/dragonfly.h: New.
      	* ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
      
      include:
      
      	* liberty.h: Use basename function on DragonFly.
      
      libcilkrts:
      
      	* runtime/os-unix.c (__DragonFly__): New target.
      
      libgcc:
      
      	* config.host (*-*-dragonfly*): New target.
      	* crtstuff.c: Make dl_iterate_support generic on *bsd.
      	* enable-execute-stack-mprotect.c: Always mprotect on FreeBSD.
      	* unwind-dw2-fde-dip.c: Add dl_iterate_phr support for DragonFly.
      	* config/i386/dragonfly-unwind.h: New.
      
      libitm:
      
      	* configure.tgt (*-*-dragonfly*): New target.
      
      libstdc++-v3:
      
      	* acinclude.m4 (*-*-dragonfly*): New target.
      	* configure: Regenerate.
      	* configure.host (*-*-dragonfly*): New target.
      	* config/locale/dragonfly/c_locale.cc: New.
      	* config/locale/dragonfly/ctype_members.cc: New.
      	* config/os/bsd/dragonfly/ctype_base.h: New.
      	* config/os/bsd/dragonfly/ctype_configure_char.cc: New.
      	* config/os/bsd/dragonfly/ctype_inline.h: New.
      	* config/os/bsd/dragonfly/os_defines.h: New.
      
      From-SVN: r210694
      John Marino committed
  27. 02 Jan, 2014 1 commit
  28. 13 Nov, 2013 1 commit
    • extend.texi (Statement Exprs, Typeof): Discuss __auto_type. · 38b7bc7f
      	* doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
      	* ginclude/stdatomic.h (kill_dependency, atomic_store_explicit)
      	(atomic_load_explicit, atomic_exchange_explicit)
      	(atomic_compare_exchange_strong_explicit)
      	(atomic_compare_exchange_weak_explicit): Use __auto_type to
      	declare variable initialized with PTR argument.
      
      c-family:
      	* c-common.h (enum rid): Add RID_AUTO_TYPE.
      	* c-common.c (c_common_reswords): Add __auto_type.
      	(keyword_begins_type_specifier): Handle RID_AUTO_TYPE.
      
      c:
      	* c-tree.h (c_typespec_keyword): Add cts_auto_type.
      	* c-decl.c (declspecs_add_type, finish_declspecs): Handle
      	__auto_type.
      	* c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
      	(c_parser_attribute_any_word, c_parser_objc_selector): Handle
      	RID_AUTO_TYPE.
      	(c_parser_declspecs): Take argument AUTO_TYPE_OK.
      	(c_parser_declaration_or_fndef, c_parser_struct_declaration)
      	(c_parser_declarator, c_parser_direct_declarator_inner)
      	(c_parser_parameter_declaration, c_parser_type_name): All callers
      	changed.
      	(c_parser_declaration_or_fndef): Handle declarations with type
      	determined from the initializer.
      
      testsuite:
      	* gcc.dg/atomic/stdatomic-vm.c, gcc.dg/auto-type-1.c,
      	gcc.dg/auto-type-2.c: New tests.
      
      From-SVN: r204731
      Joseph Myers committed
  29. 08 Nov, 2013 1 commit
    • [multiple changes] · 39b2468c
      2013-11-08  Andrew MacLeod  <amacleod@redhat.com>
      	    Joseph Myers  <joseph@codesourcery.com>
      
      	* ginclude/stdatomic.h: New file.
      	* Makefile.in (USER_H): Add stdatomic.h.
      
      testsuite:
      2013-11-08  Joseph Myers  <joseph@codesourcery.com>
      
      	* gcc.dg/atomic/stdatomic-compare-exchange-1.c,
      	gcc.dg/atomic/stdatomic-compare-exchange-2.c,
      	gcc.dg/atomic/stdatomic-compare-exchange-3.c,
      	gcc.dg/atomic/stdatomic-compare-exchange-4.c,
      	gcc.dg/atomic/stdatomic-exchange-1.c,
      	gcc.dg/atomic/stdatomic-exchange-2.c,
      	gcc.dg/atomic/stdatomic-exchange-3.c,
      	gcc.dg/atomic/stdatomic-exchange-4.c,
      	gcc.dg/atomic/stdatomic-fence.c, gcc.dg/atomic/stdatomic-flag.c,
      	gcc.dg/atomic/stdatomic-generic.c,
      	gcc.dg/atomic/stdatomic-kill-dep.c,
      	gcc.dg/atomic/stdatomic-load-1.c,
      	gcc.dg/atomic/stdatomic-load-2.c,
      	gcc.dg/atomic/stdatomic-load-3.c,
      	gcc.dg/atomic/stdatomic-load-4.c,
      	gcc.dg/atomic/stdatomic-lockfree.c,
      	gcc.dg/atomic/stdatomic-op-1.c, gcc.dg/atomic/stdatomic-op-2.c,
      	gcc.dg/atomic/stdatomic-op-3.c, gcc.dg/atomic/stdatomic-op-4.c,
      	gcc.dg/atomic/stdatomic-store-1.c,
      	gcc.dg/atomic/stdatomic-store-2.c,
      	gcc.dg/atomic/stdatomic-store-3.c,
      	gcc.dg/atomic/stdatomic-store-4.c, gcc.dg/c11-stdatomic-1.c: New
      	tests.
      
      From-SVN: r204603
      Joseph Myers committed
  30. 10 Jan, 2013 1 commit
  31. 06 Oct, 2012 2 commits
    • re PR c++/52764 (Including <cstdint> after <stdint.h> fails to define limit macros) · a2ca8577
      2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/52764
      	* ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define
      	__STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS.
      	* ginclude/stdint-gcc.h: In C++11 unconditionally define
      	limit and constant macros.
      
      /testsuite
      2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/52764
      	* g++.dg/cpp0x/stdint.C: New.
      
      /libstdc++-v3
      2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/52764
      	* include/c_global/cstdint: Remove __STDC_LIMIT_MACROS and
      	__STDC_CONSTANT_MACROS related macros.
      
      From-SVN: r192174
      Paolo Carlini committed
    • re PR c++/54249 ([C++11] No ::nullptr_t in header <stddef.h>) · 21c278c9
      2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54249
      	* ginclude/stddef.h: In C++11 mode declare nullptr_t in the global
      	namespace.
      
      /testsuite
      2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54249
      	* g++.dg/cpp0x/stddef.C: New.
      
      From-SVN: r192173
      Paolo Carlini committed
  32. 14 Mar, 2012 1 commit
    • Remove obsolete IRIX 6.5 support · b24513a1
      	libstdc++-v3:
      	* configure.host (irix6.5*): Remove.
      	* config/os/irix: Remove.
      	* config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc())
      	[_GLIBCXX_FIONREAD_TAKES_OFF_T]: Remove.
      
      	* doc/xml/faq.xml: Remove IRIX reference.
      	* doc/xml/manual/using.xml (Finding Dynamic or Shared Libraries):
      	Remove IRIX example.
      
      	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
      	Remove mips-sgi-irix6* handling.
      	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
      	* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
      	* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
      	* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
      	* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
      	* testsuite/23_containers/list/pthread1.cc: Likewise.
      	* testsuite/23_containers/list/pthread5.cc: Likewise.
      	* testsuite/23_containers/map/pthread6.cc: Likewise.
      	* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
      	* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
      	* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
      	* testsuite/30_threads/async/42819.cc: Likewise.
      	* testsuite/30_threads/async/49668.cc: Likewise.
      	* testsuite/30_threads/async/any.cc: Likewise.
      	* testsuite/30_threads/async/async.cc: Likewise.
      	* testsuite/30_threads/async/launch.cc: Likewise.
      	* testsuite/30_threads/async/sync.cc: Likewise.
      	* testsuite/30_threads/call_once/39909.cc: Likewise.
      	* testsuite/30_threads/call_once/49668.cc: Likewise.
      	* testsuite/30_threads/call_once/call_once1.cc: Likewise.
      	* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
      	* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
      	Likewise.
      	* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
      	* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
      	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
      	* testsuite/30_threads/future/cons/move.cc: Likewise.
      	* testsuite/30_threads/future/members/45133.cc: Likewise.
      	* testsuite/30_threads/future/members/get.cc: Likewise.
      	* testsuite/30_threads/future/members/get2.cc: Likewise.
      	* testsuite/30_threads/future/members/share.cc: Likewise.
      	* testsuite/30_threads/future/members/valid.cc: Likewise.
      	* testsuite/30_threads/future/members/wait.cc: Likewise.
      	* testsuite/30_threads/future/members/wait_for.cc: Likewise.
      	* testsuite/30_threads/future/members/wait_until.cc: Likewise.
      	* testsuite/30_threads/lock/1.cc: Likewise.
      	* testsuite/30_threads/lock/2.cc: Likewise.
      	* testsuite/30_threads/lock/3.cc: Likewise.
      	* testsuite/30_threads/lock/4.cc: Likewise.
      	* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
      	* testsuite/30_threads/mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
      	* testsuite/30_threads/mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
      	* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
      	* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/packaged_task/49668.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
      	* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
      	* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
      	* testsuite/30_threads/promise/cons/1.cc: Likewise.
      	* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
      	* testsuite/30_threads/promise/cons/move.cc: Likewise.
      	* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
      	* testsuite/30_threads/promise/members/get_future.cc: Likewise.
      	* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_value.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
      	* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
      	* testsuite/30_threads/promise/members/swap.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
      	Likewise.
      	* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/get.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
      	* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
      	* testsuite/30_threads/this_thread/1.cc: Likewise.
      	* testsuite/30_threads/this_thread/2.cc: Likewise.
      	* testsuite/30_threads/this_thread/3.cc: Likewise.
      	* testsuite/30_threads/this_thread/4.cc: Likewise.
      	* testsuite/30_threads/thread/cons/1.cc: Likewise.
      	* testsuite/30_threads/thread/cons/2.cc: Likewise.
      	* testsuite/30_threads/thread/cons/3.cc: Likewise.
      	* testsuite/30_threads/thread/cons/4.cc: Likewise.
      	* testsuite/30_threads/thread/cons/49668.cc: Likewise.
      	* testsuite/30_threads/thread/cons/5.cc: Likewise.
      	* testsuite/30_threads/thread/cons/6.cc: Likewise.
      	* testsuite/30_threads/thread/cons/7.cc: Likewise.
      	* testsuite/30_threads/thread/cons/8.cc: Likewise.
      	* testsuite/30_threads/thread/cons/9.cc: Likewise.
      	* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
      	* testsuite/30_threads/thread/members/1.cc: Likewise.
      	* testsuite/30_threads/thread/members/2.cc: Likewise.
      	* testsuite/30_threads/thread/members/3.cc: Likewise.
      	* testsuite/30_threads/thread/members/4.cc: Likewise.
      	* testsuite/30_threads/thread/members/5.cc: Likewise.
      	* testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
      	* testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
      	* testsuite/30_threads/thread/swap/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
      	* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
      	* testsuite/30_threads/try_lock/1.cc: Likewise.
      	* testsuite/30_threads/try_lock/2.cc: Likewise.
      	* testsuite/30_threads/try_lock/3.cc: Likewise.
      	* testsuite/30_threads/try_lock/4.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
      	* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
      	* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
      	* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
      	* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
      	* testsuite/ext/rope/pthread7-rope.cc: Likewise.
      	* testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
      	Likewise.
      	* testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
      	Likewise.
      
      	* testsuite/23_containers/vector/capacity/resize/1.cc: Remove
      	dg-options for mips*-*-irix6*.
      
      	* testsuite/27_io/ios_base/storage/1.cc: Likewise.
      	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
      	* testsuite/27_io/ios_base/storage/3.cc: Likewise.
      
      	* testsuite/lib/libstdc++.exp (v3-build_support): Remove IRIX 6
      	workaround.
      
      	libjava:
      	* configure.ac (libgcj_cv_exidx): Remove IRIX 6 ld workaround.
      	(mips-sgi-irix6*): Remove.
      	(mips-sgi-irix*): Remove.
      	(AC_CHECK_HEADERS): Remove bstring.h.
      	* configure: Regenerate.
      	* include/config.h.in: Regenerate.
      	* configure.host (mips-sgi-irix6*): Remove.
      
      	* include/posix-signal.h [__sgi__]: Remove.
      
      	* gnu/java/net/natPlainDatagramSocketImplPosix.cc
      	[HAVE_BSTRING_H]: Remove.
      	* gnu/java/net/natPlainDatagramSocketImplWin32.cc: Likewise.
      	* gnu/java/net/natPlainSocketImplPosix.cc: Likewise.
      
      	libitm:
      	* configure.tgt (*-*-irix6*): Remove.
      
      	libgomp:
      	* configure.tgt (mips-sgi-irix6*): Remove.
      
      	libgfortran:
      	* intrinsics/c99_functions.c [__sgi__ && !HAVE_COMPLEX_H]: Remove.
      
      	libgcc:
      	* config.host (mips-sgi-irix6.5*): Remove.
      	* config/mips/irix-crti.S: Remove.
      	* config/mips/irix-crtn.S: Remove.
      	* config/mips/irix6-unwind.h: Remove.
      	* config/mips/t-irix6: Remove.
      	* config/mips/t-slibgcc-irix: Remove.
      
      	gnattools:
      	* configure.ac (mips-sgi-irix*): Remove.
      	* configure: Regenerate.
      
      	gcc/testsuite:
      	* g++.dg/other/anon5.C: Don't skip on mips-sgi-irix*.
      	* g++.dg/tree-prof/partition1.C: Likewise.
      	* g++.dg/tree-prof/partition2.C: Likewise.
      	* g++.old-deja/g++.other/init19.C: Remove mips-sgi-irix*
      	handling.
      	* gcc.c-torture/compile/labels-3.c: Remove dg-options.
      	* gcc.c-torture/execute/20010724-1.c: Remove.
      	* gcc.c-torture/execute/20010724-1.x: Remove.
      	* gcc.c-torture/execute/20040208-2.c: Remove.
      	* gcc.c-torture/execute/20040208-2.x: Remove.
      	* gcc.c-torture/execute/ieee/20000320-1.c [__mips__ && __sgi__]:
      	Remove.
      	(main) [__mips__ && __sgi__]: Remove.
      	* gcc.c-torture/execute/ieee/copysign1.c: Remove IRIX reference.
      	* gcc.c-torture/execute/ieee/copysign2.c: Likewise.
      	* gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Remove
      	mips-sgi-irix6* handling.
      	* gcc.dg/cpp/assert4.c [__mips__]: Remove __sgi__, sgi.
      	* gcc.dg/torture/20090618-1.c: Don't skip on mips-sgi-irix*.
      	* gcc.dg/torture/builtin-frexp-1.c: Remove mips*-*-irix6*
      	handling.
      	* gcc.dg/torture/builtin-logb-1.c: Likewise.
      	* gcc.dg/torture/pr47917.c: Remove mips-sgi-irix6.5 handling.
      	* gcc.dg/tree-ssa/ssa-store-ccp-3.c: Don't skip on mips*-*-irix*.
      	* gcc.misc-tests/linkage.exp: Remove mips-sgi-irix6* handling.
      	* gcc.target/mips/args-1.c [!__sgi__]: Remove.
      	* gcc.target/mips/interrupt_handler-2.c: Don't skip on
      	mips-sgi-irix6*.
      	* gcc.target/mips/interrupt_handler-3.c: Likewise.
      	* gcc.target/mips/save-restore-1.c: Don't skip on mips-sgi-irix6*.
      	* gcc.target/mips/save-restore-3.c: Likewise.
      	* gcc.target/mips/save-restore-4.c: Likewise.
      	* gcc.target/mips/save-restore-5.c: Likewise.
      	* gfortran.dg/g77/cabs.f: Don't xfail on mips-sgi-irix6*.
      	* lib/prune.exp (prune_gcc_output): Remove pruning of IRIX 6 ld
      	messages.
      	* lib/target-libpath.exp (set_ld_library_path_env_vars): Remove
      	IRIX 6 handling.
      	(restore_ld_library_path_env_vars): Likewise.
      	* lib/target-supports.exp (check_profiling_available): Remove
      	mips*-*-irix* handling.
      	(check_ascii_locale_available): Remove mips-sgi-irix* handling.
      	(add_options_for_c99_runtime): Remove mips-sgi-irix6.5* handling.
      	* objc.dg/stabs-1.m: Don't xfail on mips-sgi-irix6.5.
      
      	gcc/ada:
      	* gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
      
      	* a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
      	s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
      	s-osinte-irix.ads, s-proinf-irix-athread.adb,
      	s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
      	system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
      	Remove.
      
      	* adaint.c [__mips && __sgi]: Remove.
      	(__gnat_number_of_cpus) [__mips && __sgi]: Remove.
      	[IS_CROSS && !(__mips && __sgi)]: Remove.
      	* adaint.h [sgi && _LFAPI]: Remove.
      	* cstreams.c (__gnat_full_name) [sgi]: Remove.
      	* env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
      	(__gnat_clearenv) [__mips && __sgi]: Remove.
      	* errno.c (_SGI_MP_SOURCE): Remove.
      	* gsocket.h [sgi]: Remove.
      	* init.c: Remove IRIX reference.
      	[sgi]: Remove.
      	* link.c [sgi]: Remove.
      	* s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
      	(main) [__mips && __sgi] (MAX_tv_sec): Don't define.
      	(CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
      	* sysdep.c [sgi]: Remove.
      	(getc_immediate_common) [sgi]: Remove.
      	(__gnat_localtime_tzoff) [sgi]: Remove.
      	* terminals.c [__mips && __sgi] (IRIX): Don't define.
      	[IRIX] (USE_GETPTY): Don't define.
      	(allocate_pty_desc) [USE_GETPTY]: Remove.
      
      	* g-traceb.ads: Remove IRIX reference.
      	* g-trasym.ads: Likewise.
      	* memtrack.adb: Likewise.
      	* s-interr-sigaction.adb: Likewise.
      
      	* gnat_rm.texi (Implementation Advice): Remove SGI info.
      	(Implementation Defined Characteristics): Likewise.
      	* gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
      	Remove.
      	(Irix-Specific Considerations): Remove.
      
      	gcc/cp:
      	* Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
      
      	gcc:
      	* config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
      	(mips-sgi-irix6.5*): Remove.
      	* config.host (mips-sgi-irix*): Remove.
      	* configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
      	(set_have_as_tls): Remove *-*-irix6*.
      	(gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
      	* configure: Regenerate.
      
      	* config/mips/iris6.h: Remove.
      	* config/mips/iris6.opt: Remove.
      	* config/mips/t-irix6: Remove.
      
      	* config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
      	(TARGET_IRIX6): Remove.
      	(TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
      	Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
      	* config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
      	handling.
      	(mips_file_start): Likewise.
      	* config/mips/mips-protos.h (irix_asm_output_align): Remove.
      
      	* config/mips/driver-native.c [__sgi__]: Remove.
      	(host_detect_local_cpu) [__sgi__]: Remove.
      
      	* config/mips/gnu-user.h: Remove iris5.h reference.
      
      	* config/mips/mips-modes.def: Remove IRIX 6 reference.
      	* config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
      	* config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
      	Remove.
      
      	* gcc.c (main): Move asm_debug initialization ...
      	(asm_debug): ... here.
      
      	* ginclude/stddef.h (__STDDEF_H__): Don't define.
      
      	* defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
      	* system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
      	* collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
      	(main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
      	[LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
      	* doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
      	Remove.
      	* doc/tm.texi: Regenerate.
      
      	* doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
      	IRIX 6 reference.
      	(MIPS Options, -march): Remove IRIX reference.
      	* doc/install.texi (Binaries, SGI IRIX): Remove.
      	(Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
      	of section.
      	* doc/trouble.texi (Interoperation): Remove -lgl_s handling.
      
      	fixincludes:
      	* inclhack.def (broken_cabs): Remove IRIX and SunOS 4 support.
      	(irix___restrict): Remove.
      	(irix___generic1): Remove.
      	(irix___generic2): Remove.
      	(irix_asm_apostrophe): Remove.
      	(irix_complex): Remove.
      	(irix_pthread_init): Remove.
      	(irix_socklen_t): Remove.
      	(irix_stdint_c99_mode): Remove.
      	(irix_stdint_c99_types): Remove.
      	(irix_stdint_c99_macros): Remove.
      	(irix_stdio_va_list): Remove IRIX 6.5 support.
      	(irix_wcsftime): Remove.
      	(stdio_va_list): Remove IRIX 6.5 support.
      	(svr4_profil): Remove IRIX bypass.
      	* fixincl.x: Regenerate.
      
      	* tests/base/complex.h [IRIX_COMPLEX_CHECK]: Remove.
      	* tests/base/internal/math_core.h: Remove.
      	* tests/base/internal/sgimacros.h: Remove.
      	* tests/base/internal/wchar_core.h: Remove.
      	* tests/base/math.h [BROKEN_CABS_CHECK]: Remove IRIX and SunOS 4
      	support.
      	* tests/base/pthread.h [IRIX_PTHREAD_INIT_CHECK]: Remove.
      	* tests/base/stdint-irix65.h: Remove.
      	* tests/base/stdint.h [IRIX_STDINT_C99_MODE_CHECK]: Remove.
      	* tests/base/sys/asm.h: Remove.
      	* tests/base/sys/socket.h [IRIX_SOCKLEN_T_CHECK]: Remove.
      
      	contrib:
      	* config-list.mk (LIST): Remove mips-sgi-irix6.5.
      
      	toplevel:
      	* MAINTAINERS (OS Port Maintainers): Remove irix.
      	* configure.ac (enable_libgomp): Remove *-*-irix6*.
      	(unsupported_languages): Remove mips-sgi-irix6.*.
      	(noconfigdirs): Don't add ${libgcj} for mips*-*-irix6*.
      	(with_stabs): Remove.
      	* configure: Regenerate.
      
      From-SVN: r185390
      Rainer Orth committed
  33. 12 Mar, 2012 2 commits
    • Remove obsolete Tru64 UNIX V5.1B support · 5c30094f
      	libstdc++-v3:
      	* configure.host: Remove osf* handling.
      	* config/os/osf: Remove.
      	* doc/xml/manual/using.xml: Remove OSF reference.
      
      	* testsuite/18_support/pthread_guard.cc: Remove alpha*-*-osf*
      	handling.
      	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
      	Likewise.
      	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
      	* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
      	* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
      	* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
      	* testsuite/23_containers/list/pthread1.cc: Likewise.
      	* testsuite/23_containers/list/pthread5.cc: Likewise.
      	* testsuite/23_containers/map/pthread6.cc: Likewise.
      	* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
      	Likewise.
      	* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
      	* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
      	* testsuite/30_threads/async/42819.cc: Likewise.
      
      	* libstdc++-v3/testsuite/30_threads/async/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/any.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/async.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/launch.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/sync.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/call_once/39909.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/call_once/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/cons/move.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/45133.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/get.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/get2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/share.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/valid.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/wait.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/move.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/swap.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/5.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/6.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/7.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/8.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/9.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/5.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/swap/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc: Likewise.
      	* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
      
      	libobjc:
      	* configure.ac (enable_objc_gc): Remove alpha*-dec-osf* handling.
      	* configure: Regenerate.
      
      	* thr.c (_XOPEN_SOURCE): Define unconditionally.
      
      	libjava:
      	* configure.ac (alpha*-dec-osf*): Remove.
      	* configure: Regenerate.
      	* configure.host (alpha*-dec-osf*): Remove.
      
      	* gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption): Use
      	IPV6_MULTICAST_IF unconditionally.
      	* gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption):
      	Likewise.
      	* gnu/java/net/natPlainSocketImplPosix.cc
      	(gnu::java::net::PlainSocketImpl::accept): Use ::accept instead of
      	_Jv_accept.
      	* include/posix-signal.h [__alpha__ && __osf__]: Remove.
      	* include/posix.h (_POSIX_PII_SOCKET): Don't define.
      	(_Jv_accept): Remove.
      
      	* java/io/File.java (File._access): Rename to access.
      	Change callers.
      	(File._stat): Likewise.
      	* java/io/File.h: Regenerate.
      	* classpath/lib/java/io/File.class: Regenerate.
      	* java/io/natFilePosix.cc (java::io::File::_access): Rename to
      	access.
      	(java::io::File::_stat): Rename to stat.
      	* java/io/natFileWin32.cc: Likewise.
      
      	* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
      	Remove alpha*-dec-osf* handling.
      	* testsuite/libjava.jvmti/jvmti-interp.exp
      	(gcj_jni_compile_c_to_so): Likewise.
      	* testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o):
      	Likewise.
      
      	libitm:
      	* configure.tgt (*-*-osf*): Remove.
      	* configure: Regenerate.
      
      	libgomp:
      	* configure.tgt (alpha*-dec-osf*): Remove.
      
      	* config/osf/sem.h: Remove.
      	* config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
      
      	libgfortran:
      	* configure.ac: Remove Tru64 reference.
      	* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove alpha*-dec-osf*
      	handling.
      	* configure: Regenerate.
      	* intrinsics/c99_functions.c [__osf__]: Remove.
      
      	libgcc:
      	* config.host: Remove alpha*-dec-osf5.1* handling.
      	* config/alpha/gthr-posix.c: Remove.
      	* config/alpha/libgcc-osf5.ver: Remove.
      	* config/alpha/osf5-unwind.h: Remove.
      	* config/alpha/t-osf-pthread: Remove.
      	* config/alpha/t-slibgcc-osf: Remove.
      	* config/t-crtfm (crtfastmath.o): Remove -frandom-seed.
      	* gthr-posix.h [!_REENTRANT && __osf__] (_REENTRANT): Don't define.
      	[__osf__ && _PTHREAD_USE_MANGLED_NAMES_]: Remove.
      	* mkmap-flat.awk: Remove osf_export handling.
      
      	gnattools:
      	* configure.ac: Remove alpha*-dec-osf* handling.
      	* configure: Regenerate.
      
      	gcc/testsuite:
      	* g++.dg/abi/rtti3.C: Remove alpha*-dec-osf* handling.
      	* g++.dg/abi/thunk4.C: Likewise.
      	* g++.dg/cdce3.C: Don't skip on*-dec-osf5*.
      	Adapt line numbers.
      	* g++.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
      	handling.
      	* g++.dg/cpp0x/constexpr-rom.C: Likewise.
      	* g++.dg/eh/spbp.C: Likewise.
      	* g++.dg/ext/label13.C: Likewise.
      	* g++.dg/guality/guality.exp: Likewise.
      	* g++.dg/other/anon5.C: Likewise.
      	* g++.dg/other/pragma-ep-1.C: Remove.
      	* g++.dg/warn/miss-format-1.C: Remove alpha*-dec-osf* handling.
      	* g++.dg/warn/pr31246.C: Likewise.
      	* g++.dg/warn/weak1.C: Likewise.
      	* g++.old-deja/g++.eh/badalloc1.C: Likewise.
      	* g++.old-deja/g++.ext/attrib5.C: Likewise.
      	* gcc.c-torture/compile/limits-declparen.c: Likewise.
      	* gcc.c-torture/compile/limits-pointer.c: Likewise.
      	* gcc.c-torture/execute/20001229-1.c: Remove __osf__ handling.
      	* gcc.dg/attr-weakref-1.c: Remove alpha*-dec-osf* handling.
      	* gcc.dg/c99-stdint-6.c: Remove alpha*-dec-osf5* handling.
      	* gcc.dg/c99-tgmath-1.c: Likewise.
      	* gcc.dg/c99-tgmath-2.c: Likewise.
      	* gcc.dg/c99-tgmath-3.c: Likewise.
      	* gcc.dg/c99-tgmath-4.c: Likewise.
      	* gcc.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
      	handling.
      	* gcc.dg/debug/pr49032.c: Likewise.
      	* gcc.dg/guality/guality.exp: Likewise.
      	* gcc.dg/intmax_t-1.c: Likewise.
      	* gcc.dg/pr48616.c: Likewise.
      	* gcc.dg/pragma-ep-1.c: Remove.
      	* gcc.dg/pragma-ep-2.c: Remove.
      	* gcc.dg/pragma-ep-3.c: Remove.
      	* gcc.dg/torture/pr47917.c: Remove alpha*-dec-osf5* handling.
      	* gcc.dg/tree-ssa/pr42585.c: Remove alpha*-dec-osf* handling.
      	* gcc.misc-tests/gcov-14.c: Likewise.
      	* gfortran.dg/guality/guality.exp: Likewise.
      	* lib/target-supports.exp (check_weak_available): Likewise.
      	(add_options_for_tls): Likewise.
      	(check_ascii_locale_available): Likewise.
      	* obj-c++.dg/dwarf-2.mm: Likewise.
      	* objc.dg/dwarf-1.m: Likewise.
      	* objc.dg/dwarf-2.m: Likewise.
      
      	gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
      	handling.
      	* c-pragma.c (handle_pragma_extern_prefix): Remove.
      	(init_pragma): Don't register extern_prefix.
      
      	gcc/po:
      	* EXCLUDES (mips-tdump.c, mips-tfile.c): Remove.
      
      	gcc:
      	* config.gcc (alpha*-dec-osf5.1*): Remove.
      	* config.host (alpha*-dec-osf*): Remove.
      	* configure.ac (*-*-osf*): Remove.
      	(alpha*-dec-osf*): Remove.
      	* configure: Regenerate.
      
      	* config/alpha/host-osf.c, config/alpha/osf5.h,
      	config/alpha/osf5.opt, config/alpha/va_list.h, config/alpha/x-osf:
      	Remove.
      
      	* config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
      	* config/alpha/alpha.c (struct machine_function): Update comment.
      	(alpha_start_function): Remove Tru64 UNIX as handling for
      	max_frame_size.
      	* config/alpha/alpha.md ("exception_receiver"): Remove
      	TARGET_LD_BUGGY_LDGP.
      	("*exception_receiver_2"): Likewise.
      	* except.c (finish_eh_generation): Remove Tru64 reference.
      	* ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
      	* system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
      	* target.def (handle_pragma_extern_prefix): Remove.
      
      	* Makefile.in (mips-tfile.o-warn): Remove.
      	(ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
      	(mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
      	* mips-tdump.c, mips-tfile.c: Remove.
      
      	* doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
      	extern_prefix.
      	* doc/install.texi (Binaries): Remove Tru64 UNIX reference.
      	(Specific, alpha*-dec-osf5.1): Note removal.
      	* doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
      	Remove.
      	* doc/tm.texi: Regenerate.
      	* doc/trouble.texi (Cross-Compiler Problems): Remove.
      
      	gcc/ada:
      	* gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
      	* a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
      	s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
      	s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
      	system-tru64.ads: Remove.
      
      	* adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
      	Remove.
      	[IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
      	* env.c [__alpha__ && __osf__]: Remove.
      	* gsocket.h (_OSF_SOURCE): Remove.
      	(HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
      	* init.c [__alpha__ && __osf__]: Remove.
      	* link.c [__osf__]: Remove.
      	* s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
      	[__osf__ && !_SS_MAXSIZE]: Remove.
      	* sysdep.c [__osf__]: Remove.
      	* terminals.c [__alpha__ && __osf__]: Remove.
      	[OSF1]: Remove.
      
      	* g-traceb.ads: Remove Tru64 reference.
      	* g-trasym.ads: Likewise.
      	* gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
      	(Summary of Run-Time Configurations): Likewise.
      	* memtrack.adb: Likewise.
      
      	fixincludes:
      	* inclhack.def (alpha___extern_prefix): Remove.
      	(alpha___extern_prefix_standards): Remove.
      	(alpha___extern_prefix_sys_stat): Remove.
      	(alpha_bad_lval): Remove.
      	(alpha_pthread): Remove.
      	(alpha_pthread_gcc): Remove.
      	(alpha_pthread_init): Remove.
      	* fixincl.x: Regenerate.
      	* tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: Remove.
      	[ALPHA_PTHREAD_GCC_CHECK]: Remove.
      	[ALPHA_PTHREAD_INIT_CHECK]: Remove.
      	* tests/base/standards.h: Remove.
      	* tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK]:
      	Remove.
      	* tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: Remove.
      	[ALPHA_BAD_LVAL_CHECK]: Remove.
      
      	contrib:
      	* config-list.mk (LIST): Remove alpha-dec-osf5.1.
      
      	config:
      	* weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
      	alpha*-dec-osf*.
      
      	toplevel:
      	* MAINTAINERS (OS Port Maintainers): Remove osf.
      	* configure.ac (enable_libgomp): Remove *-*-osf*.
      	(with_stabs): Remove alpha*-*-osf*.
      	* configure: Regenerate.
      
      From-SVN: r185240
      Rainer Orth committed
    • stddef.h: Adjust previous patch. · 914e2f45
      2012-03-12  Tristan Gingold  <gingold@adacore.com>
      
      	* ginclude/stddef.h: Adjust previous patch.  Use __VMS__ instead
      	of VMS.
      
      From-SVN: r185214
      Tristan Gingold committed
  34. 09 Mar, 2012 1 commit
  35. 12 Feb, 2012 1 commit