Note that an issue has already been opened on this: 
https://github.com/chapel-lang/chapel/issues/6374

Ben

On 6/6/17, 2:46 PM, "Brad Chamberlain" <[email protected]> wrote:

    
    Hi Tomsy and Lydia --
    
    I agree that someone should open a GitHub issue against this.  Note that 
    if halt() is used instead of exit(), the compiler does not issue a similar 
    warning, suggesting that we already have logic that can handle such cases, 
    but that it just doesn't cover exit() for some reason...  So it may also 
    have a five-minute fix (in which case no issue would need to be opened).
    
    -Brad
    
    
    On Fri, 2 Jun 2017, Lydia Duncan wrote:
    
    > Hi!
    >
    > Without further context, I can't be certain, but I suspect that your 
inline 
    > proc has a path through itself with the exit() branch where no return 
    > statement is present, i.e.
    >
    > inline proc exiter(x: int): int {
    >  if (x > 10) {
    >    exit(0);
    >  } else {
    >    return x;
    >  }
    > }
    >
    > I verified locally that an inline proc can use exit() when the function 
    > either:
    >
    > a) doesn't expect to return anything or
    > b) has a return statement that is reachable, even through a branch with 
    > exit() in it.
    >
    > So you could insert a bogus return statement after the exit() to get 
around 
    > this issue.
    >
    > It seems potentially inappropriate to me that exit() is not recognized as 
    > okay when ensuring that a function will always return.  Do others agree? 
    > Would you like to open an issue on that?  Or shall I do it for you?
    >
    > Thanks,
    > Lydia
    >
    > On 06/02/2017 01:37 AM, Tomsy Paul wrote:
    >> Dear all,
    >> 
    >> I was trying to exit from an inline proc using exit(). My intention was 
to 
    >> exit from the entire program (similar to exit() in C). I get the error
    >> 
    >> "error: control reaches end of function that returns a value"
    >> 
    >> Can some one explain it.
    >> 
    >> How can I exit from such a function?
    >> 
    >>
    >> 
    >> 
------------------------------------------------------------------------------
    >> Check out the vibrant tech community on one of the world's most
    >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
    >> 
    >> 
    >> _______________________________________________
    >> Chapel-developers mailing list
    >> [email protected]
    >> https://lists.sourceforge.net/lists/listinfo/chapel-developers
    >
    >
    >
    
    
------------------------------------------------------------------------------
    Check out the vibrant tech community on one of the world's most
    engaging tech sites, Slashdot.org! http://sdm.link/slashdot
    _______________________________________________
    Chapel-developers mailing list
    [email protected]
    https://lists.sourceforge.net/lists/listinfo/chapel-developers
    


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers

Reply via email to