From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-0.0 required=3.0 tests=BAYES_20 autolearn=ham autolearn_force=no version=3.4.6 X-Received: by 2002:ac8:4e53:: with SMTP id e19mr13982928qtw.345.1642503954485; Tue, 18 Jan 2022 03:05:54 -0800 (PST) X-Received: by 2002:a25:8d0b:: with SMTP id n11mr34133317ybl.26.1642503954282; Tue, 18 Jan 2022 03:05:54 -0800 (PST) Path: eternal-september.org!reader02.eternal-september.org!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 18 Jan 2022 03:05:53 -0800 (PST) Injection-Info: google-groups.googlegroups.com; posting-host=80.194.57.154; posting-account=xS3LTwoAAAB3aeXopC8a-M58TGE8K6go NNTP-Posting-Host: 80.194.57.154 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <09dcb07d-f7b8-432b-8338-840ff90faef1n@googlegroups.com> Subject: Odd Behaviour From: Mark Wilson Injection-Date: Tue, 18 Jan 2022 11:05:54 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader02.eternal-september.org comp.lang.ada:63381 List-Id: If I use, procedure SQLAllocHandle (Result : out SQLRETURN; HandleType : in SQL_HANDLE_TYPE; InputHandle : in SQLHANDLE; OutputHandlePtr : in out SQLHANDLE) with Import => True, Convention => C, External_Name => "SQLAllocHandle"; pragma Import_Valued_Procedure (SQLAllocHandle); then everything works as expected. However, if I add the following Pre and Post conditions (it's definitely not the Global or Depends) procedure SQLAllocHandle (Result : out SQLRETURN; HandleType : in SQL_HANDLE_TYPE; InputHandle : in SQLHANDLE; OutputHandlePtr : in out SQLHANDLE) with Import => True, Convention => C, External_Name => "SQLAllocHandle", Global => null, Depends => ((Result, OutputHandlePtr) => (HandleType, InputHandle, OutputHandlePtr)), Pre => (if HandleType = SQL_HANDLE_ENV then InputHandle = SQL_NULL_HANDLE else InputHandle /= SQL_NULL_HANDLE), Post => (if SQL_OK (Result) then OutputHandlePtr /= SQL_NULL_HANDLE else OutputHandlePtr = SQL_NULL_HANDLE); pragma Import_Valued_Procedure (SQLAllocHandle); then an error is raised: 'warning: Valued_Procedure has no effect for convention Ada [enabled by default]' If I ignore the error, using pragma Warnings (Off, "*convention Ada*"); then it doesn't work at all, as one would expect, raising storage_error. So, is it the case that, even if you suppress all checks, using an 'if' in a pre or post condition forces a import function stub to only be convention Ada?