aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat/g-comver.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/libgnat/g-comver.adb')
-rw-r--r--gcc/ada/libgnat/g-comver.adb13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ada/libgnat/g-comver.adb b/gcc/ada/libgnat/g-comver.adb
index fbc1469..575caac 100644
--- a/gcc/ada/libgnat/g-comver.adb
+++ b/gcc/ada/libgnat/g-comver.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2020, AdaCore --
+-- Copyright (C) 2002-2021, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -33,6 +33,8 @@
-- GNAT compiler used to compile the program. It relies on the generated
-- constant in the binder generated package that records this information.
+with System;
+
package body GNAT.Compiler_Version is
Ver_Len_Max : constant := 256;
@@ -43,8 +45,15 @@ package body GNAT.Compiler_Version is
-- This is logically a reference to Gnatvsn.Ver_Prefix but we cannot
-- import this directly since run-time units cannot WITH compiler units.
+ GNAT_Version_Address : constant System.Address;
+ pragma Import (C, GNAT_Version_Address, "__gnat_version_address");
+
GNAT_Version : constant String (1 .. Ver_Len_Max + Ver_Prefix'Length);
- pragma Import (C, GNAT_Version, "__gnat_version");
+ pragma Import (Ada, GNAT_Version);
+ for GNAT_Version'Address use GNAT_Version_Address;
+ -- Use a level of indirection via __gnat_version_address to avoid LTO
+ -- type mismtch warnings between two string objects of potentially
+ -- different size.
-------------
-- Version --