Tcl Source Code

Hex Artifact Content
Login

Artifact b00eb3e745daa91b27a5d5746efcf32b619ac3b89051a5526d2f57427d94f677:

Ticket change [b00eb3e745] - Ticket [1e48483c8b3b2702|1e48483c8b] <i>Use of non-standard C code in TCLBOOLWARNING</i> status still Open with 3 other changes by gustafn3 2024-04-26 09:51:04.
0000: 44 20 32 30 32 34 2d 30 34 2d 32 36 54 30 39 3a  D 2024-04-26T09:
0010: 35 31 3a 30 34 2e 39 30 38 0a 4a 20 69 63 6f 6d  51:04.908.J icom
0020: 6d 65 6e 74 20 41 73 5c 73 69 5c 73 72 65 61 64  ment As\si\sread
0030: 5c 73 74 68 69 73 2c 5c 73 74 68 65 5c 73 69 6e  \sthis,\sthe\sin
0040: 74 65 6e 74 69 6f 6e 5c 73 69 73 5c 73 74 6f 5c  tention\sis\sto\
0050: 73 69 73 73 75 65 5c 73 61 6e 5c 73 65 72 72 6f  sissue\san\serro
0060: 72 2c 5c 73 77 68 65 6e 5c 73 73 6f 6d 65 6f 6e  r,\swhen\ssomeon
0070: 65 5c 73 70 61 73 73 65 73 5c 73 69 6e 5c 73 61  e\spasses\sin\sa
0080: 5c 73 76 61 6c 75 65 5c 73 6c 61 72 67 65 72 5c  \svalue\slarger\
0090: 73 74 68 61 6e 5c 73 22 69 6e 74 22 5c 73 61 73  sthan\s"int"\sas
00a0: 5c 73 72 65 73 75 6c 74 5c 73 70 6f 69 6e 74 65  \sresult\spointe
00b0: 72 5c 73 69 6e 5c 72 5c 6e 5c 72 5c 6e 5c 73 5c  r\sin\r\n\r\n\s\
00c0: 73 5c 73 54 63 6c 5f 47 65 74 42 6f 6f 6c 65 61  s\sTcl_GetBoolea
00d0: 6e 46 72 6f 6d 4f 62 6a 28 69 6e 74 65 72 70 2c  nFromObj(interp,
00e0: 5c 73 6f 62 6a 76 5b 30 5d 2c 5c 73 62 6f 6f 6c  \sobjv[0],\sbool
00f0: 50 74 72 29 3b 5c 72 5c 6e 5c 72 5c 6e 73 69 6e  Ptr);\r\n\r\nsin
0100: 63 65 5c 73 74 68 65 72 65 5c 73 69 73 5c 73 6c  ce\sthere\sis\sl
0110: 61 74 65 72 5c 73 61 5c 73 63 61 73 74 5c 73 5c  ater\sa\scast\s\
0120: 72 5c 6e 5c 72 5c 6e 5c 73 5c 73 5c 73 54 63 6c  r\n\r\n\s\s\sTcl
0130: 5f 47 65 74 42 6f 6f 6c 65 61 6e 46 72 6f 6d 4f  _GetBooleanFromO
0140: 62 6a 28 69 6e 74 65 72 70 2c 5c 73 6f 62 6a 50  bj(interp,\sobjP
0150: 74 72 2c 5c 73 28 69 6e 74 5c 73 2a 29 28 62 6f  tr,\s(int\s*)(bo
0160: 6f 6c 50 74 72 29 29 5c 72 5c 6e 5c 72 5c 6e 46  olPtr))\r\n\r\nF
0170: 6f 72 5c 73 74 68 65 5c 73 63 6f 64 65 5c 72 5c  or\sthe\scode\r\
0180: 6e 5c 72 5c 6e 5c 73 5c 73 5c 73 7b 5c 72 5c 6e  n\r\n\s\s\s{\r\n
0190: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 73 69  \s\s\s\s\s\s\ssi
01a0: 7a 65 5f 74 5c 73 6c 61 72 67 65 5c 73 3d 5c 73  ze_t\slarge\s=\s
01b0: 30 3b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c 73  0;\r\n\s\s\s\s\s
01c0: 5c 73 5c 73 72 65 73 75 6c 74 5c 73 3d 5c 73 54  \s\sresult\s=\sT
01d0: 63 6c 5f 47 65 74 42 6f 6f 6c 65 61 6e 46 72 6f  cl_GetBooleanFro
01e0: 6d 4f 62 6a 28 69 6e 74 65 72 70 2c 5c 73 6f 62  mObj(interp,\sob
01f0: 6a 50 74 72 2c 5c 73 26 6c 61 72 67 65 29 3b 5c  jPtr,\s&large);\
0200: 72 5c 6e 5c 73 5c 73 5c 73 7d 5c 72 5c 6e 5c 72  r\n\s\s\s}\r\n\r
0210: 5c 6e 74 68 65 5c 73 65 72 72 6f 72 5c 73 6d 65  \nthe\serror\sme
0220: 73 73 61 67 65 5c 73 69 6e 5c 73 74 68 69 73 5c  ssage\sin\sthis\
0230: 73 63 61 73 65 5c 73 77 69 6c 6c 5c 73 62 65 5c  scase\swill\sbe\
0240: 72 5c 6e 5c 72 5c 6e 5c 73 5c 73 5c 73 65 72 72  r\n\r\n\s\s\serr
0250: 6f 72 3a 5c 73 27 5f 62 6f 6f 6c 5f 56 61 72 27  or:\s'_bool_Var'
0260: 5c 73 64 65 63 6c 61 72 65 64 5c 73 61 73 5c 73  \sdeclared\sas\s
0270: 61 6e 5c 73 61 72 72 61 79 5c 73 77 69 74 68 5c  an\sarray\swith\
0280: 73 61 5c 73 6e 65 67 61 74 69 76 65 5c 73 73 69  sa\snegative\ssi
0290: 7a 65 5c 72 5c 6e 5c 72 5c 6e 61 73 5c 73 61 6c  ze\r\n\r\nas\sal
02a0: 73 6f 5c 73 74 68 65 5c 73 63 6f 6d 6d 65 6e 74  so\sthe\scomment
02b0: 5c 73 64 6f 63 75 6d 65 6e 74 73 2e 5c 72 5c 6e  \sdocuments.\r\n
02c0: 5c 72 5c 6e 54 68 69 73 5c 73 69 73 5c 73 6e 6f  \r\nThis\sis\sno
02d0: 74 5c 73 67 72 65 61 74 5c 73 66 6f 72 5c 73 74  t\sgreat\sfor\st
02e0: 68 65 5c 73 66 6f 6c 6c 6f 77 69 6e 67 5c 73 72  he\sfollowing\sr
02f0: 65 61 73 6f 6e 73 3a 5c 72 5c 6e 31 29 5c 73 73  easons:\r\n1)\ss
0300: 74 72 61 6e 67 65 5c 73 65 72 72 6f 72 5c 73 6d  trange\serror\sm
0310: 65 73 73 61 67 65 5c 72 5c 6e 32 29 5c 73 67 65  essage\r\n2)\sge
0320: 6e 65 72 61 74 65 64 5c 73 6f 6e 6c 79 5c 73 6f  nerated\sonly\so
0330: 6e 5c 73 47 4e 55 5c 73 63 6f 6d 70 61 74 69 62  n\sGNU\scompatib
0340: 6c 65 5c 73 63 6f 6d 70 69 6c 65 72 73 5c 72 5c  le\scompilers\r\
0350: 6e 33 29 5c 73 68 61 6e 64 6c 65 73 5c 73 6a 75  n3)\shandles\sju
0360: 73 74 5c 73 61 5c 73 70 61 72 74 69 63 75 6c 61  st\sa\sparticula
0370: 72 5c 73 63 61 73 65 5c 73 28 6f 62 6a 65 63 74  r\scase\s(object
0380: 5c 73 66 6f 72 5c 73 74 68 65 5c 73 72 65 73 75  \sfor\sthe\sresu
0390: 6c 74 5c 73 69 73 5c 73 74 6f 6f 5c 73 6c 61 72  lt\sis\stoo\slar
03a0: 67 65 2c 5c 73 77 68 79 5c 73 6e 6f 74 5c 73 63  ge,\swhy\snot\sc
03b0: 6f 76 65 72 69 6e 67 5c 73 74 6f 6f 5c 73 73 6d  overing\stoo\ssm
03c0: 61 6c 6c 3f 29 5c 72 5c 6e 34 29 5c 73 72 61 69  all?)\r\n4)\srai
03d0: 73 65 73 5c 73 61 5c 73 77 61 72 6e 69 6e 67 5c  ses\sa\swarning\
03e0: 73 61 6c 73 6f 5c 73 69 6e 5c 73 63 61 73 65 73  salso\sin\scases
03f0: 2c 5c 73 77 68 65 72 65 5c 73 65 76 65 72 79 74  ,\swhere\severyt
0400: 68 69 6e 67 5c 73 69 73 5c 73 66 69 6e 65 5c 72  hing\sis\sfine\r
0410: 5c 6e 5c 73 5c 73 5c 73 28 77 68 65 6e 5c 73 74  \n\s\s\s(when\st
0420: 68 65 5c 73 70 61 72 61 6e 6f 69 61 5c 73 66 6c  he\sparanoia\sfl
0430: 61 67 73 5c 73 61 72 65 5c 73 74 75 72 6e 65 64  ags\sare\sturned
0440: 5c 73 6f 6e 2c 5c 73 70 72 6f 62 61 62 6c 79 5c  \son,\sprobably\
0450: 73 6d 61 6e 79 5c 73 64 65 76 65 6c 6f 70 65 72  smany\sdeveloper
0460: 73 5c 73 77 69 6c 6c 5c 73 64 6f 5c 73 74 68 69  s\swill\sdo\sthi
0470: 73 2c 5c 73 77 68 65 6e 5c 73 6d 6f 76 69 6e 67  s,\swhen\smoving
0480: 5c 73 74 6f 5c 73 74 63 6c 39 29 5c 72 5c 6e 5c  \sto\stcl9)\r\n\
0490: 72 5c 6e 57 68 79 5c 73 6e 6f 74 5c 73 75 73 69  r\nWhy\snot\susi
04a0: 6e 67 5c 72 5c 6e 5c 72 5c 6e 5c 73 5c 73 5c 73  ng\r\n\r\n\s\s\s
04b0: 73 74 61 74 69 63 5f 61 73 73 65 72 74 28 5c 73  static_assert(\s
04c0: 63 6f 6e 73 74 61 6e 74 2d 65 78 70 72 65 73 73  constant-express
04d0: 69 6f 6e 2c 5c 73 73 74 72 69 6e 67 2d 6c 69 74  ion,\sstring-lit
04e0: 65 72 61 6c 5c 73 29 5c 72 5c 6e 5c 72 5c 6e 77  eral\s)\r\n\r\nw
04f0: 68 65 6e 5c 73 61 76 61 69 6c 61 62 6c 65 2e 5c  hen\savailable.\
0500: 73 49 74 5c 73 69 73 5c 73 70 61 72 74 5c 73 6f  sIt\sis\spart\so
0510: 66 5c 72 5c 6e 2d 5c 73 43 31 31 5c 72 5c 6e 2d  f\r\n-\sC11\r\n-
0520: 5c 73 4d 53 3a 5c 73 56 53 5c 73 32 30 31 35 5c  \sMS:\sVS\s2015\
0530: 72 5c 6e 2d 5c 73 47 43 43 5c 73 73 69 6e 63 65  r\n-\sGCC\ssince
0540: 5c 73 67 63 63 2d 34 2e 36 5c 72 5c 6e 5c 72 5c  \sgcc-4.6\r\n\r\
0550: 6e 57 69 74 68 5c 73 73 6f 6d 65 5c 73 6d 65 6e  nWith\ssome\smen
0560: 74 61 6c 5c 73 63 6f 6e 74 6f 72 74 69 6f 6e 2c  tal\scontortion,
0570: 5c 73 6f 6e 65 5c 73 63 61 6e 5c 73 61 6c 73 6f  \sone\scan\salso
0580: 5c 73 73 6e 65 61 6b 5c 73 69 74 5c 73 69 6e 74  \ssneak\sit\sint
0590: 6f 5c 73 65 78 70 72 65 73 73 69 6f 6e 73 2c 5c  o\sexpressions,\
05a0: 73 5c 72 5c 6e 61 73 5c 73 74 68 65 5c 73 66 6f  s\r\nas\sthe\sfo
05b0: 6c 6c 6f 77 69 6e 67 5c 73 73 6e 69 70 70 65 74  llowing\ssnippet
05c0: 5c 73 73 68 6f 77 73 2e 5c 72 5c 6e 5c 72 5c 6e  \sshows.\r\n\r\n
05d0: 5c 73 5c 73 5c 73 7b 5c 72 5c 6e 5c 73 5c 73 5c  \s\s\s{\r\n\s\s\
05e0: 73 5c 73 5c 73 5c 73 5c 73 73 69 7a 65 5f 74 5c  s\s\s\s\ssize_t\
05f0: 73 6c 61 72 67 65 5c 73 3d 5c 73 30 3b 5c 72 5c  slarge\s=\s0;\r\
0600: 6e 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 72  n\s\s\s\s\s\s\sr
0610: 65 73 75 6c 74 5c 73 3d 5c 73 54 63 6c 5f 47 65  esult\s=\sTcl_Ge
0620: 74 42 6f 6f 6c 65 61 6e 46 72 6f 6d 4f 62 6a 28  tBooleanFromObj(
0630: 69 6e 74 65 72 70 2c 5c 73 6f 62 6a 50 74 72 2c  interp,\sobjPtr,
0640: 5c 73 26 6c 61 72 67 65 29 5c 72 5c 6e 5c 73 5c  \s&large)\r\n\s\
0650: 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c  s\s\s\s\s\s\s\s\
0660: 73 5c 73 5c 73 5c 73 5c 73 5c 73 2b 5c 73 28 69  s\s\s\s\s\s+\s(i
0670: 6e 74 29 28 73 69 7a 65 6f 66 28 73 74 72 75 63  nt)(sizeof(struc
0680: 74 5c 73 7b 73 74 61 74 69 63 5f 61 73 73 65 72  t\s{static_asser
0690: 74 28 73 69 7a 65 6f 66 28 6c 61 72 67 65 29 5c  t(sizeof(large)\
06a0: 73 3c 3d 5c 73 73 69 7a 65 6f 66 28 69 6e 74 29  s<=\ssizeof(int)
06b0: 2c 22 61 6c 6c 5c 73 69 73 5c 73 6c 6f 73 74 22  ,"all\sis\slost"
06c0: 29 3b 69 6e 74 5c 73 64 75 6d 6d 79 3b 7d 29 2a  );int\sdummy;})*
06d0: 30 29 5c 73 3b 5c 72 5c 6e 5c 73 5c 73 5c 73 7d  0)\s;\r\n\s\s\s}
06e0: 5c 72 5c 6e 5c 72 5c 6e 54 68 69 73 5c 73 77 6f  \r\n\r\nThis\swo
06f0: 75 6c 64 5c 73 61 64 64 72 65 73 73 5c 73 28 31  uld\saddress\s(1
0700: 29 5c 73 61 6e 64 5c 73 28 34 29 5c 73 61 6e 64  )\sand\s(4)\sand
0710: 5c 73 69 6d 70 72 6f 76 65 73 5c 73 74 68 65 5c  \simproves\sthe\
0720: 73 73 69 74 75 61 74 69 6f 6e 5c 73 6f 6e 5c 73  ssituation\son\s
0730: 28 32 29 5c 73 61 73 5c 73 77 65 6c 6c 2e 0a 4a  (2)\sas\swell..J
0740: 20 6c 6f 67 69 6e 20 67 75 73 74 61 66 6e 33 0a   login gustafn3.
0750: 4a 20 6d 69 6d 65 74 79 70 65 20 74 65 78 74 2f  J mimetype text/
0760: 70 6c 61 69 6e 0a 4b 20 31 65 34 38 34 38 33 63  plain.K 1e48483c
0770: 38 62 33 62 32 37 30 32 62 39 38 31 65 62 63 63  8b3b2702b981ebcc
0780: 38 35 34 37 34 35 31 32 62 62 33 64 36 65 30 64  85474512bb3d6e0d
0790: 0a 55 20 67 75 73 74 61 66 6e 33 0a 5a 20 62 62  .U gustafn3.Z bb
07a0: 64 66 35 66 37 38 63 35 36 63 38 61 30 38 37 39  df5f78c56c8a0879
07b0: 66 38 38 36 38 35 37 30 34 30 36 36 33 36 0a     f8868570406636.