aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-03-26 08:18:39 +0100
committerTristan Gingold <tgingold@free.fr>2022-03-26 08:18:39 +0100
commitbaa9dfbdac7e9d2c8e1960a62e62dd807d751c46 (patch)
treea3b3140525a82da208656f2443e0861057ea4e80 /src/grt
parent7ad32b9bb91e29cae2fbba0a71b6e924dfbcaf9c (diff)
downloadghdl-baa9dfbdac7e9d2c8e1960a62e62dd807d751c46.tar.gz
ghdl-baa9dfbdac7e9d2c8e1960a62e62dd807d751c46.tar.bz2
ghdl-baa9dfbdac7e9d2c8e1960a62e62dd807d751c46.zip
translate: adjust null access check: add an explicit check.
Diffstat (limited to 'src/grt')
-rw-r--r--src/grt/grt-lib.adb9
-rw-r--r--src/grt/grt-lib.ads3
2 files changed, 12 insertions, 0 deletions
diff --git a/src/grt/grt-lib.adb b/src/grt/grt-lib.adb
index 13a0f1da4..f94c4b0c9 100644
--- a/src/grt/grt-lib.adb
+++ b/src/grt/grt-lib.adb
@@ -205,6 +205,15 @@ package body Grt.Lib is
Error_E_Call_Stack (Bt);
end Ghdl_Direction_Check_Failed;
+ procedure Ghdl_Access_Check_Failed
+ is
+ Bt : Backtrace_Addrs;
+ begin
+ Save_Backtrace (Bt, 1);
+ Error_S ("NULL access dereferenced");
+ Error_E_Call_Stack (Bt);
+ end Ghdl_Access_Check_Failed;
+
procedure Diag_C_Range (Rng : Std_Integer_Range_Ptr) is
begin
Diag_C (Rng.Left);
diff --git a/src/grt/grt-lib.ads b/src/grt/grt-lib.ads
index 467cc4ca3..f8e7f0a7a 100644
--- a/src/grt/grt-lib.ads
+++ b/src/grt/grt-lib.ads
@@ -52,6 +52,7 @@ package Grt.Lib is
Line: Ghdl_I32);
procedure Ghdl_Direction_Check_Failed (Filename : Ghdl_C_String;
Line: Ghdl_I32);
+ procedure Ghdl_Access_Check_Failed;
procedure Ghdl_Integer_Index_Check_Failed
(Filename : Ghdl_C_String;
@@ -124,6 +125,8 @@ private
"__ghdl_direction_check_failed");
pragma Export (C, Ghdl_Integer_Index_Check_Failed,
"__ghdl_integer_index_check_failed");
+ pragma Export (C, Ghdl_Access_Check_Failed,
+ "__ghdl_access_check_failed");
pragma Export (C, Ghdl_Program_Error, "__ghdl_program_error");