Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2006-02

Bit manipulation

5 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Pianoman

Hi, I need to know how can I see whether a certain bit of byte/word/dword is set: or not:
function like this would be appreciated:
function isset(value: byte word or dword;bit:byte):boolean; for example when i pass the function parrameter a of type word and I want to see whether the bit 14 is set.
Regards
Pianoman

Earlier message 402 lines
----- Original Message ----- From: To: Sent: Monday, February 20, 2006 12:00 PM Subject: fpc-pascal Digest, Vol 18, Issue 24 > Send fpc-pascal mailing list submissions to > > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > or, via email, send a message with subject or body 'help' to > > > You can reach the person managing the list at > > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of fpc-pascal digest..." > > > Today's Topics: > > 1. Bug in RTL for arm (Koenraad Lelong) > 2. Re: Internal error 200312122 (Koenraad Lelong) > 3. Re: Internal error 200312122 (Peter Vreman) > 4. How to run FPC 2.x on QNX (Michael M?ller) > 5. RE: tidypas (libtidy) question (Jeff Pohlmeyer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 19 Feb 2006 19:04:07 +0100 > From: Koenraad Lelong > Subject: [fpc-pascal] Bug in RTL for arm > To: FPC-Pascal users discussions > Message-ID: > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi, > Today I did an update via svn. When I compiled for arm (in the hope that > the bug I encountered a while ago would have disappeared) I found a bug > in rtl/linux/arm/sysnr.inc : > Const > syscall_nr_base = syscall_nr_base; > I modified this to : > Const > syscall_nr_base = $900000; > which is similar to fpc 2.0.2. When I compiled this I got my ususal error : > /home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc > -Xr -Ur -Xs -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE. > -FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE -Us > -Sg system.pp > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s: Assembler > messages: > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51368: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51376: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51383: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51390: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51398: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51406: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51414: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51422: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51430: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51438: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51446: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51454: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51462: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51470: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51478: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51624: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51632: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51640: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51648: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51655: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51662: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51669: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51676: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51683: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51690: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51697: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51704: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51711: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51718: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51725: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51732: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51739: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51746: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51753: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51760: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51767: Error: > unrecognized symbol type "" > threadvr.inc(30,25) Error: Error while assembling exitcode 1 > threadvr.inc(30,25) Fatal: There were 2 errors compiling module, stopping > Fatal: Compilation aborted > make[5]: *** [system.ppu] Fout 1 > make[5]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl/linux' > make[4]: *** [linux_all] Fout 2 > make[4]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl' > make[3]: *** [rtl] Fout 2 > make[3]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler' > make[2]: *** [cycle] Fout 2 > make[2]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler' > make[1]: *** [compiler_cycle] Fout 2 > make[1]: Leaving directory `/home/koenraad/fpc-devel/fpc' > make: *** [build-stamp.arm-linux] Fout 2 > > Regards, > Koenraad Lelong. > > > ------------------------------ > > Message: 2 > Date: Sun, 19 Feb 2006 19:13:21 +0100 > From: Koenraad Lelong > Subject: Re: [fpc-pascal] Internal error 200312122 > To: FPC-Pascal users discussions > Message-ID: > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Koenraad Lelong schreef: > > Peter Vreman schreef: > > > >>> Martin Schreiber schreef: > >>> > >>>> On Sunday 05 February 2006 17.11, Koenraad Lelong wrote: > > > > ... > > > >> > >> Internalerror numbers are just unique numbers be using <date><seqnr>. > >> They > >> don't have any meaning. > >> > >> Quick intro for debugging this. > >> - Build compiler with debug info: 'make cycle OPT=-gl' > >> - Compile source with this new compiler in gdb: > >> - gdb --args <newcompiler> <args> > >> - (gdb) br INTERNALERROR > >> - (gdb) dir <pathtocompilersource> > >> - (gdb) r > >> - Hit breakpoint > >> - (gdb) bt > >> - The backtrace will give you more info. Use 'fr <framenr>' to jump to > >> a function in the callstack so you can watch the code and variables. > >> > > OK, I tried this, but that's as far as I can get. Enclosed the output of > > the backtrace (first lines are the commandline I used). > > Anything I can do further ? > > Thanks, > > Koenraad Lelong. > > > ... > I tried fr <frame#> for the last 20 frames : > (gdb) fr 20 > #20 0x080e04ed in PROC_UNIT () at pmodules.pas:1097 > 1097 loadunits; > (gdb) fr 19 > #19 0x080df58a in LOADUNITS () at pmodules.pas:621 > 621 tppumodule(pu.u).loadppu; > (gdb) fr 18 > #18 0x080d6ef5 in TPPUMODULE__LOADPPU (this=0x404e6c74) at fppu.pas:1509 > 1509 compile(mainsource^); > (gdb) fr 17 > #17 0x0808f207 in COMPILE > (FILENAME='/home/koenraad/msegui/msegui/lib/common/kernel/msebitmap.pas') > at parser.pas:525 > 525 proc_unit; > (gdb) fr 16 > #16 0x080e06f0 in PROC_UNIT () at pmodules.pas:1184 > 1184 parse_implementation_uses; > (gdb) fr 15 > #15 0x080dfd25 in PARSE_IMPLEMENTATION_USES () at pmodules.pas:839 > 839 loadunits; > (gdb) fr 14 > #14 0x080df58a in LOADUNITS () at pmodules.pas:621 > 621 tppumodule(pu.u).loadppu; > (gdb) fr 13 > #13 0x080d6df9 in TPPUMODULE__LOADPPU (this=0x41085734) at fppu.pas:1471 > 1471 load_usedunits; > (gdb) fr 12 > #12 0x080d6853 in TPPUMODULE__LOAD_USEDUNITS (this=0x41085734) at > fppu.pas:1244 > 1244 tppumodule(pu.u).loadppu; > (gdb) fr 11 > #11 0x080d6ef5 in TPPUMODULE__LOADPPU (this=0x40304744) at fppu.pas:1509 > 1509 compile(mainsource^); > (gdb) fr 10 > #10 0x0808f207 in COMPILE > (FILENAME='/home/koenraad/msegui/msegui/lib/common/kernel/msegui.pas') > at parser.pas:525 > 525 proc_unit; > (gdb) fr 9 > #9 0x080e0a5b in PROC_UNIT () at pmodules.pas:1302 > 1302 > gen_intf_wrappers(codesegment,current_module.localsymtable); > (gdb) fr 8 > #8 0x0811d7c3 in GEN_INTF_WRAPPERS (LIST=0x411f3f34, ST=0x41401a54) at > ncgutil.pas:2364 > 2364 gen_intf_wrapper(list,tobjectdef(def)); > (gdb) fr 7 > #7 0x0811d758 in GEN_INTF_WRAPPER (LIST=0x411f3f34, _CLASS=0x41641d54) > at ncgutil.pas:2349 > 2349 > cg.g_intf_wrapper(list,_class.implementedinterfaces.implprocs(i,j),tmps,_cla ss.implementedinterfaces.ioffsets(i)); > (gdb) fr 6 > #6 0x0809cca5 in TCGARM__G_INTF_WRAPPER (LIST=0x411f3f34, > PROCDEF=0x41685744, > > LABELNAME='WRPR_MSEGUI_TINTERNALAPPLICATION_$_IMOUSE_$_1_$_MSEGUI_TINTERNALA PPLICATION_$__GETMOUSEWINID$$LONGWORD', > IOFFSET=373, this=0x40068014) at cgcpu.pas:1479 > 1479 in cgcpu.pas > (gdb) fr 5 > #5 0x080ccfb3 in TCG__G_ADJUST_SELF_VALUE (LIST=0x411f3f34, > PROCDEF=0x41685744, IOFFSET=373, this=0x40068014) at cgobj.pas:2001 > 2001 > cg.a_op_const_reg(list,OP_SUB,paraloc.size,ioffset,paraloc.register); > (gdb) fr 4 > #4 0x0809a141 in TCGARM__A_OP_CONST_REG (LIST=0x411f3f34, OP=OP_SUB, > SIZE=OS_32, A=373, REG=16777216, this=0x40068014) at cgcpu.pas:287 > 287 in cgcpu.pas > (gdb) fr 3 > #3 0x0809a297 in TCGARM__A_OP_CONST_REG_REG (LIST=0x411f3f34, > OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, DST=16777216, > this=0x40068014) at cgcpu.pas:323 > 323 in cgcpu.pas > (gdb) fr 3 > #3 0x0809a297 in TCGARM__A_OP_CONST_REG_REG (LIST=0x411f3f34, > OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, DST=16777216, > this=0x40068014) at cgcpu.pas:323 > 323 in cgcpu.pas > (gdb) fr 2 > #2 0x0809a6db in TCGARM__A_OP_CONST_REG_REG_CHECKOVERFLOW > (LIST=0x411f3f34, OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, > DST=16777216, SETFLAGS=false, OVLOC= > {LOC = LOC_VOID, SIZE = 166, RESFLAGS = 186, VALUE = 134759354, > VALUE64 = 4713231088527885242, REFERENCE = {OFFSET = 134759354, SYMBOL = > 0x4168c2b4, RELSYMBOL = 0x4168c2b4, SEGMENT = 1097666932, BASE = > -2068527460, INDEX = 135726240, REFADDR = 60, SCALEFACTOR = 142, > SYMBOLDATA = 0x809ff56, SIGNINDEX = 52, SHIFTIMM = 4, ADDRESSMODE = 9, > SHIFTMODE = 8}, REGISTER = 134759354, REGISTER64 = {REGLO = 134759354, > REGHI = 1097384628}}, this=0x40068014) at cgcpu.pas:435 > 435 in cgcpu.pas > (gdb) fr 1 > #1 0x080c926f in TCG__GETINTREGISTER (LIST=0x411f3f34, SIZE=OS_32, > this=0x40068014) at cgobj.pas:548 > 548 internalerror(200312122); > (gdb) fr 0 > #0 INTERNALERROR (I=200312122) at verbose.pas:447 > 447 UpdateStatus; > (gdb) > > Is there no-one who can give suggestions where to look next ? I want to > help, but I don't know much about gdb, I don't know about the internals > of fpc... > Regards, > Koenraad Lelong. > > ------------------------------ > > Message: 3 > Date: Mon, 20 Feb 2006 09:03:40 +0100 (CET) > From: "Peter Vreman" > Subject: Re: [fpc-pascal] Internal error 200312122 > To: "FPC-Pascal users discussions" > Message-ID: > > Content-Type: text/plain;charset=iso-8859-1 > > > #2 0x0809a6db in TCGARM__A_OP_CONST_REG_REG_CHECKOVERFLOW > > (LIST=0x411f3f34, OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, > > DST=16777216, SETFLAGS=false, OVLOC= > > {LOC = LOC_VOID, SIZE = 166, RESFLAGS = 186, VALUE = 134759354, > > VALUE64 = 4713231088527885242, REFERENCE = {OFFSET = 134759354, SYMBOL = > > 0x4168c2b4, RELSYMBOL = 0x4168c2b4, SEGMENT = 1097666932, BASE = > > -2068527460, INDEX = 135726240, REFADDR = 60, SCALEFACTOR = 142, > > SYMBOLDATA = 0x809ff56, SIGNINDEX = 52, SHIFTIMM = 4, ADDRESSMODE = 9, > > SHIFTMODE = 8}, REGISTER = 134759354, REGISTER64 = {REGLO = 134759354, > > REGHI = 1097384628}}, this=0x40068014) at cgcpu.pas:435 > > 435 in cgcpu.pas > > (gdb) fr 1 > > #1 0x080c926f in TCG__GETINTREGISTER (LIST=0x411f3f34, SIZE=OS_32, > > this=0x40068014) at cgobj.pas:548 > > 548 internalerror(200312122); > > Fixed > > > > ------------------------------ > > Message: 4 > Date: Sun, 19 Feb 2006 14:17:13 +0100 > From: Michael M?ller > Subject: [fpc-pascal] How to run FPC 2.x on QNX > To: > Message-ID: > Content-Type: text/plain; charset=us-ascii > > Hi, > > we are developing a console application under Delphi. The main task is > to use it under Windows. But there are some situations where we need > to run it under the realtime OS QNX. This is the reason why we use FPC > 1.0.x. But it lacks some interesting features like dynamic arrays. > > I know that QNX isn't official supported anymore. But do you see any > chances that it would be possible for us to make the needed changes to > compile FPC under QNX? Many things are Unix like and QNX supports > POSIX. So where are the difficulties to support QNX? > > I didn't subscribe to the list. So please CC me in your anwser. > > Regards > > Michael > > ------------------------------ > > Message: 5 > Date: Mon, 20 Feb 2006 03:52:16 -0600 > From: "Jeff Pohlmeyer" > Subject: [fpc-pascal] RE: tidypas (libtidy) question > To: > Cc: > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > > ... when I do this, I get an AV (in Delphi7). > > > tidyOptSetValue(fTidyDoc, TidyErrFile, ctmbstr(TIDY_NULL_FILE)); > > tidySetErrorFile(fTidyDoc, ctmbstr(TIDY_NULL_FILE)); > > { where TIDY_NULL_FILE = 'NUL' for Windows } > > If you can send me (off-list) a short sample program that > shows the AV, maybe I can help. > > > Regards, > - Jeff > > ------------------------------ > > _______________________________________________ > fpc-pascal maillist - > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > > End of fpc-pascal Digest, Vol 18, Issue 24 > ****************************************** > > > __________ Informacia od NOD32 1.1413 (20060217) __________ > > Tato sprava bola preverena antivirusovym systemom NOD32. > http://www.eset.sk > >

Reply by email

Geno Roupsky
to Pianoman

it is as simple as this:

function isset(value: dword; bit: byte): boolean;
begin
  result := value and (1 shl pred(bit))  0;
end;

2006/2/20, Pianoman :

Show quoted text 427 lines
Hi, I need to know how can I see whether a certain bit of byte/word/dword is set: or not: function like this would be appreciated: function isset(value: byte word or dword;bit:byte):boolean; for example when i pass the function parrameter a of type word and I want to see whether the bit 14 is set. Regards Pianoman ----- Original Message ----- From: To: Sent: Monday, February 20, 2006 12:00 PM Subject: fpc-pascal Digest, Vol 18, Issue 24 > Send fpc-pascal mailing list submissions to > > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > or, via email, send a message with subject or body 'help' to > > > You can reach the person managing the list at > > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of fpc-pascal digest..." > > > Today's Topics: > > 1. Bug in RTL for arm (Koenraad Lelong) > 2. Re: Internal error 200312122 (Koenraad Lelong) > 3. Re: Internal error 200312122 (Peter Vreman) > 4. How to run FPC 2.x on QNX (Michael M?ller) > 5. RE: tidypas (libtidy) question (Jeff Pohlmeyer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 19 Feb 2006 19:04:07 +0100 > From: Koenraad Lelong > Subject: [fpc-pascal] Bug in RTL for arm > To: FPC-Pascal users discussions > Message-ID: > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi, > Today I did an update via svn. When I compiled for arm (in the hope that > the bug I encountered a while ago would have disappeared) I found a bug > in rtl/linux/arm/sysnr.inc : > Const > syscall_nr_base = syscall_nr_base; > I modified this to : > Const > syscall_nr_base = $900000; > which is similar to fpc 2.0.2. When I compiled this I got my ususal error : > /home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc > -Xr -Ur -Xs -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE. > -FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE -Us > -Sg system.pp > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s: Assembler > messages: > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51368: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51376: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51383: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51390: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51398: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51406: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51414: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51422: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51430: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51438: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51446: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51454: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51462: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51470: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51478: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51624: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51632: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51640: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51648: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51655: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51662: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51669: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51676: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51683: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51690: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51697: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51704: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51711: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51718: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51725: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51732: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51739: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51746: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51753: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51760: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51767: Error: > unrecognized symbol type "" > threadvr.inc(30,25) Error: Error while assembling exitcode 1 > threadvr.inc(30,25) Fatal: There were 2 errors compiling module, stopping > Fatal: Compilation aborted > make[5]: *** [system.ppu] Fout 1 > make[5]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl/linux' > make[4]: *** [linux_all] Fout 2 > make[4]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl' > make[3]: *** [rtl] Fout 2 > make[3]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler' > make[2]: *** [cycle] Fout 2 > make[2]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler' > make[1]: *** [compiler_cycle] Fout 2 > make[1]: Leaving directory `/home/koenraad/fpc-devel/fpc' > make: *** [build-stamp.arm-linux] Fout 2 > > Regards, > Koenraad Lelong. > > > ------------------------------ > > Message: 2 > Date: Sun, 19 Feb 2006 19:13:21 +0100 > From: Koenraad Lelong > Subject: Re: [fpc-pascal] Internal error 200312122 > To: FPC-Pascal users discussions > Message-ID: > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Koenraad Lelong schreef: > > Peter Vreman schreef: > > > >>> Martin Schreiber schreef: > >>> > >>>> On Sunday 05 February 2006 17.11, Koenraad Lelong wrote: > > > > ... > > > >> > >> Internalerror numbers are just unique numbers be using <date><seqnr>. > >> They > >> don't have any meaning. > >> > >> Quick intro for debugging this. > >> - Build compiler with debug info: 'make cycle OPT=-gl' > >> - Compile source with this new compiler in gdb: > >> - gdb --args <newcompiler> <args> > >> - (gdb) br INTERNALERROR > >> - (gdb) dir <pathtocompilersource> > >> - (gdb) r > >> - Hit breakpoint > >> - (gdb) bt > >> - The backtrace will give you more info. Use 'fr <framenr>' to jump to > >> a function in the callstack so you can watch the code and variables. > >> > > OK, I tried this, but that's as far as I can get. Enclosed the output of > > the backtrace (first lines are the commandline I used). > > Anything I can do further ? > > Thanks, > > Koenraad Lelong. > > > ... > I tried fr <frame#> for the last 20 frames : > (gdb) fr 20 > #20 0x080e04ed in PROC_UNIT () at pmodules.pas:1097 > 1097 loadunits; > (gdb) fr 19 > #19 0x080df58a in LOADUNITS () at pmodules.pas:621 > 621 tppumodule(pu.u).loadppu; > (gdb) fr 18 > #18 0x080d6ef5 in TPPUMODULE__LOADPPU (this=0x404e6c74) at fppu.pas:1509 > 1509 compile(mainsource^); > (gdb) fr 17 > #17 0x0808f207 in COMPILE > (FILENAME='/home/koenraad/msegui/msegui/lib/common/kernel/msebitmap.pas') > at parser.pas:525 > 525 proc_unit; > (gdb) fr 16 > #16 0x080e06f0 in PROC_UNIT () at pmodules.pas:1184 > 1184 parse_implementation_uses; > (gdb) fr 15 > #15 0x080dfd25 in PARSE_IMPLEMENTATION_USES () at pmodules.pas:839 > 839 loadunits; > (gdb) fr 14 > #14 0x080df58a in LOADUNITS () at pmodules.pas:621 > 621 tppumodule(pu.u).loadppu; > (gdb) fr 13 > #13 0x080d6df9 in TPPUMODULE__LOADPPU (this=0x41085734) at fppu.pas:1471 > 1471 load_usedunits; > (gdb) fr 12 > #12 0x080d6853 in TPPUMODULE__LOAD_USEDUNITS (this=0x41085734) at > fppu.pas:1244 > 1244 tppumodule(pu.u).loadppu; > (gdb) fr 11 > #11 0x080d6ef5 in TPPUMODULE__LOADPPU (this=0x40304744) at fppu.pas:1509 > 1509 compile(mainsource^); > (gdb) fr 10 > #10 0x0808f207 in COMPILE > (FILENAME='/home/koenraad/msegui/msegui/lib/common/kernel/msegui.pas') > at parser.pas:525 > 525 proc_unit; > (gdb) fr 9 > #9 0x080e0a5b in PROC_UNIT () at pmodules.pas:1302 > 1302 > gen_intf_wrappers(codesegment,current_module.localsymtable); > (gdb) fr 8 > #8 0x0811d7c3 in GEN_INTF_WRAPPERS (LIST=0x411f3f34, ST=0x41401a54) at > ncgutil.pas:2364 > 2364 gen_intf_wrapper(list,tobjectdef(def)); > (gdb) fr 7 > #7 0x0811d758 in GEN_INTF_WRAPPER (LIST=0x411f3f34, _CLASS=0x41641d54) > at ncgutil.pas:2349 > 2349 > cg.g_intf_wrapper (list,_class.implementedinterfaces.implprocs(i,j),tmps,_cla ss.implementedinterfaces.ioffsets(i)); > (gdb) fr 6 > #6 0x0809cca5 in TCGARM__G_INTF_WRAPPER (LIST=0x411f3f34, > PROCDEF=0x41685744, > > LABELNAME='WRPR_MSEGUI_TINTERNALAPPLICATION_$_IMOUSE_$_1_$_MSEGUI_TINTERNALA PPLICATION_$__GETMOUSEWINID$$LONGWORD', > IOFFSET=373, this=0x40068014) at cgcpu.pas:1479 > 1479 in cgcpu.pas > (gdb) fr 5 > #5 0x080ccfb3 in TCG__G_ADJUST_SELF_VALUE (LIST=0x411f3f34, > PROCDEF=0x41685744, IOFFSET=373, this=0x40068014) at cgobj.pas:2001 > 2001 > cg.a_op_const_reg(list,OP_SUB,paraloc.size,ioffset,paraloc.register); > (gdb) fr 4 > #4 0x0809a141 in TCGARM__A_OP_CONST_REG (LIST=0x411f3f34, OP=OP_SUB, > SIZE=OS_32, A=373, REG=16777216, this=0x40068014) at cgcpu.pas:287 > 287 in cgcpu.pas > (gdb) fr 3 > #3 0x0809a297 in TCGARM__A_OP_CONST_REG_REG (LIST=0x411f3f34, > OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, DST=16777216, > this=0x40068014) at cgcpu.pas:323 > 323 in cgcpu.pas > (gdb) fr 3 > #3 0x0809a297 in TCGARM__A_OP_CONST_REG_REG (LIST=0x411f3f34, > OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, DST=16777216, > this=0x40068014) at cgcpu.pas:323 > 323 in cgcpu.pas > (gdb) fr 2 > #2 0x0809a6db in TCGARM__A_OP_CONST_REG_REG_CHECKOVERFLOW > (LIST=0x411f3f34, OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, > DST=16777216, SETFLAGS=false, OVLOC= > {LOC = LOC_VOID, SIZE = 166, RESFLAGS = 186, VALUE = 134759354, > VALUE64 = 4713231088527885242, REFERENCE = {OFFSET = 134759354, SYMBOL = > 0x4168c2b4, RELSYMBOL = 0x4168c2b4, SEGMENT = 1097666932, BASE = > -2068527460, INDEX = 135726240, REFADDR = 60, SCALEFACTOR = 142, > SYMBOLDATA = 0x809ff56, SIGNINDEX = 52, SHIFTIMM = 4, ADDRESSMODE = 9, > SHIFTMODE = 8}, REGISTER = 134759354, REGISTER64 = {REGLO = 134759354, > REGHI = 1097384628}}, this=0x40068014) at cgcpu.pas:435 > 435 in cgcpu.pas > (gdb) fr 1 > #1 0x080c926f in TCG__GETINTREGISTER (LIST=0x411f3f34, SIZE=OS_32, > this=0x40068014) at cgobj.pas:548 > 548 internalerror(200312122); > (gdb) fr 0 > #0 INTERNALERROR (I=200312122) at verbose.pas:447 > 447 UpdateStatus; > (gdb) > > Is there no-one who can give suggestions where to look next ? I want to > help, but I don't know much about gdb, I don't know about the internals > of fpc... > Regards, > Koenraad Lelong. > > ------------------------------ > > Message: 3 > Date: Mon, 20 Feb 2006 09:03:40 +0100 (CET) > From: "Peter Vreman" > Subject: Re: [fpc-pascal] Internal error 200312122 > To: "FPC-Pascal users discussions" > Message-ID: > > Content-Type: text/plain;charset=iso-8859-1 > > > #2 0x0809a6db in TCGARM__A_OP_CONST_REG_REG_CHECKOVERFLOW > > (LIST=0x411f3f34, OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, > > DST=16777216, SETFLAGS=false, OVLOC= > > {LOC = LOC_VOID, SIZE = 166, RESFLAGS = 186, VALUE = 134759354, > > VALUE64 = 4713231088527885242, REFERENCE = {OFFSET = 134759354, SYMBOL = > > 0x4168c2b4, RELSYMBOL = 0x4168c2b4, SEGMENT = 1097666932, BASE = > > -2068527460, INDEX = 135726240, REFADDR = 60, SCALEFACTOR = 142, > > SYMBOLDATA = 0x809ff56, SIGNINDEX = 52, SHIFTIMM = 4, ADDRESSMODE = 9, > > SHIFTMODE = 8}, REGISTER = 134759354, REGISTER64 = {REGLO = 134759354, > > REGHI = 1097384628}}, this=0x40068014) at cgcpu.pas:435 > > 435 in cgcpu.pas > > (gdb) fr 1 > > #1 0x080c926f in TCG__GETINTREGISTER (LIST=0x411f3f34, SIZE=OS_32, > > this=0x40068014) at cgobj.pas:548 > > 548 internalerror(200312122); > > Fixed > > > > ------------------------------ > > Message: 4 > Date: Sun, 19 Feb 2006 14:17:13 +0100 > From: Michael M?ller > Subject: [fpc-pascal] How to run FPC 2.x on QNX > To: > Message-ID: > Content-Type: text/plain; charset=us-ascii > > Hi, > > we are developing a console application under Delphi. The main task is > to use it under Windows. But there are some situations where we need > to run it under the realtime OS QNX. This is the reason why we use FPC > 1.0.x. But it lacks some interesting features like dynamic arrays. > > I know that QNX isn't official supported anymore. But do you see any > chances that it would be possible for us to make the needed changes to > compile FPC under QNX? Many things are Unix like and QNX supports > POSIX. So where are the difficulties to support QNX? > > I didn't subscribe to the list. So please CC me in your anwser. > > Regards > > Michael > > ------------------------------ > > Message: 5 > Date: Mon, 20 Feb 2006 03:52:16 -0600 > From: "Jeff Pohlmeyer" > Subject: [fpc-pascal] RE: tidypas (libtidy) question > To: > Cc: > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > > ... when I do this, I get an AV (in Delphi7). > > > tidyOptSetValue(fTidyDoc, TidyErrFile, ctmbstr(TIDY_NULL_FILE)); > > tidySetErrorFile(fTidyDoc, ctmbstr(TIDY_NULL_FILE)); > > { where TIDY_NULL_FILE = 'NUL' for Windows } > > If you can send me (off-list) a short sample program that > shows the AV, maybe I can help. > > > Regards, > - Jeff > > ------------------------------ > > _______________________________________________ > fpc-pascal maillist - > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > > End of fpc-pascal Digest, Vol 18, Issue 24 > ****************************************** > > > __________ Informacia od NOD32 1.1413 (20060217) __________ > > Tato sprava bola preverena antivirusovym systemom NOD32. > http://www.eset.sk > > _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply by email

Jonas Raoni
to Pianoman: Hi, I need to know how can I see whether a certain bit of byte/word/dword is set: or not:
Pianoman wrote 6 lines
Hi, I need to know how can I see whether a certain bit of byte/word/dword is set: or not: function like this would be appreciated: function isset(value: byte word or dword;bit:byte):boolean; for example when i pass the function parrameter a of type word and I want to see whether the bit 14 is set.
function GetBit(const Value: DWord; const Bit: Byte): Boolean;
begin
  Result := (Value and (1 shl Bit))  0;
end;
function ClearBit(const Value: DWord; const Bit: Byte): DWord;
begin
	Result := Value and not (1 shl Bit);
end;
function SetBit(const Value: DWord; const Bit: Byte): DWord;
begin
	Result := Value or (1 shl Bit);
end;
function EnableBit(const Value: DWord; const Bit: Byte; const TurnOn:
Boolean): DWord;
begin
	Result := (Value or (1 shl Bit)) xor (Integer(not TurnOn) shl Bit);
end;
Jonas Raoni Soares Silva http://www.jsfromhell.com

Reply by email

Florian Klaempfl
to Geno Roupsky: it is as simple as this: function isset(value: dword; bit: byte): boolean; begin result…
Geno Roupsky wrote 6 lines
it is as simple as this: function isset(value: dword; bit: byte): boolean; begin result := value and (1 shl pred(bit)) 0; end;

Adding inline doesn't hurt speedwise ;)

Show quoted text 511 lines
2006/2/20, Pianoman < >: Hi, I need to know how can I see whether a certain bit of byte/word/dword is set: or not: function like this would be appreciated: function isset(value: byte word or dword;bit:byte):boolean; for example when i pass the function parrameter a of type word and I want to see whether the bit 14 is set. Regards Pianoman ----- Original Message ----- From: < > To: < > Sent: Monday, February 20, 2006 12:00 PM Subject: fpc-pascal Digest, Vol 18, Issue 24 > Send fpc-pascal mailing list submissions to > > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.freepascal.org/mailman/listinfo/fpc-pascal <http://lists.freepascal.org/mailman/listinfo/fpc-pascal> > or, via email, send a message with subject or body 'help' to > > > You can reach the person managing the list at > > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of fpc-pascal digest..." > > > Today's Topics: > > 1. Bug in RTL for arm (Koenraad Lelong) > 2. Re: Internal error 200312122 (Koenraad Lelong) > 3. Re: Internal error 200312122 (Peter Vreman) > 4. How to run FPC 2.x on QNX (Michael M?ller) > 5. RE: tidypas (libtidy) question (Jeff Pohlmeyer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 19 Feb 2006 19:04:07 +0100 > From: Koenraad Lelong < > > Subject: [fpc-pascal] Bug in RTL for arm > To: FPC-Pascal users discussions < > > Message-ID: < > > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi, > Today I did an update via svn. When I compiled for arm (in the hope that > the bug I encountered a while ago would have disappeared) I found a bug > in rtl/linux/arm/sysnr.inc : > Const > syscall_nr_base = syscall_nr_base; > I modified this to : > Const > syscall_nr_base = $900000; > which is similar to fpc 2.0.2. When I compiled this I got my ususal error : > /home/koenraad/fpc-devel/fpc/compiler/ppcrossarm -Ur -XParm-linux- -Xc > -Xr -Ur -Xs -n -Fi../inc -Fi../arm -Fi../unix -Fiarm -FE. > -FU/home/koenraad/fpc-devel/fpc/rtl/units/arm-linux -darm -dRELEASE -Us > -Sg system.pp > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s: Assembler > messages: > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51368: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51376: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51383: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51390: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51398: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51406: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51414: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51422: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51430: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51438: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51446: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51454: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51462: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51470: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51478: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51624: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51632: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51640: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51648: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51655: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51662: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51669: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51676: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51683: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51690: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51697: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51704: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51711: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51718: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51725: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51732: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51739: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51746: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51753: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51760: Error: > unrecognized symbol type "" > /home/koenraad/fpc-devel/fpc/rtl/units/arm-linux/system.s:51767: Error: > unrecognized symbol type "" > threadvr.inc(30,25) Error: Error while assembling exitcode 1 > threadvr.inc(30,25) Fatal: There were 2 errors compiling module, stopping > Fatal: Compilation aborted > make[5]: *** [system.ppu] Fout 1 > make[5]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl/linux' > make[4]: *** [linux_all] Fout 2 > make[4]: Leaving directory `/home/koenraad/fpc-devel/fpc/rtl' > make[3]: *** [rtl] Fout 2 > make[3]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler' > make[2]: *** [cycle] Fout 2 > make[2]: Leaving directory `/home/koenraad/fpc-devel/fpc/compiler' > make[1]: *** [compiler_cycle] Fout 2 > make[1]: Leaving directory `/home/koenraad/fpc-devel/fpc' > make: *** [build-stamp.arm-linux] Fout 2 > > Regards, > Koenraad Lelong. > > > ------------------------------ > > Message: 2 > Date: Sun, 19 Feb 2006 19:13:21 +0100 > From: Koenraad Lelong < > > Subject: Re: [fpc-pascal] Internal error 200312122 > To: FPC-Pascal users discussions < > > Message-ID: < > > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Koenraad Lelong schreef: > > Peter Vreman schreef: > > > >>> Martin Schreiber schreef: > >>> > >>>> On Sunday 05 February 2006 17.11, Koenraad Lelong wrote: > > > > ... > > > >> > >> Internalerror numbers are just unique numbers be using <date><seqnr>. > >> They > >> don't have any meaning. > >> > >> Quick intro for debugging this. > >> - Build compiler with debug info: 'make cycle OPT=-gl' > >> - Compile source with this new compiler in gdb: > >> - gdb --args <newcompiler> <args> > >> - (gdb) br INTERNALERROR > >> - (gdb) dir <pathtocompilersource> > >> - (gdb) r > >> - Hit breakpoint > >> - (gdb) bt > >> - The backtrace will give you more info. Use 'fr <framenr>' to jump to > >> a function in the callstack so you can watch the code and variables. > >> > > OK, I tried this, but that's as far as I can get. Enclosed the output of > > the backtrace (first lines are the commandline I used). > > Anything I can do further ? > > Thanks, > > Koenraad Lelong. > > > ... > I tried fr <frame#> for the last 20 frames : > (gdb) fr 20 > #20 0x080e04ed in PROC_UNIT () at pmodules.pas:1097 > 1097 loadunits; > (gdb) fr 19 > #19 0x080df58a in LOADUNITS () at pmodules.pas:621 > 621 tppumodule(pu.u).loadppu; > (gdb) fr 18 > #18 0x080d6ef5 in TPPUMODULE__LOADPPU (this=0x404e6c74) at fppu.pas:1509 > 1509 compile(mainsource^); > (gdb) fr 17 > #17 0x0808f207 in COMPILE > (FILENAME='/home/koenraad/msegui/msegui/lib/common/kernel/msebitmap.pas') > at parser.pas:525 > 525 proc_unit; > (gdb) fr 16 > #16 0x080e06f0 in PROC_UNIT () at pmodules.pas:1184 > 1184 parse_implementation_uses; > (gdb) fr 15 > #15 0x080dfd25 in PARSE_IMPLEMENTATION_USES () at pmodules.pas:839 > 839 loadunits; > (gdb) fr 14 > #14 0x080df58a in LOADUNITS () at pmodules.pas:621 > 621 tppumodule(pu.u).loadppu; > (gdb) fr 13 > #13 0x080d6df9 in TPPUMODULE__LOADPPU (this=0x41085734) at fppu.pas:1471 > 1471 load_usedunits; > (gdb) fr 12 > #12 0x080d6853 in TPPUMODULE__LOAD_USEDUNITS (this=0x41085734) at > fppu.pas:1244 > 1244 tppumodule(pu.u).loadppu; > (gdb) fr 11 > #11 0x080d6ef5 in TPPUMODULE__LOADPPU (this=0x40304744) at fppu.pas:1509 > 1509 compile(mainsource^); > (gdb) fr 10 > #10 0x0808f207 in COMPILE > (FILENAME='/home/koenraad/msegui/msegui/lib/common/kernel/msegui.pas') > at parser.pas:525 > 525 proc_unit; > (gdb) fr 9 > #9 0x080e0a5b in PROC_UNIT () at pmodules.pas:1302 > 1302 > gen_intf_wrappers(codesegment,current_module.localsymtable); > (gdb) fr 8 > #8 0x0811d7c3 in GEN_INTF_WRAPPERS (LIST=0x411f3f34, ST=0x41401a54) at > ncgutil.pas:2364 > 2364 gen_intf_wrapper(list,tobjectdef(def)); > (gdb) fr 7 > #7 0x0811d758 in GEN_INTF_WRAPPER (LIST=0x411f3f34, _CLASS=0x41641d54) > at ncgutil.pas:2349 > 2349 > cg.g_intf_wrapper (list,_class.implementedinterfaces.implprocs(i,j),tmps,_cla ss.implementedinterfaces.ioffsets(i)); > (gdb) fr 6 > #6 0x0809cca5 in TCGARM__G_INTF_WRAPPER (LIST=0x411f3f34, > PROCDEF=0x41685744, > > LABELNAME='WRPR_MSEGUI_TINTERNALAPPLICATION_$_IMOUSE_$_1_$_MSEGUI_TINTERNALA PPLICATION_$__GETMOUSEWINID$$LONGWORD', > IOFFSET=373, this=0x40068014) at cgcpu.pas:1479 > 1479 in cgcpu.pas > (gdb) fr 5 > #5 0x080ccfb3 in TCG__G_ADJUST_SELF_VALUE (LIST=0x411f3f34, > PROCDEF=0x41685744, IOFFSET=373, this=0x40068014) at cgobj.pas:2001 > 2001 > cg.a_op_const_reg(list,OP_SUB,paraloc.size,ioffset,paraloc.register ); > (gdb) fr 4 > #4 0x0809a141 in TCGARM__A_OP_CONST_REG (LIST=0x411f3f34, OP=OP_SUB, > SIZE=OS_32, A=373, REG=16777216, this=0x40068014) at cgcpu.pas:287 > 287 in cgcpu.pas > (gdb) fr 3 > #3 0x0809a297 in TCGARM__A_OP_CONST_REG_REG (LIST=0x411f3f34, > OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, DST=16777216, > this=0x40068014) at cgcpu.pas:323 > 323 in cgcpu.pas > (gdb) fr 3 > #3 0x0809a297 in TCGARM__A_OP_CONST_REG_REG (LIST=0x411f3f34, > OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, DST=16777216, > this=0x40068014) at cgcpu.pas:323 > 323 in cgcpu.pas > (gdb) fr 2 > #2 0x0809a6db in TCGARM__A_OP_CONST_REG_REG_CHECKOVERFLOW > (LIST=0x411f3f34, OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, > DST=16777216, SETFLAGS=false, OVLOC= > {LOC = LOC_VOID, SIZE = 166, RESFLAGS = 186, VALUE = 134759354, > VALUE64 = 4713231088527885242, REFERENCE = {OFFSET = 134759354, SYMBOL = > 0x4168c2b4, RELSYMBOL = 0x4168c2b4, SEGMENT = 1097666932, BASE = > -2068527460, INDEX = 135726240, REFADDR = 60, SCALEFACTOR = 142, > SYMBOLDATA = 0x809ff56, SIGNINDEX = 52, SHIFTIMM = 4, ADDRESSMODE = 9, > SHIFTMODE = 8}, REGISTER = 134759354, REGISTER64 = {REGLO = 134759354, > REGHI = 1097384628}}, this=0x40068014) at cgcpu.pas:435 > 435 in cgcpu.pas > (gdb) fr 1 > #1 0x080c926f in TCG__GETINTREGISTER (LIST=0x411f3f34, SIZE=OS_32, > this=0x40068014) at cgobj.pas:548 > 548 internalerror(200312122); > (gdb) fr 0 > #0 INTERNALERROR (I=200312122) at verbose.pas:447 > 447 UpdateStatus; > (gdb) > > Is there no-one who can give suggestions where to look next ? I want to > help, but I don't know much about gdb, I don't know about the internals > of fpc... > Regards, > Koenraad Lelong. > > ------------------------------ > > Message: 3 > Date: Mon, 20 Feb 2006 09:03:40 +0100 (CET) > From: "Peter Vreman" < > > Subject: Re: [fpc-pascal] Internal error 200312122 > To: "FPC-Pascal users discussions" < > > Message-ID: > < > > Content-Type: text/plain;charset=iso-8859-1 > > > #2 0x0809a6db in TCGARM__A_OP_CONST_REG_REG_CHECKOVERFLOW > > (LIST=0x411f3f34, OP=OP_SUB, SIZE=OS_32, A=373, SRC=16777216, > > DST=16777216, SETFLAGS=false, OVLOC= > > {LOC = LOC_VOID, SIZE = 166, RESFLAGS = 186, VALUE = 134759354, > > VALUE64 = 4713231088527885242, REFERENCE = {OFFSET = 134759354, SYMBOL = > > 0x4168c2b4, RELSYMBOL = 0x4168c2b4, SEGMENT = 1097666932, BASE = > > -2068527460, INDEX = 135726240, REFADDR = 60, SCALEFACTOR = 142, > > SYMBOLDATA = 0x809ff56, SIGNINDEX = 52, SHIFTIMM = 4, ADDRESSMODE = 9, > > SHIFTMODE = 8}, REGISTER = 134759354, REGISTER64 = {REGLO = 134759354, > > REGHI = 1097384628}}, this=0x40068014) at cgcpu.pas:435 > > 435 in cgcpu.pas > > (gdb) fr 1 > > #1 0x080c926f in TCG__GETINTREGISTER (LIST=0x411f3f34, SIZE=OS_32, > > this=0x40068014) at cgobj.pas:548 > > 548 internalerror(200312122); > > Fixed > > > > ------------------------------ > > Message: 4 > Date: Sun, 19 Feb 2006 14:17:13 +0100 > From: Michael M?ller < > > Subject: [fpc-pascal] How to run FPC 2.x on QNX > To: > Message-ID: > Content-Type: text/plain; charset=us-ascii > > Hi, > > we are developing a console application under Delphi. The main task is > to use it under Windows. But there are some situations where we need > to run it under the realtime OS QNX. This is the reason why we use FPC > 1.0.x. But it lacks some interesting features like dynamic arrays. > > I know that QNX isn't official supported anymore. But do you see any > chances that it would be possible for us to make the needed changes to > compile FPC under QNX? Many things are Unix like and QNX supports > POSIX. So where are the difficulties to support QNX? > > I didn't subscribe to the list. So please CC me in your anwser. > > Regards > > Michael > > ------------------------------ > > Message: 5 > Date: Mon, 20 Feb 2006 03:52:16 -0600 > From: "Jeff Pohlmeyer" < > > Subject: [fpc-pascal] RE: tidypas (libtidy) question > To: > Cc: > Message-ID: > < > > Content-Type: text/plain; charset=ISO-8859-1 > > > ... when I do this, I get an AV (in Delphi7). > > > tidyOptSetValue(fTidyDoc, TidyErrFile, ctmbstr(TIDY_NULL_FILE)); > > tidySetErrorFile(fTidyDoc, ctmbstr(TIDY_NULL_FILE)); > > { where TIDY_NULL_FILE = 'NUL' for Windows } > > If you can send me (off-list) a short sample program that > shows the AV, maybe I can help. > > > Regards, > - Jeff > > ------------------------------ > > _______________________________________________ > fpc-pascal maillist - > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > > End of fpc-pascal Digest, Vol 18, Issue 24 > ****************************************** > > > __________ Informacia od NOD32 1.1413 (20060217) __________ > > Tato sprava bola preverena antivirusovym systemom NOD32. > http://www.eset.sk > > _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal ------------------------------------------------------------------------ _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply by email

Steve Williams
to Florian Klaempfl
Florian Klaempfl wrote 15 lines
Geno Roupsky wrote: >it is as simple as this: > >function isset(value: dword; bit: byte): boolean; >begin > result := value and (1 shl pred(bit)) 0; >end; > > Adding inline doesn't hurt speedwise ;)

It is also assuming that bit counting 'd remove the 'pred' and have bit counting
Sly

This message and its attachments may contain legally privileged or confidential information. This message is intended for the use of the individual or entity to which it is addressed. If you are not the addressee indicated in this message, or the employee or agent responsible for delivering the message to the intended recipient, you may not copy or deliver this message or its attachments to anyone. Rather, you should permanently delete this message and its attachments and kindly notify the sender by reply e-mail. Any content of this message and its attachments, which does not relate to the official business of the sending company must be taken not to have been sent or endorsed by the sending company or any of its related entities. No warranty is made that the e-mail or attachment(s) are free from computer virus or other defect.

Reply by email