public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Ada] Enable the support of 128-bit integer types by default
@ 2020-10-22 12:12 Pierre-Marie de Rodat
  0 siblings, 0 replies; only message in thread
From: Pierre-Marie de Rodat @ 2020-10-22 12:12 UTC (permalink / raw)
  To: gcc-patches; +Cc: Eric Botcazou

[-- Attachment #1: Type: text/plain, Size: 1826 bytes --]

This enables the support of 128-bit integer types by default on 64-bit
platforms (except for BB ports): the -gnate128 switch is removed and
the debug switch -gnatd.H can now be used to disable again the support.

Technically speaking, apart from the obvious effect on integer types,
this will bump the size of the type representing Universal_Integer in
the compiler to 128 bits, which means that the attributes returning UI
will be properly range-checked when assigned e.g. to a 64-bit variable.

This will also bump the bit-packing limit from 64 to 128 bits, which
means that components up to 128 instead of 64 bits can be bit-packed
in array or record types subject to aspect/pragma Pack.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

	* Makefile.rtl (GNATRTL_128BIT_PAIRS): Add i-cexten.ads.
	* debug.adb (d.H): Document new usage.
	* doc/gnat_rm/representation_clauses_and_pragmas.rst (Size Clauses):
	Document new limit on 64-bit platforms.
	(Component_Size Clauses): Likewise.
	(Pragma Pack for Arrays): Likewise.
	(Pragma Pack for Records): Likewise.
	(Record Representation Clauses): Likewise.
	* gnat_rm.texi: Regenerate.
	* gnat1drv.adb (Adjust_Global_Switches): Rewrite code enabling or
	disabling the support for 128-bit integer types.
	* switch-c.adb (Scan_Front_End_Switches): Do not deal with e128.
	* usage.adb (Write_Switch_Char): Do not print -gnate128 switch.
	* libgnat/i-cexten__128.ads: New file.

gcc/testsuite/

	* ada/acats/run_all.sh: Define and substitute target_{max,min}_int.
	* ada/acats/support/macro.dfs: Parameterize {MAX,MIN}_INT.
	* gnat.dg/assert1.adb: Adjust conditionally to 128-bit integer types.
	* gnat.dg/size_clause1.adb: Do not expect a warning for LP64 targets.
	* gnat.dg/warn11.adb: Likewise.
	* gnat.dg/specs/rep_clause5.ads (Array_2_Type): Add alignment clause.

[-- Attachment #2: patch.diff.gz --]
[-- Type: application/gzip, Size: 11073 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-10-22 12:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-22 12:12 [Ada] Enable the support of 128-bit integer types by default Pierre-Marie de Rodat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).