tprec12.pp 2.1 KB

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