RE: Can we declare a variable as 'int' in the driver --???

Come on guys. Someone says their code works in debug, and fails
on a free build. Then they claim that it is because one of the most
basic features of C is not working. But this is a kernel driver, and
if they are actually making an exact diagnosis, rather than guessing,
the tool they are probably using to look at this stuff is Windbag.
There is NO WAY this is a compiler bug or anything close to it.

-DH
PS I hope I don’t have to eat those words.

----- Original Message -----
From: “Roddy, Mark”
To: “NT Developers Interest List”
Sent: Wednesday, June 21, 2000 1:50 PM
Subject: [ntdev] RE: Can we declare a variable as ‘int’ in the driver ???

If the compiler is treating int as unsigned it is broken.

> -----Original Message-----
> From: Duncan Hume [mailto:xxxxx@des.co.uk]
> Sent: Wednesday, June 21, 2000 12:18 PM
> To: NT Developers Interest List
> Subject: [ntdev] RE: Can we declare a variable as ‘int’ in
> the driver ???
>
>
> One thing to bear in mind is that the storage is irrelevant, it is the
> functions/macnine code instructions that determine if you are
> working in
> signed or unsigned. Check the machine code listing to see if the
> instructions used in the Free build looks the same as the
> Checked… Try
> changing the loop to >-1 and see what code is produced.
>
> Duncan
>
> -----Original Message-----
> From: xxxxx@paragon.ru [mailto:xxxxx@paragon.ru]
> Sent: 21 June 2000 16:33
> To: NT Developers Interest List
> Subject: [ntdev] RE: Can we declare a variable as ‘int’ in the driver
> ???
>
>
> >I don’t see what difference iCount being signed or not
> When a I used to be a pupil I was given a task by my teacher
> to find a bug
> in this code:
>
> ULONG uCount;
> for(uCount = 10; uCount >= 0; uCount–)
> {
> // …
> }
>
> And I’ve found it then :slight_smile: This loop is infinite, 'cause
> uCount is always >=
> 0.
>
> ----------
> ??: Paul Bunn[SMTP:xxxxx@ultrabac.com]
> ???: NT Developers Interest List
> ???: 21 ??? 2000 ?. 19:16
> ???: NT Developers Interest List
> ???: [ntdev] RE: Can we declare a variable as ‘int’
> in the driver ???
>
> I don’t see what difference iCount being signed or not would
> make to the for
> loop.
> int normally is equivalent to LONG. You should be able to
> define iCount as
> LONG or ULONG and it shouldn’t make any difference to that
> particular loop.
> The only difference I can think of is that in the free build
> it is likely
> that iCount may not be assigned storage at all, but may just live as a
> register value (depending on what you’re doing with it).
> It’s also possible
> that it’s a compiler bug, though that is rare these days. I
> would tend to
> recommend debugging the free build and looking at the disassembly.
>
> Regards,
>
> Paul Bunn, UltraBac.com, 425-644-6000
> Microsoft MVP - WindowsNT/2000
> http://www.ultrabac.com
>
>
> -----Original Message-----
> From: Eshanye [mailto:xxxxx@procsys.com]
> Sent: Wednesday, June 21, 2000 7:27 AM
> To: NT Developers Interest List
> Subject: [ntdev] Can we declare a variable as ‘int’ in the driver ???
>
>
> Hi,
>
> I have declared a variable as ‘int’ in my driver. This
> variable is used
> as an index inside a for loop. something like this:-
>
> int iCount;
>
> for(iCount = 3; iCount >= 0; iCount–)
> {
>
> blah… blah…
>
> }
>
> This is a part of DriverEntry…
>
> Now this driver is working very fine if built as a checked
> build. But it
> wont get loaded if it is built as a free build. Because iCount is
> behaving as ULONG. and therefore it is in an infinite loop and so the
> driver is not getting loaded at all.
>
> [I know that I can change the for loop to serve my purpose, but …<br>&gt; why…]. I declared iCount as LONG. But still the same behavior !!!
> [LONG is supposed to be signed long right ???] What is happening ?
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@paragon.ru
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
> —
> You are currently subscribed to ntdev as: xxxxx@stratus.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>


You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)