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 
[email protected]

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

-- 
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to