From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: Victor Porton Newsgroups: comp.lang.ada Subject: Re: Strict aliasing, is it OK? Date: Tue, 04 Jul 2017 21:06:10 +0300 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: 5v2/mjF2EZ/Zj3uAcepXoA.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: abuse@aioe.org User-Agent: KNode/4.14.10 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:47281 Date: 2017-07-04T21:06:10+03:00 List-Id: Victor Porton wrote: > I've started an ambitious open source project: > https://en.wikiversity.org/wiki/Automatic_transformation_of_XML_namespaces > > I am going to implement it in Ada. > > Note the file > > https://github.com/vporton/redland-bindings/blob/ada2012/ada/src/rdf-raptor-parser.adb > > Here is an extract from my code: > > type My_Dummy_Access is access constant RDF.Auxiliary.Dummy_Record; > > function C_Raptor_Parser_Get_Description (Parser: Handle_Type) return > My_Dummy_Access > with Import, Convention=>C, > External_Name=>"raptor_parser_get_description"; > > function Get_Description (Parser: Parser_Type) return > RDF.Raptor.Syntaxes.Syntax_Description_Type is > function Conv is new Ada.Unchecked_Conversion(My_Dummy_Access, > RDF.Raptor.Syntaxes.Syntax_Description_Type); > begin > return Conv( C_Raptor_Parser_Get_Description(Get_Handle(Parser)) ); > end; I've added (bug fix) with Convention=>C after type My_Dummy_Access is access constant RDF.Auxiliary.Dummy_Record > When I compile this: > > $ (cd src && gnatgcc -gnatf -c -fPIC -g -O2 -gnat2012 > rdf-raptor-parser.adb) rdf-raptor-parser.adb:132:07: warning: possible > aliasing problem for type "Syntax_Description_Type" > rdf-raptor-parser.adb:132:07: warning: use -fno-strict-aliasing switch for > references rdf-raptor-parser.adb:132:07: warning: or use "pragma > No_Strict_Aliasing (Syntax_Description_Type);" > > I am not sure if it is OK to insert pragma No_Strict_Aliasing into my > code. > > GNAT Users Guide is cryptic. The only thing I understood for sure is that > sometimes strict aliasing may cause a trouble. I am not sure if this is a > case with my code. My code looks quite innocent, so I feel my idea will > not be broken by the compiler, but I am not sure. Please help. > -- Victor Porton - http://portonvictor.org