comp.lang.ada
 help / color / mirror / Atom feed
* String parameters to exported routines - What should a compiler do?
@ 1997-06-03  0:00 Kevin D. Heatwole
  1997-06-05  0:00 ` Robert A Duff
  1997-06-09  0:00 ` Tucker Taft
  0 siblings, 2 replies; 5+ messages in thread
From: Kevin D. Heatwole @ 1997-06-03  0:00 UTC (permalink / raw)



I am still struggling to figure out exactly what a compiler should do when
the Ada program contains an exported subprogram that has a parameter that
is unconstrained.  We have implemented what we thought was a reasonable
thing to do, but now I am having second thoughts.

What *should* a good Ada95 compiler do?  I don't want to know what is legal
or simply permissable, but what is expected for an Ada95 compiler.

Here is an example:

  procedure S (Item : String);
  pragma Export (C, S);

Should this be legal or should the declaration of S be rejected?  

If legal, should the compiler issue a warning that calling S from C
involves passing the bounds of item in a compiler-dependent form?

Or, should the compiler just generate code for the body of S that expects
Item to just be the  address of the first character that comprise the
string and the bounds are assumed to be Positive'First .. Positive'Last (or
whatever the bounds are on the index subtype)?

Would the answers to the above make any difference if the parameter's type
was Interfaces.C.Char_Array?

What if S were called by Ada instead of C?  Should the Ada call pass the
actual bounds to S whereas the C call gets away with just passing the
address of Item?

Finally, what if S were imported instead?  Should Ada calling S just pass
the address of the first character of Item and just omit the bounds
altogether? 

What do other Ada95 compilers do?

Sorry for all the questions but I want to make sure that we handled this
case in the best manner possible.  We are about to make major release of
our PowerAda compiler and I don't want to miss an opportunity to make this
"right" (if we don't already handle this "right").

Kevin Heatwole
OC Systems, Inc.




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~1997-06-10  0:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-06-03  0:00 String parameters to exported routines - What should a compiler do? Kevin D. Heatwole
1997-06-05  0:00 ` Robert A Duff
1997-06-07  0:00   ` Robert Dewar
1997-06-09  0:00 ` Tucker Taft
1997-06-10  0:00   ` Robert Dewar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox