tprec4.pp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. {$bitpacking on}
  2. { from the GPC test suite (sam9.pas) }
  3. program sam9;
  4. type
  5. e1 = (
  6. enum000,
  7. enum001,
  8. enum002,
  9. enum003,
  10. enum004,
  11. enum005,
  12. enum006,
  13. enum007,
  14. enum008,
  15. enum009,
  16. enum010,
  17. enum011,
  18. enum012,
  19. enum013,
  20. enum014,
  21. enum015,
  22. enum016,
  23. enum017,
  24. enum018,
  25. enum019,
  26. enum020,
  27. enum021,
  28. enum022,
  29. enum023,
  30. enum024,
  31. enum025,
  32. enum026,
  33. enum027,
  34. enum028,
  35. enum029,
  36. enum030,
  37. enum031,
  38. enum032,
  39. enum033,
  40. enum034,
  41. enum035,
  42. enum036,
  43. enum037,
  44. enum038,
  45. enum039,
  46. enum040,
  47. enum041,
  48. enum042,
  49. enum043,
  50. enum044,
  51. enum045,
  52. enum046,
  53. enum047,
  54. enum048,
  55. enum049,
  56. enum050,
  57. enum051,
  58. enum052,
  59. enum053,
  60. enum054,
  61. enum055,
  62. enum056,
  63. enum057,
  64. enum058,
  65. enum059,
  66. enum060,
  67. enum061,
  68. enum062,
  69. enum063,
  70. enum064,
  71. enum065,
  72. enum066,
  73. enum067,
  74. enum068,
  75. enum069,
  76. enum070,
  77. enum071,
  78. enum072,
  79. enum073,
  80. enum074,
  81. enum075,
  82. enum076,
  83. enum077,
  84. enum078,
  85. enum079,
  86. enum080,
  87. enum081,
  88. enum082,
  89. enum083,
  90. enum084,
  91. enum085,
  92. enum086,
  93. enum087,
  94. enum088,
  95. enum089,
  96. enum090,
  97. enum091,
  98. enum092,
  99. enum093,
  100. enum094,
  101. enum095,
  102. enum096,
  103. enum097,
  104. enum098,
  105. enum099,
  106. enum100,
  107. enum101,
  108. enum102,
  109. enum103,
  110. enum104,
  111. enum105,
  112. enum106,
  113. enum107,
  114. enum108,
  115. enum109,
  116. enum110,
  117. enum111,
  118. enum112,
  119. enum113,
  120. enum114,
  121. enum115,
  122. enum116,
  123. enum117,
  124. enum118,
  125. enum119,
  126. enum120,
  127. enum121,
  128. enum122,
  129. enum123,
  130. enum124,
  131. enum125,
  132. enum126,
  133. enum127,
  134. enum128 { Remove this and it works !}
  135. );
  136. r1 = 0 .. 128;
  137. t1 = packed record { has to be packed }
  138. case integer of
  139. 1: (f1: e1);
  140. 2: (f2: r1);
  141. end;
  142. var
  143. v1: t1;
  144. procedure foo;
  145. begin
  146. v1.f1 := enum000;
  147. v1.f2 := 127;
  148. v1.f2 := 128;
  149. end;
  150. begin
  151. foo;
  152. if v1.f1 <> enum128 then
  153. halt(1);
  154. end.