[aspectc-user] UINT_MAX and an Assertion Failure

Gary Duzan gduzan at bbn.com
Thu Aug 7 18:05:27 CEST 2003


In Message <3F324EB5.8040105 at pure-systems.com> ,
   Matthias Urban <matthias.urban at pure-systems.com> wrote:

=>Gary Duzan wrote:
=>> ===========================================================================
=>> /home/gduzan/work/ACE_wrappers/ace/Basic_Types.h:126: error,: unsupported int size, must be updated for this platform!
=>> ===========================================================================
=>> 
=>>    The Basic_Types code looks like this:
=>> 
=>> ===========================================================================
=>> // The number of bytes in an int.
=>> # if !defined (ACE_SIZEOF_INT)
=>> #   if (UINT_MAX) == 65535U
=>> #     define ACE_SIZEOF_INT 2
=>> #   elif (UINT_MAX) == 4294967295U
=>> #     define ACE_SIZEOF_INT 4
=>> #   elif (UINT_MAX) == 18446744073709551615U
=>> #     define ACE_SIZEOF_INT 8
=>> #   else
=>> #     error: unsupported int size, must be updated for this platform!
=>> #   endif /* UINT_MAX */
=>> # endif /* !defined (ACE_SIZEOF_INT) */
=>> ===========================================================================
=>> 
=>>    I tried setting UINT_MAX in the puma.config and on the command line
=>> with -D, but neither one changes the result.
=>
=>
=>This is a bug in the PUMA C preprocessor that uses strtol() instead of 
=>strtoul() for converting large decimal numbers. It will be fixed in the 
=>next release (0.7.1) of AspectC++ comming very soon.

   Ok. For now, is the #error directive stopping the parsing, or does it
continue on?

=>>    As for the assertion failure, I ran ac++ under gdb and got the
=>> following information:
=>> 
=>> ===========================================================================
=>> (gdb) frame 4
=>> #4  0x08072479 in ThisJoinPoint::setup (this=0x8a2dce8, func=0x84ce4e0)
=>>     at /home/gduzan/local/build/ac-sources-0.7/native/Puma/include/Puma/CObjectInfo.h:269
=>> 269      { return _Tree; }
=>> (gdb) print func->_Tree->NodeName()
=>> $1 = 0x81e4f03 "InitDeclarator"
=>> (gdb) print CT_FctDef::NodeId()
=>> $2 = 0x81e4e88 "FctDef"
=>> (gdb) 
=>> ===========================================================================
=>> 
=>>    If I leave out the "-p aspects" option (I've put *.ah in an aspects
=>> subdirectory) I still get the Basic_Types message, but it does manage
=>> to make it through all the translation units (weaving in nothing).
=>
=>
=>Sorry, but I can't reproduce this failure. It seems that there is a 
=>problematic advice declaration in your TestTrace4. I would need to take 
=>a look into the aspect declaration to find the reason.

   I commented out TestTrace3 and added:

===========================================================================
aspect TestTrace4 : public Trace {
  public:
        pointcut methods() = call ("% echo_%::%(...)");
};
===========================================================================

The only other change to my copy of the Trace code was to move the
mangle.h file and adjust the #includes accordingly.

					Gary Duzan
					BBN Technologies
					A Verizon Company





More information about the aspectc-user mailing list