[antlr-interest] [C target] Warnings in 64-bit compile

Jim Idle jimi at temporal-wave.com
Thu Jul 21 10:49:08 PDT 2011


Well actually as this is a change to the template, it is not in the 3.4
release, but will be in the next patch release (should there be one).

Jim

> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of Justin Murray
> Sent: Thursday, July 21, 2011 10:19 AM
> To: antlr-interest at antlr.org
> Subject: Re: [antlr-interest] [C target] Warnings in 64-bit compile
>
> Hi Jim,
>
> I think I tracked down and fixed this bug in the C target template.
> Attached is the patched version of C.stg, which I extracted from antlr-
> 3.4-complete-no-antlrv2.jar/org/antlr/codegen/templates/C/C.stg
> and modified. It looks like it is a simple one line fix on line 1699,
> changing from ANTLR3_UINT32 to ANTLR3_MARKER. I've confirmed that this
> patch makes the warnings go away in my 64-bit build, so I'm submitting
> for your review. Please let me know if/when this makes it into a
> release.
>
> Thanks,
>
> -- Justin
>
> On 6/24/2011 1:34 PM, Jim Idle wrote:
> > There are few bug fixes in this beta - all that I can get in will be
> > in the release version, which won't be too long now. However, you
> > should still avoid backtrack and memorize unless there is no other
> choice.
> >
> > Jim
> >
> >> -----Original Message-----
> >> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> >> bounces at antlr.org] On Behalf Of Justin Murray
> >> Sent: Friday, June 24, 2011 8:12 AM
> >> To: antlr-interest at antlr.org
> >> Subject: Re: [antlr-interest] [C target] Warnings in 64-bit compile
> >>
> >> Jim,
> >>
> >> I just wanted to see if this was on your radar for the 3.4 C runtime
> >> update. I haven't been able to test it with beta3 because I hit some
> >> earlier roadblocks.
> >>
> >> Thanks,
> >>
> >> -- Justin
> >>
> >>
> >>
> >> 	Ah it is probably because the backtrack and memorize option. I
> >> strongly
> >>
> >> 	advise that you don't use these but left factor your grammar.
> >> However, I
> >>
> >> 	will fix it of course.
> >>
> >>
> >>
> >>
> >>
> >> 	Jim
> >>
> >>
> >>
> >>
> >>
> >> 	-----Original Message-----
> >>
> >> 	From: Justin Murray [mailto:jmur... at aerotech.com]
> >>
> >> 	Sent: Tuesday, December 28, 2010 1:39 PM
> >>
> >> 	To: Jim Idle; antl... at antlr.org
> >>
> >> 	Subject: RE: [antlr-interest] [C target] Warnings in 64-bit
> compile
> >>
> >>
> >>
> >>
> >>
> >> 	I believe that it is caused by using the memorize=true; option and
> >>
> >> 	building 64-bit. The following grammar has these warnings in the
> >>
> >> 	generated TestParser.c (compiled as C++ code in Visual Studio
> >> 2008).
> >>
> >> 	You will find the offending line at the beginning of the generated
> >>
> >> 	prog() function.
> >>
> >>
> >>
> >>
> >>
> >> 	-----------------------------
> >>
> >> 	grammar Test;
> >>
> >>
> >>
> >>
> >>
> >> 	options
> >>
> >> 	{
> >>
> >> 	language=C;
> >>
> >> 	backtrack=true;
> >>
> >> 	memoize=true;
> >>
> >> 	}
> >>
> >>
> >>
> >>
> >>
> >> 	prog
> >>
> >> 	: SOMETHING+;
> >>
> >>
> >>
> >>
> >>
> >> 	SOMETHING
> >>
> >> 	: 'A'..'Z';
> >>
> >>
> >>
> >> 	------------------------------
> >>
> >>
> >>
> >>
> >>
> >> 	Thanks,
> >>
> >>
> >>
> >>
> >>
> >> 	Justin
> >>
> >>
> >>
> >>
> >>
> >> 	-----Original Message-----
> >>
> >> 	From: antl... at antlr.org
> >>
> >> 	[mailto:antl... at antlr.org] On Behalf Of Jim Idle
> >>
> >> 	Sent: Tuesday, December 28, 2010 3:04 PM
> >>
> >> 	To: antl... at antlr.org
> >>
> >> 	Subject: Re: [antlr-interest] [C target] Warnings in 64-bit
> >> compile
> >>
> >>
> >>
> >>
> >>
> >> 	There were some such warnings a number of versions back but they
> >> are
> >>
> >> 	all fixed as far as I know. What construct are you using that
> >> results
> >>
> >> 	in the warning? If you give me a reproducible grammar snippet,
> >> then I
> >>
> >> 	will fix it for the next release, which is just waiting on my
> >> other
> >>
> >> 	commitments right now.
> >>
> >>
> >>
> >>
> >>
> >> 	Jim
> >>
> >>
> >>
> >>
> >>
> >> 	-----Original Message-----
> >>
> >> 	From: antl... at antlr.org [mailto:antlr-interest-
> >>
> >> 	boun... at antlr.org] On Behalf Of Justin Murray
> >>
> >> 	Sent: Tuesday, December 28, 2010 11:59 AM
> >>
> >> 	To: antl... at antlr.org
> >>
> >> 	Subject: [antlr-interest] [C target] Warnings in 64-bit compile
> >>
> >>
> >>
> >>
> >>
> >> 	Jim,
> >>
> >>
> >>
> >>
> >>
> >> 	I am working on making our compiler support 64-bit builds, and
> >> have
> >>
> >> 	run
> >>
> >> 	into a number of compiler warnings due to conflicting types in the
> >>
> >> 	ANTLR generated C code:
> >>
> >>
> >>
> >>
> >>
> >> 	warning C4244: '=' : conversion from 'ANTLR3_MARKER' to
> >>
> >> 	'ANTLR3_UINT32', possible loss of data
> >>
> >>
> >>
> >>
> >>
> >> 	This comes from the line:
> >>
> >>
> >>
> >>
> >>
> >> 	axisMask_StartIndex = INDEX();
> >>
> >>
> >>
> >>
> >>
> >> 	axisMask_StartIndex is declared as type ANTLR3_UINT32, and INDEX()
> >> is
> >>
> >> 	returning type ANTLR3_MARKER. On a 64-bit build (on a Windows
> >>
> >> 	machine),
> >>
> >> 	ANTLR3_UINT32 is a typedef of uint32_t, and ANTLR3_MARKER is of
> >> type
> >>
> >> 	ANTLR3_INT64 which is a typedef of int64_t. It seems to me that
> >> this
> >>
> >> 	is
> >>
> >> 	a bug in the template, and that axisMask_StartIndex should have
> >> been
> >>
> >> 	declared as type ANTLR3_MARKER.
> >>
> >>
> >>
> >>
> >>
> >> 	My questions are, do you know of a quick workaround for this for
> >> now?
> >>
> >> 	Do you know if this will be fixed in the next release of the C
> >> target
> >>
> >> 	runtime? Also, is there a tenative release date for the C runtime
> >>
> >> 	that
> >>
> >> 	will officially support ANTLR 3.3 (it seems that the code
> >> generated
> >>
> >> 	by
> >>
> >> 	ANTLR 3.3 works ok with the 3.2 C runtime)?
> >>
> >>
> >>
> >>
> >>
> >> 	Thanks,
> >>
> >>
> >>
> >>
> >>
> >> 	Justin Murray
> >>
> >> 	Software Engineer
> >>
> >> 	jmur... at aerotech.com
> >>
> >>
> >>
> >>
> >>
> >> 	Aerotech, Inc.
> >>
> >> 	101 Zeta Drive
> >>
> >> 	Pittsburgh, PA 15238
> >>
> >> 	412-963-7470
> >>
> >>
> >>
> >>
> >>
> >> 	List: http://www.antlr.org/mailman/listinfo/antlr-interest
> >>
> >> 	Unsubscribe: http://www.antlr.org/mailman/options/antlr-
> >>
> >> 	interest/your-
> >>
> >> 	email-address
> >>
> >>
> >>
> >>
> >>
> >> 	List: http://www.antlr.org/mailman/listinfo/antlr-interest
> >>
> >> 	Unsubscribe:
> >>
> >> 	http://www.antlr.org/mailman/options/antlr-interest/your-email-
> >> address
> >>
> >>
> >>
> >>
> >>
> >> 	List: http://www.antlr.org/mailman/listinfo/antlr-interest
> >>
> >> 	Unsubscribe:
> >> 	http://www.antlr.org/mailman/options/antlr-interest/your-email-
> >> address
> >>
> >>
> >>
> >> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> >> Unsubscribe: http://www.antlr.org/mailman/options/antlr-
> interest/your-
> >> email-address
> > List: http://www.antlr.org/mailman/listinfo/antlr-interest
> > Unsubscribe: http://www.antlr.org/mailman/options/antlr-
> interest/your-email-address


More information about the antlr-interest mailing list