Thread overview
weird
Dec 24, 2004
David Medlock
Dec 24, 2004
Thomas Kuehne
Dec 24, 2004
David Medlock
Dec 25, 2004
Simon Buchan
Dec 26, 2004
Thomas Kuehne
December 24, 2004
I have gotten the following error several times, and I cannot seem to isolate the problem at all:

solver.obj
 Error 42: Symbol Undefined __arguments_Aaik
--- errorlevel 1
SMAKE fatal error: command "dmd" returned with error code 1


I am guessing 'Aaik' is a type signature, but I cannot decode it...

I would like to hunt this down, but I honestly don't know where to look.

Any help is appreciated.
December 24, 2004
"David Medlock" <amedlock@nospam.org> schrieb im Newsbeitrag news:cqg81u$1pos$1@digitaldaemon.com...
> I have gotten the following error several times, and I cannot seem to isolate the problem at all:
>
> solver.obj
>   Error 42: Symbol Undefined __arguments_Aaik
> --- errorlevel 1
> SMAKE fatal error: command "dmd" returned with error code 1
>
>
> I am guessing 'Aaik' is a type signature, but I cannot decode it...
>
> I would like to hunt this down, but I honestly don't know where to look.

1) Cut the code down until any further reductions removes the error message.

2) Try a search for "aik" in the source code.

3) Enable debug info and compile(without linking), search for "aik" in the object file.

4) Try to write a dummy "std/typeinfo/ti_*" class.

Thomas


December 24, 2004
Thomas Kuehne wrote:
<snip> *some helpful stuff*

Thanks Thomas.

This is pretty strange.  Its difficult to debug this because it is in a stack template class I wrote(attached).  Believe it or not it is the writefln statement in the following routine:

   // Note: negative indices are from the end of the stack
   // ( this[-1] = last, this[0]=first )
   T   opIndex( int n )
   in { assert( mCount>0 ); }
   body
   {
     alias std.string.toString str ;

     if ( n<0 ) n = mCount + n;
     if( (n<0) || (n>=this.mCount))
     {
       char[] msg = "Attempting to index item %s %s items" ~ str(n) ~
         " with " ~ str( mCount ) ~ " items." ;
       writefln("Attempting to index item %s with %s items", n, mCount );
       throw new Exception("Stack Underflow: " ~ msg );
     }
     else  return data[n];
   }

If I comment out the writefln statement, everything links fine. It even happens when i qualify using std.stdio.writefln.

Its a bit strange because (unless I am mistaken) the A in Aaik is a class reference type and I am passing no class references...



December 25, 2004
On Fri, 24 Dec 2004 09:20:40 -0500, David Medlock <amedlock@nospam.org> wrote:

That code links fine with my system (dmd 0.109 XP). This may have something
to do with your "SMAKE" whatever that is.

-- 
"Unhappy Microsoft customers have a funny way of becoming Linux,
Salesforce.com and Oracle customers." - www.microsoft-watch.com:
"The Year in Review: Microsoft Opens Up"
--
"I plan on at least one critical patch every month, and I haven't been disappointed."
- Adam Hansen, manager of security at Sonnenschein Nath & Rosenthal LLP
(Quote from http://www.eweek.com/article2/0,1759,1736104,00.asp)
--
"It's been a challenge to "reteach or retrain" Web users to pay for content, said Pizey"
-Wired website: "The Incredible Shrinking Comic"
December 26, 2004
Simon Buchan schrieb:
> That code links fine with my system (dmd 0.109 XP). This may have something to do with your "SMAKE" whatever that is.

I can't reproduce it either (dmd & gdc Linux).

Thomas

PS:
If it's a compiler bug, I am sure you can reduce this test case's size further.