"Previous Definition different" when -inline switch is set

Baz burg.basile at yahoo.com
Wed Jul 17 07:01:23 PDT 2013


Hello, is there any particular reason why dmd would tell me that 
the "Previous Definition different" when compiling a program with 
-inline while not when compiling it without the switch ?

more information:
- the message appears two times and it's about two methods used 
in a lib.
- the message doesn't appear when I compile the lib but when I 
compile a program using this lib.
- the two methods involved are private, used in another public 
method,
- the two methods involved are used recursively (but..., see 
above)
- the two methods involved are used via a single delegate (itself 
set according to the context.)

So the problem is clearly caused by the compiler optimizations 
performed when using the -inline switch. Unfortunately I cannot 
reproduce the issue in a simple example.

Would there be a method to avoid these two methods to be inlined 
? (so far I've tried to put their parameters as ref, but without 
success).

Is the bug described a "well known" issue with a "well known" 
workaround ?
(so far, I haven't found anything which is related, even with 
some serious forum/newsgroup investigation...)

Any idea ?


More information about the Digitalmars-d-learn mailing list