1-- Copyright 2008-2023 Free Software Foundation, Inc. 2-- 3-- This program is free software; you can redistribute it and/or modify 4-- it under the terms of the GNU General Public License as published by 5-- the Free Software Foundation; either version 3 of the License, or 6-- (at your option) any later version. 7-- 8-- This program is distributed in the hope that it will be useful, 9-- but WITHOUT ANY WARRANTY; without even the implied warranty of 10-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11-- GNU General Public License for more details. 12-- 13-- You should have received a copy of the GNU General Public License 14-- along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16with System; 17 18procedure Lang_Switch is 19 pragma Linker_Options ("foo.o"); 20 21 function C_Procedure (Msg : String) return Integer; 22 pragma Import(C, C_Procedure, "c_procedure"); 23 24 procedure Ada_Procedure (Msg : String) is 25 C_Msg : String (1 .. 1024); 26 Tmp_Int : Integer; 27 begin 28 C_Msg (1 .. Msg'length + 1) := Msg & Ascii.Nul; 29 Tmp_Int := C_Procedure (Msg => C_Msg); 30 end Ada_Procedure; 31 32begin 33 Ada_Procedure ("msg"); 34end Lang_Switch; 35