Skip to content
Snippets Groups Projects
  1. Mar 17, 2023
  2. Mar 16, 2023
    • Jakub Jelinek's avatar
      libcpp: Update Unicode copyright years · 99bae6ee
      Jakub Jelinek authored
      I've noticed I forgot to update copyright years when updating from
      Unicode 15.0.0 (and makeucnid.cc had it hopelessly obsolete).
      
      2023-03-16  Jakub Jelinek  <jakub@redhat.com>
      
      	* makeucnid.cc (write_copyright): Update Unicode copyright years
      	up to 2022.
      	* makeuname2c.cc (write_copyright): Likewise.
      	* ucnid.h: Regenerated.
      	* uname2c.h: Regenerated.
      99bae6ee
  3. Mar 14, 2023
  4. Mar 13, 2023
    • Lewis Hyatt's avatar
      libcpp: Fix ICE on directive inside _Pragma() operator [PR67046] · 336ce497
      Lewis Hyatt authored
      get__Pragma_string() in directives.cc is responsible for lexing the parens
      and the string argument from a _Pragma("...") operator. This function does
      not handle the case when the closing paren is not on the same line as the
      string; in that case, libcpp will by default reuse the token buffer it
      previously used for the string, so that the string token returned by
      get__Pragma_string() may be corrupted, as shown in the testcase. Fix using
      the existing keep_tokens mechanism that temporarily disables the reuse of
      token buffers.
      
      libcpp/ChangeLog:
      
      	PR preprocessor/67046
      	* directives.cc (_cpp_do__Pragma): Increment pfile->keep_tokens to
      	ensure the returned string token is valid.
      
      gcc/testsuite/ChangeLog:
      
      	PR preprocessor/67046
      	* c-c++-common/cpp/pr67046.c: New test.
      336ce497
    • Lewis Hyatt's avatar
      libcpp: Update cpp_wcwidth() to Unicode 15 · 73dd5c6c
      Lewis Hyatt authored
      Updates cpp_wcwidth() to Unicode 15, following the procedure in
      contrib/unicode/README mechanically without incident.
      
      contrib/ChangeLog:
      
      	* unicode/DerivedCoreProperties.txt: Update to Unicode 15.
      	* unicode/DerivedNormalizationProps.txt: Likewise.
      	* unicode/EastAsianWidth.txt: Likwise.
      	* unicode/PropList.txt: Likewise.
      	* unicode/README: Likewise.
      	* unicode/UnicodeData.txt: Likewise.
      
      libcpp/ChangeLog:
      
      	* generated_cpp_wcwidth.h: Regenerated for Unicode 15.
      73dd5c6c
  5. Mar 01, 2023
  6. Feb 28, 2023
  7. Feb 25, 2023
  8. Feb 24, 2023
    • Joseph Myers's avatar
      Update .po files · c8373dc8
      Joseph Myers authored
      gcc/po/
      	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
      	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
      	zh_TW.po: Update.
      
      libcpp/po/
      	* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
      	id.po, ja.po, ka.po, nl.po, pt_BR.po, ro.po, ru.po, sr.po, sv.po,
      	tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update.
      c8373dc8
  9. Feb 11, 2023
  10. Feb 10, 2023
  11. Jan 17, 2023
  12. Jan 16, 2023
  13. Jan 10, 2023
  14. Jan 09, 2023
  15. Jan 02, 2023
  16. Dec 08, 2022
  17. Dec 07, 2022
    • Joseph Myers's avatar
      preprocessor: Enable __VA_OPT__ for C2x · ce53cf7b
      Joseph Myers authored
      C2x supports __VA_OPT__, so adjust libcpp not to pedwarn for uses of
      it (or of not passing any variable arguments to a variable-arguments
      macro) in standard C2x mode.
      
      I didn't try to duplicate existing tests for the details of the
      feature, just verified -pedantic-errors handling is as expected.  And
      there's a reasonable argument (bug 98859) that __VA_OPT__ shouldn't be
      diagnosed in older standard modes at all (as opposed to not passing
      any variable arguments to a variable-arguments macro, for which older
      versions of the C standard require a diagnostic as a constraint
      violation); that argument applies to C as much as to C++, but I
      haven't made any changes in that regard.
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      libcpp/
      	* init.cc (lang_defaults): Enable va_opt for STDC2X.
      	* lex.cc (maybe_va_opt_error): Adjust diagnostic message for C.
      	* macro.cc (_cpp_arguments_ok): Update comment.
      
      gcc/testsuite/
      	* gcc.dg/cpp/c11-vararg-1.c, gcc.dg/cpp/c2x-va-opt-1.c: New tests.
      ce53cf7b
  18. Nov 24, 2022
  19. Nov 23, 2022
    • Marek Polacek's avatar
      Revert "configure: Implement --enable-host-pie" · 04711f51
      Marek Polacek authored
      This reverts commit 251c72a6.
      04711f51
    • Marek Polacek's avatar
      configure: Implement --enable-host-pie · 251c72a6
      Marek Polacek authored
      This patch implements the --enable-host-pie configure option which
      makes the compiler executables PIE.  This can be used to enhance
      protection against ROP attacks, and can be viewed as part of a wider
      trend to harden binaries.
      
      It is similar to the option --enable-host-shared, except that --e-h-s
      won't add -shared to the linker flags whereas --e-h-p will add -pie.
      It is different from --enable-default-pie because that option just
      adds an implicit -fPIE/-pie when the compiler is invoked, but the
      compiler itself isn't PIE.
      
      Since r12-5768-gfe7c3ecf, PCH works well with PIE, so there are no PCH
      regressions.
      
      When building the compiler, the build process may use various in-tree
      libraries; these need to be built with -fPIE so that it's possible to
      use them when building a PIE.  For instance, when --with-included-gettext
      is in effect, intl object files must be compiled with -fPIE.  Similarly,
      when building in-tree gmp, isl, mpfr and mpc, they must be compiled with
      -fPIE.
      
      I plan to add an option to link with -Wl,-z,now.
      
      ChangeLog:
      
      	* Makefile.def: Pass $(PICFLAG) to AM_CFLAGS for gmp, mpfr, mpc, and
      	isl.
      	* Makefile.in: Regenerate.
      	* Makefile.tpl: Set PICFLAG.
      	* configure.ac (--enable-host-pie): New check.  Set PICFLAG after this
      	check.
      	* configure: Regenerate.
      
      c++tools/ChangeLog:
      
      	* Makefile.in: Rename PIEFLAG to PICFLAG.  Set LD_PICFLAG.  Use it.
      	Use pic/libiberty.a if PICFLAG is set.
      	* configure.ac (--enable-default-pie): Set PICFLAG instead of PIEFLAG.
      	(--enable-host-pie): New check.
      	* configure: Regenerate.
      
      fixincludes/ChangeLog:
      
      	* Makefile.in: Set and use PICFLAG and LD_PICFLAG.  Use the "pic"
      	build of libiberty if PICFLAG is set.
      	* configure.ac:
      	* configure: Regenerate.
      
      gcc/ChangeLog:
      
      	* Makefile.in: Set LD_PICFLAG.  Use it.  Set enable_host_pie.
      	Remove NO_PIE_CFLAGS and NO_PIE_FLAG.  Pass LD_PICFLAG to
      	ALL_LINKERFLAGS.  Use the "pic" build of libiberty if --enable-host-pie.
      	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
      	(--enable-host-pie): New check.  Set PICFLAG and LD_PICFLAG after this
      	check.
      	* configure: Regenerate.
      	* doc/install.texi: Document --enable-host-pie.
      
      gcc/d/ChangeLog:
      
      	* Make-lang.in: Remove NO_PIE_CFLAGS.
      
      intl/ChangeLog:
      
      	* Makefile.in: Use @PICFLAG@ in COMPILE as well.
      	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
      	(--enable-host-pie): New check.  Set PICFLAG after this check.
      	* configure: Regenerate.
      
      libcody/ChangeLog:
      
      	* Makefile.in: Pass LD_PICFLAG to LDFLAGS.
      	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
      	(--enable-host-pie): New check.  Set PICFLAG and LD_PICFLAG after this
      	check.
      	* configure: Regenerate.
      
      libcpp/ChangeLog:
      
      	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
      	(--enable-host-pie): New check.  Set PICFLAG after this check.
      	* configure: Regenerate.
      
      libdecnumber/ChangeLog:
      
      	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
      	(--enable-host-pie): New check.  Set PICFLAG after this check.
      	* configure: Regenerate.
      
      libiberty/ChangeLog:
      
      	* configure.ac: Also set shared when enable_host_pie.
      	* configure: Regenerate.
      
      zlib/ChangeLog:
      
      	* configure.ac (--enable-host-shared): Don't set PICFLAG here.
      	(--enable-host-pie): New check.  Set PICFLAG after this check.
      	* configure: Regenerate.
      251c72a6
  20. Nov 22, 2022
  21. Nov 21, 2022
    • Lewis Hyatt's avatar
      libcpp: Fix paste error with unknown pragma after macro expansion · 6f46d14d
      Lewis Hyatt authored
      In directives.cc, do_pragma() contains logic to handle a case such as the new
      testcase pragma-omp-unknown.c, where an unknown pragma was the result of macro
      expansion (for pragma namespaces that permit expansion). This no longer works
      correctly as shown by the testcase, fixed by adding PREV_WHITE to the flags on
      the second token to prevent an unwanted paste.  Also fixed the memory leak,
      since the temporary tokens are pushed on their own context, nothing prevents
      freeing of the buffer that holds them when the context is eventually popped.
      
      libcpp/ChangeLog:
      
      	* directives.cc (do_pragma): Fix memory leak in token buffer.  Fix
      	unwanted paste between two tokens.
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/gomp/pragma-omp-unknown.c: New test.
      6f46d14d
    • Torbjörn SVENSSON's avatar
      libcpp/remap: Only override if string matched · 711f56ad
      Torbjörn SVENSSON authored
      
      For systems with HAVE_DOS_BASED_FILE_SYSTEM set, only override the
      pointer if the backslash pattern matches.
      
      Output without this patch:
      .../gcc/testsuite/gcc.dg/cpp/pr71681-2.c:5:10: fatal error: a/t2.h: No such file or directory
      
      With patch applied, no output and the test case succeeds.
      
      libcpp/ChangeLog
      
      	* files.cc: Ensure pattern matches before use.
      
      Signed-off-by: default avatarTorbjörn SVENSSON <torbjorn.svensson@foss.st.com>
      711f56ad
    • Martin Liska's avatar
      build: re-configure 2 files · 139ffc77
      Martin Liska authored
      libcpp/ChangeLog:
      
      	* config.in: Re-configure.
      
      libstdc++-v3/ChangeLog:
      
      	* src/experimental/Makefile.in: Re-configure.
      139ffc77
    • GCC Administrator's avatar
      Daily bump. · fb98ede8
      GCC Administrator authored
      fb98ede8
  22. Nov 19, 2022
  23. Nov 18, 2022
    • Richard Purdie's avatar
      libcpp: Avoid remapping filenames within directives · 11543b27
      Richard Purdie authored
      Code such as:
      
       #include __FILE__
      
      can interact poorly with the *-prefix-map options when cross compiling. In
      general you're after to remap filenames for use in target context but the
      local paths should be used to find include files at compile time. Ingoring
      filename remapping for directives allows avoiding such failures.
      
      Fix this to improve such usage and then document this against file-prefix-map
      (referenced by the other *-prefix-map options) to make the behaviour clear
      and defined.
      
      libcpp/ChangeLog:
      
      	* macro.cc (_cpp_builtin_macro_text): Don't remap filenames within
      	directives.
      
      gcc/ChangeLog:
      
      	* doc/invoke.texi: Document prefix-maps don't affect directives.
      11543b27
  24. Nov 06, 2022
  25. Nov 05, 2022
    • Lewis Hyatt's avatar
      c++: libcpp: Support raw strings with newlines in directives [PR55971] · 3ad2167b
      Lewis Hyatt authored
      It's not currently possible to use a C++11 raw string containing a newline as
      part of the definition of a macro, or in any other preprocessing directive,
      such as:
      
       #define X R"(two
      lines)"
      
       #error R"(this error has
      two lines)"
      
      Add support for that by relaxing the conditions under which
      _cpp_get_fresh_line() refuses to get a new line. For the case of lexing a raw
      string, it's OK to do so as long as there is another line within the current
      buffer. The code in cpp_get_fresh_line() was refactored into a new function
      get_fresh_line_impl(), so that the new logic is applied only when processing a
      raw string and not any other times.
      
      libcpp/ChangeLog:
      
      	PR preprocessor/55971
      	* lex.cc (get_fresh_line_impl): New function refactoring the code
      	from...
      	(_cpp_get_fresh_line): ...here.
      	(lex_raw_string): Use the new version of get_fresh_line_impl() to
      	support raw strings containing new lines when processing a directive.
      
      gcc/testsuite/ChangeLog:
      
      	PR preprocessor/55971
      	* c-c++-common/raw-string-directive-1.c: New test.
      	* c-c++-common/raw-string-directive-2.c: New test.
      
      gcc/c-family/ChangeLog:
      
      	PR preprocessor/55971
      	* c-ppoutput.cc (adjust_for_newlines): Update comment.
      3ad2167b
  26. Nov 04, 2022
    • Jakub Jelinek's avatar
      libcpp: Update to Unicode 15 · 2662d537
      Jakub Jelinek authored
      The following pseudo-patch regenerates the libcpp tables with Unicode 15.0.0
      which added 4489 new characters.
      
      As mentioned previously, this isn't just a matter of running the
      two libcpp/make*.cc programs on the new Unicode files, but one needs
      to manually update a table inside of makeuname2c.cc according to
      a table in Unicode text (which is partially reflected in the text
      files, but e.g. in Unicode 14.0.0 not 100% accurately, in 15.0.0
      actually accurately).
      I've also added some randomly chosen subset of those 4489 new
      characters to a testcase.
      
      2022-11-04  Jakub Jelinek  <jakub@redhat.com>
      
      gcc/testsuite/
      	* c-c++-common/cpp/named-universal-char-escape-1.c: Add tests for some
      	characters newly added in Unicode 15.0.0.
      libcpp/
      	* makeuname2c.cc (struct generated): Update from Unicode 15.0.0
      	table 4-8.
      	* ucnid.h: Regenerated for Unicode 15.0.0.
      	* uname2c.h: Likewise.
      2662d537
  27. Oct 20, 2022
  28. Oct 19, 2022
    • Lewis Hyatt's avatar
      pch: Fix streaming of strings with embedded null bytes · f3b957ea
      Lewis Hyatt authored
      When a GTY'ed struct is streamed to PCH, any plain char* pointers it contains
      (whether they live in GC-controlled memory or not) will be marked for PCH
      output by the routine gt_pch_note_object in ggc-common.cc. This routine
      special-cases plain char* strings, and in particular it uses strlen() to get
      their length. Thus it does not handle strings with embedded null bytes, but it
      is possible for something PCH cares about (such as a string literal token in a
      macro definition) to contain such embedded nulls. To fix that up, add a new
      GTY option "string_length" so that gt_pch_note_object can be informed the
      actual length it ought to use, and use it in the relevant libcpp structs
      (cpp_string and ht_identifier) accordingly.
      
      gcc/ChangeLog:
      
      	* gengtype.cc (output_escaped_param): Add missing const.
      	(get_string_option): Add missing check for option type.
      	(walk_type): Support new "string_length" GTY option.
      	(write_types_process_field): Likewise.
      	* ggc-common.cc (gt_pch_note_object): Add optional length argument.
      	* ggc.h (gt_pch_note_object): Adjust prototype for new argument.
      	(gt_pch_n_S2): Declare...
      	* stringpool.cc (gt_pch_n_S2): ...new function.
      	* doc/gty.texi: Document new GTY((string_length)) option.
      
      libcpp/ChangeLog:
      
      	* include/cpplib.h (struct cpp_string): Use new "string_length" GTY.
      	* include/symtab.h (struct ht_identifier): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/pch/pch-string-nulls.C: New test.
      	* g++.dg/pch/pch-string-nulls.Hs: New test.
      f3b957ea
  29. Oct 15, 2022
  30. Oct 14, 2022
    • Joseph Myers's avatar
      preprocessor: C2x identifier rules · 36d20fa4
      Joseph Myers authored
      C2x has, like C++, adopted rules for identifiers based directly on an
      unversioned normative reference to Unicode.  Make libcpp follow those
      rules for c2x / gnu2x standards (this involves bringing back a flag
      separate from the C++ one for whether to use these identifier rules,
      but this time enabled for all C++ language versions since that was the
      conclusion adopted for C++ identifier handling).
      
      There is one change here that affects C++.  I believe the new
      normative requirement for NFC only applies to identifiers, not to the
      use of identifier-continue characters in pp-numbers, where there is no
      such requirement and so the diagnostic ought to be a warning not a
      pedwarn in pp-numbers, and that this is the case for both C and C++.
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      libcpp/
      	* charset.cc (ucn_valid_in_identifier): Check xid_identifiers not
      	cplusplus to determine whether to use CXX23 and NXX23 flags.
      	* include/cpplib.h (struct cpp_options): Add xid_identifiers.
      	* init.cc (struct lang_flags, lang_defaults): Add xid_identifiers.
      	(cpp_set_lang): Set xid_identifiers.
      	* lex.cc (warn_about_normalization): Add parameter identifier.
      	Only pedwarn about non-NFC for identifiers, not pp-numbers.
      	(_cpp_lex_direct): Update calls to warn_about_normalization.
      
      gcc/testsuite/
      	* gcc.dg/cpp/c2x-ucnid-1-utf8.c, gcc.dg/cpp/c2x-ucnid-1.c: New
      	tests.
      36d20fa4
    • Jakub Jelinek's avatar
      middle-end, c++, i386, libgcc: std::bfloat16_t and __bf16 arithmetic support · c2565a31
      Jakub Jelinek authored
      Here is a complete patch to add std::bfloat16_t support on
      x86 (AArch64 and ARM left for later).  Almost no BFmode optabs
      are added by the patch, so for binops/unops it extends to SFmode
      first and then truncates back to BFmode.
      For {HF,SF,DF,XF,TF}mode -> BFmode conversions libgcc has implementations
      of all those conversions so that we avoid double rounding, for
      BFmode -> {DF,XF,TF}mode conversions to avoid growing libgcc too much
      it emits BFmode -> SFmode conversion first and then converts to the even
      wider mode, neither step should be imprecise.
      For BFmode -> HFmode, it first emits a precise BFmode -> SFmode conversion
      and then SFmode -> HFmode, because neither format is subset or superset
      of the other, while SFmode is superset of both.
      expr.cc then contains a -ffast-math optimization of the BF -> SF and
      SF -> BF conversions if we don't optimize for space (and for the latter
      if -frounding-math isn't enabled either).
      For x86, perhaps truncsfbf2 optab could be defined for TARGET_AVX512BF16
      but IMNSHO should FAIL if !flag_finite_math || flag_rounding_math
      || !flag_unsafe_math_optimizations, because I think the insn doesn't
      raise on sNaNs, hardcodes round to nearest and flushes denormals to zero.
      By default (unless x86 -fexcess-precision=16) we use float excess
      precision for BFmode, so truncate only on explicit casts and assignments.
      The patch introduces a single __bf16 builtin - __builtin_nansf16b,
      because (__bf16) __builtin_nansf ("") will drop the sNaN into qNaN,
      and uses f16b suffix instead of bf16 because there would be ambiguity on
      log vs. logb - __builtin_logbf16 could be either log with bf16 suffix
      or logb with f16 suffix.  In other cases libstdc++ should mostly use
      __builtin_*f for std::bfloat16_t overloads (we have a problem with
      std::nextafter though but that one we have also for std::float16_t).
      
      2022-10-14  Jakub Jelinek  <jakub@redhat.com>
      
      gcc/
      	* tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE.
      	* tree.h (bfloat16_type_node): Define.
      	* tree.cc (excess_precision_type): Promote bfloat16_type_mode
      	like float16_type_mode.
      	(build_common_tree_nodes): Initialize bfloat16_type_node if
      	BFmode is supported.
      	* expmed.h (maybe_expand_shift): Declare.
      	* expmed.cc (maybe_expand_shift): No longer static.
      	* expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF
      	conversions.  If there is no optab, handle BF -> {DF,XF,TF,HF}
      	conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add
      	-ffast-math generic implementation for BF -> SF and SF -> BF
      	conversions.
      	* builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New.
      	* builtins.def (BUILT_IN_NANSF16B): New builtin.
      	* fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B.
      	* config/i386/i386.cc (classify_argument): Handle E_BCmode.
      	(ix86_libgcc_floating_mode_supported_p): Also return true for BFmode
      	for -msse2.
      	(ix86_mangle_type): Mangle BFmode as DF16b.
      	(ix86_invalid_conversion, ix86_invalid_unary_op,
      	ix86_invalid_binary_op): Remove.
      	(TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP,
      	TARGET_INVALID_BINARY_OP): Don't redefine.
      	* config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove.
      	(ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than
      	ix86_bf16_type_node, only create it if still NULL.
      	* config/i386/i386-builtin-types.def (BFLOAT16): Likewise.
      	* config/i386/i386.md (cbranchbf4, cstorebf4): New expanders.
      gcc/c-family/
      	* c-cppbuiltin.cc (c_cpp_builtins): If bfloat16_type_node,
      	predefine __BFLT16_*__ macros and for C++23 also
      	__STDCPP_BFLOAT16_T__.  Predefine bfloat16_type_node related
      	macros for -fbuilding-libgcc.
      	* c-lex.cc (interpret_float): Handle CPP_N_BFLOAT16.
      gcc/c/
      	* c-typeck.cc (convert_arguments): Don't promote __bf16 to
      	double.
      gcc/cp/
      	* cp-tree.h (extended_float_type_p): Return true for
      	bfloat16_type_node.
      	* typeck.cc (cp_compare_floating_point_conversion_ranks): Set
      	extended{1,2} if mv{1,2} is bfloat16_type_node.  Adjust comment.
      gcc/testsuite/
      	* lib/target-supports.exp (check_effective_target_bfloat16,
      	check_effective_target_bfloat16_runtime, add_options_for_bfloat16):
      	New.
      	* gcc.dg/torture/bfloat16-basic.c: New test.
      	* gcc.dg/torture/bfloat16-builtin.c: New test.
      	* gcc.dg/torture/bfloat16-builtin-issignaling-1.c: New test.
      	* gcc.dg/torture/bfloat16-complex.c: New test.
      	* gcc.dg/torture/builtin-issignaling-1.c: Allow to be includable
      	from bfloat16-builtin-issignaling-1.c.
      	* gcc.dg/torture/floatn-basic.h: Allow to be includable from
      	bfloat16-basic.c.
      	* gcc.target/i386/vect-bfloat16-typecheck_2.c: Adjust expected
      	diagnostics.
      	* gcc.target/i386/sse2-bfloat16-scalar-typecheck.c: Likewise.
      	* gcc.target/i386/vect-bfloat16-typecheck_1.c: Likewise.
      	* g++.target/i386/bfloat_cpp_typecheck.C: Likewise.
      libcpp/
      	* include/cpplib.h (CPP_N_BFLOAT16): Define.
      	* expr.cc (interpret_float_suffix): Handle bf16 and BF16 suffixes for
      	C++.
      libgcc/
      	* config/i386/t-softfp (softfp_extensions): Add bfsf.
      	(softfp_truncations): Add tfbf xfbf dfbf sfbf hfbf.
      	(CFLAGS-extendbfsf2.c, CFLAGS-truncsfbf2.c, CFLAGS-truncdfbf2.c,
      	CFLAGS-truncxfbf2.c, CFLAGS-trunctfbf2.c, CFLAGS-trunchfbf2.c): Add
      	-msse2.
      	* config/i386/libgcc-glibc.ver (GCC_13.0.0): Export
      	__extendbfsf2 and __trunc{s,d,x,t,h}fbf2.
      	* config/i386/sfp-machine.h (_FP_NANSIGN_B): Define.
      	* config/i386/64/sfp-machine.h (_FP_NANFRAC_B): Define.
      	* config/i386/32/sfp-machine.h (_FP_NANFRAC_B): Define.
      	* soft-fp/brain.h: New file.
      	* soft-fp/truncsfbf2.c: New file.
      	* soft-fp/truncdfbf2.c: New file.
      	* soft-fp/truncxfbf2.c: New file.
      	* soft-fp/trunctfbf2.c: New file.
      	* soft-fp/trunchfbf2.c: New file.
      	* soft-fp/truncbfhf2.c: New file.
      	* soft-fp/extendbfsf2.c: New file.
      libiberty/
      	* cp-demangle.h (D_BUILTIN_TYPE_COUNT): Increment.
      	* cp-demangle.c (cplus_demangle_builtin_types): Add std::bfloat16_t
      	entry.
      	(cplus_demangle_type): Demangle DF16b.
      	* testsuite/demangle-expected (_Z3xxxDF16b): New test.
      c2565a31
  31. Oct 11, 2022
  32. Oct 10, 2022
  33. Sep 29, 2022
Loading