[previous] 0391 [next] [L] Number of enumeration constants exceeds 1023 - program does not conform strictly to ISO:C99.
ISO C99 Conformance limits REFERENCE - ISO:C99-5.2.4.1 Translation Limits

The translation limits specified in the ISO:C Standard define a minimum set of conditions which a compiler must support in order to be described as conforming. In practice, compilers will often tolerate code which exceeds these minimal requirements. However, in order to ensure portability, it is advisable to avoid writing code that assumes a level of compiler capability which may not always be supported.

Message 0391 identifies an enumeration declaration containing more than 1023 enumeration constants, the minimum requirement of the ISO:C99 Standard. Message 0647 identifies code which breaches the corresponding ISO:C90 limit, i.e. 127 constants. These messages are not identifying incorrect code but they do identify code which is described in the respective standard as not strictly conforming.

For example:


/*PRQA S 553,2017,2211,3602 ++*/

enum ENUMB {
 b0001, b0002, b0003, b0004, b0005, b0006, b0007, b0008, b0009, b0010,
 b0011, b0012, b0013, b0014, b0015, b0016, b0017, b0018, b0019, b0020,
 b0021, b0022, b0023, b0024, b0025, b0026, b0027, b0028, b0029, b0030,
 b0031, b0032, b0033, b0034, b0035, b0036, b0037, b0038, b0039, b0040,
 b0041, b0042, b0043, b0044, b0045, b0046, b0047, b0048, b0049, b0050,
 b0051, b0052, b0053, b0054, b0055, b0056, b0057, b0058, b0059, b0060,
 b0061, b0062, b0063, b0064, b0065, b0066, b0067, b0068, b0069, b0070,
 b0071, b0072, b0073, b0074, b0075, b0076, b0077, b0078, b0079, b0080,
 b0081, b0082, b0083, b0084, b0085, b0086, b0087, b0088, b0089, b0090,
 b0091, b0092, b0093, b0094, b0095, b0096, b0097, b0098, b0099, b0100,

 b0101, b0102, b0103, b0104, b0105, b0106, b0107, b0108, b0109, b0110,
 b0111, b0112, b0113, b0114, b0115, b0116, b0117, b0118, b0119, b0120,
 b0121, b0122, b0123, b0124, b0125, b0126,
 b0127,
 b0128                                                                  /* Message 0647 */
};


enum ENUMG {
 g0001, g0002, g0003, g0004, g0005, g0006, g0007, g0008, g0009, g0010,
 g0011, g0012, g0013, g0014, g0015, g0016, g0017, g0018, g0019, g0020,
 g0021, g0022, g0023, g0024, g0025, g0026, g0027, g0028, g0029, g0030,
 g0031, g0032, g0033, g0034, g0035, g0036, g0037, g0038, g0039, g0040,
 g0041, g0042, g0043, g0044, g0045, g0046, g0047, g0048, g0049, g0050,
 g0051, g0052, g0053, g0054, g0055, g0056, g0057, g0058, g0059, g0060,
 g0061, g0062, g0063, g0064, g0065, g0066, g0067, g0068, g0069, g0070,
 g0071, g0072, g0073, g0074, g0075, g0076, g0077, g0078, g0079, g0080,
 g0081, g0082, g0083, g0084, g0085, g0086, g0087, g0088, g0089, g0090,
 g0091, g0092, g0093, g0094, g0095, g0096, g0097, g0098, g0099, g0100,

 g0101, g0102, g0103, g0104, g0105, g0106, g0107, g0108, g0109, g0110,
 g0111, g0112, g0113, g0114, g0115, g0116, g0117, g0118, g0119, g0120,
 g0121, g0122, g0123, g0124, g0125, g0126, g0127, g0128, g0129, g0130,
 g0131, g0132, g0133, g0134, g0135, g0136, g0137, g0138, g0139, g0140,
 g0141, g0142, g0143, g0144, g0145, g0146, g0147, g0148, g0149, g0150,
 g0151, g0152, g0153, g0154, g0155, g0156, g0157, g0158, g0159, g0160,
 g0161, g0162, g0163, g0164, g0165, g0166, g0167, g0168, g0169, g0170,
 g0171, g0172, g0173, g0174, g0175, g0176, g0177, g0178, g0179, g0180,
 g0181, g0182, g0183, g0184, g0185, g0186, g0187, g0188, g0189, g0190,
 g0191, g0192, g0193, g0194, g0195, g0196, g0197, g0198, g0199, g0200,

 g0201, g0202, g0203, g0204, g0205, g0206, g0207, g0208, g0209, g0210,
 g0211, g0212, g0213, g0214, g0215, g0216, g0217, g0218, g0219, g0220,
 g0221, g0222, g0223, g0224, g0225, g0226, g0227, g0228, g0229, g0230,
 g0231, g0232, g0233, g0234, g0235, g0236, g0237, g0238, g0239, g0240,
 g0241, g0242, g0243, g0244, g0245, g0246, g0247, g0248, g0249, g0250,
 g0251, g0252, g0253, g0254, g0255, g0256, g0257, g0258, g0259, g0260,
 g0261, g0262, g0263, g0264, g0265, g0266, g0267, g0268, g0269, g0270,
 g0271, g0272, g0273, g0274, g0275, g0276, g0277, g0278, g0279, g0280,
 g0281, g0282, g0283, g0284, g0285, g0286, g0287, g0288, g0289, g0290,
 g0291, g0292, g0293, g0294, g0295, g0296, g0297, g0298, g0299, g0300,

 g0301, g0302, g0303, g0304, g0305, g0306, g0307, g0308, g0309, g0310,
 g0311, g0312, g0313, g0314, g0315, g0316, g0317, g0318, g0319, g0320,
 g0321, g0322, g0323, g0324, g0325, g0326, g0327, g0328, g0329, g0330,
 g0331, g0332, g0333, g0334, g0335, g0336, g0337, g0338, g0339, g0340,
 g0341, g0342, g0343, g0344, g0345, g0346, g0347, g0348, g0349, g0350,
 g0351, g0352, g0353, g0354, g0355, g0356, g0357, g0358, g0359, g0360,
 g0361, g0362, g0363, g0364, g0365, g0366, g0367, g0368, g0369, g0370,
 g0371, g0372, g0373, g0374, g0375, g0376, g0377, g0378, g0379, g0380,
 g0381, g0382, g0383, g0384, g0385, g0386, g0387, g0388, g0389, g0390,
 g0391, g0392, g0393, g0394, g0395, g0396, g0397, g0398, g0399, g0400,

 g0401, g0402, g0403, g0404, g0405, g0406, g0407, g0408, g0409, g0410,
 g0411, g0412, g0413, g0414, g0415, g0416, g0417, g0418, g0419, g0420,
 g0421, g0422, g0423, g0424, g0425, g0426, g0427, g0428, g0429, g0430,
 g0431, g0432, g0433, g0434, g0435, g0436, g0437, g0438, g0439, g0440,
 g0441, g0442, g0443, g0444, g0445, g0446, g0447, g0448, g0449, g0450,
 g0451, g0452, g0453, g0454, g0455, g0456, g0457, g0458, g0459, g0460,
 g0461, g0462, g0463, g0464, g0465, g0466, g0467, g0468, g0469, g0470,
 g0471, g0472, g0473, g0474, g0475, g0476, g0477, g0478, g0479, g0480,
 g0481, g0482, g0483, g0484, g0485, g0486, g0487, g0488, g0489, g0490,
 g0491, g0492, g0493, g0494, g0495, g0496, g0497, g0498, g0499, g0500,

 g0501, g0502, g0503, g0504, g0505, g0506, g0507, g0508, g0509, g0510,
 g0511, g0512, g0513, g0514, g0515, g0516, g0517, g0518, g0519, g0520,
 g0521, g0522, g0523, g0524, g0525, g0526, g0527, g0528, g0529, g0530,
 g0531, g0532, g0533, g0534, g0535, g0536, g0537, g0538, g0539, g0540,
 g0541, g0542, g0543, g0544, g0545, g0546, g0547, g0548, g0549, g0550,
 g0551, g0552, g0553, g0554, g0555, g0556, g0557, g0558, g0559, g0560,
 g0561, g0562, g0563, g0564, g0565, g0566, g0567, g0568, g0569, g0570,
 g0571, g0572, g0573, g0574, g0575, g0576, g0577, g0578, g0579, g0580,
 g0581, g0582, g0583, g0584, g0585, g0586, g0587, g0588, g0589, g0590,
 g0591, g0592, g0593, g0594, g0595, g0596, g0597, g0598, g0599, g0600,

 g0601, g0602, g0603, g0604, g0605, g0606, g0607, g0608, g0609, g0610,
 g0611, g0612, g0613, g0614, g0615, g0616, g0617, g0618, g0619, g0620,
 g0621, g0622, g0623, g0624, g0625, g0626, g0627, g0628, g0629, g0630,
 g0631, g0632, g0633, g0634, g0635, g0636, g0637, g0638, g0639, g0640,
 g0641, g0642, g0643, g0644, g0645, g0646, g0647, g0648, g0649, g0650,
 g0651, g0652, g0653, g0654, g0655, g0656, g0657, g0658, g0659, g0660,
 g0661, g0662, g0663, g0664, g0665, g0666, g0667, g0668, g0669, g0670,
 g0671, g0672, g0673, g0674, g0675, g0676, g0677, g0678, g0679, g0680,
 g0681, g0682, g0683, g0684, g0685, g0686, g0687, g0688, g0689, g0690,
 g0691, g0692, g0693, g0694, g0695, g0696, g0697, g0698, g0699, g0700,

 g0701, g0702, g0703, g0704, g0705, g0706, g0707, g0708, g0709, g0710,
 g0711, g0712, g0713, g0714, g0715, g0716, g0717, g0718, g0719, g0720,
 g0721, g0722, g0723, g0724, g0725, g0726, g0727, g0728, g0729, g0730,
 g0731, g0732, g0733, g0734, g0735, g0736, g0737, g0738, g0739, g0740,
 g0741, g0742, g0743, g0744, g0745, g0746, g0747, g0748, g0749, g0750,
 g0751, g0752, g0753, g0754, g0755, g0756, g0757, g0758, g0759, g0760,
 g0761, g0762, g0763, g0764, g0765, g0766, g0767, g0768, g0769, g0770,
 g0771, g0772, g0773, g0774, g0775, g0776, g0777, g0778, g0779, g0780,
 g0781, g0782, g0783, g0784, g0785, g0786, g0787, g0788, g0789, g0790,
 g0791, g0792, g0793, g0794, g0795, g0796, g0797, g0798, g0799, g0800,

 g0801, g0802, g0803, g0804, g0805, g0806, g0807, g0808, g0809, g0810,
 g0811, g0812, g0813, g0814, g0815, g0816, g0817, g0818, g0819, g0820,
 g0821, g0822, g0823, g0824, g0825, g0826, g0827, g0828, g0829, g0830,
 g0831, g0832, g0833, g0834, g0835, g0836, g0837, g0838, g0839, g0840,
 g0841, g0842, g0843, g0844, g0845, g0846, g0847, g0848, g0849, g0850,
 g0851, g0852, g0853, g0854, g0855, g0856, g0857, g0858, g0859, g0860,
 g0861, g0862, g0863, g0864, g0865, g0866, g0867, g0868, g0869, g0870,
 g0871, g0872, g0873, g0874, g0875, g0876, g0877, g0878, g0879, g0880,
 g0881, g0882, g0883, g0884, g0885, g0886, g0887, g0888, g0889, g0890,
 g0891, g0892, g0893, g0894, g0895, g0896, g0897, g0898, g0899, g0900,

 g0901, g0902, g0903, g0904, g0905, g0906, g0907, g0908, g0909, g0910,
 g0911, g0912, g0913, g0914, g0915, g0916, g0917, g0918, g0919, g0920,
 g0921, g0922, g0923, g0924, g0925, g0926, g0927, g0928, g0929, g0930,
 g0931, g0932, g0933, g0934, g0935, g0936, g0937, g0938, g0939, g0940,
 g0941, g0942, g0943, g0944, g0945, g0946, g0947, g0948, g0949, g0950,
 g0951, g0952, g0953, g0954, g0955, g0956, g0957, g0958, g0959, g0960,
 g0961, g0962, g0963, g0964, g0965, g0966, g0967, g0968, g0969, g0970,
 g0971, g0972, g0973, g0974, g0975, g0976, g0977, g0978, g0979, g0980,
 g0981, g0982, g0983, g0984, g0985, g0986, g0987, g0988, g0989, g0990,
 g0991, g0992, g0993, g0994, g0995, g0996, g0997, g0998, g0999, g1000,

 g1001, g1002, g1003, g1004, g1005, g1006, g1007, g1008, g1009, g1010,
 g1011, g1012, g1013, g1014, g1015, g1016, g1017, g1018, g1019, g1020,
 g1021,
 g1022,
 g1023,
 g1024                                                                  /* Message 0647 and 0391 */
};

See also:

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents