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

Well, it looks like I do have to eat my words. At least I got Mark out on
the limb with me…
-DH

PS. I forgot the rule about never assuming that MS can’t screw up the simplest thing.
----- Original Message -----
From: “Roddy, Mark”
To: “NT Developers Interest List”
Sent: Wednesday, June 21, 2000 3:42 PM
Subject: [ntdev] RE: Can we declare a variable as ‘int’ in the driver ???

Sorry dave I forgot to contain my remark within … .

> -----Original Message-----
> From: Dave Harvey [mailto:xxxxx@syssoftsol.com]
> Sent: Wednesday, June 21, 2000 1:59 PM
> To: NT Developers Interest List
> Subject: [ntdev] 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; &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’)
>
>
>
> —
> 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’)