aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2022-05-13 07:48:50 -0300
committerAlexandre Oliva <oliva@gnu.org>2022-05-13 07:48:50 -0300
commit6aaa1d573912828efed1514fbec5e1ef8a7cc3bc (patch)
treee7228d8db053b96f216c7f525d3e5bbec141c15d /gcc
parent9a79854be0a81faf76fff073f447c2334d47e819 (diff)
downloadgcc-6aaa1d573912828efed1514fbec5e1ef8a7cc3bc.zip
gcc-6aaa1d573912828efed1514fbec5e1ef8a7cc3bc.tar.gz
gcc-6aaa1d573912828efed1514fbec5e1ef8a7cc3bc.tar.bz2
ada: gcc-if: build proper String_Pointer for Get_External_Name
The compiler is allowed to assume it can access String bounds, such as the prefix passed to Get_External_Name, even in circumstances in which the prefix is not going to be used and has_prefix is false, so, from the C side, we have to build a proper String_Template for the String_Pointer. for gcc/ada/ChangeLog * gcc-interface/decl.cc (is_cplusplus_method): Build proper String for Get_External_Name.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/gcc-interface/decl.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc
index 56ad499..28e1ab7 100644
--- a/gcc/ada/gcc-interface/decl.cc
+++ b/gcc/ada/gcc-interface/decl.cc
@@ -4956,7 +4956,8 @@ is_cplusplus_method (Entity_Id gnat_entity)
'this' parameter is not encoded in the mangled name of a method. */
if (Is_Subprogram (gnat_entity) && Present (Interface_Name (gnat_entity)))
{
- String_Pointer sp = { NULL, NULL };
+ String_Template temp = { 0, 0 };
+ String_Pointer sp = { "", &temp };
Get_External_Name (gnat_entity, false, sp);
void *mem;