Thread overview
[bug?] Strange compiler behaviour
Apr 29, 2006
Matthew
May 01, 2006
Walter Bright
May 01, 2006
Matthew
May 01, 2006
Walter Bright
April 29, 2006
I'm working on releasing the shwild library, and getting some problems with DMC++.

The following line compiles successfully:

dmc -c -wc -wx -Ae -Ar -DWIN32 -DSHWILD_NO_IMPLICIT_LINK -I..\..\include -I"H:\freelibs\openrj\current\include"
 -I"H:\STLSoft\Releases\current\STLSoft\include" -o.\matches.debug.obj
..\..\src\Matches.cpp

However, the following line does not:

dmc -c -wc -wx -Ae -Ar -DWIN32 -DSHWILD_NO_IMPLICIT_LINK -I..\..\include -Ih:\freelibs\cstring\current\include
 -I"H:\freelibs\openrj\current\include" -I"H:\STLSoft\Releases\current\STLSoft\include"
 -o.\matches.debug.obj ..\..\src\Matches.cpp

with the error:

    Fatal error: unable to open input file
'h:\freelibs\cstring\current\include\cstring'
    --- errorlevel 1

I'm at a bit of a loss here. Any ideas?

Cheers

Matthew


May 01, 2006
Matthew wrote:
>     Fatal error: unable to open input file 'h:\freelibs\cstring\current\include\cstring'
>     --- errorlevel 1
> 
> I'm at a bit of a loss here. Any ideas?

Does the file exist?
May 01, 2006
"Walter Bright" <newshound@digitalmars.com> wrote in message news:e34j2c$1pdu$2@digitaldaemon.com...
> Matthew wrote:
>>     Fatal error: unable to open input file
>> 'h:\freelibs\cstring\current\include\cstring'
>>     --- errorlevel 1
>>
>> I'm at a bit of a loss here. Any ideas?
>
> Does the file exist?

I suspect that the problem is related to the fact that 'h:\freelibs\cstring\current\include\cstring' is a directory (within which the cstring.h file resides, i.e. 'h:\freelibs\cstring\current\include\cstring\cstring.h', in response to a #include <cstring/cstring.h>), and DMC++ seeks to read that directory as a file when asked to do so via a #include <cstring> in STLport.

I think this is a compiler bug, and the fix is to make sure that when a file-system entry is matched in the include-paths include resolution it is ignored if it is not a file (or a file-link, were it a UNIX concern, which DMC++ of course is not <g>).

That sounds reasonable, I'm sure you'd agree, but does it sound feasible?

Cheers

Matthew


May 01, 2006
Matthew wrote:
> "Walter Bright" <newshound@digitalmars.com> wrote in message news:e34j2c$1pdu$2@digitaldaemon.com...
>> Matthew wrote:
>>>     Fatal error: unable to open input file 'h:\freelibs\cstring\current\include\cstring'
>>>     --- errorlevel 1
>>>
>>> I'm at a bit of a loss here. Any ideas?
>> Does the file exist?
> 
> I suspect that the problem is related to the fact that 'h:\freelibs\cstring\current\include\cstring' is a directory (within which the cstring.h file resides, i.e. 'h:\freelibs\cstring\current\include\cstring\cstring.h', in response to a #include <cstring/cstring.h>), and DMC++ seeks to read that directory as a file when asked to do so via a #include <cstring> in STLport.
> 
> I think this is a compiler bug, and the fix is to make sure that when a file-system entry is matched in the include-paths include resolution it is ignored if it is not a file (or a file-link, were it a UNIX concern, which DMC++ of course is not <g>).
> 
> That sounds reasonable, I'm sure you'd agree, but does it sound feasible?

I'd have to look at the code that implements it, it's over 18 years old <g>.