Vous êtes sur la page 1sur 441

Compiler Messages

COMPILER ERRORS....................................................................................................23
cc0001.........................................................................................................................................23
cc0002.........................................................................................................................................23
cc0003.........................................................................................................................................23
cc0004.........................................................................................................................................24
cc0005.........................................................................................................................................24
cc0006.........................................................................................................................................25
cc0007.........................................................................................................................................25
cc0008.........................................................................................................................................26
cc0010.........................................................................................................................................26
cc0013.........................................................................................................................................27
cc0014.........................................................................................................................................27
cc0016.........................................................................................................................................28
cc0017.........................................................................................................................................28
cc0018.........................................................................................................................................29
cc0019.........................................................................................................................................29
cc0020.........................................................................................................................................29
cc0022.........................................................................................................................................30
cc0023.........................................................................................................................................30
cc0024.........................................................................................................................................31
cc0025.........................................................................................................................................31
cc0026.........................................................................................................................................31
cc0027.........................................................................................................................................32
cc0028.........................................................................................................................................32
cc0029.........................................................................................................................................33
cc0030.........................................................................................................................................33
cc0031.........................................................................................................................................34
cc0032.........................................................................................................................................34
cc0033.........................................................................................................................................35
cc0034.........................................................................................................................................35
cc0035.........................................................................................................................................36
cc0036.........................................................................................................................................36

cc0037.........................................................................................................................................37
cc0038.........................................................................................................................................37
cc0040.........................................................................................................................................38
cc0041.........................................................................................................................................38
cc0042.........................................................................................................................................38
cc0044.........................................................................................................................................39
cc0045.........................................................................................................................................40
cc0046.........................................................................................................................................40
cc0049.........................................................................................................................................40
cc0050.........................................................................................................................................41
cc0051.........................................................................................................................................41
cc0052.........................................................................................................................................42
cc0053.........................................................................................................................................42
cc0054.........................................................................................................................................42
cc0055.........................................................................................................................................43
cc0056.........................................................................................................................................43
cc0057.........................................................................................................................................44
cc0058.........................................................................................................................................44
cc0059.........................................................................................................................................45
cc0060.........................................................................................................................................45
cc0065.........................................................................................................................................46
cc0066.........................................................................................................................................46
cc0067.........................................................................................................................................46
cc0069.........................................................................................................................................47
cc0070.........................................................................................................................................47
cc0071.........................................................................................................................................48
cc0075.........................................................................................................................................48
cc0077.........................................................................................................................................49
cc0078.........................................................................................................................................50
cc0079.........................................................................................................................................50
cc0080.........................................................................................................................................51
cc0081.........................................................................................................................................51
cc0083.........................................................................................................................................52
cc0084.........................................................................................................................................52
cc0085.........................................................................................................................................52
2

cc0086.........................................................................................................................................53
cc0088.........................................................................................................................................53
cc0089.........................................................................................................................................54
cc0090.........................................................................................................................................54
cc0091.........................................................................................................................................55
cc0092.........................................................................................................................................55
cc0093.........................................................................................................................................55
cc0094.........................................................................................................................................56
cc0095.........................................................................................................................................57
cc0096.........................................................................................................................................57
cc0097.........................................................................................................................................57
cc0098.........................................................................................................................................58
cc0100.........................................................................................................................................58
cc0101.........................................................................................................................................59
cc0102.........................................................................................................................................59
cc0103.........................................................................................................................................59
cc0104.........................................................................................................................................60
cc0105.........................................................................................................................................60
cc0106.........................................................................................................................................61
cc0107.........................................................................................................................................61
cc0109.........................................................................................................................................62
cc0110.........................................................................................................................................62
cc0112.........................................................................................................................................63
cc0114.........................................................................................................................................63
cc0115.........................................................................................................................................64
cc0116.........................................................................................................................................65
cc0117.........................................................................................................................................65
cc0118.........................................................................................................................................66
cc0119.........................................................................................................................................66
cc0120.........................................................................................................................................67
cc0121.........................................................................................................................................67
cc0122.........................................................................................................................................68
cc0123.........................................................................................................................................68
cc0124.........................................................................................................................................69
cc0125.........................................................................................................................................70
3

cc0126.........................................................................................................................................70
cc0127.........................................................................................................................................71
cc0129.........................................................................................................................................72
cc0130.........................................................................................................................................73
cc0131.........................................................................................................................................73
cc0132.........................................................................................................................................74
cc0133.........................................................................................................................................74
cc0134.........................................................................................................................................75
cc0135.........................................................................................................................................75
cc0136.........................................................................................................................................76
cc0137.........................................................................................................................................77
cc0139.........................................................................................................................................77
cc0140.........................................................................................................................................78
cc0141.........................................................................................................................................78
cc0142.........................................................................................................................................79
cc0143.........................................................................................................................................79
cc0144.........................................................................................................................................80
cc0145.........................................................................................................................................80
cc0146.........................................................................................................................................81
cc0147.........................................................................................................................................81
cc0148.........................................................................................................................................81
cc0149.........................................................................................................................................82
cc0153.........................................................................................................................................82
cc0154.........................................................................................................................................83
cc0157.........................................................................................................................................83
cc0158.........................................................................................................................................84
cc0159.........................................................................................................................................84
cc0160.........................................................................................................................................85
cc0163.........................................................................................................................................85
cc0164.........................................................................................................................................86
cc0165.........................................................................................................................................86
cc0166.........................................................................................................................................87
cc0167.........................................................................................................................................87
cc0168.........................................................................................................................................87
cc0169.........................................................................................................................................88
4

cc0170.........................................................................................................................................88
cc0171.........................................................................................................................................89
cc0172.........................................................................................................................................89
cc0174.........................................................................................................................................90
cc0180.........................................................................................................................................91
cc0181.........................................................................................................................................91
cc0182.........................................................................................................................................92
cc0183.........................................................................................................................................92
cc0184.........................................................................................................................................93
cc0189.........................................................................................................................................93
cc0193.........................................................................................................................................94
cc0194.........................................................................................................................................94
cc0219.........................................................................................................................................94
cc0220.........................................................................................................................................95
cc0223.........................................................................................................................................95
cc0235.........................................................................................................................................96
cc0236.........................................................................................................................................96
cc0237.........................................................................................................................................97
cc0238.........................................................................................................................................97
cc0239.........................................................................................................................................98
cc0240.........................................................................................................................................98
cc0241.........................................................................................................................................99
cc0242.........................................................................................................................................99
cc0243.......................................................................................................................................100
cc0244.......................................................................................................................................101
cc0245.......................................................................................................................................101
cc0246.......................................................................................................................................102
cc0247.......................................................................................................................................102
cc0248.......................................................................................................................................103
cc0249.......................................................................................................................................104
cc0250.......................................................................................................................................104
cc0251.......................................................................................................................................104
cc0252.......................................................................................................................................105
cc0253.......................................................................................................................................105
cc0254.......................................................................................................................................106
5

cc0255.......................................................................................................................................106
cc0256.......................................................................................................................................107
cc0257.......................................................................................................................................108
cc0258.......................................................................................................................................108
cc0259.......................................................................................................................................108
cc0261.......................................................................................................................................109
cc0262.......................................................................................................................................110
cc0263.......................................................................................................................................110
cc0264.......................................................................................................................................110
cc0265.......................................................................................................................................111
cc0266.......................................................................................................................................111
cc0268.......................................................................................................................................112
cc0269.......................................................................................................................................113
cc0274.......................................................................................................................................113
cc0276.......................................................................................................................................113
cc0277.......................................................................................................................................114
cc0278.......................................................................................................................................115
cc0279.......................................................................................................................................115
cc0280.......................................................................................................................................116
cc0281.......................................................................................................................................116
cc0282.......................................................................................................................................117
cc0283.......................................................................................................................................117
cc0284.......................................................................................................................................118
cc0285.......................................................................................................................................118
cc0286.......................................................................................................................................119
cc0287.......................................................................................................................................119
cc0288.......................................................................................................................................120
cc0289.......................................................................................................................................121
cc0290.......................................................................................................................................121
cc0291.......................................................................................................................................122
cc0292.......................................................................................................................................122
cc0293.......................................................................................................................................123
cc0294.......................................................................................................................................124
cc0296.......................................................................................................................................124
cc0297.......................................................................................................................................125
6

cc0299.......................................................................................................................................125
cc0300.......................................................................................................................................126
cc0302.......................................................................................................................................126
cc0304.......................................................................................................................................127
cc0305.......................................................................................................................................127
cc0306.......................................................................................................................................128
cc0307.......................................................................................................................................128
cc0308.......................................................................................................................................129
cc0309.......................................................................................................................................129
cc0310.......................................................................................................................................130
cc0311.......................................................................................................................................130
cc0312.......................................................................................................................................131
cc0313.......................................................................................................................................132
cc0314.......................................................................................................................................132
cc0315.......................................................................................................................................133
cc0316.......................................................................................................................................133
cc0317.......................................................................................................................................134
cc0318.......................................................................................................................................134
cc0319.......................................................................................................................................135
cc0320.......................................................................................................................................135
cc0321.......................................................................................................................................136
cc0322.......................................................................................................................................136
cc0323.......................................................................................................................................137
cc0324.......................................................................................................................................137
cc0325.......................................................................................................................................138
cc0326.......................................................................................................................................138
cc0327.......................................................................................................................................139
cc0328.......................................................................................................................................140
cc0329.......................................................................................................................................140
cc0330.......................................................................................................................................141
cc0334.......................................................................................................................................141
cc0335.......................................................................................................................................142
cc0336.......................................................................................................................................142
cc0337.......................................................................................................................................143
cc0338.......................................................................................................................................143
7

cc0339.......................................................................................................................................144
cc0340.......................................................................................................................................144
cc0341.......................................................................................................................................145
cc0342.......................................................................................................................................145
cc0343.......................................................................................................................................146
cc0344.......................................................................................................................................146
cc0345.......................................................................................................................................147
cc0347.......................................................................................................................................147
cc0348.......................................................................................................................................148
cc0349.......................................................................................................................................149
cc0350.......................................................................................................................................149
cc0351.......................................................................................................................................150
cc0352.......................................................................................................................................150
cc0353.......................................................................................................................................151
cc0354.......................................................................................................................................151
cc0357.......................................................................................................................................152
cc0359.......................................................................................................................................152
cc0360.......................................................................................................................................153
cc0363.......................................................................................................................................153
cc0364.......................................................................................................................................154
cc0365.......................................................................................................................................154
cc0366.......................................................................................................................................155
cc0367.......................................................................................................................................155
cc0369.......................................................................................................................................156
cc0371.......................................................................................................................................156
cc0372.......................................................................................................................................157
cc0377.......................................................................................................................................157
cc0378.......................................................................................................................................158
cc0380.......................................................................................................................................158
cc0381.......................................................................................................................................158
cc0382.......................................................................................................................................159
cc0384.......................................................................................................................................159
cc0386.......................................................................................................................................160
cc0388.......................................................................................................................................161
cc0389.......................................................................................................................................161
8

cc0390.......................................................................................................................................162
cc0391.......................................................................................................................................163
cc0392.......................................................................................................................................163
cc0393.......................................................................................................................................164
cc0394.......................................................................................................................................164
cc0397.......................................................................................................................................165
cc0399.......................................................................................................................................166
cc0400.......................................................................................................................................166
cc0401.......................................................................................................................................167
cc0403.......................................................................................................................................167
cc0404.......................................................................................................................................168
cc0405.......................................................................................................................................168
cc0406.......................................................................................................................................169
cc0407.......................................................................................................................................169
cc0408.......................................................................................................................................170
cc0409.......................................................................................................................................171
cc0410.......................................................................................................................................171
cc0411.......................................................................................................................................172
cc0412.......................................................................................................................................172
cc0413.......................................................................................................................................173
cc0415.......................................................................................................................................173
cc0416.......................................................................................................................................174
cc0417.......................................................................................................................................175
cc0418.......................................................................................................................................175
cc0424.......................................................................................................................................176
cc0425.......................................................................................................................................176
cc0427.......................................................................................................................................177
cc0429.......................................................................................................................................177
cc0432.......................................................................................................................................178
cc0433.......................................................................................................................................178
cc0434.......................................................................................................................................179
cc0435.......................................................................................................................................179
cc0436.......................................................................................................................................180
cc0437.......................................................................................................................................180
cc0438.......................................................................................................................................181
9

cc0439.......................................................................................................................................182
cc0440.......................................................................................................................................182
cc0441.......................................................................................................................................183
cc0442.......................................................................................................................................183
cc0443.......................................................................................................................................184
cc0445.......................................................................................................................................184
cc0450.......................................................................................................................................185
cc0451.......................................................................................................................................186
cc0452.......................................................................................................................................186
cc0456.......................................................................................................................................187
cc0457.......................................................................................................................................187
cc0458.......................................................................................................................................188
cc0459.......................................................................................................................................188
cc0463.......................................................................................................................................189
cc0464.......................................................................................................................................189
cc0466.......................................................................................................................................190
cc0467.......................................................................................................................................190
cc0468.......................................................................................................................................191
cc0469.......................................................................................................................................191
cc0470.......................................................................................................................................192
cc0471.......................................................................................................................................192
cc0472.......................................................................................................................................193
cc0475.......................................................................................................................................193
cc0476.......................................................................................................................................194
cc0479.......................................................................................................................................194
cc0481.......................................................................................................................................195
cc0484.......................................................................................................................................195
cc0485.......................................................................................................................................196
cc0487.......................................................................................................................................196
cc0489.......................................................................................................................................197
cc0493.......................................................................................................................................197
cc0496.......................................................................................................................................198
cc0498.......................................................................................................................................199
cc0500.......................................................................................................................................199
cc0501.......................................................................................................................................200
10

cc0502.......................................................................................................................................200
cc0503.......................................................................................................................................201
cc0504.......................................................................................................................................201
cc0505.......................................................................................................................................202
cc0506.......................................................................................................................................202
cc0507.......................................................................................................................................203
cc0508.......................................................................................................................................203
cc0510.......................................................................................................................................204
cc0511.......................................................................................................................................204
cc0512.......................................................................................................................................205
cc0513.......................................................................................................................................205
cc0515.......................................................................................................................................206
cc0516.......................................................................................................................................206
cc0517.......................................................................................................................................207
cc0518.......................................................................................................................................207
cc0519.......................................................................................................................................208
cc0520.......................................................................................................................................208
cc0540.......................................................................................................................................209
cc0546.......................................................................................................................................209
cc0548.......................................................................................................................................210
cc0550.......................................................................................................................................211
cc0551.......................................................................................................................................211
cc0555.......................................................................................................................................212
cc0556.......................................................................................................................................213
cc0558.......................................................................................................................................213
cc0559.......................................................................................................................................214
cc0560.......................................................................................................................................214
cc0598.......................................................................................................................................215
cc0601.......................................................................................................................................215
cc0603.......................................................................................................................................216
cc0604.......................................................................................................................................216
cc0605.......................................................................................................................................217
cc0606.......................................................................................................................................217
cc0607.......................................................................................................................................218
cc0609.......................................................................................................................................218
11

cc0611.......................................................................................................................................219
cc0612.......................................................................................................................................220
cc0615.......................................................................................................................................220
cc0616.......................................................................................................................................220
cc0624.......................................................................................................................................221
cc0631.......................................................................................................................................222
cc0643.......................................................................................................................................222
cc0644.......................................................................................................................................222
cc0656.......................................................................................................................................223
cc0658.......................................................................................................................................224
cc0660.......................................................................................................................................224
cc0661.......................................................................................................................................224
cc0663.......................................................................................................................................225
cc0664.......................................................................................................................................225
cc0666.......................................................................................................................................226
cc0668.......................................................................................................................................226
cc0672.......................................................................................................................................226
cc0673.......................................................................................................................................227
cc0674.......................................................................................................................................228
cc0678.......................................................................................................................................228
cc0679.......................................................................................................................................229
cc0682.......................................................................................................................................229
cc0691.......................................................................................................................................230
cc0692.......................................................................................................................................230
cc0693.......................................................................................................................................231
cc0694.......................................................................................................................................231
cc0695.......................................................................................................................................232
cc0696.......................................................................................................................................232
cc0697.......................................................................................................................................233
cc0698.......................................................................................................................................233
cc0701.......................................................................................................................................234
cc0702.......................................................................................................................................235
cc0703.......................................................................................................................................235
cc0704.......................................................................................................................................236
cc0705.......................................................................................................................................236
12

cc0706.......................................................................................................................................237
cc0708.......................................................................................................................................237
cc0709.......................................................................................................................................238
cc0711.......................................................................................................................................238
cc0713.......................................................................................................................................239
cc0714.......................................................................................................................................239
cc0716.......................................................................................................................................239
cc0717.......................................................................................................................................240
cc0718.......................................................................................................................................240
cc0719.......................................................................................................................................241
cc0724.......................................................................................................................................241
cc0725.......................................................................................................................................242
cc0727.......................................................................................................................................242
cc0728.......................................................................................................................................243
cc0731.......................................................................................................................................243
cc0732.......................................................................................................................................244
cc0733.......................................................................................................................................245
cc0734.......................................................................................................................................245
cc0735.......................................................................................................................................246
cc0738.......................................................................................................................................246
cc0742.......................................................................................................................................247
cc0744.......................................................................................................................................247
cc0745.......................................................................................................................................248
cc0746.......................................................................................................................................248
cc0747.......................................................................................................................................249
cc0748.......................................................................................................................................249
cc0749.......................................................................................................................................250
cc0751.......................................................................................................................................250
cc0752.......................................................................................................................................250
cc0753.......................................................................................................................................251
cc0754.......................................................................................................................................252
cc0755.......................................................................................................................................252
cc0756.......................................................................................................................................253
cc0757.......................................................................................................................................253
cc0758.......................................................................................................................................254
13

cc0759.......................................................................................................................................255
cc0760.......................................................................................................................................255
cc0761.......................................................................................................................................256
cc0769.......................................................................................................................................256
cc0771.......................................................................................................................................257
cc0772.......................................................................................................................................257
cc0774.......................................................................................................................................258
cc0775.......................................................................................................................................258
cc0777.......................................................................................................................................259
cc0779.......................................................................................................................................259
cc0782.......................................................................................................................................260
cc0784.......................................................................................................................................260
cc0787.......................................................................................................................................261
cc0788.......................................................................................................................................261
cc0790.......................................................................................................................................262
cc0791.......................................................................................................................................263
cc0792.......................................................................................................................................263
cc0793.......................................................................................................................................264
cc0794.......................................................................................................................................264
cc0800.......................................................................................................................................265
cc0801.......................................................................................................................................265
cc0802.......................................................................................................................................266
cc0803.......................................................................................................................................267
cc0804.......................................................................................................................................267
cc0810.......................................................................................................................................268
cc0811.......................................................................................................................................268
cc0812.......................................................................................................................................269
cc0815.......................................................................................................................................269
cc0816.......................................................................................................................................270
cc0817.......................................................................................................................................271
cc0818.......................................................................................................................................271
cc0819.......................................................................................................................................272
cc0821.......................................................................................................................................272
cc0822.......................................................................................................................................273
cc0824.......................................................................................................................................273
14

cc0825.......................................................................................................................................274
cc0827.......................................................................................................................................274
cc0828.......................................................................................................................................275
cc0832.......................................................................................................................................275
cc0833.......................................................................................................................................276
cc0834.......................................................................................................................................276
cc0835.......................................................................................................................................277
cc0840.......................................................................................................................................277
cc0841.......................................................................................................................................278
cc0842.......................................................................................................................................278
cc0843.......................................................................................................................................279
cc0844.......................................................................................................................................279
cc0845.......................................................................................................................................280
cc0846.......................................................................................................................................280
cc0847.......................................................................................................................................281
cc0848.......................................................................................................................................281
cc0849.......................................................................................................................................282
cc0850.......................................................................................................................................283
cc0851.......................................................................................................................................283
cc0852.......................................................................................................................................283
cc0854.......................................................................................................................................284
cc0855.......................................................................................................................................284
cc0857.......................................................................................................................................285
cc0858.......................................................................................................................................286
cc0859.......................................................................................................................................286
cc0861.......................................................................................................................................287
cc0862.......................................................................................................................................288
cc0863.......................................................................................................................................288
cc0864.......................................................................................................................................289
cc0865.......................................................................................................................................289
cc0866.......................................................................................................................................290
cc0868.......................................................................................................................................290
cc0869.......................................................................................................................................291
cc0871.......................................................................................................................................291
cc0872.......................................................................................................................................291
15

cc0873.......................................................................................................................................292
cc0884.......................................................................................................................................292
cc0885.......................................................................................................................................293
cc0886.......................................................................................................................................293
cc0887.......................................................................................................................................293
cc0888.......................................................................................................................................294
cc0890.......................................................................................................................................294
cc0891.......................................................................................................................................295
cc0892.......................................................................................................................................295
cc0893.......................................................................................................................................296
cc0894.......................................................................................................................................296
cc0896.......................................................................................................................................296
cc0898.......................................................................................................................................297
cc0901.......................................................................................................................................297
cc0905.......................................................................................................................................298
cc0906.......................................................................................................................................299
cc0907.......................................................................................................................................299
cc0908.......................................................................................................................................300
cc0909.......................................................................................................................................300
cc0910.......................................................................................................................................300
cc0911.......................................................................................................................................301
cc0913.......................................................................................................................................301
cc0914.......................................................................................................................................302
cc0915.......................................................................................................................................302
cc0916.......................................................................................................................................303
cc0919.......................................................................................................................................303
cc0920.......................................................................................................................................304
cc0925.......................................................................................................................................304
cc0926.......................................................................................................................................305
cc0928.......................................................................................................................................305
cc0929.......................................................................................................................................305
cc0930.......................................................................................................................................306
cc0942.......................................................................................................................................306
cc0979.......................................................................................................................................306
cc1086.......................................................................................................................................307
16

cc1097.......................................................................................................................................307
cc1100.......................................................................................................................................308
cc1101.......................................................................................................................................308
cc1102.......................................................................................................................................309
cc1103.......................................................................................................................................309
cc1110.......................................................................................................................................310
cc1112.......................................................................................................................................310
cc1113.......................................................................................................................................311
cc1115.......................................................................................................................................311
cc1117.......................................................................................................................................312
cc1151.......................................................................................................................................312
cc1197.......................................................................................................................................313
cc1200.......................................................................................................................................313
cc1208.......................................................................................................................................314
cc1209.......................................................................................................................................314
cc1211.......................................................................................................................................315
cc1213.......................................................................................................................................315
cc1219.......................................................................................................................................316
cc1230.......................................................................................................................................316
cc1319.......................................................................................................................................317
cc1327.......................................................................................................................................317
cc1343.......................................................................................................................................318
cc1427.......................................................................................................................................318
cc1428.......................................................................................................................................319
cc1468.......................................................................................................................................319
cc1469.......................................................................................................................................320
cc1471.......................................................................................................................................320
cc1475.......................................................................................................................................321
cc1476.......................................................................................................................................321
cc1477.......................................................................................................................................322
cc1478.......................................................................................................................................322
cc1479.......................................................................................................................................323
cc1480.......................................................................................................................................323
cc1481.......................................................................................................................................324
cc1483.......................................................................................................................................324
17

cc1484.......................................................................................................................................324
cc1485.......................................................................................................................................325
cc1486.......................................................................................................................................325
cc1487.......................................................................................................................................326
cc1488.......................................................................................................................................326
cc1489.......................................................................................................................................326
cc1490.......................................................................................................................................327
cc1491.......................................................................................................................................327
cc1492.......................................................................................................................................327
cc1493.......................................................................................................................................328
cc1494.......................................................................................................................................328
cc1495.......................................................................................................................................329
cc1496.......................................................................................................................................329
cc1634.......................................................................................................................................330
cc1643.......................................................................................................................................330
cc1647.......................................................................................................................................331
cc1648.......................................................................................................................................331
cc1649.......................................................................................................................................332
cc1652.......................................................................................................................................332
cc1668.......................................................................................................................................332
cc1732.......................................................................................................................................333
cc1733.......................................................................................................................................334
cc1742.......................................................................................................................................334
cc1743.......................................................................................................................................335
cc1744.......................................................................................................................................335
cc1747.......................................................................................................................................336
cc1748.......................................................................................................................................336
cc3089.......................................................................................................................................337
cc3150.......................................................................................................................................337

COMPILER REMARKS ..............................................................................................338


cc1123.......................................................................................................................................338
cc1472.......................................................................................................................................338
cc1473.......................................................................................................................................339
cc1474.......................................................................................................................................339

18

cc1736.......................................................................................................................................340

COMPILER WARNINGS ............................................................................................342


cc0009.......................................................................................................................................342
cc0011.......................................................................................................................................343
cc0012.......................................................................................................................................343
cc0021.......................................................................................................................................344
cc0039.......................................................................................................................................344
cc0047.......................................................................................................................................345
cc0061.......................................................................................................................................345
cc0062.......................................................................................................................................346
cc0063.......................................................................................................................................346
cc0064.......................................................................................................................................347
cc0068.......................................................................................................................................347
cc0076.......................................................................................................................................347
cc0082.......................................................................................................................................348
cc0099.......................................................................................................................................348
cc0108.......................................................................................................................................349
cc0111.......................................................................................................................................349
cc0128.......................................................................................................................................350
cc0138.......................................................................................................................................350
cc0161.......................................................................................................................................351
cc0173.......................................................................................................................................351
cc0175.......................................................................................................................................352
cc0177.......................................................................................................................................352
cc0178.......................................................................................................................................353
cc0179.......................................................................................................................................353
cc0185.......................................................................................................................................354
cc0186.......................................................................................................................................354
cc0187.......................................................................................................................................355
cc0188.......................................................................................................................................355
cc0191.......................................................................................................................................356
cc0192.......................................................................................................................................356
cc0221.......................................................................................................................................357
cc0222.......................................................................................................................................357

19

cc0228.......................................................................................................................................358
cc0230.......................................................................................................................................358
cc0231.......................................................................................................................................358
cc0232.......................................................................................................................................359
cc0233.......................................................................................................................................359
cc0234.......................................................................................................................................360
cc0260.......................................................................................................................................360
cc0267.......................................................................................................................................361
cc0301.......................................................................................................................................361
cc0362.......................................................................................................................................362
cc0368.......................................................................................................................................362
cc0370.......................................................................................................................................363
cc0375.......................................................................................................................................363
cc0379.......................................................................................................................................364
cc0387.......................................................................................................................................364
cc0414.......................................................................................................................................365
cc0426.......................................................................................................................................365
cc0428.......................................................................................................................................366
cc0461.......................................................................................................................................366
cc0482.......................................................................................................................................367
cc0494.......................................................................................................................................367
cc0497.......................................................................................................................................368
cc0514.......................................................................................................................................369
cc0549.......................................................................................................................................369
cc0552.......................................................................................................................................369
cc0553.......................................................................................................................................370
cc0554.......................................................................................................................................371
cc0608.......................................................................................................................................371
cc0610.......................................................................................................................................371
cc0617.......................................................................................................................................372
cc0618.......................................................................................................................................373
cc0657.......................................................................................................................................373
cc0676.......................................................................................................................................373
cc0715.......................................................................................................................................374
cc0722.......................................................................................................................................375
20

cc0723.......................................................................................................................................375
cc0729.......................................................................................................................................376
cc0737.......................................................................................................................................376
cc0783.......................................................................................................................................377
cc0830.......................................................................................................................................377
cc0831.......................................................................................................................................377
cc0836.......................................................................................................................................378
cc0837.......................................................................................................................................379
cc0838.......................................................................................................................................379
cc0860.......................................................................................................................................380
cc0867.......................................................................................................................................380
cc0870.......................................................................................................................................381
cc0902.......................................................................................................................................381
cc0940.......................................................................................................................................382
cc0941.......................................................................................................................................382
cc1039.......................................................................................................................................383
cc1041.......................................................................................................................................383
cc1043.......................................................................................................................................384
cc1045.......................................................................................................................................384
cc1073.......................................................................................................................................385
cc1074.......................................................................................................................................385
cc1080.......................................................................................................................................386
cc1114.......................................................................................................................................386
cc1127.......................................................................................................................................387
cc1164.......................................................................................................................................387
cc1268.......................................................................................................................................387
cc1269.......................................................................................................................................388
cc1305.......................................................................................................................................388
cc1310.......................................................................................................................................389
cc1355.......................................................................................................................................389
cc1367.......................................................................................................................................390
cc1368.......................................................................................................................................390
cc1371.......................................................................................................................................391
cc1374.......................................................................................................................................391
cc1440.......................................................................................................................................392
21

cc1441.......................................................................................................................................392
cc1442.......................................................................................................................................393
cc1443.......................................................................................................................................394
cc1444.......................................................................................................................................394
cc1445.......................................................................................................................................395
cc1446.......................................................................................................................................396
cc1447.......................................................................................................................................397
cc1448.......................................................................................................................................397
cc1467.......................................................................................................................................398
cc1470.......................................................................................................................................399
cc1482.......................................................................................................................................399
cc1633.......................................................................................................................................400
cc1635.......................................................................................................................................400
cc1638.......................................................................................................................................401
cc1639.......................................................................................................................................402
cc1640.......................................................................................................................................402
cc1644.......................................................................................................................................402
cc1645.......................................................................................................................................403
cc1646.......................................................................................................................................404
cc1651.......................................................................................................................................404
cc1654.......................................................................................................................................405
cc1658.......................................................................................................................................405
cc1661.......................................................................................................................................406
cc1665.......................................................................................................................................406
cc1667.......................................................................................................................................407
cc1734.......................................................................................................................................407
cc1737.......................................................................................................................................408
cc1745.......................................................................................................................................410
cc1746.......................................................................................................................................411
cc1749.......................................................................................................................................412
cc3146.......................................................................................................................................413

22

Compiler Errors
cc0001
Compiler Error: last line of file ends without a newline
Description
The final line of a source file does not end with a newline character.
Severity
Error, in strict ANSI mode
Warning, otherwise
Recovery
The compiler automatically inserts the missing newline character and continues.
Example
In the following example, the ^ character represents the newline character.
void f(void)^
{^
}

How to Fix
Append a newline character to the final line of the corresponding source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (5.1.1.2.2)
ISO/IEC 14882:1998 "Programming Languages - C++" (2.1.2)

cc0002
Compiler Error: last line of file ends with a backslash
Description
The final line of a source file ends with a backslash character.
Severity
Error
Recovery
The compiler automatically ignores the trailing backslash character and continues.
Example
void f(void)
{
}\

How to Fix
Remove the trailing backslash character from the final line of the corresponding
source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (5.1.1.2.2)
ISO/IEC 14882:1998 "Programming Languages - C++" (2.1.2)

cc0003
23

Compiler Error: #include file "xxxx" includes itself


Description
A header file has included itself more than once. In rare cases this practice can be
desirable in order to perform some clever tricks with the preprocessor. Including
itself more than eight times, however, probably indicates recursion.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
The two files in this example are: test.c and test.h.
test.h:
#include "test.h"
test.c:
#include "test.h"

How to Fix
Prevent the corresponding header file from including itself.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (5.2.4.1)
ISO/IEC 14882:1998 "Programming Languages - C++" (B.2)

cc0004
Compiler Error: out of memory
Description
The compiler requires more system memory to perform the current compilation than
is currently available in the compilation environment.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error depends on the compilation environment. The error cannot normally be
reproduced with only an extract of a specific source file.
How to Fix
You can receive this error message when trying to compile a very large source file.
In this case, you can allocate more system memory for the compilation process or
you can split the source file into multiple smaller source files. This message can also
indicate an internal error within the compiler itself due to recursion, which should be
reported.
Related Information
See also your operating system's documentation about how to increase the amount
of system memory that can be made available for specific processes.

cc0005
Compiler Error: could not open source file "xxxx"

24

Description
The compiler could not read the contents of a source file or a header file.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
In this example, the header file test.h does not exist in the current directory or in
any of the directories in the include file search path.
#include "test.h"

How to Fix
Ensure that the compiler is being invoked with the filename of a source file that
really does exist, and that all the header files included by that source file exist in the
include file search path. If they do not, you must add the directory containing the
relevant header file to the include file search path with the -I option. You must also
have permission to read from all of these files.
Related Information
See also documentation for the -I option.

cc0006
Compiler Error: comment unclosed at end of file
Description:
A comment remains unclosed at the end of a source file. This description applies only
to C-style comments and not C++-style comments (which are terminated at the end
of a line).
Severity
Error
Recovery
The compiler automatically closes the comment and continues.
Example
/* this is an unclosed comment *

How to Fix
Ensure that the comment is closed at the proper source file location.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (5.1.1.2.3)
ISO/IEC 14882:1998 "Programming Languages - C++" (2.1.3)

cc0007
Compiler Error: unrecognized token
Description
An illegal character has occurred within the source file. This error occurs only when
the offending character is encountered without a character constant, string literal,
header filename, or comment. The error generally indicates that the source file has
been corrupted in some way.

25

Severity
Error
Recovery
The compiler tries to ignore the illegal character and continues.
Example
/* the character to the left is illegal in C/C++ source */

How to Fix
Remove the offending character, or do one of the following:
If it is intended to be part of a character constant, string literal, or header
filename, put it in quotes.
If it is intended to be part of a comment, comment it out.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (5.2.1)
ISO/IEC 14882:1998 "Programming Languages - C++" (2.2)

cc0008
Compiler Error: missing closing quote
Description
A string literal remains unclosed at the end of a source line.
Severity
Error
Recovery
The compiler automatically closes the string and continues.
Example
const char *str = "this is a string;

How to Fix
Ensure that the string is closed at the proper source file location. If the string
continues across several lines, place a backslash character at the end of the relevant
lines to indicate that the string is to continue at the start of the next line.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (6.1.4)
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.4)

cc0010
Compiler Error: "#" not expected here
Description
A "#" character appears outside of any preprocessing directive and not at the
beginning of a line.
Severity
Error
Recovery
The compiler tries to ignore the illegal character and continues.
Example

26

int num = #;

How to Fix
Remove the offending character, or ensure that it is associated with a preprocessing
directive if that was the original intention.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (6.1.6)
ISO/IEC 14882:1998 "Programming Languages - C++" (16)

cc0013
Compiler Error: expected a file name
Description
Following the #include directive, the name of a file that can be processed by the
implementation is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Examples
#include
#include <filename
#include "filename
#include <>

How to Fix
Ensure that the name of the include file used is enclosed correctly within <> or ""
characters. If you are using a macro (for example, #include filename) ensure that
the preprocessing tokens that the macro represents are syntactically correct.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.2)

cc0014
Compiler Error: extra text after expected end of preprocessing directive
Description
The compiler generates this error if the current token is not the end-of-source token
that terminates the pragma directive. In strict ANSI mode, the compiler issues an
error only if the preprocessing directive is not a pragma.
Severity
Fatal error if:
The extra text appears after the expected end of a pragma preprocessing
directive.
In strict ANSI mode, the extra text appears after the expected end of a
preprocessing directive that is not a pragma.
Recovery
The compiler cannot recover from this error.

27

Example
#pragma once again /* "again" is the extra text after the pragma */
/* preprocessing directive causing the error */
#include <stdio.h> the_include_file /* "the_include_file" is */
/* extra text causing the error in strict ANSI mode*/
int main(){}

How to Fix
Remove the extra text after the end of the preprocessing directive.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16)

cc0016
Compiler Error: "xxxx" is not a valid source file name
Description
The source file cannot be opened.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the specified source file name is valid.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0017
Compiler Error: expected a right "]"
Description
The right bracket from a declaration is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int an_array[10;

How to Fix
Ensure that a right bracket is used at the proper source file location to match the left
one used earlier in the file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.12)

28

cc0018
Compiler Error: expected a ")"
Description
The right or closing parenthesis of a statement or expression is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void Func(int i;

How to Fix
Ensure that a right parenthesis is used at the proper source file location to match the
left one used earlier in the file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.12)

cc0019
Compiler Error: extra text after expected end of number
Description
The compiler found extra characters after the expected end of a number.
This error is appears when you compile in strict mode by using the -strict command
line option or the -pedantic command line option.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
int i = 434343a; /* Error: extra char after expected end of number */
i++; /* suppresses warning */
}

How to Fix
Remove the extra characters after the expected end of the number.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0020
Compiler Error: identifier "xxxx" is undefined
Description:
The function, variable, or other identifier is undefined.

29

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
return i;
}

How to Fix
Make sure that you properly define identifiers before usage.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.10)

cc0022
Compiler Error: invalid hexadecimal number
Description
An invalid hexadecimal number is used in a source file. Pcc allows "0x" by itself and
interprets it as zero.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i = 0xG;

How to Fix
Use valid hexadecimal numbers.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (A.2)

cc0023
Compiler Error: integer constant is too large
Description
The constant does not fit into the integer kind.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i = 9999999999;

How to Fix

30

The largest signed int possible to use is 2147483647. The largest unsigned int
possible to use is 4294967295. Ensure that all the integer constant used are within
the above limits.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.1)

cc0024
Compiler Error: character value is out of range
Description
An invalid octal number is used in a source file.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i = 009;

How to Fix
Use valid octal numbers.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (A.2)

cc0025
Compiler Error: quoted string should contain at least one character
Description
A string contains zero characters.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
string anystring; // declaring a string
anystring.assign(''); // trying to assign zero characters to it
char* D = '' /* another example */

How to Fix
Make sure that zero characters are not assigned to strings.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.4, 21.3.1)

cc0026
Compiler Error: too many characters in character constant

31

Description
The number of characters in the char (character) constant do not fit. This error
message is a warning for wide character literals, viewed by the C standard as defined
implementation.
Severity
Warning, for wide character literals
Fatal error, otherwise
Recovery
If a fatal error is indicated, the compiler cannot recover.
If a warning is indicated, compilation continues after the warning.
Example
wchar_t B = L'AB'; /* Warning */
char C = 'BA'; /* Fatal Error */

How to Fix
In C, you create a character constant by enclosing a single character from the
representable character set within single quotation marks (' ').
In C++, character constants are one or more members of the source character set
enclosed with single quotation marks.
Ensure that the offending character constant fits within the above guidelines.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.2)

cc0027
Compiler Error: character value is out of range
Description
The character value used is out of range.
Severity
Error, in strict ANSI mode
Warning, otherwise
Recovery
If a non-discretionary error is indicated, the compiler cannot recover.
If a warning is indicated, the compiler truncates the value and continues compilation.
Example
char a = '\xfff';

How to Fix
Use a value for a character between 0 and 255 inclusive.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0028
Compiler Error: expression must have a constant value

32

Description
A global variable has been initialized with a local variable value.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
int a = 2;
static int k = a; /* a static variable is allocated when the program */
/* begins and deallocated when the program ends, */
/* therefore it cannot be initialized with the */
/* value of a local variable */
}

How to Fix
Ensure that global variables are not initialized with the values of local variables.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0029
Compiler Error: expected an expression
Description
This error occurs under the following circumstances:
The initializer list is empty -- "{ }" (n error in C, but okay in C++).
During a prototype instantiation, default arguments are cached but not
rescanned.
The syntax does not permit initialization with a brace enclosed initializer list.
An empty list is not allowed in a placement expression list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int A[5] = {}; /* Empty initializer list, error in C */

How to Fix
If the initializer list is empty and in C mode, ensure that the list is filled.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0030
Compiler Error: floating constant is out of range

33

Description
The constant does not fit into the float kind.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
float f = 3.4028234663852886E+38000F;

How to Fix
The maximum floating value that you can use is 3.4028234663852886E+38F.
The minimum floating value that you can use is 1.1754943508222875E-38F.
Ensure that all the floating constants used are within the above limits.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.3)

cc0031
Compiler Error: expression must have an integral type
Description
An expression does not use one of the integral types.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
double num = 1;
switch (num) /* num is not declared as one of the integral types, */
/* therefore causing the error */
{
case 1:
num++;
break;
case 2:
num--;
break;
}
}

How to Fix
Use one of these integral types: char, int, short, long, signed, unsigned, or enum.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4.2, 3.9.1, 5.2.1)

cc0032
34

Compiler Error: expression must have arithmetic type


Description
A non-arithmetic type is used for an expression that can only use arithmetic types.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main(){
int ia[5];
int ip = ia/4;/* error appears here as ia is not of arithmetic type */
}

How to Fix
Ensure that only arithmetic types are used in arithmetic expressions.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.9.1)

cc0033
Compiler Error: expected a line number
Description
The line number of a line directive is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#line /* a line number is missing therefore error */

How to Fix
Ensure that a line number is always present in a #line preprocessing directive.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.4)

cc0034
Compiler Error: invalid line number
Description
This error is caused by one of the following conditions:
The directive has no keyword "line".
The directive has an extra operand at the end.
Zero is specified as a line number.
The line number is either incorrect or too large.
Severity

35

Fatal error
Recovery
The compiler cannot recover from this error.
Example
#line 0 /* zero is not allowed as a line number, therefore error */

How to Fix
Ensure that the line number given is valid.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.4)

cc0035
Compiler Error: #error directive: xxxx
Description
Encountering an error directive terminates the compilation.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#error MyError

How to Fix
Remove the #Error directive.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.5)

cc0036
Compiler Error: the #if for this directive is missing
Description
No corresponding #if directive exists for an #else, #elif, or #endif directive.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
// #if defined SYMBOL
// do something
#else
// do something else
#endif

How to Fix
Ensure that any #else, #elif or #endif directives are preceded with the
corresponding #if directive appropriately placed in the source file.

36

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16)

cc0037
Compiler Error: the #endif for this directive is missing
Description
Not all the #if directives opened in the current source file have been closed.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#if defined SYMBOL
// do something
// #endif /* The #endif statement is commented out */

How to Fix
Ensure that all the #if directives opened in the current source file have been closed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16)

cc0038
Compiler Error: directive is not allowed, as an #else has already appeared
Description
An #else has already appeared, and a second #else is not allowed.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#if defined SYMBOL
// do something
#else
// do something else
#else
// do something else
#endif

How to Fix
Use only one #else directive between each pair of #if - #endif directives.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16)

37

cc0040
Compiler Error: expected an identifier
Description
A declaration does not include an identifier.
Severity
Warning, if the declaration is a struct or enum but no identifier is specified
Fatal error, otherwise
Recovery
If a fatal error is indicated, the compiler cannot recover.
If a warning is indicated, compilation continues after the warning.
Example
int main()
{
float = 0;
}

How to Fix
Ensure that an identifier is always used at the appropriate place in the source.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.10)

cc0041
Compiler Error: expression must have arithmetic or pointer type
Description
The expression used is not an arithmetic or pointer type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main(){
struct s {int x;} st;
while (st) {} /* Error appears here, st must of arithmetic or */
/* pointer type */
}

How to Fix
Replace the offending operand with an arithmetic or scalar type operand.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5)

cc0042
Compiler Error: operand types are incompatible ("type" and "type")
Description

38

The two operands used in the expression are incompatible.


Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class B { };
class D1 : public B { };
class D2 : public B { };
int main()
{
D1 * d1;
D2 * d2;
bool x;
x ? d1 : d2; /* operands d1 and d2 are incompatible */
}

How to Fix
When you use conditional expressions, ensure that the operands used are
compatible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.16)

cc0044
Compiler Error: expression must have a pointer type
Description
A type that is not a pointer has been used in an expression that accepts only pointer
types.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
typedef struct
{
int width;
int height;
}
Image;
int main()
{
Image Picture;
Image *pImage = &Picture;
Picture.width = 10;
Picture->width; /* Error as "Picture is not of pointer type" */
}

How to Fix
Ensure that the offending operand is replaced with a pointer type operand.
In the above example, a pointer type operand would be:
pImage->width;

39

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5)

cc0045
Compiler Error: #undef may not be used on this predefined name
Description
You are trying to undefine an ANSI C predefined macro. The Microsoft compiler
issues a warning saying that the #undef is ignored, but it is not.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#undef __FILE__ /*

How to Fix
ANSI C predefined macros cannot be undefined. Therefore, the only way to fix this
error is to take the offending statement out.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.8)

cc0046
Compiler Error: this predefined name may not be redefined
Description
You are trying to redefine an ANSI C predefined macro.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#define __FILE__ "afile"

How to Fix
The macro is predefined, and therefore, it cannot be redefined. The only way to fix
this error is to take the offending statement out.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.8)

cc0049
Compiler Error: duplicate macro parameter name
Description

40

A macro parameter name has been used twice within the same macro definition.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#define add(a,a,c) a + b + c /* "a" /* parameter used twice */

How to Fix
Replace the offending parameter name with one that is not already used.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.3.5)

cc0050
Compiler Error: ## may not be first in a macro definition
Description
The first two characters of a macro definition are "##".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#define MyMacro ##AA

How to Fix
Use a different macro definition.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.3.5)

cc0051
Compiler Error: ## may not be last in a macro definition
Description
The last two characters of a macro definition are "##".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#define MyMacro AA##

How to Fix
Use a different macro definition.
Related Information

41

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (16.3.5)

cc0052
Compiler Error: expected a macro parameter name
Description
The "#" character is not followed by a parameter name.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#define foo() #

How to Fix
Ensure that "#" is followed by a macro parameter name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.3.2)

cc0053
Compiler Error: expected a colon ":"
Description
A colon is missing in the source file.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
c = (a > b) ? a b; /* A colon is missing */
c = (a > b) ? a : b; /* This is correct */

How to Fix
Add a colon where appropriate in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.12, 1.9, 3)

cc0054
Compiler Error: too few arguments in macro invocation
Description
At the time the macro was invoked, at least one argument was missing.
Severity
Fatal error

42

Recovery
The compiler cannot recover from this error.
Example
#include<stdio.h>
#define MACRO(i, j) i - j
int main(){
printf("%d\n", MACRO(2));
}

How to Fix
Ensure that the correct number of arguments are passed to the macro when it is
invoked.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (1.3.1, 2.1, 16.1, 16.3.3)

cc0055
Compiler Error: too many arguments in macro invocation
Description
At least one too many arguments were passed to a macro when it was invoked.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include<stdio.h>
#define MACRO(i, j) i - j
int main(){
printf("%d\n", MACRO(2, 2, 2));
}

How to Fix
Ensure that the correct number of arguments are passed to the macro when it is
invoked.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (1.3.1, 2.1, 16.1, 16.3.3)

cc0056
Compiler Error: operand of sizeof may not be a function
Description
The operand of a sizeof cannot have a function type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

43

void foo(){};
int main(){
int i;
i = sizeof(foo);
}

How to Fix
Ensure that the operand of the sizeof operator is not a function type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.3)

cc0057
Compiler Error: this operator is not allowed in a constant expression
Description
An illegal operator has been used in a constant expression. Operators forbidden in
constant expressions are the postfix (++/--), prefix (++/--), typeid, dynamic_cast,
new, delete, throw, and comma (,) and assignment (=) operators.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
main() {
int i;
/* the constant expression below uses the comma and prefix operators,
causing two errors */
static int j = 1 ? 0 : (++i, 3);
}

How to Fix
Restructure your source code to avoid the use of illegal operators within constant
expressions.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.19)

cc0058
Compiler Error: this operator is not allowed in a preprocessing expression
Description:
Preprocessing expressions do not allow subscripting, field selection, constants,
address indirection.
Severity:
Fatal error
Recovery:
The compiler cannot recover from this error.
Example
#if a[3] /* subscripting not allowed */

44

How to Fix
Ensure that the operations listed above are not used in preprocessing expressions.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.1, 5.3.1, 5.19)

cc0059
Compiler Error: function call is not allowed in a constant expression
Description
A function call has appeared within a constant expressions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo(){ return 1; }
int main()
{
static int i = foo();
}

How to Fix
Function calls are not allowed in constant expressions. Therefore, either make the
expression non-constant or do not use a function call in it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.19)

cc0060
Compiler Error: this operator is not allowed in an integral constant
expression
Description
One of the following has been used within an integral constant expression:
Subscripting, field selection, address constants, or address indirection.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A { enum { e1 = 1 }; } a;
int x[a.e1];

How to Fix
The operations listed above are not allowed in an integral constant expression.
Therefore, restructure the source code in an appropriate manner to render such
operations redundant. Refer to the C and C++ standards for more information.
Related Information

45

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (5.19)

cc0065
Compiler Error: expected a ";"
Description
A semicolon is missing in the source file.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i /* wrong */
int i; /* correct */

How to Fix
Add a semicolon where appropriate in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.12, 3)

cc0066
Compiler Error: enumeration value is out of "int" range
Description
The integer value used within an enum declaration is larger that the maximum value
allowed for int.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <limits.h>
enum { Num = INT_MAX, next };
int main(){
}

How to Fix
Ensure that the value used fits within the allowed range for int (namely, between 2147483648 and 2147483647 inclusive).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.9.1)

cc0067
46

Compiler Error: expected a "}"


Description
A right brace (curly bracket) is missing from the source file.
Severity
Fatal error
Recovery
The compiler cannot recover from this error
Example
struct MyStruct{
int i;
int j; /* a right curly bracket is missing after the semicolon. */
A_Struct;

How to Fix
Ensure that a right brace (}) is used at the proper source file location to match the
left one used earlier in the file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.12)

cc0069
Compiler Error: integer conversion resulted in truncation
Description
The integral type being converted to is not large enough to hold the required value.
Severity
Fatal error
Recovery
Compiler issues the diagnostic and compilation continues.
Example
In the C/C++ Compiler : SHARC version 6.1.0, all integral types have the same
length, 32 bits. Therefore, this error cannot be reproduced with this compiler.
The following would reproduce the error if you use the Blackfin compiler.
void main(){
char c = 256L;
}

How to Fix
Ensure that the integral type being converted to is large enough to hold the value
being forced into it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0070
Compiler Error: incomplete type is not allowed
Description

47

A declared type is incomplete. It has an identifier but lacks information needed to


determine the size of the identifier.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example:
int i[]; /* i has an incomplete type */
int i[10] /* now i has a complete type */

How to Fix
Declare the same name later in the same scope and complete it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.9)

cc0071
Compiler Error: operand of sizeof may not be a bit field
Description
You cannot use bit fields as operands to sizeof, except in pcc compatibility mode
when the size of the bit field is the size of the type of the bit field (for example,
unsigned int).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example:
struct {
int i : 1;
int j : 2;
} MyStr;
void main( void )
{
int MyInt = sizeof( MyStr.i );
}

How to Fix
Ensure that bit fields are not used as operands to sizeof.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.3)

cc0075
Compiler Error: operand of "*" must be a pointer
Description
The operand of the "*" is not a pointer.
Severity

48

Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include<stdio.h>
int main()
{
int MyInt = 10;
int *pMyInt;
pMyInt = &MyInt;
printf( "%d\n", *MyInt ); /* Incorrect as MyInt is not a pointer */
printf( "%d\n", *pMyInt ); /* Correct */
}

How to Fix
Ensure that the operand of "*" is always a pointer.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.1, 5.3.1)

cc0077
Compiler Error: this declaration has no storage class or specifier
Description
If the decl-specifiers are missing for a non-function declaration, an error is issued
in all modes.
If the decl-specifiers are missing for a function declaration in C mode, a warning is
generated.
If the decl-specifiers are missing for a function declaration in strict C mode, an
error is generated.
C++ function declarations are handled separately.
Severity
Error, if decl-specifiers are missing for:
A non-function declaration
A function declaration in strict C mode
Warning, if they are missing for a function declaration in C mode
Recovery
If an error is indicated, the compiler assumes an "int" storage class or type specifier
and continues.
If a warning is indicated, the compiler assumes an int as the return type and
compilation continues.
Example
/* The following declarations are made at file scope */
i; /* non-function declaration without a type specifier - Error */
int i; /* with a type specifier */
foo(); /* function declaration without decl-specifiers */
int foo(); /* with a decl-specifiers */

How to Fix
Add a storage class or specifier at the appropriate place in the source code.

49

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0078
Compiler Error: a parameter declaration may not have an initializer
Description
A parameter declaration containing an initializer has been encountered. Declarations
with parameters are old style C parameter declarations. C++ default arguments,
which look like a parameter with an initializer, such as void f(int i = 1), are
handled elsewhere.
Severity
Fatal error
Recovery
The compiler treats the empty argument as equal to zero.
Example
int f(i)
int i = 4; /* Error occurs here */
{
return 0;
}
int main(){}

How to Fix
Use ANSI C style function declarations.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0079
Compiler Error: expected a type specifier
Description
An identifier in a new expression, was probably intended to be a type name. The
current identifier is not a type name. By default, the compiler finds anything
unexpected that does not appear to be a type specifier.
Severity
Fatal error
Recovery
If the intended type name is an identifier in a new expression, the compiler issues an
error and then pretends that the identifier is the type name.
If current identifier is not a type name, the compiler assumes that the undefined
identifier was intended to be a type name.
In the last case, the compiler cannot recover from the error.
Example
int main()
{
int x = 1;

50

extern x y; /* in the place of "x" a type identifier expected */


static x *z; /* as above */
}

How to Fix
Ensure that a type identifier is inserted at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.5)

cc0080
Compiler Error: a storage class may not be specified here
Description
This error is caused when you specify a storage class as follows:
For a member function
On a condition declaration
For an entity that is not an object or a function
For a member template declaration outside the class definition
On a member template specialization
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <static int i> void f() {} /* Error: a storage class cannot be used on
a template
parameter declaration */
void main(){}

How to Fix
Remove the offending storage class declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0081
Compiler Error: more than one storage class may not be specified
Description
More than one storage class has been specified.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
auto register int i;

51

How to Fix
Remove one of the specifiers.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.5)

cc0083
Compiler Error: type qualifier is specified more than once
Description
Duplicate type qualifiers are specified, or the typedef is already qualified.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
const const int i;

How to Fix
Remove one of the offending type qualifiers.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.9.1, 8)

cc0084
Compiler Error: invalid combination of type specifiers
Description
The combination of type specifiers is invalid, or the basic type has already been
specified in some way.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int int i;

How to Fix
Ensure that the combination of type specifiers is correct. Specify only one basic type
for each declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.5.2)

cc0085
Compiler Error: invalid storage class for a parameter

52

Description
For parameters, the only allowed storage class specifiers are register and (in C++
only) auto.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( static int );

How to Fix
Replace the invalid storage class specifier in the source file with a valid one.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0086
Compiler Error: invalid storage class for a function
Description
The only valid storage classes of a function are extern or static.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
register void foo(); /* 'register' is an invalid storage class */
/* for a function */

How to Fix
Replace the invalid storage class with a valid one in the appropriate place in the
source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0088
Compiler Error: array of functions is not allowed
Description
Arrays of functions are treated as illegal.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo[](); /* an array of functions returning an int */

53

How to Fix
Replace the array of functions with an array of pointers to functions, for example:
int ( *foo[] ) ();

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0089
Compiler Error: array of void is not allowed
Description
Arrays of void are treated as illegal.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void AnArray[10];

How to Fix
As arrays of void are illegal, use another type specifier, for example:
int AnArray[10];

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.4)

cc0090
Compiler Error: function returning function is not allowed
Description
A function declarator cannot specify a return type that is a function type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo()(); /* a function returning a function returning an int */

How to Fix
Change the source code so as to be able to use an alternative, legal notation, for
example:
int
/*
int
/*

(**foo)(); /* a pointer to a pointer to a function */


returning an int*/
(*foo())(); /* a function returning a pointer to a function */
returning an int */

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

54

cc0091
Compiler Error: function returning array is not allowed
Description
A function declarator cannot specify a return type that is an array type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo() []; /* a function returning an array of ints */

How to Fix
Change the source code in a such a way allowing you to use legal notation, for
example:
int (*foo())[] /* a function returning a pointer to an array of ints */

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0092
Compiler Error: identifier-list parameters may be used only in a function
definition
Description
A body is not present for a function that has a non-empty old style identifier-list of
parameters. This error occurs only in C.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int f(i);
int i = 4;
int main()
{
}

How to Fix
Supplying a function body at the appropriate place in the source code fixes the error.
Consequently, however, unless you compile the code with the "-traditional" switch,
the "a parameter declaration may not have an initializer" error will appear.
Therefore, a new style, ANSI compliant function declaration is preferred.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0093

55

Compiler Error: function type may not come from a typedef


Description
A function or a function template has been defined with the function type coming
from a typedef.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
typedef int (foo)(int);
foo g{ return 0; };
void main(){}

How to Fix
You cannot define a function with a typedef type, as this type is used for a function
template. Remove the offending declaration and use a legal function or function
template declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5:w)

cc0094
Compiler Error: the size of an array must be greater than zero
Description
The size of an array cannot be smaller than one.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo(int i){
int (*iap) [10];
iap = new int [i][-10]; /* Error : second dimension of the array
is negative */
iap++;
}
void main(){
int val = 7;
foo(val);
}

How to Fix
Ensure that the size of the offending array is greater than zero.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

56

cc0095
Compiler Error: array is too large
Description
An incomplete array is being initialized with a too high number of initial values.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced with a reasonable size extract from a source file.
How to Fix
Reduce the number of initial values in the offending array to a manageable size.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0096
Compiler Error: a translation unit must contain at least one declaration
Description
The compiler is trying to process a translation unit (source file) that is empty or
contains only preprocessing directives. Note that ppc allows an empty source. This
error occurs only in C in strict ANSI mode, and does not apply to C++.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
A file that is empty or only contains preprocessing directives
How to Fix
Ensure that the source file used contains at least one statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0097
Compiler Error: a function may not return a value of this type
Description
A function returning an illegal value type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

57

Example
This error is intended to cover any illegal return types that may not have been
covered individually. At the present time, all illegal function return types are handled
individually.
How to Fix
Ensure that the value type returned by the offending function is legal.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0098
Compiler Error: an array may not have elements of this type
Description
An array contains illegal element type(s). For example, the constant expression
specifying the bounds of the array is being omitted for a member that is not the first
member of the sequence.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int fun(int a[][]); /* Error: bound of second dimension not
specified */
void main(){}

How to Fix
Replace the offending array element with an element of another (legal) type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0100
Compiler Error: duplicate parameter name
Description
The parameter has already appeared on the list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo( int i, int j, int i );

How to Fix
Ensure that no duplicate parameter names are used in a parameter list.
Related Information

58

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0101
Compiler Error: "xxxx" has already been declared in the current scope
Description
Another member has been declared with the same class name, and:
A name was found in the current scope.
A parameter has already been declared.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo(){
int i;
int i; /* it is illegal to use the same name twice in the scope */
} /* this function */

How to Fix
Use an alternative variable name at the appropriate places in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.3)

cc0102
Compiler Error: forward declaration of enum type is nonstandard
Description
This error is either a vacuous declaration or a reference to an incomplete (not yet
declared) type.
Severity
Fatal error, in strict ANSI mode only
Recovery
The compiler cannot recover from this error.
Example:
enum MyEnumTypes;

How to Fix
Forward declarations are non-standard for enum types. Restructure the source code to
eliminate the need for a forward declaration. Remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.2)

cc0103
59

Compiler Error: class is too large


Description
A class , struct, or union in C is too large.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced with a reasonable size extract from a source file.
How to Fix
Reduce the size of the offending class, struct, or union.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9)

cc0104
Compiler Error: struct or union is too large
Description
The structure referred to is too large.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced with a reasonable size extract from a source file.
How to Fix
Reduce the size of the offending structure.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0105
Compiler Error: invalid size for bit field
Description
The size of the bit field must be non-negative and must not exceed the size of the
underlying type (except for enums) or target maximum bit field size.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct {

60

int i : -1; /* The size cannot be negative. */


int j : 2;
} MyStr;

How to Fix
Ensure that bit field referred to in the error is given a valid size.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.6)

cc0106
Compiler Error: invalid field for a bit field
Description
The type qualifier of the bit field is not an integral type or an enumeration type. The
integral types are char, short, int, and long int since each stores a whole number
integer.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct {
double i : 1; /* double is not an integral type, therefore illegal */
int j : 2;
} MyStr;

How to Fix
Use an integral or an enumeration type for the offending bit field declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.6)

cc0107
Compiler Error: zero-length bit-field must be unnamed
Description
If the bit-field size is zero, it must be unnamed.
Severity
Warning, if Cfront compatibility is specified and bit-fields are allowed to have zero
size
Fatal error, otherwise
Recovery
The compiler cannot recover from this error.
Example
struct {
int i : 0; /* bit-field size is zero, it must be unnamed, */
/* therefore an error */
int j : 2;
} MyStr;

61

How to Fix
Leave the offending zero-sized bit field unnamed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.6)

cc0109
Compiler Error: expression must have (pointer-to-) function type
Description
The operand is not a member of a function type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
void(*)(int);
}

How to Fix
Replace the offending operand with one that is a pointer to a function type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0110
Compiler Error: expected a definition or a tag name
Description
The tag name used to declare a class, struct, or union is a reserved keyword.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
union int{ /* int is a reserved keyword, therefore error */
int i;
} u;

How to Fix
Replace the tag name used for the offending declaration and make sure it is not a
reserved keyword.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.11, 3.1)

62

cc0112
Compiler Error: expected "while"
Description
A while keyword is missing from the source code.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
int i = 0;
do{
i++;
}
while ( i <= 10 ); /* the "while" keyword is missing from the */
/* beginning of the line */
}

How to Fix
Ensure that the while keyword is inserted at the proper location in the source code.
The above code assumes the following form:
int main()
{
int i = 0;
do{
i++;
}
while ( i <= 10 ); /* the "while" keyword is inserted at the */
/* source code location */
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.5.1, 6.5.2)

cc0114
Compiler Error: entity-kind "entity" was referred to but not defined
Description
This error is caused by any of the following conditions:
Reference to an undefined member function that is either extern or inline or
has internal linkage
A non-local inline virtual function that is not defined and referred to
An undefined inline virtual function. When the virtual table for the class is
generated for the class, the function address taken results in a linker error.
Reference to an undefined routine with internal linkage
Reference to an extern or inline function that was not defined. In this case the
Microsoft compiler issues no diagnostic, although the linker may.
An undefined label
Severity

63

Fatal error
Recovery
The compiler cannot recover from this error.
Example
static int statfunc(int);
void
f(){
int i = statfunc(4);
}
int main(){}

How to Fix
Add a definition for the offending undefined entity at the appropriate place in the
source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.1, 8.4)

cc0115
Compiler Error: a continue statement must be in loop
Description
The continue statement has been used outside of an appropriately structured
statement (that is, a loop).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
An example is any situation where the continue statement has been used outside of
a dependent statement or iteration statement.
How to Fix
Ensure that the source code is restructured to accommodate the correct usage of the
continue statement. An example program is:
void main()
{
char ch;
for ( int i = 0; ; ){
cin.get(ch);
if ( ch == '\033' )
continue;
if ( ch == '\n' ){
break;
}
++i;
}
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.6.2)

64

cc0116
Compiler Error: a break statement may be used only within a loop or switch
Description
The switch statement has been used outside of a loop or switch statement.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
An example is any situation where the break statement has been used outside of a
loop or switch statement.

How to Fix
Restructure the source code to accommodate the correct usage of the break
statement. The following code is an example of a correct usage of break within a
switch statement:
void main()
{
int choice;
cout << "Enter 1 or 2\n";
cin >> choice;
switch(choice)
{
case 1:
cout << "You entered 1\n";
break;
case 2:
cout << "You entered 2\n";
break;
default:
cout << "You must enter 1 or 2\n";
}
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.6.1)

cc0117
Compiler Warning: non-void entity-kind "entity" should return a value
Description
A return statement without an expression was used on a function that returns a
value.
Severity
Warning
Recovery
The compiler treats the function as if it returns void, and compilation continues.
Example
int fn(){
return; /* Error : non-void function does not return a value */

65

}
void main(){}

How to Fix
Add an expression to the offending return statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0118
Compiler Error: a void function may not return a value
Description
In C mode, a void function returns a value. In C++ mode, the error is different.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo(){
return 0; /* void function returns an int: error */
}

How to Fix
Change the function to make its type match the return value.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0119
Compiler Error: cast to type "type" is not allowed
Description
Casting to this type is not allowed. The type statement can try to cast to an array
type, a function type, or any other type that is not allowed by the ANSI standard.
Severity
Fatal error
Recovery
The compiler cannot recover from this error
Example
struct A {
int a;
};
int main()
{
int b = 4;
const int Num = (struct A)b; /* this cast is not allowed */
}

How to Fix

66

Ensure that the cast statement is casting to a type allowed by the ANSI standard.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7, 5.2.9, 5.2.10)

cc0120
Compiler Error: return value type does not match the function type
Description
This error applies only in C++ mode when the return value type does not match that
of the function type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo(){
return 0; /* void function returns an int: error */
}

How to Fix
Change the function to ensure that its return value corresponds to its type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.6.3)

cc0121
Compiler Error: a case label may be used only within a switch
Description
A case label has occurred outside of a switch statement.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
An example is any situation where the case label is not within a switch statement.
How to Fix
Restructure the source code to ensure that the case label is enclosed within a switch
statement. The following example shows the correct structure for the switch
statement:
switch (expression) {
case label :
statementlist
case label :
statementlist
...
default :

67

statementlist
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.1)

cc0122
Compiler Error: a default label may be used only within a switch
Description
A default label has occurred outside of a switch statement.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
An example is any situation where the default label is not within a switch statement.
How to Fix
Restructure the source code to enclose the default label within a switch statement.
The following example shows the correct structure for the switch statement:
switch (expression) {
case label :
statementlist
case label :
statementlist
...
default :
statementlist
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.1)

cc0123
Compiler Error: case label value has already appeared in this switch
Description
The value for this case label has already appeared within this switch statement.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
int choice;
cout << "Enter 1 or 2\n";
cin >> choice;
switch(choice)

68

{
case 1:
cout << "You entered 1\n";
break;
case 1: /* This is the second time this case label value */
/* appears. Therefore Error. */
cout << "You entered 2\n";
break;
default:
cout << "You must enter 1 or 2\n";
}
}

How to Fix
Change the offending case label value to make it unique within the switch statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.1, 6.4.2)

cc0124
Compiler Error: default label has already appeared in this switch
Description
A default label has already appeared earlier in this switch statement.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
int choice;
cout << "Enter 1 or 2\n";
cin >> choice;
switch(choice)
{
case 1:
cout << "You entered 1\n";
break;
case 2:
cout << "You entered 2\n";
break;
default:
cout << "You must enter 1 or 2\n";
default: /* Second appearance of the default label within */
/* this switch statement. Therefore Error. */
cout << "Try again\n";
}
}

How to Fix:
Ensure that the offending switch statement contains only one default label.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.1, 6.4.2)

69

cc0125
Compiler Error: expected a " ("
Description
The left (opening) parenthesis of a statement or expression is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo); /* Missing left parenthesis of a function declaration */
int foo(); /* This is correct */

How to Fix
Ensure that a left parenthesis is used at the proper source file location to match the
right one used later in the file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.12)

cc0126
Compiler Error: expression must be an lvalue
Description
An attempt to cast to a reference type failed because the source operand is not a
lvalue.
The error is applicable only when you compile with the -strict or -pedantic
command line options.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
/* This example is only valid when compiling with the -strict or
-pedantic command line option. */
struct B {
int b;
};
struct D : public B {
int d;
D(int i) : d(i) {}
};
void main(){
int i = 0;

70

/*
// error : static_cast<D>(i) is not an lvalue
*/
B &rb = static_cast<B&>(static_cast<D>(i));
/* suppress warnings */
i++;
rb.b++;
}

How to Fix
If T is of reference type in an expression dynamic_cast<T>(v), ensure that v is an
lvalue of a complete class type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0127
Compiler Error: expected a statement
Description
A label definition precedes a right brace (curly bracket).
Severity
Warning, if a label definition precedes a right brace (})
Error, if tokens figure in statements but do not begin them
Recovery
If a warning is indicated, compilation continues.
If an error is indicated, the compiler cannot recover. The error is also likely to cause
other errors.
Example
The following example generates a warning:
void main()
{
int choice;
cout << "Enter 1 or 2\n";
cin >> choice;
switch(choice)
{
case 1:
cout << "You entered 1\n";
break;
case 2:
cout << "You entered 2\n";
break;
default:
} /* a default label precedes the "}" causing the warning */
}

The following example generates an error:


int main()
{
int i = 0;
return 0;

71

while i <= 10 { /* the luck of parenthesis around the condition of */


/* while statement causes the error. */
i++;
}
}

How to Fix
If Warning - Add a statement following the label definition where
the warning occurs.
If Error - Change the code at the appropriate place in the source code
eliminating the error. The Example given above will become:
int main()
{
int i = 0;
return 0;
while ( i <= 10 ) {
i++;
}
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0129
Compiler Error: a block-scope function may have only extern storage class
Description
A static function declaration is within a block.
Severity
Fatal error
Recovery
The compiler cannot recover from this error
Example
class A {
void foo();
};
void A::foo(){
int done = 1;
while (done)
{
static int g(); /* Error: static function declaration in
a block */
done = 0;
}
}
void main(){}

How to Fix
A static function declaration cannot be within a block. Make the offending function
declaration non static or remove the declaration.

72

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0130
Compiler Error: expected a "{"
Description
A left brace (curly bracket) is missing from the source file.
Severity
Fatal error
Recovery
The compiler cannot recover from this error
Example
struct /* a left curly bracket is missing.
int i;
int j;
}A_Struct;

How to Fix
Ensure that a left brace is used at the proper source file location to match the right
one used later in the file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.12)

cc0131
Compiler Error: expression must have pointer-to-class type
Description
An expression that must be a pointer-to-class type is not a pointer-to-class type.
C++ Specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i = 0;
int *ip = &i;
struct S {
int i;
};
void main(){
ip->i = 1; /* Error : ip is not a pointer to class object */
ip++;
}

73

How to Fix
Make the offending expression a pointer-to-class type. For example, if the expression
uses an object that is not a "pointer to class object," use in its place a "pointer to
class object" of a complete type. An alternative is to remove the offending
expression from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0132
Compiler Error: expression must have pointer-to-struct-or-union type
Description
An expression that must be a pointer-to-structure or pointer-to-union type is not a
pointer-to-structure or pointer-to-union type.
This error is C language specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i = 0;
int *ip = &i;
struct S {
int i;
};
void main(){
ip->i = 1; /* Error : ip is not a pointer to structure object */
ip++;
}

How to Fix
Replace the offending expression with an expression that is a pointer-to-structure or
pointer-to-union type. An alternative is to remove the offending expression from the
source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0133
Compiler Error: expected a member name
Description
A member name has not appeared after a dot (.) or pointer (->) operator.
Severity

74

Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
int i;
};
void main()
{
MyClass myclass;
myclass. = 10; /* a member name is missing after the "." operator */
}

How to Fix
Add a member name following the dot (.) or pointer (->) operator in the appropriate
place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.2)

cc0134
Compiler Error: expected a field name
Description
A field name has not appeared after a dot (.) or pointer (->) operator.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct MyStruct
{
unsigned short a : 1;
unsigned short b : 2;
} A_Struct;
int main()
{
A_Struct. = true; /* a field name is missing after the "." operator */
A_Struct.b = false;
}

How to Fix
Add a field name following the dot (.) or pointer (->) operator in the appropriate
place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0135
75

Compiler Error: entity-kind "entity" has no member "xxxx"


Description
The member name referred to does not exist.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
int i;
};
void main()
{
MyClass myclass;
myclass.j = 10; /* "j" is not a member of the class MyClass */
}

How to Fix
In the appropriate place in the source code, replace the offending member name
with an existing one that is a member of the referred to entity.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.2)

cc0136
Compiler Error: entity-kind "entity" has no field "xxxx"
Description
The field name referred to does not exist.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct MyStruct
{
unsigned short a : 1;
unsigned short b : 2;
} A_Struct;
int main()
{
A_Struct.a= true;
A_Struct.c = false; /* "c" is not a field of the struct MyStruct */
}

How to Fix
In the appropriate place in the source code replace the offending field name with an
existing one that is a field of the referred to entity.
Related Information

76

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++"

cc0137
Compiler Error: expression must be a modifiable lvalue
Description
In C and C++, lvalue (location value) is an address used for storage. The error
refers to a statement that is trying to modify an object through a non-modifiable
lvalue.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
const int i = 1;
i = i+1; /* i is an integer constant therefore its value is not */
} /* modifiable */

How to Fix
Replace the offending lvalue with one that is modifiable.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.10)

cc0139
Compiler Error: taking the address of a bit field is not allowed
Description
The program is trying to take the address of a bit field.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct MyStruct
{
int a : 1;
int b : 2;
} A_Struct;
int main()
{
int *bp;
bp = &A_Struct.b; /* attempting to take the address of */
/* the bit field b */
}

How to Fix
The C++ standard states: "The operand of & shall not be a bit-field." Therefore,

77

structure the program to enable the removal of the offending statement.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.1)

cc0140
Compiler Error: too many arguments in function call
Description
The number of arguments provided for a function is greater than the number
indicated by a prototype in scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo( int i, int j){ /* function takes two arguments */
int k = i - j;
return k;
}
int main()
{
int a = foo( 2, 2, 3 ); /* the function call provides three, */
/* causing the error */
}

How to Fix
Ensure that the correct number of arguments are supplied to the function in
question.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.2)

cc0141
Compiler Error: unnamed prototyped parameters are not allowed when body
is present
Description
A new-style (function prototype) exists for which at least one of the parameter
names was omitted in the prototype. In C this omission is not valid on a function
definition. In C++ the omission is allowed (see ARM 8.2.5, 8.3).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( int ){}

How to Fix
Ensure that function prototype parameters are named.
78

The example above could become:


void foo( int i ){}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0142
Compiler Error: expression must have pointer-to-object type
Description
The expression used does not have a pointer-to-object type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int a;
int main()
{
return a[1]; /* Error occurs here */
}

How to Fix
Ensure that the expression used has a pointer-to-object type. The lvalue must be for
a scalar, and if it is a pointer, it must point to an object.
One of the operands must have a pointer-to-object type, and the other one must be
an integral expression. You can make the above example compile by either changing
the declaration "int a;" to "int a[];" or by changing the return statement to "return
a".
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2)

cc0143
Compiler Error: program too large or complicated to compile
Description
The source program too large for compilation.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot normally be reproduced.
How to Fix
Split the large source file into multiple files.
Related Information

79

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++"

cc0144
Compiler Error: a value of type "type" cannot be used to initialize an entity
of type "type"
Description
The program is trying to initialize a variable with a value that is incompatible with
that variable.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
int i = 10;
int *p = i; /* an integer value cannot be assigned to a pointer */
}

How to Fix
Replace the initializing value of the offending variable with one that is compatible
with that variable.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5)

cc0145
Compiler Error: entity-kind "entity" cannot be initialized
Description
This error is generated under the following conditions:
The entity is not a variable (for example, it might be a typedef).
A variable declared __declspec(dllimport) cannot be initialized.
The Block extern variable with internal or external linkage cannot be
initialized.
VLAs cannot be initialized.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
typedef unsigned long ulong = 10;

How to Fix
Remove the offending initialization statement. To initialize the variable in question,
you must declare it as a different type.

80

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5)

cc0146
Compiler Error: too many initializer values
Description
The initializers outnumber the available members in which to put them.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i[3] = { 0, 1, 2, 3 }; /* The array can only have 3 members */

How to Fix
Change the number of the initializers to match the number of available members or
increase the number of the members to match the number of initializers.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5)

cc0147
Compiler Error: declaration is incompatible with entity-kind "entity"
(declared at line xxxx)
Description
The present declaration is incompatible with a preceding one.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
extern int foo;
int foo(int);
int main(){}

How to Fix
Ensure that each entity is declared only once.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.1)

cc0148
Compiler Error: entity-kind "entity" has already been initialized
Description

81

The variable is already initialized, but it is being declared again.


Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i[2] = { 1, 2 };
int i[2] = { 3, 4 };
int main(){}

How to Fix
Take out the offending statement or use a different variable that has not already
been declared and initialized.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5)

cc0149
Compiler Error: a global-scope declaration may not have this storage class
Description
The storage class used is invalid for any variable at file scope (for example, the
storage classes auto and register).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
auto int i;
register int j;
int main(){}

How to Fix
Specify a valid storage class, or do not declare the variable at file scope.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0153
Compiler Error: expression must have class type
Description
The operator used is not allowed in this kind of expression.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

82

class MyClass{
public:
MyClass();
~MyClass();
int begin(){
return 2;
}
};
int main(){
MyClass *Class_1 = new MyClass;
int res = Class_1.begin(); /* "." operator is not allowed here */
}

How to Fix
Replace the offending operator with one appropriate for the expression used. In the
example shown above, the "." operator should be replaced with the "->" operator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.5, 5.2.5,13.5.6)

cc0154
Compiler Error: expression must have struct or union type
Description
The operator used is not allowed in this kind of expression.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct bal{
float balance;
}acc;
int main(){
struct bal *p;
p = &acc;
p.balance; /* "." operator is not allowed here */
}

How to Fix
Replace the offending operator with one appropriate for the expression used. In the
example shown above, the "." operator should be replaced with the "->" operator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0157
Compiler Error: expression must be an integral constant expression
Description
This error is generated under these conditions:
The expression used does not reduce to a value that will be an integer

83

constant once it is cast to an integral type.


The expression written contained either a non-integral value, a reference to
an object, or an operator that cannot be evaluated at compile time.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Replace the offending expression with an integral constant expression.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0158
Compiler Error: expr not an lvalue or function designator
Description
The operator "&" was applied to an entity that is not an lvalue or a function
designator or another permitted case.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
void foo(){
&this; /* Error: expression is an rvalue not an lvalue */
}
};
void main(){}

How to Fix
Remove the "&" operator from the offending expression.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0159
Compiler Error: declaration is incompatible with previous "entity" (declared
at line xxx)
Description
The current declaration is a block extern declaration that conflicts with a previous
file-scope declaration of a function with the name. The return types of the two
functions are incompatible.
The old name is a variable and the new one is a routine or vice-versa. The previous
declaration and the current are not "overload distinguishable."

84

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo();
int main(){
void foo();
}

How to Fix
If the functions have the same name but different return types, either use the same
return types for both functions or use a different name for the second function. If the
old name is a variable and the new one is a routine, use a different name if possible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7)

cc0160
Compiler Error: name conflicts with previously used external name "xxxx"
Description
Two different names mapped to the same external name.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that new name maps to a different (unique) external name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0163
Compiler Error: could not open temporary file "xxxx"
Description
A temporary file could not be opened.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error occurs only when the file system is full.
How to Fix
Ensure that enough space is available in your file system.

85

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0164
Compiler Error: name of directory for temporary files is too long ("xxxx")
Description
The name of the directory containing temporary files is longer than 150 characters.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced under normal circumstances.
How to Fix
Reduce the name length of the directory containing temporary files to under 150
characters.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0165
Compiler Error: too few arguments in function call
Description
The number of arguments used in a function call is less than the number of
parameters that the particular function has.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo( int i, int j ){
return 0;
}
int main(){
int k = 2;
int l = foo( int k );
}

How to Fix
Ensure that number of arguments used to call the function correctly matches the
number of parameters that the function has.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.2)

86

cc0166
Compiler Error: invalid floating constant
Description
No digits of the exponent are present. Note that pcc treats this condition as an
exponent of zero.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
float Num = 3.3E;

How to Fix
Correct the floating number by giving digits to the exponent.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.3)

cc0167
Compiler Error: argument of type "type" is incompatible with parameter of
type "type"
Description
The argument passed back to a function is a type that is not compatible with the
type of the parameter of that function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo( char* Word ){return 0; }
int main()
{
int i = 2;
/* Below trying to pass an int to a function that has a parameter
char* - Error */
int Num = foo( i );
}

How to Fix
Ensure that the types of the argument and parameter are compatible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0168
Compiler Error: a function type is not allowed here

87

Description
A function declaration has been found within a structure, union, or template. This
error applies only for C. Such syntax is permitted in C++.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct MyStruct{
int foo();
};

How to Fix
Remove the offending declaration. Function types are not allowed inside structures,
unions, or templates in C.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0169
Compiler Error: expected a declaration
Description
A declaration is missing. Template parameters are declared, but the declaration is
missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct MyStruct{
}; /* An empty structure declaration, error in C not in C++ */
Another example is:
/* The declaration below has been commented out */
template <class A, int i> /* class TestClass */{
public:
};
int main(){}

How to Fix
Add a declaration statement at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7)

cc0170
Compiler Warning: pointer points outside of underlying object
Description
This pointer points outside of the underlying object.
88

Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
double bvalues = 1;
static double *b = (double *)&bvalues -1;
void main(){}

How to Fix
Ensure that offending pointer points within the underlying object.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0171
Compiler Error: invalid type conversion
Description
An expression causes an invalid type conversion such as "float to pointer" or "bit to
pointer."
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main()
{
float f = 3;
int i = 10;
int *pInt = (int*)f;
}

How to Fix
If the attempted conversion is illegal, fixing it is not possible. Take out the offending
statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.9)

cc0172
Compiler Error: external/internal linkage conflict with previous declaration
Description
This diagnostic appears in the following set of circumstances (it does not apply in ppc
mode):
A specific declaration of function template instance for which a specific
definition has not been seen. The storage class of this declaration does not

89

agree with the storage class of the template.


A variable or routine is being declared again. The old and new linkages
conflict.
A conflict exists between a prior declaration and the current one.
A new variable entry has been created, yet the external symbol already refers
to a different variable.
Linkage inconsistency exists only on nonmember function templates.
The template was not static but the new declaration is.
Severity
Warning, if you are using the -pedantic option
Error, if you are using the -strict option
Recovery
If the old and new linkages conflict, they and the storage classes are updated
appropriately.
Example
extern int f();
static int f();
/* Another example ... */
int foo() { extern int i; return i; }
static int i = 0;
int main(){}

How to Fix
The above examples cause undefined behavior according to the standard.
Restructure the source code to enable the above cases to become ANSI compliant.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1, 7.1.2)

cc0174
Compiler Error: expression has no effect
Description
The compiler has encountered an expression that has no effect.
Severity
Remark, displayed only if the source code is compiled with the -Wremarks option.
Recovery
The compiler ignores the offending statement, and compilation continues.
Example
int main()
{
0;
}

How to Fix
Delete the offending expression or edit it to ensure that it adheres to the ANSI
standard.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

90

ISO/IEC 14882:1998 "Programming Languages - C++" (Expressions that do not


invoke any effect are mentioned throughout the ANSI standard.)

cc0180
Compiler Error: argument is incompatible with formal parameter
Description
In an old style function declaration, the type of the argument passed back to a
function is not compatible with the type of the parameter of that function. Three
possible scenarios are:
The types are interchangeable but not compatible (for example, unsigned int
vs. int).
An uncast zero is being passed for a pointer parameter. This scenario is
possible if the architecture uses all zero bits for a NULL pointer.
The types are incompatible.
Severity
Remark, if either of the first two scenarios above
Warning, if the types are incompatible
Recovery
After the warning, compilation continues.
Example
int foo(i)
int i;
{
return i + 0;
}
int main()
{
double arg = 2;
int res = foo(arg);
}

How to Fix
Ensure that all arguments passed back to the function are compatible with its formal
parameters.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0181
Compiler Error: argument is incompatible with corresponding format string
conversion
Description
The argument of a printf statement is incompatible with the corresponding format
string conversion. Two possible scenarios are:
The types are not exactly the same, but they are interchangeable.
The argument type does not match the required type.
Severity

91

Remark, if the first scenario above


Warning, if the second scenario above
Recovery
After the warning, compilation continues.
Example
#pragma __printf_args
int printf(const char*,...);
int main()
{
double Num = 3.0;
printf("%d\n", Num);
}

How to Fix
Ensure that all the arguments of the offending printf statement are compatible with
their corresponding format string conversions.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (22.2.2.2.2)
Also see your compiler documentation.

cc0182
Compiler Error: could not open source file "xxxx" (no directories in search
list)
Description
No search path is specified, so the file cannot be found. Possibly no -I options are on
the command line.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
Compile the file below with the -no-std-inc option on:
#include<fiction.h> /* file "fiction.h" does not exist */
int main(){}

How to Fix
Ensure that the source file that the program is trying to open actually exists. Also, if
the -I option is used, ensure that the correct location of the directory containing the
file has been specified.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.1)

cc0183
Compiler Error: type of cast must be integral
Description

92

The program is casting to a non-integral type in an integral constant expression.


Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the type of cast is integral.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0184
Compiler Error: type of cast must be arithmetic or pointer
Description
Casting was to a non-scalar type in an initializer expression.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending casting expression from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0189
Compiler Error: error while writing xxxx file
Description
An error occurred in writing the output file, the preprocessing output file, or the raw
listing file. One reason for the error could be a full disk.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error depends on the compilation environment. Usually, the error cannot be
reproduced under normal circumstances.
How to Fix
Ensure that the disc has enough space left.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

93

cc0193
Compiler Error: zero used for undefined preprocessing identifier
Description
A preprocessing identifier that is not a macro and not a keyword has been
encountered.
Severity
Remark, only when the -Wremarks option is used
Recovery
The identifier is replaced with the value 0L, and compilation continues.
Example
#if anything_at_all
#define xyz
#endif
int main(){}

How to Fix
Replace the offending identifier with a valid one, or remove it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16, 16.1)

cc0194
Compiler Error: expected an asm string
Description
The code following an asm is not an assembly code instruction.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
asm (void);
int main(){}

How to Fix
Ensure that the code following the asm keyword represents an assembly code
instruction.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.4)

cc0219
Compiler Error: error while deleting file "xxxx"
Description
An error occurred while you tried to delete a file. This error is usually issued when
you try to delete a file that is currently open.

94

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot normally be reproduced with a specific extract from a source file.
How to Fix
Ensure that the offending file is closed before trying to delete it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0220
Compiler Error: integral value does not fit in the required floating-point type
Description
An Integral point value is too big to fit in the required floating-point type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Replace the floating-point type used with a
floating-point type big enough to hold the required integral type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0223
Compiler Error: function declared implicitly
Description
This diagnostic is applicable only to C and not C++. The compiler called a function
that was not previously declared.
Severity
Remark
Recovery
The compiler assumes that the function returns an int.
Example
int main(){
foo();
}
foo(){}

How to Fix
Ensure that a function declaration exists for the offending function.

95

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0235
Compiler Error: variable "xxxx" was declared with a never-completed type
Description
The compiler has encountered a file storage variable that defines storage an has an
incomplete type. This error applies only to C. A different error is generated for C++,
as ANSI C++ does not allow incomplete types.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct Not_Complete v;
int main(){}

How to Fix
Ensure that the type of the offending variable is completed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0236
Compiler Error: controlling expression is constant
Description
A controlling expression that is constant has been encountered.
Severity
Warning, if this error applies to a test result of a constant address or if you are
linking
Remark, in all other cases
Recovery
Compilation continues after the warning or remark.
Example
int main()
{
while(2){
;
}
}

How to Fix
Do not use controlling expressions that are constants. Make changes at the
appropriate place(s) in the source to prevent the occurrence of the above situation.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

96

ISO/IEC 14882:1998 "Programming Languages - C++" (5)

cc0237
Compiler Error: selector expression is constant
Description
The selector expression of a switch statement is constant.
Severity
Remark, only when the -Wremarks option is used
Recovery
After the remark, compilation continues.
Example
void main(){
switch(1)
{
case 1:
;
default:
;
}
}

How to Fix
Change the selector expression of the offending switch statement to a non-constant
expression.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4.2)

cc0238
Compiler Error: invalid specifier on a parameter
Description
One of the following specifiers has appeared in a function parameter specification:
friend, virtual, inline, or explicit. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( inline int i );
void main(){}

How to Fix
Remove the offending specifier and ensure that none of the specifiers listed above
are used in a function parameter specification.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.4, 8.3.5)

97

cc0239
Compiler Error: invalid specifier outside a class declaration
Description
A friend declaration is in a nonclass scope. The friend specifier appears outside a
C++ class, union, or struct declaration. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
MyClass();
};
friend MyClass foo();
int main(){}

How to Fix
Remove the offending declaration and ensure that friend declarations do not appear
outside of classes, unions or structures.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.4)

cc0240
Compiler Error: duplicate specifier in declaration
Description
The compiler has encountered one of the following scenarios:
More than one friend, inline, or virtual specifier at one time
A long long, when it is not allowed
A short short
Either a signed signed or unsigned unsigned
A specifier indicating an asm function declaration, which is inconsistent with an
explicit storage class declaration or inline
This error is C++ specific.
Severity
Fatal error, in all the cases above except case 2 (long long)
Warning, if long long
Recovery
If a fatal error is indicated, the compiler cannot recover.
If a warning about long long is indicated, the compilers treats long long as long and
compilation continues.
Example
class MyClass

98

{
public:
MyClass();
friend friend MyClass foo(); /* more than one "friend", Error */
};
int main(){
short short Num; /* "short short", Error */
signed signed int Num1; /* "signed signed", Error */
}

How to Fix
In case 1, remove the extra specifier and ensure that duplication of the friend,
inline, or virtual specifier does not appear anywhere in source code.
In case 2, remove the extra long specifier.
In cases 3 and 4, remove the extra short, signed, or unsigned specifiers.
In case 5, ensure that the inconsistency described above does not occur.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7)

cc0241
Compiler Error: a union is not allowed to have a base class
Description
The compiler has encountered a union with a base class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error. The compiler continues, however, and
scans the base class specifiers (without updating the type supplement). This error is
C++ specific.
Example
class MyBaseClass
{
public:
};
union MyUnion : public MyBaseClass /* base class not allowed, Error */
{
int i;
} One;
int main(){}

How to Fix
Unions cannot have base classes. Therefore, you can use another class instead of a
union if inheritance is desirable. If you do not need inheritance, remove it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.5)

cc0242

99

Compiler Error: multiple access control specifiers are not allowed


Description
The compiler has encountered a multiple usage of one of the three access control
specifiers: public, private, or protected. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyBaseClass
{
public:
};
class MyClass : public public MyBaseClass /* multiple usage of the */
{ /* "public" specifier - Error */
public:
};
int main(){}

How to Fix
Remove the extra public class specifier at the appropriate place in the source code,
and leave only one public class specifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.2, 11.3)

cc0243
Compiler Error: class or struct definition is missing
Description
The definition of a derived class or structure is missing. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyBaseClass
{
public:
};
class DerivedClass : public MyBaseClass
;
int main(){}

How to Fix
Add a definition for the offending class or structure at the appropriate place in the
source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10)

100

cc0244
Compiler Error: qualified name is not a member of class "type" or its base
classes
Description
A qualified name is not a member of a particular class or any of its base classes.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int smem;
};
S s;
void main ()
{
int i;
i = s.S::smem; // ok
struct S {
int smem;
S () : smem(0) {}
};
s.S::smem = i; /* Error: S declared in the context of 's' is not the
same as S in ::S */

How to Fix
If the qualified name is not a member of the class or any of its base classes and is
appearing in an expression or a statement indicating so, that expression or
statement is meaningless. Remove the expression or statement in which the
qualified name is appearing.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0245
Compiler Error: a nonstatic data member may not be defined outside its
class
Description
A nonstatic member function is used where it is not available (for example, outside a
member function. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

101

Example
class MyClass
{
MyClass();
~MyClass();
public:
int Num;
};
MyClass::MyClass()
{
// MyClass::Num = 0; /* initialization would be ok here */
}
int main(){
MyClass::Num = 0; /* cannot initialize here, Error */
}

How to Fix
Do not use nonstatic members outside a member function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5)

cc0246
Compiler Error: a nonstatic data member may not be defined outside its
class
Description
The compiler has encountered a member definition being performed outside of that
member's class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
int Num;
};
int MyClass::Num = 0;
int main(){
}

How to Fix
Nonstatic members cannot be initialized outside of their respective classes.
Therefore, remove the offending initialization and initialize the member inside that
member's class.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.2)

cc0247
102

Compiler Error: entity-kind "entity" has already been defined


Description
The compiler has encountered a redefinition of an entity (for example, a class, an
extern "C" function, a variable, an alias, a label, or a class template).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace N { extern "C" void f() { } }
namespace M { extern "C" void f() { } }
int main(){}

How to Fix
Remove the offending redefinitions. You can define an entity only once.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.2)

cc0248
Compiler Error: pointer to reference is not allowed
Description
The compiler has encountered a pointer to a reference or a type "pointer to reference
to anything".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int& *pi; /* pointer to reference is not allowed, error */
int main(){
}

How to Fix
A pointer to a reference is illegal. Restructure the source code to ensure that the
offending statement can become redundant and can be removed.
You can declare a pointer to a data type and then declare a variable and assign its
address to the pointer. For example:
int* p; /* declares a pointer to an int - p */
int Num = 1; /* declares an int variable Num */
*p = &Num; /* assigns the address of Num to the pointer *p */

The following example shows a reference to an int variable:


int Num = 1; /* declaring the variable Num and assigning 1 to it */
int& NumRef = Num; /* declaring Numref as a reference to the int
variable Num */

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.1, 8.3.2)
103

cc0249
Compiler Error: reference to reference is not allowed
Description
The compiler has encountered a reference to a reference or to a type "reference to
reference".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int& &r;
int main(){}

How to Fix
A reference to a reference is illegal. Restructure the source code to ensure that the
offending statement can become redundant and can be removed. You can also
declare a variable and then create a reference to that variable, for example:
int i = 2;
int& ir = i; /* ir now references i */

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.2)

cc0250
Compiler Error: reference to void is not allowed
Description
The compiler has encountered a reference to void or type "reference to void".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void& r;
int main(){}

How to Fix
Reference to void is illegal. Restructure the source code so that the offending
statement is redundant and can be removed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.2)

cc0251
Compiler Error: array of reference is not allowed
Description
An array containing references was encountered.

104

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int& i[3];
int main(){}

How to Fix
Array of references is illegal. Remove the offending declaration statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.2)

cc0252
Compiler Error: reference entity-kind "entity" requires an initializer
Description
A non-extern reference variable has not been initialized.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main(){
int Num = 1;
int& Numref; /* reference variable "Numref" not
initialized, Error */
}

How to Fix
Initialize the offending variable at the appropriate place in the source code. The
reference variable "Numref" from the example above could be initialized as:
int& Numref = Num;

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.2)

cc0253
Compiler Error: expected a ","
Description
The compiler expected the next token to be comma (,). This occurs in cases such as
when a comma does not precede an ellipsis in C. It is optional in C++, when a
comma is omitted between the end of one type specifier and the beginning of the
next. Also possible, but case, is when a template-id appears where a declarator was
expected.
Severity
Fatal error

105

Recovery
The compiler cannot recover from this error.
Example
void foo( int ... );
/* Comma missing before ellipses, error in C only.
It is accepted in C++ */
void main(){}

How to Fix
Insert the missing comma at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.18)

cc0254
Compiler Error: Type name is not allowed
Description
A type name is not allowed in the current expression or statement.
This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
class B {
public:
int j;
B(int i) : j(i) {}
~B() {}
};
};
void main(){
A a;
a.A::B(1); /* Error: constructor name must match the class name */
}

How to Fix
Remove the expression or statement in which the offending type name appears, or
use a different (allowed) type name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0255
106

Compiler Error: Type definition is not allowed


Description
Remove the expression or statement in which the offending type name appears, or
use a different (allowed) type name.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main(){
const_cast< class X { int x; } >(0); /* Error : cannot define X
here */
}

How to Fix
Remove the offending type definition from the source code and replace it, if possible,
with a definition that is allowed in the current context.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0256
Compiler Error: invalid re-declaration of type name "entity" (declared at line
xxxx)
Description
The compiler encountered a type name that was already declared in the current
scope and name space. Note that in C++ it is legal to define a tag name and a nontag name in the same scope (7.1.3 xxxx). In pcc mode, a variable is allowed to hide
a function parameter. Also, typedef names can be re-declared as long as the
underlying type is the same.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {};
class A {}; /* already declared in the current scope,
Error */
void main(){}

How to Fix
Re-declaring a type name in the same scope is illegal in C/C++, except in the
circumstances mentioned above. Replace the offending type name with a new type
name that was not used previously in the current scope.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.3)

107

cc0257
Compiler Error: const entity-kind "entity" requires an initializer
Description
A constant variable was not initialized.
Severity
Warning in C mode if the variable is local
Fatal error in C++ mode on all uninitialized constant variables
Recovery
If a warning is indicated, the compilation continues.
If a fatal error is indicated, the compiler cannot recover.
Example
const int j; /* constant not initialized, no diagnostic in C,
Fatal Error in C++ */
int main(){
const int i; /* constant name not initialized, Warning in C,
Fatal Error in C++ */
}

How to Fix
Initialize the offending variable at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.6.2)

cc0258
Compiler Error: "this" may only be used inside a non-static member function
Description
The "this" pointer was used outside of a non-static member function. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main(){
this; /* erroneous usage of the "this" pointer, Error */
}

How to Fix
Ensure that the "this" pointer is only used inside non-static member functions.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.3.2)

cc0259
Compiler Error: constant value is not known

108

Description
The variable encountered is const but its value is not known at compile time. This
error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
static const int i;
char a[i]; /* Error: initializer for 'i' was not specified in its
declaration above, so it cannot be used in the current
integral constant expression */
};
void main(){}

How to Fix
Initialize the offending variable at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.19)

cc0261
Compiler Error: access control not specified ("xxxx" by default)
Description
The explicit access specifier for this entity was not provided. C++ specific.
Severity
Remark, only displayed with the -Wremarks option on
Recovery
The missing access specifier defaults to "private" for classes and "public" structures
and unions.
Example
class A {};
class B : A{}; /* the access control specifier is missing */
main(){}

How to Fix
Add the missing access control specifier at the appropriate place in the source code.
For example, the above would become:
class A {};
class B : public A{}; /* added access control specifier */
main(){}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10)

109

cc0262
Compiler Error: not a class or struct name
Description
The compiler was expecting a valid class or structure name. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class B : public A /* "A" is not a class or struct name */
{};
int main(){}

How to Fix
Replace the offending name at the appropriate place in the source code with one that
is at represents a class or a structure.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10)

cc0263
Compiler Error: duplicate base class name
Description
There is already a base class entry in the list that represents the same class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{};
class B : public A, public A{};
int main(){}

How to Fix
Remove the offending base class name. There cannot be two identical base class
names in a single derived class declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.1)

cc0264
Compiler Error: invalid base class
Description
The base class encountered is not a valid base class.
Severity

110

Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A : public A{}; /* Class A" cannot be the base
of itself */
int main(){}

How to Fix
Specify a previously defined class as a base.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10)

cc0265
Compiler Error: entity-kind "entity" is inaccessible
Description
The specified symbol (either the explicitly declared symbol or a member of the
overload set the symbol refers to) is inaccessible.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
private:
int Num;
};
int main(){
A::Num = 0; /* Num is private to class A, it cannot
be accessed from main, Error */
}

How to Fix
Ensure that the symbol can be accessed. If it cannot, remove the statement that
attempts to access that symbol.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.3)

cc0266
Compiler Error: "entity" is ambiguous
Description
The symbol encountered by the compiler is ambiguous. Symbols can be ambiguous
either as a result of "using" directives or as a result of inheritance. This is C++
specific.
Severity

111

Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
int a;
};
class B : public A{};
class C : public A{};
class D : public B, public C {};
void f(D* pd)
{
pd->a++; /* statement is ambiguous as class A
is public to Class B and Class C,
and Classes B and C are public
to class D. Ambiguity through inheritance. */
}

How to Fix
Edit the source to remove the ambiguity so the offending statement can be resolved.
Alternatively, remove the ambitious statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.2)

cc0268
Compiler Error: declaration may not appear after executable statement in
block
Description
The compiler has encountered a declaration statement that appears after an
executable statement in the same block. In C all declaration statements must be at
the beginning of the block. C specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
int i = 1;
int j = 2;
int k;
k = i + j;
int l; /* declaration appearing after an executable
statement in block, Error in C */
}

How to Fix
Move the offending declaration to the beginning of the block, before executable
statements.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

112

ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0269
Compiler Error: implicit conversion to inaccessible base class "type" is not
allowed
Description
The base class is inaccessible. The base class is a virtual base of the derived class, or
there is a virtual step on the derivation path, or the base class has private access.
Severity
Error, non-discretionary
Recovery
The compiler issues the error only once and continues.
Example
class A
{};
class B : private A
{};
int main(){
A A_1;
B B_1;
A_1 = B_1;
}

How to Fix
Ensure that the base class is accessible from the current class.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.2)

cc0274
Compiler Error: improperly terminated macro invocation
Description
The compiler has encountered a Macro invocation that was not properly terminated.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the offending macro invocation is properly terminated.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.3.5)

cc0276
113

Compiler Error: name followed by "::" must be a class or namespace name


Description
The identifier followed by a "::" was not a class symbol.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class Base
{
public:
int Num;
};
class Derived : public Base
{
NoBase::Num;
};
int main(){}

How to Fix
Replace the offending symbol preceding the "::" with one that is a class symbol.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.3)

cc0277
Compiler Error: invalid friend declaration
Description
The compiler encountered an invalid friend declaration. This could be a misplaced
friend declaration, a friend function that was declared virtual, or any other improper
usage or the friend keyword.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
typedef const struct A TA;
class B { friend TA; };
int main(){}

How to Fix
Ensure that the "friend" specifier is used only in declarations of friend functions or
classes for the purposes of specifying access class members.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.4)

114

cc0278
Compiler Error: a constructor or destructor may not return a value
Description
The compiler has encountered a constructor or destructor function definition that
returns a value.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
MyClass(){ return 0 } /* constructor returning
a value, Error */
~MyClass();
};
int main(){}

How to Fix
Remove the offending statement. Constructors and destructors cannot return a
value.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.1/p5, 12.4)

cc0279
Compiler Error: invalid destructor declaration
Description
A destructor declaration is outside of a class, or the name of the destructor is not the
same as the name of the class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
MyClass();
~Not_MyClass(); /* destructor name not the name
of the Class, Error */
};
int main(){}

How to Fix
Ensure that the offending destructor declaration is placed inside its class and that the
name of destructor is identical to the name of its class.
Related Information

115

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (12.4)

cc0280
Compiler Error: declaration of a member with the same name as its class
Description
An identifier that is not a constructor and that has the same name as a class is being
declared within the class, or a using-declaration introduces a name that is the same
as the current class name.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
MyClass();
~MyClass();
private:
int MyClass; /* this is an error */
class My_Nested_Class{
public:
char MyClass; /* this is correct */
};
};
int main(){}

How to Fix
Change the name of the offending identifier or using-declaration to one that is
different from the name of its class.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.2)

cc0281
Compiler Error: global-scope qualifier (leading "::") is not allowed
Description
The compiler has encountered an unexpected global-scope qualifier. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( int ::a, int b ){}
int main(){}

How to Fix

116

Restructure the source, allowing for the removal of the offending global-scope
qualifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.3)

cc0282
Compiler Error: the global scope has no "xxxx"
Description
No such variable is directly declared at file scope. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main(){
int A;
::A = 0; /* no such variable declared at file scope,
Error */
}

How to Fix
Ensure that the referenced global variable is declared at global scope. It is a name
whose declaration is visible in global scope because of a using-directive.
Alternatively, remove the offending statement that is attempting to access a nonexistent global variable.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.3)

cc0283
Compiler Error: qualified name is not allowed
Description
The qualified name cannot be seen from the current scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
static int Num;
};
int main(){
int A::Num = 0; /* A class-qualified name is not
allowed here. Error */

117

How to Fix
Move the statement containing the offending qualified name to an appropriate place
in the source where it can be seen.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.3)

cc0284
Compiler Error: NULL reference is not allowed
Description
Initializing a reference to NULL, not allowed. C++ specific.
Severity
Warning, in normal mode
Fatal error, in strict/pedantic mode
Recovery
If a warning is indicated, compilation continues.
If a fatal error is indicated, the compiler cannot recover.
Example
int main(){
int &p = *(int *)0;
}

How to Fix
At the appropriate place in the source code, change the initialization of the offending
reference to refer to a valid object or function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.2)

cc0285
Compiler Error: initialization with "{...}" is not allowed for object of type
"type"
Description
An attempt to do C-style aggregate initialization on a class object for which there is a
constructor, nonpublic members, base classes, virtual functions. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class Y {
public:
int i;
};

118

class X : public Y{
public:
int num;
};
X obj = { 5, 6 };
int main(){}

How to Fix
Use a constructor to initialize the class object for cases such as described above.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5.1)

cc0286
Compiler Error: base class "type" is ambiguous
Description
The base class is ambiguous. The condition occurs when there a direct non-virtual
base class with the same name as an indirect base class. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A {
int a;
};
struct B: virtual public A { };
struct C: public B { };
struct D: public B { };
struct E: public C, public D { };
void foo() {
E e;
e.B::a = 0; /* base class B is ambiguous */
}
int main(){}

How to Fix
Ambiguities can often be resolved by qualifying a name with its class name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.2)

cc0287
Compiler Error: derived class "type" contains more than one instance of
class "type"
Description
The derived class is ambiguous. This condition occurs when there are two direct nonvirtual classes with the same name. C++ specific.

119

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
int num;
};
class B : public A{};
class C : public A{};
class D : public B, public C{};
int D::*pmd = &A :: num;
int main(){}

How to Fix
Since the derived class contains more than one instance of the base class, it is not
possible to determine which of the two instances the offending statement is trying
access. Remove the statement.
Resolve the ambiguity by qualifying a name with its class name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.2)

cc0288
Compiler Error: cannot convert pointer to base class "type" to pointer to
derived class "type" -- base class is virtual
Description
A conversion from a pointer to base class to a pointer to derived class failed because
the base class is a virtual base of the derived class, or a virtual step is on the
derivation path.
This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct VA {};
struct B : virtual VA {};
void main(){
B b;
VA *pva = &b;
B *pb = static_cast<B*>(pva); /* Error: VA is a virtual base of B */
}

120

How to Fix
You cannot convert a pointer to base class to a pointer to derived class when the
base class is virtual or a virtual step is on the derived path. Either make the base
class (and any other classes on the derivation path) non-virtual or remove the
offending conversion statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0289
Compiler Error: no instance of constructor "entity" matches the argument
list
Description
The arguments passed back by the constructer function call do not match any
constructer argument list. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
A( int, double ){}
};
A obj(5);
int main(){}

How to Fix
Ensure that there is a match between the argument lists of the function call and the
copy constructor.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.8)

cc0290
Compiler Error: copy constructor for class "type" is ambiguous
Description
The compiler has found more than one applicable copy constructor. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class X {
public:

121

X(int){}
X(const X&, int = 1){}
X(const X&, char = 1){}
};
X a(1);
X b(a, 0);
X c = b;
int main(){}

How to Fix
Remove the offending statement and replace it with one that does not contain
ambiguity.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.8)

cc0291
Compiler Error: no default constructor exists for class "type"
Description
The compiler has found that a particular class contains copy constructor(s), but not a
default constructor. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class X {
public:
X(int){}
};
X default_obj;
int main(){}

How to Fix
At the appropriate place in the source code, add a default constructor for the class.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.1)

cc0292
Compiler Error: "xxxx" is not a non-static data member or base class of
class "type"
Description
The class for which a constructor has been defined has no such non-static data
member or base class. C++ specific.
Severity

122

Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
MyClass();
protected:
int length;
};
MyClass::MyClass() : width(){} /* class MyClass has not such
non-static data member
of base class, Error */
int main(){}

How to Fix
Ensure that all names used in the class constructor definition are non-static data
members or base classes of that class. This error may be due to a spelling mistake.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.1)

cc0293
Compiler Error: indirect non-virtual base class is not allowed
Description
The class for which a constructor is being defined has an indirect non-virtual base
class. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A {
A();
};
struct B1 : A {};
struct B2 : A {};
struct C : B1, B2 {
C() : A() {} /* Error : indirect non-virtual base class A */
};
void main(){}

How to Fix
Make the offending indirect non-virtual base class virtual.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

123

cc0294
Compiler Error: invalid union member -- class "type" has a disallowed
member function
Description
The particular union member is not valid. A union member's (underlying) cannot be a
class with a nontrivial constructor or destructor.
If the constructor or destructor pointer is non-NULL, even if one is generated by the
compiler, it will be nontrivial.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
A(){}
void point(){}
};
union myUnion
{
A point;
};
int main(){}

How to Fix
Locate where the member function that is an invalid union member occurs and
remove the class constructor and destructor.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.5)

cc0296
Compiler Error: invalid use of non-lvalue array
Description
An operand is an array rvalue in C mode. The code refers to a non-lvalue array but
the context requires an lvalue array.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Change the source code to refer to an lvalue array.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (4.2)

124

cc0297
Compiler Error: expected an operator
Description
The compiler expected an to find an operator at this point in the source code. This
error can occur in cases where an operator is overloaded using a member function
and the operator used is not a valid operator.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
operator B(); /* error occurs here, "B" is not
a valid operator */
};
int main(){}

How to Fix
Insert an operator at the place in the source where the compiler expected to find it.
Ensure that it is a valid operator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5)

cc0299
Compiler Error: cannot determine which instance of entity-kind "entity" is
intended
Description
The compiler could not determine which overloaded function was intended because
the call to the function was ambiguous.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int foo(){
return 2;
}
int foo(int i){
return i+1;
}
void func(){
int i = 0;
do

125

i += 10;
while(foo); /* Error : foo is ambiguous in this context */
}
void main(){}

How to Fix
Ensure that the function call to the intended overloaded function uniquely identifies
the function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0300
Compiler Error: a pointer to a bound function may only be used to call the
function
Description
A pointer to a bound function was used in a capacity other than that of calling the
function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A {
void foo(int,double);
};
struct B : A {};
void main(){
B b;
void (A::*pfoo)(int,double) = &(b.A::foo); /* Error: b.A::foo is not
an lvalue */
(b.*pfoo)(1,1);
}

How to Fix
Use a pointer to a bound function only as function call without any other operation.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0302
Compiler Error: entity-kind "entity" has already been defined
Description
Trying to define a member function that has already been defined. This error is C++
specific.

126

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
void foo(){}
};
void A::foo(){} /* attempted redefinition, Error */
void main(){}

How to Fix
Remove the offending member function redefinition.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.2)

cc0304
Compiler Error: no instance of entity-kind "entity" matches the argument
list
Description
None of the overloaded functions matches the argument list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo(){}
void foo(int){}
void main(){
foo(3, 3);
}

How to Fix
Ensure that the argument list of the offending function call matches the argument list
of one of the overloaded functions declarations.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.3)

cc0305
Compiler Error: type definition is not allowed in function return type
declaration
Description
In a function declaration or a pointer-to-function declaration, the return type

127

involves a definition.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S { int x; } foo(int); /* Error: A type cannot be defined in
a function return type */
void main(){}

How to Fix
Type definitions in function return types are prohibited by the standard. Remove the
offending type definition.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0306
Compiler Error: default argument not at end of parameter list
Description
In a function declaration parameter list the current parameter has a default
argument but its successor does not.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( int i = 2, int );
void main(){}

How to Fix
The default argument in a function definition cannot be followed by arguments that
are not default arguments. Restructure the source code, moving default arguments
to the end of the parameter list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.6)

cc0307
Compiler Error: re-definition of default argument
Description
The default argument of a function has been redefined.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
128

Example
void foo( int i = 2 );
void main(){}
void foo( int i = 3 ){}

How to Fix
A default argument cannot be redefined later by a declaration, not even to the same
value. Remove the offending default argument re-definition.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.6)

cc0308
Compiler Error: more than one instance of entity-kind "entity" matches the
argument list
Description
In an overloaded function call there is more than one function declaration that
potentially matches the argument list of the function call. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( double );
void foo( long );
void main(){
foo(1);
}

How to Fix
Ensure that the parameter list of each overloaded function declaration is unique.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.3.3)

cc0309
Compiler Error: more than one instance of constructor "entity" matches the
argument list
Description
In an overloaded constructor function call there is more than constructor function
declaration that matches the argument list of the function call. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

129

Example
class MyClass
{
public:
MyClass(){}
MyClass( double ){}
MyClass( long ){}
};
int main(){
MyClass *NewClass = new MyClass(1);
}

How to Fix
Ensure that the parameter list of each overloaded constructor function declaration is
unique.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.3.3)

cc0310
Compiler Error: default argument of type "type" is incompatible with
parameter of type " type"
Description
A function default argument is incompatible with its parameter type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( int i = "a" ){}
void main(){}

How to Fix
Ensure that the default argument is compatible with the parameter type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.6)

cc0311
Compiler Error: cannot overload functions distinguished by return type
alone
Description
A function was overloaded on the basis of a difference in the return type only. C++
specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
130

Example
int foo();
double foo();
int main(){
foo();
}

How to Fix
The standard states that functions that differ in the return type only cannot be
overloaded. If another difference (parameter type, of function parameters, and so
on.) between the overloaded functions cannot be found, do not use overloading.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.1)

cc0312
Compiler Error: no suitable user-defined conversion from "type" to "type"
exists
Description
The source and destination types are different classes and after considering both
constructors and conversion functions, no suitable user-defined conversion function
was found.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
A(){}
A(int){}
};
class B
{
public:
B(){}
B(char*){}
};
int main(){
A *a = new A(1);
B *b = new B("bclass");
*a = *b;
}

How to Fix
Ensure that a suitable user-defined conversion function, allowing conversion from the
source type to the destination type, exists at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3)

131

cc0313
Compiler Error: type qualifier is not allowed on this function
Description
A type qualifier (constant or volatile) was present in a declaration of a function that
was not a member function or was a static member function. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int f(int) const;
int main(){}

How to Fix
A qualifier on this type of function is not allowed according to the standard.
Restructure the source code, allowing for the removal of the offending type qualifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5, 9.4.1)

cc0314
Compiler Error: only non-static member functions may be virtual
Description
A static member function was specified as virtual. The error also occurs when a static
member function "re-declares" a virtual non-static member function from a base
class. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
static virtual int foo();
};
int main(){}

How to Fix
Only non-static member functions can be specified as virtual. This rule also applies to
the new and delete operators, since they are always static.
Declare the offending function as non-static virtual or static non-virtual.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.3.1, 9.4.1)

132

cc0315
Compiler Error: the object has type qualifiers that are not compatible with
the member function
Description
A qualified member function was called on an object expression when the object
expression was more qualified than the member function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A {
int i;
A() : i(1) {}
void foo() { i++; }
};
volatile A a;
int main(){
a.foo(); /* Error: object-expression is more qualified than
member function */
}

How to Fix
Ensure that the object expression on which the member function was called is
equally or less qualified than the member function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0316
Compiler Error: program too large to compile (too many virtual functions)
Description
The number of virtual functions in a class exceeds the maximum number allowed by
this compiler.
Severity
Error, non-discretionary
Recovery
The counter representing the number of virtual functions in a class is reset to zero
and compilation continues.
Example
This error cannot normally be reproduced.
How to Fix
Reduce the number of virtual functions in the class where the error occurs.

133

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0317
Compiler Error: return type is not identical to nor covariant with return type
"type of overridden virtual function entity-kind "entity"
Description
The return type of a function that overrides a virtual function is not identical or
covariant with the return type of the overridden function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {};
class B : private A{};
class C {
virtual A* foo();
};
class D : public C {
B* foo(); /* Error: A (base class of B)
is inaccessible */
};
int main(){}

How to Fix
Ensure that the return type of the overriding function is identical or covariant to that
of the overridden function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.3)

cc0318
Compiler Error: override of virtual entity-kind "entity" is ambiguous
Description
This error occurs when more than one function attempts to override a virtual
function in the same class scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class V{
public:
virtual void foo() {};
};
class A : virtual public V{

134

void
};
class
void
};
class

foo() {};
B : virtual public V{
foo() {};
D : public B, public A {}; /* Error, ambiguous */

void main (){


D d;
V* vptr = &d;
vptr->foo(); /* not clear whether
A::foo() or B::foo() */
}

How to Fix
Ensure that only one function within a class scope has the ability to override a
particular virtual function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.3)

cc0319
Compiler Error: pure specifier ("=0") allowed only on virtual functions
Description
A pure specifier (=0) has been used on a non-virtual function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
void foo()=0; /* Error, foo() is not virtual */
};
int main(){}

How to Fix
A pure specifier can be used only in the declaration of a virtual function.
Remove the pure specifier from the offending function as it not virtual, or make the
offending function virtual.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.2)

cc0320
Compiler Error: badly-formed pure specifier (only "=0" is allowed)
Description
The compiler found an invalid pure specifier (something other than "0" follows the
"=").
Severity

135

Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
virtual void foo()=1;
};
int main(){}

How to Fix
A pure-specifier is valid only when "0" follows the "=". Edit the source to ensure that
this rule is followed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.2)

cc0321
Compiler Error: data member initializer is not allowed
Description
The compiler encountered an attempt to initialize a data member within the class
definition.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
int i = 1;
};
int main(){}

How to Fix
A class member can only be initialized within its class declaration if it is a static const
of the integral or enumeration type.
Initialize the offending data member outside of the class definition, for example,
inside a member function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.2)

cc0322
Compiler Error: object of abstract class type "type" is not allowed
Description
The type is an abstract class type, so an object of the type cannot be allocated.
Severity
Fatal error
136

Recovery
The compiler cannot recover from this error.
Example
class A{
virtual void foo() = 0; /* pure virtual function */
};
int main(){
A a; /* Error: class A is abstract and no objects
of it can be created */
}

How to Fix
A class containing one or more pure virtual functions is an abstract class. It can be
used only as a base class of some other class and no objects of it can be created.
Remove any pure virtual functions the class may have so that it ceases to be
abstract and objects of it can be created, or create a new class that derives from this
class and create objects of the new class.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.4)

cc0323
Compiler Error: function returning abstract class "type" is not allowed
Description
The return type of a function is an abstract class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
virtual void foo() = 0; /* pure virtual function */
};
A foo(); /* class A is abstract, it cannot be used
as a function return type, Error */
int main(){}

How to Fix
Remove any pure virtual functions the class may contain so that it ceases to be
abstract and can be used as a function return type, or change the return type of the
offending function to a legal return type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.4)

cc0324
Compiler Error: duplicate friend declaration

137

Description
The compiler encountered a duplicate friend declaration.
This message appears only when you compile with the -Wremarks option.
Severity
Remark
Recovery
After issuing the remark, the compiler ignores the duplicate declaration and
compilation continues.
Example
class A{
friend class B;
friend class B; /* friend class B is re-declared
hence the remark */
};
class B{};
int main(){}

How to Fix
Remove the offending friend re-declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.4)

cc0325
Compiler Error: inline specifier allowed on function declaration only
Description
The inline function specifier was used outside of a function declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
inline int i; /* inline specifier outside of
function declaration, Error. */
int main(){}

How to Fix
Ensure that the inline specifier is used only in the context of a function declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.2)

cc0326
Compiler Error: "inline" is not allowed
Description

138

The inline function specifier was used on a block scope function declaration, on a
declaration that is an explicit reference of a template, or in any other context defined
as illegal by the standard.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int main(){
inline void foo();
};

How to Fix
Ensure that the inline specifier is used only on function declarations that are
deemed legal by the ANSI standard.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.2)

cc0327
Compiler Error: bad storage class for an inline function
Description
An inline function is using an illegal storage class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
inline auto void func1(); /* Error, auto
not allowed */
inline register void func2(); /* Error, register not
allowed */
inline mutable void func3(); /* Error, mutable
not allowed */
class A{
inline mutable void func4(); /* Error, mutable
not allowed */
inline auto void func5(); /* Error, auto
not allowed */
inline register void func6(); /* Error, register
not allowed */
inline extern void func6(); /* Error, extern
not allowed */
};

How to Fix
An inline function can use the extern and static storage classes only when the
function is declared outside of a class, and the static storage class of the function is
declared inside a class.
Ensure that these rules are observed.

139

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0328
Compiler Error: invalid storage class for a class member
Description
A class member is using an illegal storage class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
mutable void foo(); /* Error, mutable not allowed */
auto void fo(); /* Error, auto not allowed */
register void go(); /* Error, register not allowed */
extern void io(); /* Error, extern not allowed */
};
int main(){}

How to Fix
The static storage class is the only storage class allowed for class members. Ensure
that no other storage class is used for class members.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0329
Compiler Error: local class member entity-kind "entity" requires a definition
Description
A member function declared in a local class definition must be defined within the
class definition if it is used. Virtual functions are assumed to be used. For a nonvirtual function, the error is issued when the function is referenced.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo(){
class A{
public:
virtual void foo(); /* Error, function requires
a definition */
};
}
int main(){}

140

How to Fix
Provide a definition for the offending function at the appropriate place in the source
code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.8)

cc0330
Compiler Error: entity-kind "entity" is inaccessible
Description
The symbol (special function, constructor, destructor, and so on) is not accessible
from the current location.
Severity
Error, non-discretionary
Warning, if referring to a private class destructor in cfront mode
Recovery
If an error is indicated, the compiler attempts to ignore the inaccessible statement
and compilation continues.
If a warning is indicated, the compiler ignores the inaccessible statement and
compilation continues.
Example
namespace N {
class A {
A(int);
};
}
class B : public N::A {
B() : A(0) {} /* N::A::A is inaccessible from the
current location */
};
int main(){}

How to Fix
Restructure the source in the appropriate manner, ensuring that the offending
symbol becomes accessible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12)

cc0334
Compiler Error: class "type" has no suitable copy constructor
Description
No applicable copy constructor is available.
Severity
Fatal error
Recovery

141

The compiler cannot recover from this error.


Example
struct A {
A();
A(A&);
};
const A B;
A C = B; // error A::A(A&) cannot copy B into C int main(){}

How to Fix
Add a suitable copy constructor to the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.8)

cc0335
Compiler Error: linkage specification is not allowed
Description
It is illegal to specify a storage class in conjunction with an external name linkage.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
static extern C void f1(); /* static storage class with extern name linkage
*/
extern extern C void f2(); /* extern storage class with extern name linkage
*/
void main(){
}

How to Fix
Remove the storage class specifier from the declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.5)

cc0336
Compiler Error: unknown external linkage specification
Description
The linkage specifier is not recognized.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
extern "B" void foo(); /* "B" is not a valid linkage
specifier, causing the

142

Error. */
int main(){}

How to Fix
Replace the offending linkage specifier with a valid one.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.5)

cc0337
Compiler Error: linkage specification is incompatible with previous "entity"
(declared at line xxxx)
Description
The linkage specification of a function or variable is incompatible with the linkage
specification from an earlier declaration.
Severity
Fatal error, when referring to a function
Warning, when referring to a variable
Recovery
If a fatal error is indicated, the compiler cannot recover.
If a warning is indicated, the compiler continues using the last linkage specification.
Example
extern "C" void foo();
int main(){}
extern "C++" void foo(){}

How to Fix
Ensure that the two linkage specifications are identical.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.5)

cc0338
Compiler Error: more than one instance of overloaded function "entity" has
"C" linkage
Description
Illegal overloading involving two extern "C" functions with the same name.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
extern "C" void foo(int);
extern "C" void foo(float);
int main(){}

How to Fix

143

Ensure that the program does not contain more than one instance of an overloaded
function that has "C" linkage.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1)

cc0339
Compiler Error: class "type" has more than one default constructor
Description
More than one default constructor is present for the current class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
A();
A(int i = 0);
private:
int i;
};
int main(){
A a; /* A::A() and A::A( int=0 ) are both default
constructors causing the ambiguity error */
}

How to Fix
Remove the extra default constructor.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.1)

cc0340
Compiler Error: value copied to temporary, reference to temporary used
Description
A value was copied to a temporary variable, or a constant reference was initialized
with a temporary variable.
Severity
Remark
Recovery
The remark informs you that a temp was used. Compilation continues after the
remark.
Example
int main(){
const int& i = 2+2;
}

144

How to Fix
Restructure the source code, eliminating the use of the temporary variable in such a
context.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.2)

cc0341
Compiler Error: "operatorxxxx" must be a member function
Description
An operator that can be overloaded by using a member function only was overloaded
using a function that was not a member function. For example, the assignment
operator (=) can be overloaded by a member function only.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S{
int i;
};
void operator = ( const S& p );
int main(){}

How to Fix
Use a member function to overload the offending operator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5)

cc0342
Compiler Error: operator may not be a static member function
Description
The compiler encountered an operator function that is a static member function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S{
int i;
static void operator = ( const S& p );
};
int main(){}

How to Fix
An operator function cannot be a static member function. Make the offending
function non-static. As an alternative, use a non-member function (if allowed by the
145

standard) for this particular operator.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5)

cc0343
Compiler Error: no arguments allowed on user-defined conversion
Description
A conversion function is using one or more parameters.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class X {
public:
operator int(int i); /* The conversion function
declaration is using a
parameter causing the Error */
};
int main(){}

How to Fix
Parameter types cannot be specified with conversion functions.
Remove the offending function parameter(s).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3.2)

cc0344
Compiler Error: too many parameters for this operator function
Description
A unary operator has been implemented by a non-static member function with a
parameter(s) or by a non-member function with more than one parameter, or a
binary operator has been implemented by a non-static member function with more
than one parameters or by a non-member function with more than two parameters.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
void operator - (int i, int j); /* too many parameters
causing the Error. */
};
void main(){}

146

How to Fix
If the offending operator function implements a unary operator, ensure that if it is a
non-static member function it does not contain any parameters. If it is a nonmember function, ensure that it contains only one parameter.
If the offending operator function implements a binary operator, ensure that if it is a
non-static member function it contains one parameter. If it is a non-member
function, ensure that it contains two parameters.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5.1, 13.5.2)

cc0345
Compiler Error: too few parameters for this operator function
Description
A unary operator has been implemented by a non-member function with no
parameters, or a binary operator has been implemented by a non-static member
function with more no parameters or by a non-member function with less than two
parameters.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
void operator && ();
};
void main(){}

How to Fix
If the offending operator function implements a unary operator, ensure that if it is a
non-static member function it does not contain any parameters. If it is a nonmember function, ensure that it contains only one parameter.
If the offending operator function implements a binary operator, ensure that if it is a
non-static member function it contains one parameter. If it is a non-member
function, ensure that it contains two parameters.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5.1, 13.5.2)

cc0347
Compiler Error: default argument is not allowed
Description
A default argument expression was specified in an overloaded operator declaration or
anywhere outside of the parameter declaration clause of a function declaration or
outside of a template parameter.
Severity

147

Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
void operator && (int i = 0); /* Default argument not
allowed in overloaded
operator
declarations. */
};
void main(){}

How to Fix
Remove the offending default argument.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.6)

cc0348
Compiler Error: more than one user-defined conversion from "type" to
"type" applies
Description
An ambiguous user-defined conversion was encountered.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct B;
struct A {
int i;
A() {}
A(B&) {}
};
struct B {
operator A() { return A(); } /* type conversion
function */
};
void main(){
B ob;
A oa = ob; /* Error: ambiguity between
operator A() and A(B&) */
}

How to Fix
User-defined conversions are applied only where they are unambiguous.
Edit the source file to resolve the ambiguity and ensure that one user-defined
conversion only is applicable in this particular case.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

148

ISO/IEC 14882:1998 "Programming Languages - C++" (12.3)

cc0349
Compiler Error: no operator "xxxx" matches these operands
Description
There is no applicable operator function for these operands.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
S();
S& operator=(S&);
};
const S cx;
S x;
void f() {
x = cx; /* Error, "=" is not applicable
to these operands. */
}
int main(){}

How to Fix
Remove the offending statement or provide an applicable operator function that
matches the operands.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.8)

cc0350
Compiler Error: more than one operator "xxxx" matches these operands
Description
More than one applicable function for these operands causes ambiguity.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {} s;
S f() { return s; }
S& g() { return s; }
int main(){
int i = 3;
S s;
( (i>2) ? f() : g() ) = s; /* Error, ambiguous */
}

149

How to Fix
Ensure that there is only one operator function applicable to each operand.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.8)

cc0351
Compiler Error: first parameter of allocation function must be of type
"size_t"
Description
The first parameter of an allocation function was not of type size_t.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <iostream.h>
void *operator new[](int, size_t size);
/* First parameter not of
type "size_t" - Error */
int main(){}

How to Fix
Ensure that the first parameter of the offending allocation function is of type size_t.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3.1)

cc0352
Compiler Error: allocation function requires "void *" return type
Description
The return type of an allocation function for operator new or operator new[] was not
"void *".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <iostream.h>
int operator new[](size_t size); /* Return type "int"
- Error */
int main(){}

How to Fix

150

Change the return type of the offending allocation function to "void *".
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3.1)

cc0353
Compiler Error: deallocation function requires "void" return type
Description
The return type of a de-allocation function for operator delete or operator delete[]
was not "void".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <iostream.h>
int operator delete[](void* size);
int main(){}

How to Fix
Change the return type of the offending de-allocation function to "void".
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3.2)

cc0354
Compiler Error: first parameter of deallocation function must be of type
"void *"
Description
The first parameter of a de-allocation function was not of type "void *".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void operator delete[](int);
int main(){}

How to Fix
Ensure that the first parameter of the offending de-allocation function is of type
"void *".
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

151

ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3.2)

cc0357
Compiler Error: base class "type" has already been initialized
Description
A base class was initialized for a second time.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
A();
};
class B : public A{
public:
B();
};
A::A(){}
B::B()
:A(), A(){} /* Error: base class A initialized twice */
void main(){}

How to Fix
Remove the offending initialization statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.6.2)

cc0359
Compiler Error: entity-kind "entity" has already been initialized
Description
A class member was initialized for a second time.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
A();
public:
int i;
};

152

A::A()
:i(3), i(4){} /* Error: class member I
initialized twice */
void main(){}

How to Fix
Remove the offending member initialization statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.6.2)

cc0360
Compiler Error: name of member or base class is missing
Description
In a base class initialization statement or member initialization statement, the name
of the base class or member is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
A();
public:
int i;
};
A::A()
:(3){} /* Error: member name is missing */
void main(){}

How to Fix
Insert the missing base class name or member name at the appropriate place in the
source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.6.2)

cc0363
Compiler Error: invalid anonymous union -- nonpublic member is not
allowed
Description
A non-public member was declared within an anonymous union.
Severity
Fatal error
Recovery

153

The compiler cannot recover from this error.


Example
static union{
private:
int i; /* Error: non-public anonymous union
member not allowed */
};
void main(){}

How to Fix
An anonymous union cannot have private or protected members. Edit the source file,
making the offending union member public.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.5)

cc0364
Compiler Error: invalid anonymous union -- member function is not allowed
Description
A member function was declared within an anonymous union.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
static union{
void foo(); /* Error: anonymous union member
function not allowed */
};
void main(){}

How to Fix
An anonymous union cannot have member functions. Remove the offending member
function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.5)

cc0365
Compiler Error: anonymous union at global or namespace scope must be
declared static
Description
An anonymous union was declared non-static at global or namespace scope.
Severity
Fatal error
Recovery

154

The compiler cannot recover from this error.


Example
union{}; /* Error: non-static anonymous union
declaration at global scope */
void main(){}

How to Fix
Make the offending union declaration static or remove the declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.5)

cc0366
Compiler Error: entity-kind "entity" provides no initializer for
Description
A non-static data member of const-qualified type was found, or a reference member
was not initialized in the default constructor definition.
Severity
Error, non-discretionary
Recovery
The compiler issues a diagnostic, and compilation continues.
Example
class A{
A();
const int i;
int j;
};
A::A()
: j(1) /* Error: variable i not initialized */
{}
int main(){}

How to Fix
Initialize the offending data member at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.6.2)

cc0367
Compiler Error: implicitly generated constructor for class "type" cannot
initialize
Description
A non-static data member of const-qualified type was initialized, or of a reference
member was attempted by an implicitly generated default constructor.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

155

Example
class A {
int &i;
};
class B : public A {
int j;
B() : j(1) {} /* Error : implicitly generated
constructor cannot initialize
the reference member
of the class */
};
int main(){}

How to Fix
Use a user-written default constructor to initialize non-static data members of constqualified type and reference members.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.1)

cc0369
Compiler Error: entity-kind "entity" has an uninitialized const or reference
member
Description
An entity (class, struct, or union) has a non-static data member of const-qualified
type or a reference member that was not initialized. C++ only.
Severity
Error, non-discretionary
Recovery
The compiler issues the diagnostic, and compilation continues.
Example
class A {
public:
const int i;
};
void main(){
A a; /* Error: variable a has an uninitialized
const member i */
}

How to Fix
Declare a default constructor for the entity that has the uninitialized const-qualified
type member or reference member, and initialize the member in the member
initialization list of the constructor definition.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.6.2)

cc0371
156

Compiler Error: class "type" has no assignment operator to copy a const


object
Description
The class has no const assignment operator function needed to copy a const object.
Severity
Fatal Error
Recovery
The compiler cannot recover from this error.
How to Fix
Provide the missing const assignment operator function at the appropriate place in
the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0372
Compiler Error: class "type" has no suitable assignment operator
Description
The compiler expected to find a volatile or const-volatile assignment operator
function. This case is unusual.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Provide the needed operator function at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0377
Compiler Error: "virtual" is not allowed
Description
The "virtual" specifier was used outside of a declaration of a non-static class
member function or outside of a C++ class (or struct or union) declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
virtual A(); /* Error: constructors may not
be virtual */
};

157

void main(){}

How to Fix
Ensure that the "virtual" specifier is used only in C++ class (or struct or union)
declarations or in the declarations of non-static class member functions that appear
within a member-specification of a class declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.2, 10.1)

cc0378
Compiler Error: "static" is not allowed
Description
A class constructor function, a class destructor function, or a main function was
declared static.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
static void main(){}

How to Fix
Ensure that constructors, destructors, and main are not declared static.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.6.1, 12.1, 12.4)

cc0380
Compiler Error: expression must have pointer-to-member type
Description
The type of the second operand must be pointer to member.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Replace the offending expression with an expression that has a pointer to member
type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0381
Compiler Error: extra ";" ignored

158

Description
There is an empty class (structure or union) declaration containing a semicolon or an
extra semicolon at the end of a source file.
Severity
Warning, when within a class (structure or union) declaration in C++
Remark, when at the end of a source file in C and C++
Recovery
The extra ";" is ignored, and compilation continues.
Example
struct S {
; /* Warning: "extra ";" ignored" in C++,
};
int main(){
}; /* Remark: "extra ";" ignored" in C and C++ */

How to Fix
Remove the offending semicolon.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (N\A)

cc0382
Compiler Error: nonstandard member constant declaration (standard form is
a static const integral member
Description
A const declaration is of a non-static, non-integral member.
Severity
Warning
Error, in strict ANSI mode
Recovery
The constant name is entered in the symbol table after scanning the expression to
avoid problems with a recursive reference. Compilation continues.
Example
class Thing {
public:
const int a = 10;
};
void main(){}

How to Fix
Ensure that the offending const declaration is of a static const integral member.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"
(9.29.29.29.29.29.29.29.29.2)

cc0384
159

Compiler Error: no instance of overloaded "entity" matches the argument


list
Description
There is no instance of the overloaded "new" function that matches the argument list
of the caller.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <stddef.h> /* needed for size_t */
struct S {
void *operator new(size_t){
S *p;
p = ::new S;
return p;
}
void operator delete(void *pv){
::delete pv; }
};
void main(){
S *px;
px = new (3) S; /* Error: no S::operator
new(size_t,int) */
delete px;
}

How to Fix
Ensure that the argument list of an instance of the overloaded "new" function
matches the arguments of the caller function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5)

cc0386
Compiler Error: no instance of entity-kind "entity" matches the required
type
Description
The compiler did not find a match for the address of an overloaded function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int f(int i) { return i; }
double f(double d) { return d; }
int main(){

160

int (*pf) (float) = &f; /* Error: Address does not


match with the address
of an overloaded
function. */
}

How to Fix
Ensure that the address matches an address of an overloaded function. In the above
example, the error can be fixed as follows:
int f(int i) { return i; }
double f(double d) { return d; }
int main(){
int (*pf) (int) = &f; /* Replacing float with an
int, to match the address
of an instance of the
overloaded function. */
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.4)

cc0388
Compiler Error: "operator->" for class "type" returns invalid type "type"
Description
The return type of the operator-> function is not valid.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class X{
public:
int &operator ->();
int a;
};
X obj;
main()
{
obj->a = 12;
}

How to Fix
The return type must be set to a pointer to a class or an object of or reference to a
class for which operator-> is defined.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0389
161

Compiler Error: a cast to abstract class "type" is not allowed


Description
An abstract class was used as the type of an explicit conversion. C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class B{};
class A : B{
virtual int avf() = 0; /* pure virtual function */
};
class D : A{
int avf(){
return 1;
}
};
int func(B ob);
void main(){
D d;
int val = func((A)d); /* Error: cannot cast to
an abstract class */
}

How to Fix
In C++, a cast to a class is permitted, but a cast to an abstract class is not
permitted.
Ensure that the class used for casting is not abstract, or remove the offending
statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.9)

cc0390
Compiler Error: function "main" may not be called or have its address taken
Description
The "main" function was called or had its address taken.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main();
void foo(){
main(); /* Error : cannot call "main" */
}
void main(){}

162

How to Fix
The "main" function cannot be called. Remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (Annex C 3.6)

cc0391
Compiler Error: a new-initializer may not be specified for an array
Description
A new-initializer was specified for an array type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A{
A( int );
};
A *p = new A[10] ( 12 ); /* Error: new-initializer
on an array type */
void main(){}

How to Fix
The initialization of arrays created with operator new can be done only with default
constructors. The use of another constructor with arguments is not permitted.
Use a default constructor to initialize the array, or remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.4)

cc0392
Compiler Error: member function "entity" may not be re-declared outside its
class
Description
A non-defining declaration of a member function is not allowed.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <iostream.h>
class A
{

163

public:
void* operator new( size_t );
void operator delete( void*, size_t );
};
void A::operator delete(void *, size_t); /* Error: member function
"A::operator delete" may not
be redeclared outside its
class */
void main() {}

How to Fix
Provide a function definition for the redeclared function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0393
Compiler Error: pointer to incomplete class type is not allowed
Description
A pointer to an incomplete class was encountered.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S; /* undefined class */
extern S so;
void main(){
S *sp=&so;
sp->data=5; /* Error: pointer to incomplete
class not allowed */
}

How to Fix
Make the class pointed to complete, or remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.3)

cc0394
Compiler Error: reference to local variable of enclosing function is not
allowed
Description
A reference to non-static variables of the containing function was attempted inside a
local class; or a reference of local variables of a containing function was attempted
inside a default argument expression.

164

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int func()
{
int x;
struct A {
int ia;
A() : ia(x) {} /* Error : cannot access local
variable "x" */
};
A a;
return (a.ia);
}
void main(){}

How to Fix
Inside a local class, a reference to non-static variables of the containing function is
not permitted. Inside a default argument expression, a reference to local variables of
any containing function is not permitted.
Ensure that the above rules are observed at all times.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.8)

cc0397
Compiler Error: implicitly generated assignment operator cannot copy
Description
The class for which a copy assignment operator was generated has a non-static data
member of constant type or a non-static data member of reference type or a nonstatic data member of class type (or array thereof) with an inaccessible copy
assignment operator or a base class with an inaccessible copy assignment operator.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class C {
public:
C();
const int s;
};
int main(){
C a;
C b = a;
b = a;
}

How to Fix

165

Ensure that the class for which a copy assignment operator was implicitly defined
does not have any non-static data members of const type, non-static data members
of reference type, non-static data members of class type (or array thereof) with an
inaccessible copy assignment operator, or a base class with an inaccessible copy
assignment operator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.8)

cc0399
Compiler Error: entity-kind "entity" has an operator newxxxx() but no
operator deletexxxx()
Description
The class has an operator new() but no default operator delete().
Severity
Remark, when compiled with the -Wremarks option
Recovery
The compiler issues the remark, and compilation continues.
Example
/* #include iostream.h to eliminate "error #20:
identifier "size_t" is undefined", it is omitted
here in order to avoid the diagnostics caused
by iostream.h */
class A{
public:
void* operator new(size_t);
};
void main(){}

How to Fix
Provide the class with a default operator delete().
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.4, 5.3.5)

cc0400
Compiler Error: entity-kind "entity" has a default operator deletexxxx() but
no operator newxxxx()
Description
The class has an operator delete(), but does not have a default operator new().
Severity
Remark, when compiled with the -Wremarks option
Recovery
The compiler issues the remark, and compilation continues.
Example
class A{

166

public:
void operator delete(void*);
};
void main(){}

How to Fix
Provide the class with a default operator new().
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.5, 5.3.4)

cc0401
Compiler Error: destructor for base class "type" is not virtual
Description
A base class has a non-virtual destructor.
Severity
Remark, only when compiled with the -Wremarks option
Recovery
The compiler issues the remark and compilation continues.
Example
class A{
public:
A();
~A(); /* Remark: destructor is not virtual */
};
class B : public A{
public:
B();
~B();
};
void main(){}

How to Fix
Make the destructor of the base class virtual.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.4)

cc0403
Compiler Error: entity-kind "entity" has already been declared
Description
A member function was re-declared.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

167

Example
class MyClass{
public:
MyClass();
MyClass(); /* Error: member function declared twice */
};
void main(){}

How to Fix
Remove the statement re-declaring the member function from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.3)

cc0404
Compiler Error: function "main" may not be declared inline
Description
The global "main" function was declared inline.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
inline void main(){} /* Error: function "main"
cannot be declared inline */

How to Fix
Ensure that global function "main" is not declared inline.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.6.1)

cc0405
Compiler Error: member function with the same name as its class must be a
constructor
Description
An identifier that is not a constructor and that has the same name as a class is being
declared within the class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int i;
void S() { i = 10; } /* Error: function specifies
a return type; therefore,

168

it cannot be a constructor */
};
void main(){}

How to Fix
Rename the offending function. A function with the same name as its class has to be
a constructor.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.1)

cc0406
Compiler Warning: using nested entity-kind "entity" (anachronism)
Description
A typename defined within a class definition was used outside its class without
qualification. This use is not allowed according to the ANSI standard, but the
compiler allows it as an anachronism and issues a warning.
Severity
Warning
Recovery
Compiler issues the diagnostic and compilation continues.
Example
class X
{
public:
typedef int I;
I a;
};
I b; /* Warning using nested type "X::I" (anachronism) */
void main() {}

How to Fix
Do not use a typename that was defined within a class definition outside of its class
without qualification.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0407
Compiler Error: a destructor may not have parameters
Description
A destructor function was a given a parameter(s).
Severity
Fatal error

169

Recovery
The compiler cannot recover from this error.
Example
class A{
A();
~A(int); /* Error: the class destructor
has a parameter */
};
void main(){}

How to Fix
Remove the offending parameter(s).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.4)

cc0408
Compiler Error: copy constructor for class "type" may not have a parameter
of type "type"
Description
A copy constructor is ill-formed. Four possibilities are:
Case 1 -

A::A(A);

Case 2 -

A::A(A, T=x);

Case 3 -

A::A(A&, A=y);

Case 4 -

A::A(A&, T=x, A=y);

Case 1. The type of the first parameter is identical to the type of the parent class.
Case 2. The second parameter has a default argument and the first argument is not
a reference to the parent class but is identical to the type of the parent class.
Cases 3 and 4. The type of this parameter is identical to the type of the parent
class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
S(S); /* Error: the type of the constructor parameter
is the same as that of the parent class. */
};
void main(){}

How to Fix
Ensure that the type of the first parameter or any following parameters of the copy
constructor is not identical to the type of the parent class and also if the second
parameter has a default argument then the first parameter is not identical to the
parent class but a reference of it.
Related Information

170

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (12.8)

cc0409
Compiler Error: "entity-kind "entity" returns incomplete type "type"
Description
A function returns an incomplete class type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S; /* struct S is incomplete */
S f();
void g() { f(); } /* Error: S is incomplete */
void main(){}
struct S{}; /* struct completed here */
S f(){ return S(); }

How to Fix
If the class is used in a way that requires the class type to be complete, as is
presumably in the current case, ensure that exactly one definition of the class is
present in the current translation unit.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0410
Compiler Error: protected entity-kind "entity" is not accessible through a
"type" pointer or object
Description
A protected non-static member of a base class could not be accessed through a
pointer or object.
Severity
Error, non-discretionary
Recovery
The compiler issues the error, ignores the statement, and continues the compilation
process.
Example
class A {
public:
A(){}
virtual ~A(){}
protected:

171

void f1() {} /* function not static */


};
class B : public A {
public:
B(){}
~B(){}
int friendFunc(A*);
};
int B::friendFunc(A *pa)
{
pa->f1(); /* Error : f1 is not accessible thru 'pa' */
return 1;
}
void main(){}

How to Fix
The inaccessible protected member must either me made static while remaining
protected, or be made public in order to be accessed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.5)

cc0411
Compiler Error: a parameter is not allowed
Description
A C++ default argument expression refers to a parameter.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int i = 1;
void foo(int i = i){} /* Error: variable name 'i'
hidden by name 'i' */
void main(){
foo();
}

How to Fix
Ensure that parameters of a function are not be used in default argument
expressions even if they are not evaluated.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.6)

cc0412
Compiler Error: an "asm" declaration is not allowed here

172

Description
An asm declaration is not allowed in the current scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A {
asm ("f");
};
void main(){}

How to Fix
Remove the offending asm declaration from the current scope.
An asm function can appear only at file scope, function scope, and block scope.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0413
Compiler Error: no suitable conversion function from "type" to "type" exists
Description
No suitable conversion function exists to convert a
user-defined type to a build-in type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S{} s; /* user defined type */
int i; /* built-in type */
void main (){
i = s; /* Error: type mismatch */
}

How to Fix
Define a suitable conversion function at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3)

cc0415
Compiler Error: no suitable constructor exists to convert from "type" to
"type"
Description

173

The source type is a non-class type, the destination type is a class type, and no
suitable constructor was found to make the conversion.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S { /* S has no constructors */
int s;
};
void main(){
S *ps = new S(1); /* Error: no suitable constructor
"new" initializer */
ps++; /* suppresses any warnings */
}

How to Fix
Define a suitable constructor at the appropriate place in the source code, making the
conversion possible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3.1)

cc0416
Compiler Error: more than one constructor applies to convert from "type" to
"type"
Description
A conversion by constructor is ambiguous because more than one constructor could
be used to make the conversion.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
S(int);
S(char);
};
S s()
{
return 1.0; /* Error: more than one constructor applies to convert
from "double" to "S":
function "S::S(dm int) dm"
function "S::S(dm char) dm" */
}
void main(){}

174

How to Fix
Ensure that only one constructor is applicable to the current conversion.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3, 12.3.1)

cc0417
Compiler Error: more than one conversion function from "type" to "type"
applies
Description
A conversion is ambiguous as more than one conversion function could be used to
make the conversion.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A {
operator int() { int i; return i; }
operator double() { double d; return d; }
} a;
int main(){
float val = a; /* Error: ambiguity between operator
int() and operator double() */
}

How to Fix
Eliminate the ambiguity by ensuring that only one conversion function can be used to
make the conversion.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3.2)

cc0418
Compiler Error: more than one conversion function from "type" to a built-in
applies
Description
A built-in type has more than one possible conversion.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int i;
operator int();
};

175

struct T : S {
int j;
operator double();
};
void main(){
T t;
if (t) {} /* Error: t.operator int()
or t.operator double() */
}

How to Fix
Eliminate the ambiguity by ensuring that only one conversion function can be used to
make the conversion.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3.2)

cc0424
Compiler Error: a constructor or destructor may not have its address taken
Description
The address of a constructor or destructor was taken.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class MyClass
{
public:
MyClass(){}
};
void main(){
MyClass::MyClass(1);
}

How to Fix
Taking the address of a constructor or destructor is illegal.
Remove the offending statement from the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.1, 12.4)

cc0425
Compiler Error: dollar sign ("$") used in identifier
Description
A dollar sign "$" was used in an identifier. This error occurs only when you compile
with the -dollar option (allows dollar signs in identifiers) and with the -strict
option.
176

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
int one$ = 1; /* Error in strict mode */
one$++; /* suppressing the warning */
}

How to Fix
Do not compile with the -strict option.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0427
Compiler Error: qualified name is not allowed in member declaration
Description
A qualified name was used in a member declaration statement.
Severity
Warning, when accepting qualified member names is an extension
Fatal error, when a definition uses a qualified name in a class scope
Recovery
If a warning is indicated, the qualified member name is accepted, and compilation
continues.
If a fatal error is indicated, the compiler cannot recover.
Example
class A{
public:
void A::foo(void);
};
void main(){}

How to Fix
Ensure that qualified names are not used in member declaration statements.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C".
ISO/IEC 14882:1998 "Programming Languages - C++" (9.2)

cc0429
Compiler Error: the size of an array in "new" must be non-negative
Description
A negative value was used when the size of an array was allocated with the "new"
operator.
Severity

177

Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
int *pArray = new int[-10];
}

How to Fix
Replace the negative value with a positive one.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.4)

cc0432
Compiler Error: "enum" declaration is not allowed
Description
A declaration is not allowed, for example:
extern "C" enum E { e1, e2, e3 };

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
extern "C" enum E { e1, e2, e3 };
int main(){}

How to Fix
Remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.5, 7.1.1)

cc0433
Compiler Error: qualifiers dropped in binding reference of type "type" to
initializer of type "type"
Description
Type qualifiers were dropped in the binding of a reference type to an incompatible
initializer type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
volatile int vi;

178

void main()
{
const volatile int& CVIR = vi;
/* Error : cannot initialize a volatile reference
with a const volatile reference */
volatile int& VIR = CVIR;
if (VIR) {} /* suppress warning */
}

How to Fix
When binding a reference to an initializer, ensure that the reference type is
compatible with the initializer type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5, 8.5.3)

cc0434
Compiler Error: a reference of type "type" (not const-qualified) cannot be
initialized with a value of type "type"
Description
You are attempting to initialize a reference of a not
const-qualified type with a value of a type that is not reference related.
This error applies only when you compile with the -strict or -pedantic option. The
compiler usually outputs error cc0426: "temporary used for initial value of reference
to non-const (anachronism)".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
volatile char ch ='A';
void main(){
volatile float& r = ch; /* Error: the types used
are not related */
r++; /* suppresses warning */
}

How to Fix
When initializing a reference of not const-qualified type, ensure that it is initialized
with a value of a type that is reference related. For instance, to compile the above
example, replace volatile float& r = ch; with volatile char& r = ch;.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5.3)

cc0435
Compiler Error: a pointer to function may not be deleted

179

Description
A "delete" expression was used on a pointer to a function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo( int i ){}
void (*p)(int); /* pointer to function */
void main(){
p = &foo; /* p points to foo */
delete p; /* Error: attempting to delete p */
}

How to Fix
A pointer to a function cannot be allocated, and thus, cannot be deleted.
Remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.4, 5.3.5)

cc0436
Compiler Error: conversion function must be a nonstatic member function
Description
A conversion function was declared as a static member function or as a nonmember function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
static operator int(int i); /* Error: conversion
function declared
static */
};
void main(){}

How to Fix
Ensure that the conversion function is declared as a static member function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3.2)

cc0437
Compiler Error: template declaration is not allowed here

180

Description
The template declaration is not allowed in the current scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void foo()
{
class A {
public:
template<class T> void Test(T&){} /* Error: template
declaration not
allowed in the
local scope of
a function */
};
}
void main(){
foo();
}

How to Fix
Ensure that the template declaration appears only at namespace scope or class
scope.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14)

cc0438
Compiler Error: expected a "<"
Description
The "<" sign is missing in a dynamic cast expression.
The C/C++ Compiler : SHARC version 6.1.0 does not support dynamic cast.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {};
class B : public A {};
class C : public B {};
void main(){
C *pC = new C;
B* pB = dynamic_cast C*>(pC); /* Error: "<" missing */
}

How to Fix

181

Insert the missing "<" sign at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7)

cc0439
Compiler Error: expected a ">"
Description
The ">" sign is missing in a dynamic cast expression, or in nested template argument
lists one of the template list delimiters is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class A,class T> class key {};
template <class A> class vector {};
class key <int, vector<int> ; /* Error: ">" missing */
void main (){}

How to Fix
Insert the missing ">" sign at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7, 14.2)

cc0440
Compiler Error: template parameter declaration is missing
Description
The end of the template parameter list was reached unexpectedly.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T,> void Test(T&){}
/* Error: a comma after the first parameter
declaration implies that another parameter
declaration is to follow, causing the compiler
to issue the error */
void main(){}

How to Fix
Ensure that the template parameter list is completed.
Related Information

182

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0441
Compiler Error: argument list for entity-kind "entity" is missing
Description
Default template-arguments were used, but the empty <> brackets were not used as
the template-argument-list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T = int>
class A {
public:
int i;
A() : i(0) {}
};
void main(){
A a; /* Error: The empty <> brackets
cannot be dropped. */
if (&a) { } /* suppress remark */
}

How to Fix
When default template-arguments are used, ensure that the empty <> brackets are
still used as the template-argument-list. Insert the empty <> brackets at the
appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3)

cc0442
Compiler Error: too few arguments for entity-kind "entity"
Description
Not all of the formal parameters have been accounted for. Too few template
arguments were supplied.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T, class W>
class A {
T tx;
W wx;
};

183

A<int> a; /* Error: too few arguments for class


template "A" */
int main(){}

How to Fix
Ensure that the number of the supplied template arguments matches the number of
formal parameters. Insert the missing template arguments at the appropriate place
in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3)

cc0443
Compiler Error: too many arguments for entity-kind "entity"
Description
All of the formal parameters have been accounted for, and more actuals exist. Too
many template arguments were supplied.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T, class W>
class A {
T tx;
W wx;
};
A<int, double, float> a; /* Error: too many arguments
for class template "A" */
int main(){}

How to Fix
Ensure that the number of supplied template arguments matches the number of
formal parameters. Remove the excess template arguments.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3)

cc0445
Compiler Error: entity-kind "entity" is not used in declaring the parameter
types of entity-kind "entity"
Description
Not all template parameters were used in declaring the parameter types of a
template function.
Severity
Remark, only when you compile with the -Wremarks option

184

Recovery
The compiler generates a pointer to indicate that a template parameter has not been
used, and compilation continues.
Example
template<class T> T foo( ); /* Remark: template parameter
"T" is not used in
declaring the parameter
types of function
template "foo" */
void main(){}

How to Fix
Ensure that all template parameters are used when declaring the parameter types of
a template function. Insert the missing parameters at the appropriate place in the
source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3)

cc0450
Compiler Error: the type "long long" is nonstandard
Description
The "long long" type was used in the declaration of a variable. This error is issued
only when compiling with the -strict and -pedantic command-line options.
Severity
When

Severity

Compiling with -strict


and "long long" is
allowed

Error,
non-discretionary

Compiling with -pedantic Warning


and "long long" is
allowed
"long long" is not
allowed

Fatal error

Recovery
When

Severity

Error

Compilation continues

Warning

Compilation continues

Fatal Error

The compiler cannot recover

Example
void main(){
long long Num;
}

How to Fix
Replace the "long long" type specifier with a legal type specifier, for example, "long".

185

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0451
Compiler Error: omission of "xxxx" is nonstandard
Description
A declaration of a friend class with the class (struct, union) keyword was omitted.
Severity
Remark, when you compile with the -Wremarks option
Fatal error, when you compile with the -strict option
Recovery
If a remark is indicated, the compiler accepts the declaration.
If a fatal error is indicated, the compiler cannot recover.
Example
class A {
int a;
};
class B {
friend A; /* class keyword missing */
};
void main(){}

How to Fix
Insert the class (struct, union) keyword in front of the class (struct, union) name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.4)

cc0452
Compiler Error: return type may not be specified on a conversion function
Description
A return type is present in a conversion function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
public:
int operator int();
};
void main(){}

How to Fix
Remove the conversion function return type from the source file.

186

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3.2)

cc0456
Compiler Error: excessive recursion at instantiation of entity-kind "entity"
Description
A class instantiation occurs within the context of other instantiations of the same
class template. When the number of such instantiations-in-progress exceeds a
configuration constant value, run-away recursion is assumed.
A function instantiation occurs within the context of other instantiations of the same
function template. When the number of such instantiations-in-progress exceeds a
specified value, run-away recursion is assumed. The compiler can catch only
recursive instantiations of inline functions and instantiations done during
instantiation wrap-up.
An instantiation occurs within the context of other instantiations of the same static
data member. When the number of such instantiations exceeds a specified limit,
runaway recursion is assumed.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T>
class A {
A<T*> a; /* Error: excessive recursion
in instantiations */
};
void main(){
A<int> a;
if (&a) { } /* suppresses warnings */
}

How to Fix
Ensure that the number of recursive instantiations does not exceed the maximum
allowed quantity specified by the compiler. Check compiler documentation.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.1)

cc0457
Compiler Error: "xxxx" is not a function or static data member
Description
The template declaration is not a class template, a function template, or a static data
member template.
Severity
Fatal error

187

Recovery
The compiler cannot recover from this error.
Example
template<class T> void foo(anything<T>&);
void main(){}

How to Fix
Replace the offending template declaration with one that is valid.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.1, 14.5.5)

cc0458
Compiler Error: argument of type "type" is incompatible with template
parameter of type "type"
Description
An argument type is incompatible with the type of a template parameter.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <int *I> struct S{};
char c;
void main(){
S<&c> s; /* Error: argument type mismatch */
if (&s) { } /* suppresses warning */
}

How to Fix
Ensure that the type of the argument matches the type of the template parameter.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0459
Compiler Error: initialization requiring a temporary or conversion is not
allowed
Description
A temporary was used as a template argument when the corresponding template
parameter was of reference type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

188

Example
template<const int& I> struct S{};
S<1> b; /* Error: temporary would be required
for template argument */
void main(){}

How to Fix
Do not use a temporary as a template argument when the corresponding template
parameter is of reference type. For example, the above example is corrected as
follows:
template<const int& I> struct S{};
int i = 1;
S<i> b;
void main(){}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3.2)

cc0463
Compiler Error: "template" is not allowed
Description
The keyword "template" appeared in a decl-specifier or in any other capacity within a
C++ source file where a C++ keyword cannot be used.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int template = 1; /* Error: "template" as an identifier */
int main(){
return 0;
}

How to Fix
Replace "template" with a word that is not a C++ keyword.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.11, 14)

cc0464
Compiler Error: "type" is not a class template
Description
A type other than a class template was used.
Severity

189

Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T>
class A
{
public:
void func () { int b = 1; }
};
template <class T> void A <int>::func(){}
/* Error: "A<int>" is not a class template */
void main(){}

How to Fix
Ensure that the type used is a class template.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.1)

cc0466
Compiler Error: "main" is not a valid name for a function template
Description
A function template was given the name "main".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> void main();
void main(){}

How to Fix
A function template cannot be named "main". Rename the function template.
This rule is not explicitly stated in the ANSI standard; however, the standard does
state that a function named "main" cannot be called.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.6.1, Annex C 3.6)

cc0467
Compiler Error: invalid reference to entity-kind "entity" (union/nonunion
mismatch)
Description
This message indicates tag-kind mismatch in a partial specialization, explicit
specialization, or explicit instantiation of a class template. The class key does not

190

agree in kind with original class template declaration.


Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T1, class T2>
class A {};
template <>
union A<int,char> {}; /* Error: class-key mismatch */
void main(){}

How to Fix
Ensure that the class key agrees with the original class template declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.1)

cc0468
Compiler Error: a template argument may not reference a local type
Description
A local type, a type with no linkage, or an unnamed type was used as a templateargument for a template type-parameter.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> class A {};
void func()
{
class B {};
A<B> a1; /* Error: local type used
as template-argument */
A<B*> a2;/* Error: pointer to local type
used as template-argument */
}
void main(){}

How to Fix
Ensure that local types, types with no linkage, or unnamed types are not used as
template-arguments.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3.1)

cc0469
191

Compiler Error: tag kind of xxxx is incompatible with declaration of entitykind "entity" (declared at line xxxx)
Description
A qualified name is being used with a different tag kind than that of its declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
union U; /* declared 'union' */
struct U {}; /* Error: the class-specifiers
do not match */
void main(){}

How to Fix
Ensure that the qualified name uses the same tag kind as that of its declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (Annex C 3.9)

cc0470
Compiler Error: the global scope has no tag named "xxxx"
Description
The identifier could not be found in the global scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main (){
struct ::S s; /* Error : global scope has
no tag named S */
if ( &s ); /* suppresses warning */
}

How to Fix
Make the offending identifier global, or remove the statement referring to that
identifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.3.5)

cc0471
Compiler Error: entity-kind "entity" has no tag member named "xxxx"
Description

192

The identifier could not be found in the class or namespace scope.


Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {};
struct S::var; /* Error: structure S has no
tag member named var */
void main(){}

How to Fix
Ensure that the offending identifier is declared within the required scope, or remove
the statement referring to that identifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.3)

cc0472
Compiler Error: member function typedef (allowed for cfront compatibility)
Description
This error occurs only in cfront mode (when you compile with the command line
options ++cfront_2.1 and ++cfront_3.0).
Severity
Warning
Recovery
The compiler issues a warning on the extension, and compilation continues.
Example
class A{};
typedef void A::func();
void main(){}

How to Fix
The member function "typedef" is allowed only for cfront compatibility. This warning
is always issued in cfront mode only.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0475
Compiler Error: a template argument may not reference a non-external
entity
Description

193

A template argument referred to an entity with an internal linkage.


Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T, char* char_string> struct S {};
void main(){
S<int, "init"> s; /* Error: string literal not allowed
as template-argument, as string
literals have internal linkage. */
if (&s) {} /* suppresses warning */
}

How to Fix
Ensure that only entities with external linkage are used as template arguments.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3.2)

cc0476
Compiler Error: name followed by "::~" must be a class name or a type
name
Description
The identifier is followed by "::~" but is not a class name or a type name.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Replace the offending identifier with an identifier that represents a class name or a
type name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0479
Compiler Error: entity-kind "entity" redeclared "inline" after being called
Description
A function was redeclared inline after being called. This error is issued only when you
compile with the Wremarks command-line option.
Severity
Remark
Recovery

194

After the compiler issues the remark, compilation continues.


Example
bool less (int a, int b);
void main ()
{
less (5, 10);
}
inline bool less (int a, int b)
{
return a < b;
}

How to Fix
Restructure the source code to ensure that the function is not redeclared inline after
being called.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0481
Compiler Error: invalid storage class for a template declaration
Description
A template declaration has an invalid storage class. The error refers to the "auto" and
"register" storage classes.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> register class A {};
/* Error: register is not a valid storage class
for a template */
void main(){}

How to Fix
Remove the offending storage class from the template declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14)

cc0484
Compiler Error: invalid explicit instantiation declaration
Description
An invalid explicit instantiation declaration was encountered.
Severity

195

Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> class A{};
template <class T> class B{};
template
class A<int>, class B<int>; /* Error: a single template
name may not declare more
than one class */
void main(){}

How to Fix
Replace the offending declaration with one that is valid. Refer to the standard.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.2)

cc0485
Compiler Error: entity-kind "entity" is not an entity that can be instantiated
Description
A template function or a static data member does not require instantiation.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct B {
static int x;
};
template int B::x; /* Error: "dm int B::x" is not an entity that can be
instantiated */
void main(){}

How to Fix
Remove the offending instantiation.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0487
Compiler Error: inline entity-kind "entity" cannot be explicitly instantiated
Description
An inline function template was explicitly instantiated.
Severity
Remark

196

Recovery
The compiler issues a remark and compilation continues.
Example
template<class T> inline void f(T) {}
template void f<int> (int); /* Remark: incline function
func cannot be explicitly
instantiated */
void main(){}

How to Fix
The ANSI standard does not mention anything on the subject of inline function
template instantiation. Declare the offending function as non-inline to eliminate the
remark.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.2, 7.1.2)

cc0489
Compiler Error: entity-kind "entity" cannot be instantiated -- no template
definition was supplied
Description
A template can be declared and referenced without ever being defined. This error is
issued if an instantiation was explicitly requested. The error is not issued if the
instantiation was requested by an instantiation of the entire class (which means that
all members should be instantiated).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T> class Array { void mf(); };
template void Array<int>::mf();
void main(){}

How to Fix
Supply a definition for the offending template at the appropriate place in the source
file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.2)

cc0493
Compiler Error: no instance of entity-kind "entity" matches the specified
type
Description
No match was found for the requested overloaded function template.

197

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
template <class T>
void func(T*);
};
template void S::func(int*); /* Error: no instance
of function template
"S::func" matches the
specified type */
void main(){}

How to Fix
Supply a match for the requested function template at the appropriate place in the
source file, or change the template function call to ensure that it matches an existing
function template, or remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.5.1)

cc0496
Compiler Error: template parameter "xxxx" may not be redeclared in this
scope
Description
A template parameter name has been reused in the first scope associated with the
instantiation that affects the declarative level (or in a scope nested within that scope,
in strict mode).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T>
class A
{
struct T; /* Error: Template parameter "T" may not
be re-declared in this scope */
};
void main(){}

How to Fix
Ensure that any template parameter is not re-declared in its scope (including nested
scopes). Use a different name in the declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.6.1)

198

cc0498
Compiler Error: template argument list must match the parameter list
Description
The template argument list does not match the parameter list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T1, class T2>
struct A {
void f2();
};
template<class T2, class T1> void A<T1,T2>::f2() {}
/*
Error: In the statement above, the template parameter
list is not matched by the template argument list
template<class T2, class T1> void A<T1,T2>::f2() {}
*/
void main(){}

How to Fix
Ensure that the type and form of each template argument specified in a template-id
matches the type and form specified for the corresponding parameter declared by
the template in its template-parameter-list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3)

cc0500
Compiler Error: extra parameter of postfix "operatorxxxx" must be of type
"int"
Description
The extra parameter of a postfix operator was found to be other than "int".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
A();
A& operator++ ( A& a ); /* Error: extra parameter is
not of type "int" */
};
void main(){}

How to Fix

199

If a postfix operator is supplied with an extra parameter, ensure that the parameter
is of type "int".
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5.7)

cc0501
Compiler Error: Function type is required
Description
An operator declaration does not have a function type. An operator name must be
declared as a function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
A();
A& operator+++ (){ return *this; }
};
void main(){}

How to Fix
Ensure that the operator declaration has a function type, or remove the offending
declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5)

cc0502
Compiler Error: Operator name is not allowed
Description
A C++ statement construct, the operator name used, is not allowed.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A{
class operator int; /* Error: operator name not allowed */
class operator+; /* Error: operator name not allowed */
};
void main(){}

How to Fix
Remove the offending statement.
Related Information

200

ISO/IEC 9899:1990 "Programming Languages - C" (N/A)


ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0503
Compiler Error: Entity-kind "entity" cannot be specialized in the current
scope
Description
An explicit specialization of a class template has appeared either outside of the file or
namespace scope in which the template was originally declared or in a scope
enclosing the original scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> struct A {};
void main(){
struct A<int> {}; /* Error: class "A<int>" cannot be specialized in
the current scope */
}

How to Fix
Ensure that the declaration of the class template being explicitly specialized is in
scope at the point of declaration of an explicit specialization.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.3)

cc0504
Compiler Error: The form for taking the address of a member function is
nonstandard
Description
The "&" ( address of operator ) was omitted when the address of a member function
was taken.
Severity
Fatal error, when compiling with the -strict command line option
Warning, when compiling with the -pedantic command line option
Recovery
If a fatal error is indicated, the compiler cannot recover.
If a warning is indicated, the compiler accepts the syntax and compilation continues.
Example
class A {
public:
void f() {}
};
typedef void (A::*AFP)();

201

class B : public A {
public:
static AFP afp;
};
AFP B::afp = A::f; /* Error: "&" operator omitted */
void main() {}

How to Fix
Insert the missing "&" ( address of operator ) at the appropriate place in the source
file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0505
Compiler Error: Too few template parameters (does not match previous
declaration)
Description
Too few parameters were used when a template was re-declared. The current
declaration does not match the previous declaration of the template.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T, int> class X;
template<class T> class X {}; /* Error: too few template parameters -does not match previous declaration */
void main(){}

How to Fix
Ensure that the number of template parameters in the current template declaration
matches the number of parameters in the previous declaration of the template.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0506
Compiler Error: Too many template parameters (does not match previous
declaration)
Description
Too many parameters were used when a template was re-declared. The current
declaration does not match the previous declaration of the template.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

202

template<class T> class X;


template<class T, int> class X {}; /* Error: too many template
parameters -- does not match
previous declaration */
void main(){}

How to Fix
Ensure that the number of template parameters in the current template declaration
matches the number of parameters in the previous declaration of the template.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0507
Compiler Error: Function template for operator delete(void*) is not allowed
Description
A function template for operator delete(void*) was declared.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T> int operator delete(void*){}
void main() {}

How to Fix
The function template for operator delete(void*) is not allowed. Although not
expressly prohibited, the function template cannot be used because new and delete
have an invariant first argument. Remove the offending function template
declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3.2, 5.3.5)

cc0508
Compiler Error: Class template and template parameter cannot have the
same name
Description
The class being declared has the same name as one of its template parameters.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T> class T {}; /* Error: class template and template
parameter have the same name */
void main(){}

203

How to Fix
When declaring a class, do not give it the same name as one of its template
parameters. Give the class a different name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14)

cc0510
Compiler Error: A template argument cannot refer to an unnamed type
Description
An unnamed type was used as a template argument for a template parameter.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct {} s;
template <class T> void func(T) {}
void main() {
func(s); /* Error: unnamed types cannot be used as
template arguments. */
}

How to Fix
An unnamed type cannot be used as a template argument for a template parameter.
Use a different (named) type as a template argument.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3.1)

cc0511
Compiler Error: Enumerated type is not allowed
Description
An enumeration type is not allowed in the current context as the enum type promotes
to an integer for the operation, and then cannot get back to enum.
This error is issued only when you compile with the -strict or -pedantic command
line options.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
enum colour {g,r,b};
colour farbe = g;
void main(){
farbe++;

204

How to Fix
Replace the enumerated type with an arithmetic type or a pointer to a complete
object type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.6)

cc0512
Compiler Error: Type qualifier on a reference type is not allowed
Description
A type qualifier was used on a reference type.
Severity
Warning
Fatal error, when you compile with the -strict command line option
Recovery
If a warning is indicated, the compiler ignores the qualifier and compilation
continues.
If an error is indicated, the compiler cannot recover.
Example
int i = 0;
int & const r = i; /* Error: type qualifier on a reference type */
void main() {}

How to Fix
Remove qualification from the reference.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (3.9)

cc0513
Compiler Error: A value of type "type" cannot be assigned to an entity of
type "type"
Description
The assignment operands are not compatible.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
int i = 0;
int *pi = &i;
i = pi--; /* Error: type of pi-- is "int*" and not "int" */
pi--; /* suppresses warning */

205

i--; /* suppresses warning */


}

How to Fix
Ensure that the assignment operators are compatible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.17)

cc0515
Compiler Error: Cannot convert to incomplete class "type"
Description
Conversion to an incomplete class has occurred.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A;
extern A a;
extern void func(A);
void main()
{
func(a); /* Error: cannot convert to incomplete class A */
}

How to Fix
Ensure that the class type is complete before attempting a conversion to that class
type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (3.2)

cc0516
Compiler Error: Const object requires an initializer
Description
A constant object was left uninitialized.
Severity
Non-discretionary error
Recovery
The compiler issues the diagnostic and compilation continues.
Example
void main()
{
const int *u = new const int;
u++; /* suppresses warnings */

206

How to Fix
Provide initialization for the offending object at the appropriate place in the source
file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (C.1.2 Clause 3.5, Clause
7.1.5)

cc0517
Compiler Error: Object has an uninitialized const or reference member
Description
A class has an uninitialized const or reference member (C++ specific).
Severity
Error
Recovery
The compiler issues the error and compilation continues.
Example
struct A {
const int a;
};
void main(){
A* a = new A; /* Error: object "A" has an uninitialized const
member */
a++; /* suppresses remark */
}

How to Fix
Initialize the uninitialized const member and make it static, or make only the const
member static, in which case initialization would not be needed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (N/A)
ISO/IEC 14882:1998 "Programming Languages - C++" (C.1.2, Clause 7.1.5)

cc0518
Compiler Error: Nonstandard preprocessing directive
Description
A nonstandard preprocessing directive was found in the source file.
This error is issued only when you compile in strict (with the -strict compile line
option) mode.
Severity
Non-discretionary error
Recovery
The compiler issues the diagnostic and compilation continues.
Example

207

#warning: "Error none"


void main(){}

How to Fix
Remove the offending preprocessing directive from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0519
Compiler Error: Entity-kind "entity" cannot have a template argument list
Description
A type name that is not a template is followed by a template argument list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {};
void main()
{
A<int> a; /* Error: class "A" may not have
a template argument list*/
if (&a) {} /* Suppresses warning */
}

How to Fix
Ensure that the type name immediately preceding the "<>" is a template type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.2)

cc0520
Compiler Error: Initialization with "{...}" expected for aggregate object
Description
The top level initializer for a class, struct, union or array was not surrounded by
braces ({}). Missing braces are allowed in C mode as an extension, when a warning
is issued.
Severity
Fatal error, in C++ mode and in C mode when you compile with the -strict option
Warning, in C mode
Recovery
In C++ mode, the compiler cannot recover from this error.
In C mode, the compiler accepts the initialization.
In strict C mode, the compiler cannot recover from this error.

208

Example
int a[2] = 1; /* Error: initialization with "{...}" expected for
aggregate object */
void main(){}

How to Fix
Ensure that the top lever initializer of a class, struct, union or array is surrounded
by braces.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5.1)

cc0540
Compiler Error: support for exception handling is disabled
Description
By default, the C++ compiler does not allow exception handling statememnts or
expressions.
Severity
Error
Recovery
The compiler cannot recover from this error.
Example
void func()
{
throw 6;
}
ccblkfn -c++ test.cpp
"test.cpp", line 3: cc0540: error: support for exception handling is
disabled
throw 6;
^
1 error detected in the compilation of "test.cpp".
cc3089: fatal error: Compilation failed

How to Fix
Recompile specifying -eh on the command line.
Related Information

cc0546
Compiler Error: transfer of control bypasses initialization of a variable
within a block
Description
The transfer of control has bypassed the initialization of a variable within a block,
which is a switch block or a block contained within a switch block.
Severity
Warning, in all modes except in C++ strict mode (compiling with the -strict
command line option)
Fatal error, in C++ strict mode

209

Recovery
If a warning is indicated, compilation continues after the warning.
If an error is indicated, the compiler cannot recover
Example
struct X {
int i;
X(int ii) : i(ii) {}
};
int i;
void main()
{
switch(i)
{
case 0 :
X ox(0);
break;
case 1 :
break;
}
}

How to Fix
Remove the offending initialization statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4)

cc0548
Compiler Error: transfer of control into an exception handler
Description
Control is being transferred into a try block or handler from outside.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
int i = 0;
if (i) goto handler; /* Error: transfer of control into an exception handler */
try
{
throw i;
}
catch(int i)
{
handler : i++;
}
}

How to Fix
You can transfer control out of, but not into, a try block or handler by using the goto,
break, return, or continue statements. Remove the offending statement.

210

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (15)

cc0550
Compiler Error: entity-kind "entity" was set but never used
Description
The value of a variable was set but the variable was never used.
Severity
Remark, only when the -Wremarks command line option is used
Recovery
The compiler issues the remark and compilation continues.
Example
void main(){
int Var = 10;
int *pVar;
pVar = &Var;
}

How to Fix
Either use the variable or remove the statement that declares it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0551
Compiler Error: entity-kind "entity" cannot be defined in the current scope
Description
A definition is illegal. The particular entity cannot be defined in the current scope.
This error occurs in the following cases:
A static data member is being defined in a scope that does not enclose the
scope in which the parent class was defined.
A declaration appears within a namespace scope in which the name cannot be
defined (the declaration is a member, directly or indirectly, of a namespace
that is not enclosed by the current namespace scope)
A class member function is being defined in a friend declaration
A member template is being defined in a scope that does not enclose the
scope in which the parent class was defined
A member function is being defined in a scope that does not enclose the
scope in which the parent class was defined
A definition appears within a namespace scope in which the name cannot be
defined (the definition is a member, directly or indirectly, of a namespace that
is not enclosed by the current namespace scope)
Static data member template is being defined in a scope that does not
enclose the scope in which the parent class was defined
A definition of a nonmember function in a local class friend declaration

211

A class is a namespace member or nested in another class (the class was


defined outside of the scope in which it belongs)
An attempt to define a member enum outside the class of which it is a
member
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace A
{
struct S
{
void func();
};
}
namespace B
{
void A::S::func(){} /* Error : A::X::mf() cannot be defined in the current
scope */
}
void main(){}

How to Fix
Define the declaration in its proper scope.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.3, 9.7, 11.4, 9.2, 7.3.1,
7.2)

cc0555
Compiler Error: tag kind of xxxx is incompatible with template parameter of
type "type"
Description
The template argument is the wrong kind of tag.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
union U {};
/* The following line of code causes the diagnostic: "template
parameter T may not be used in an elaborated type specifier" - cc0794, which is issued as an warning in normal mode and as an
error in strict ( compiling with the -strict command line option )
mode. When in strict mode only diagnostic cc0794 is issued,
when in normal mode error cc0555 is issued also. */
template <class T> class B { class T x; };
B<U> b;
void main(){}

212

How to Fix
Do not a use a template parameter in an elaborated type specifier. Restructure your
program. For example, the following version would compile:
union U {};
template <class T> class B {};
B<U> b;
void main(){}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C".
ISO/IEC 14882:1998 "Programming Languages - C++"
7.1.5.37.1.5.37.1.5.37.1.5.37.1.5.37.1.5.37.1.5.3).

cc0556
Compiler Error: function template for operator new(size_t) is not allowed
Description
Overloading on the single argument version of operator new(size_t) is not allowed.
Although this occurrence is not expressly prohibited, it can be inferred from the fact
that "new" has an invariant first argument.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <iostream.h>
template<class T> void *operator new[](size_t size);
void main(){}

How to Fix
Remove the function template for operator new(size_t) from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.4)

cc0558
Compiler Error: pointer to member of type "type" is not allowed
Description
A pointer-to-member is pointing to a static member of a class, a member with a
reference type, or a void.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
int i;
};

213

void A::*p; /* Error: pointer to member of type "void" is not


allowed */
void main() { }

How to Fix
Ensure that a pointer-to-member does not point to a static member of a class, a
member with a reference type, or a void.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.3)

cc0559
Compiler Error: ellipsis is not allowed in operator function parameter list
Description
An overloaded operator function (except operator()(T, ...) and operator new(size_t,
...) ) contains an ellipsis in its parameter list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
A& operator +(...);
};
void main(){}

How to Fix
All overloaded operators (except function call and new) require a specific number of
arguments. Remove the ellipsis from the parameter list of the offending operator
function and supply the specific number of arguments needed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5)

cc0560
Compiler Error: "entity" is reserved for future use as a keyword
Description
A keyword was used for a token that is not yet implemented.
Severity
Remark
Warning, in pedantic (compiling with the -pedantic command line option) mode
Error, in strict (compiling with the -strict command line option) mode
Recovery
If a remark or warning is indicated, compilation continues after the diagnostic.
If an error is indicated, the compiler cannot recover.
Example

214

void main()
{
typeid(int);
}

How to Fix
Use one of the following options:
Remove the statement containing the keyword for the unimplemented token.
If you are using the keywords "type_id" or "dynamic_cast", ensure that RTTI is
enabled.
If you are using the keywords "namespace" or "using", ensure that namespaces
is enabled.
If you are using the keyword "typename", ensure that typename support is
enabled.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0598
Compiler Error: a template parameter may not have void type
Description
A non-type template parameter has a void type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<void> class X; /* Error: a template parameter may not have
void type */
void main(){}

How to Fix
A non-type template parameter cannot have a floating point, class, or void type.
Change the template parameter to another (valid) type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0601
Compiler Error: a throw expression may not have void type
Description
A throw expression has a void type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

215

Example:
void func(){}
void main()
{
try
{
throw func();
}
catch (int){}
}

How to Fix:
If possible, ensure that the offending throw expression is not of type void.
Otherwise, remove the expression.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (15.1)

cc0603
Compiler Error: parameter of abstract class type "type" is not allowed
Description
An abstract class was used as a parameter type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
int i;
A() : i(1){}
virtual int pvf() = 0; /* pure virtual function */
};
int func(A a) { return a.i; } /* Error : parameter of abstract class A
is not allowed */
void main() {}

How to Fix
Convert the abstract class used as a parameter type to a non-abstract class by
removing any pure virtual functions that the class may have or remove the class
from the parameter list. Change the source file as required after making the class
non-abstract or removing it from the parameter list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (10.4)

cc0604
Compiler Error: array of abstract class type "type" is not allowed
Description
An array of abstract class type was declared.

216

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
int i;
A() : i(1){}
virtual int pvf() = 0; /* pure virtual function */
};
A MyArray[1]; /* Error : array of abstract class A is not allowed */
void main() {}

How to Fix
An array cannot have an abstract class type. Change the type of the array.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.4)

cc0605
Compiler Error: floating-point template parameter is nonstandard
Description
A template parameter was declared to have a floating point.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<double d> class X; /* Error: floating-point template
parameter is nonstandard */
void main(){}

How to Fix
A template parameter cannot be declared to have a floating point. It can, however,
be declared to have a pointer or reference to a floating point. If appropriate, change
the parameter to be a pointer or a reference to the floating point, or remove the
offending floating point parameter.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0606
Compiler Warning: this pragma must immediately precede a declaration
Description
The particular pragma used does not precede a declaration as required.
Severity

217

Warning
Recovery
The compiler ignores the pragma and compilation continues.
Example
void func(){
int x;
#pragma linkage_name /* Warning: this pragma must immediately precede a
declaration */
x = 2;
x++;
}
void main(){}

How to Fix
Ensure that this particular pragma always precedes a declaration, or remove the
pragma from the source file.
Related Information
See also compiler documentation for pragmas.

cc0607
Compiler Error: this pragma must immediately precede a statement
Description
The particular pragma used does not precede a statement as required.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#pragma SIMD_for /* Error: this pragma must immediately precede a
statement */
void main(){}

How to Fix
Ensure that this particular pragma always precedes a statement, or remove the
pragma from the source file.
Related Information
See also compiler documentation for pragmas.

cc0609
Compiler Error: this kind of pragma may not be used here
Description
This kind of pragma is not valid in this location.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

218

#pragma define_type_info /* Error: this kind of pragma may not be used here */
void main(){}

How to Fix
Remove the pragma from the source file, as it is not valid at the current location.
Related Information
See also compiler documentation for pragmas.

cc0611
Compiler Error: overloaded virtual function "entity" is only partially
overridden in entity-kind "entity"
Description
The overridden function is an overload set in a base class and:
One or more virtual functions were overridden by a declaration in the current
class
One or more virtual functions were not overridden
Although this occurrence is allowed it can cause subtle inconsistencies in a user
program, and therefore cause a warning.
Severity
Warning
Recovery
The compiler issues the diagnostic and compilation continues.
Example
class A
{
public:
virtual void func(int){}
virtual void func(double){}
};
class B : public A /* Warning: overloaded virtual function "A::func" is
only partially overridden in class "B" */
{
public:
void func(int){}
};
void main(){}

How to Fix
To eliminate the warning, remove the offending statement. Note, however, that
removal is not necessary as the construct is legal. You can suppress warnings may
by using the -w command line option.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (27.7.1.3)

219

cc0612
Compiler Error: specific definition of inline template function must precede
its first use
Description
An inline function template has been declared, and an instance of it has been
referred to, and therefore, instantiated on the fly. This error is issued when a
subsequent specializing declaration appears.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
A statement cannot refer to an inline template function that is specialized before the
specialization is declared. Remove the offending statement from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0615
Compiler Error: parameter type involves pointer to array of unknown bound
Description
The parameter includes a pointer to an array of unspecified size. This error is C++
specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
typedef int array[];
void func(array* AnArray){}
void main(){}

How to Fix
A pointer to an array of unknown bound is not allowed as a parameter. Either make
the array complete or ensure that a pointer to the array is not used as a parameter.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0616
Compiler Error: parameter type involves reference to array of unknown
bound
Description
The parameter includes a reference to an array of unspecified size. This error is C++

220

specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
typedef int array[];
void func(array &AnArray){}
void main(){}

How to Fix
A reference to an array of unknown bound is not allowed as a parameter. Either
make the array complete or ensure that a reference to the array is not used as a
parameter.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0624
Compiler Error: "xxxx" is not a type name
Description
The symbol used should be a type name. This error is issued only in strict (compiling
with -strict command line option) mode.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public :
typedef int X;
};
void main ()
{
typedef int Y;
int i;
i.Y::~X(); /* Error: "X" is not a type name. */
}

How to Fix
Replace the offending symbol with one that is a type name.
Related Information
See also:
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"
This error might not be applicable because the compiler behaves as follows:
If you compile a file called test.cpp with the -pch option, a subdirectory is created to
store the file test.pch. In the next compilation of test.cpp, the compiler uses the

221

test.pch if that file is usable. If the file is not usable, the compiler overwrites it with
a usable one to use for any subsequent compilations.

cc0631
Compiler Error: unable to obtain mapped memory
Description
The compiler was unable to obtain the desired mapped memory.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced.
How to Fix
Increase your paging file size.
Related Information
See also documentation for your operating system on memory management.

cc0643
Compiler Error: "restrict" is not allowed
Description
The "restrict" keyword cannot be used in the current context.
Severity
Fatal error
Recovery:
The compiler cannot recover from this error.
Example:
void main(){
restrict int var = 0; /* Error: "restrict" is not allowed */
var++; /* suppresses the remark */
}

How to Fix:
The restrict keyword maybe applied to pointer and reference types (but not to
pointer-to-function types), to pointer-to-member types (but not to pointers to
member functions), and to array types (in parameter declarations only). In all other
cases, the restrict keyword is not allowed and you should remove it from the source
file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0644
Compiler Error: a pointer or reference to function type may not be qualified
by "restrict"

222

Description
A pointer type or reference pointing to a function type is restrict-qualified, or a
pointer to member type pointing to a function type is restrict-qualified.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void func(void){}
void(*restrict g) (void) = func;
void main(){}

How to Fix
A pointer type or reference pointing to a function type cannot be restrict-qualified.
Remove the offending restrict qualifier from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0656
Compiler Error: transfer of control into a try block
Description
A branch into the catch or try block from outside has occurred.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
int i = 0;
if (i) goto try_bl; /* Error: transfer of control into a try block */
try
{
try_bl :
if (i) throw i;
}
catch(int i)
{
i++;
}
}

How to Fix
Control cannot be transferred into a try block. Remove the offending statement from
the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (15)

223

cc0658
Compiler Error: closing brace of template is missing
Description
The closing brace of a function template definition is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> void func(T){ /* Error: closing brace of template
definition not found */
void main (){}

How to Fix
Insert the missing closing brace at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5)

cc0660
Compiler Error: invalid packing alignment
Description
The value used for specifying the packing alignment is invalid.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#pragma pack(3) /* Error: invalid packing alignment value */
void main(){}

How to Fix
Ensure that the value supplied for align is a power of two. If align is omitted, then
the default alignment is used.
Related Information
See also compiler documentation for pragmas.

cc0661
Compiler Error: expected an integer constant
Description
The value used for specifying the packing alignment was not an integer constant.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

224

Example
#pragma pack(0.0) /* Error: expected an integer constant */
void main(){}

How to Fix
Ensure that the value supplied for align is a power of two. If align is omitted, the
default alignment is used.
Related Information
See also compiler documentation for pragmas.

cc0663
Compiler Error: invalid source file identifier string
Description
While processing a cached #pragma ident directive with syntax of #pragma ident
<string>, where <string> is meant to be a quoted character string, the compiler
found that <string> was not a quoted character string.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#pragma ident a_string /* Error: invalid source file identifier
string */
void main(){}

How to Fix
Refer to the description of the error above, and ensure that <string> is a quoted
character string.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0664
Compiler Error: a class template cannot be defined in a friend declaration
Description
A friend class template was defined within a class template.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example:
class A {
template<class T> friend class B {}; /* Error: a class template
cannot be defined in a
friend declaration */
};
void main(){}

225

How to Fix
A friend class template may not be defined in a class or class template. Remove the
definition of the offending friend class template and define it in global scope.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.3)

cc0666
Compiler Error: "asm" must be used with a function definition
Description
The "asm" keyword was used outside the context of a function definition.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove asm or use it within the function body.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0668
Compiler Error: ellipsis with no explicit parameters is nonstandard
Description
An ellipsis with no explicit parameters was encountered by the compiler. This
condition is an extension in C, and it is supported only in SVR4 C mode and in strict
(compiling with the -strict command line option) mode.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced with the C/C++ Compiler: SHARC version 6.1.0, as
SVR4 C mode is not supported.
How to Fix
Ensure that ellipsis without explicit parameters are not used.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0672
Compiler Warning: temporary used for initial value of reference to const
volatile (anachronism)

226

Description
A reference to non-const or to const volatile is initialized in a way that requires a
temporary. In the current compiler version, this condition is allowed as an
anachronism and only a warning is issued.
Severity
Warning
Recovery
The compiler warns about the anachronism and compilation continues.
Example
struct S {
S(){}
} s;
struct T {
T(){}
operator S()
{
return s;
}
} t;
const volatile S& rs = t; /* Warning: temporary used for initial value
of reference to const volatile
(anachronism) */
void main(){}

How to Fix
Do not use a temporary as an initial value of reference to non-const or const volatile.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0673
Compiler Error: a reference of type "type" cannot be initialized with a value
of type "type"
Description
A temporary was used during the binding a reference to non-const. This use is
allowed as an anachronism, and only a warning (number 0672) is issued during
compilation in normal mode. This error is issued only when you compile in strict
(with the -strict command line option) or pedantic (with the -pedantic command
line option) mode.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
S(){}
} s;
struct T {
T(){}
operator S()

227

{
return s; // returns an rvalue
}
} t;
const volatile S& rs = t; /* Error: a reference of type "const volatile
dm S &dm" cannot be initialized with a
value of type "dm T" const volatile
S& rs = t; */
void main(){}

How to Fix
Do not use a temporary as an initial value of reference to non-const or const volatile.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0674
Compiler Error: initial value of reference to const volatile must be an lvalue
Description
The initial value of a reference to const volatile was an rvalue. This error is issued
only in strict (compiling with the -strict compile line option) or pedantic (compiling
with the -pedantic compile line option) mode.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
volatile char ch ='A';
void main()
{
const volatile float& r = (float)ch; /* Error: initial value of
reference to const volatile
must be an lvalue */
if( (int) r) { } /* suppress warning */
}

How to Fix
Ensure that the initial value of reference to const volatile is an lvalue. Replace the
offending rvalue with an lvalue.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0678
Compiler Error: call of entity-kind "entity" (declared at line xxxx) cannot be
inlined
Description
The compiler failed to inline a routine, as it could not be inlined in the current case.
The inline mechanism in the C/C++ Compiler : SHARC version 6.1.0 has been
disabled.
228

Severity
Remark
Recovery
The compiler issues the inlining failure diagnostic and compilation continues.
Example
This error cannot be reproduced, as the inline mechanism is disabled in this version
of the compiler.
How to Fix
Do not declare the offending routine inline.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0679
Compiler Error: entity-kind "entity" cannot be inlined
Description
The current routine cannot be inlined.
The inline mechanism in the C/C++ Compiler : SHARC version 6.1.0 has been
disabled.
Severity
Remark
Recovery
The compiler issues the remark and compilation continues.
Example
This error cannot be reproduced, as the inline mechanism is disabled in this version
of the compiler.
How to Fix
Do not declare the offending routine inline.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0682
Compiler Error: a __leave statement may only be used within a __try
Description
A __leave statement was used outside of a try block. The __leave statement is a
Microsoft extension to the C++ language, and the C/C++ Compiler : SHARC version
6.1.0 does not include support for Microsoft extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

229

This error cannot be reproduced as Microsoft extensions are not supported with this
compiler version.
How to Fix
The __leave statement can be used only inside a try block to leave a try-finally. The
syntax is: __leave;
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0691
Compiler Error: entity-kind "entity", required for copy that was eliminated,
is inaccessible
Description
The copy constructor for a copy that was eliminated is inaccessible. This message is
issued only when you compile in strict mode (compiling with the -strict command
line option).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the copy constructor is accessible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0692
Compiler Error: entity-kind "entity", required for copy that was eliminated,
is not callable because reference parameter cannot be bound to rvalue
Description
The copy constructor required for copy that was eliminated is not callable because
the reference parameter cannot be bound to rvalue. This message is issued only
when you compile in strict mode (compiling with the -strict command line option).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the copy constructor is callable.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

230

cc0693
Compiler Error: <typeinfo> must be included before typeid is used
Description
The typeid is not valid, as the type_info type has not been defined in the header file.
The C/C++ Compiler : SHARC version 6.1.0 does not support typeid.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
int *n;
typeid(n);
}

How to Fix
Include the <typeinfo> header file prior to the use of typeid.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.8)

cc0694
Compiler Error: xxxx cannot cast away const or other type qualifiers
Description
A cast (reinterpret_cast, dynamic_cast or static_cast) casts away constness, which
means that the cast drops qualifiers.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int s;
};
S os;
S *volatile vps = &os;
void main()
{
reinterpret_cast<S**>(&vps); /* reinterpret_cast cannot cast away
const or other type qualifiers */
}

How to Fix
The reinterpret_cast, dynamic_cast, and static_cast operators are not allowed to
throw away constness. Determine whether this rule is being violated. For instance, in
the example above the cast from X *volatile * to X** casts away constness since no
implicit conversion from int *volatile * to int** occurs.
Related Information

231

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.10, 5.2.11, 5.2.7 )

cc0695
Compiler Error: the type in a dynamic_cast must be a pointer or reference to
a complete type or void*
Description
In an expression dynamic_cast<T>(v), T is not a pointer to a complete class type or
to void. The C/C++ Compiler : SHARC version 6.1.0 does not support dynamic cast.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int i;
virtual void func() {}
};
void main()
{
S s;
int &j = dynamic_cast<int&>(s); /* Error: The type in dynamic_cast
must be a pointer or a reference
to a complete type, or void* */
j++; /* suppresses warning */
}

How to Fix
Ensure that the type in the dynamic_cast is a pointer or reference to a complete class
type or a pointer to void.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7)

cc0696
Compiler Error: the operand of a pointer dynamic_cast must be a pointer to
a complete class type
Description
In an expression dynamic_cast<T>(v), where T is a pointer type, v is not an rvalue
of a pointer to complete class type.
The C/C++ Compiler : SHARC version 6.1.0 does not support dynamic cast.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {};

232

S s;
S &rs = s;
void main()
{
S *ps = dynamic_cast<S*>(rs); /* Error: the operand of a pointer
dynamic_cast is not a pointer to a
complete class type */
ps++; /* suppresses warning */
}

How to Fix
If the expression used is of type dynamic_cast<T>(v), where T is a pointer type,
ensure that v is an rvalue of a pointer to a complete class type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7)

cc0697
Compiler Error: the operand of a reference dynamic_cast must be an lvalue
of a complete class type
Description
In an expression dynamic_cast<T>(v), where T is a reference type, v is not an
lvalue of a complete class type.
The C/C++ Compiler : SHARC version 6.1.0 does not support dynamic cast.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int i;
};
S s;
S *ps = &s;
void main()
{
S &rs = dynamic_cast<S&>(ps); /* Error: the operand of a reference
dynamic_cast is not an lvalue of a
complete class type */
rs.i++; /* suppresses warning */
}

How to Fix
If the expression used is of type dynamic_cast<T>(v), where T is a reference type,
ensure that v is an lvalue of a complete class type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7)

cc0698
Compiler Error: the operand of a runtime dynamic_cast must have a
233

polymorphic class type


Description
In an expression dynamic_cast<T>(v), where the dynamic cast was done at runtime, v
was not a "pointer to" or an lvalue of a polymorphic type.
The C/C++ Compiler : SHARC version 6.1.0 does not support dynamic cast.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
int p;
};
class B
{
public:
int p;
};
main()
{
A *n;
dynamic_cast<B *>(n);
}

How to Fix
If the expression used is of type dynamic_cast<T>(v) and the dynamic cast was done
at runtime, then ensure that v is a "pointer to" or an lvalue of a polymorphic type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7)

cc0701
Compiler Error: an array type is not allowed here
Description
The declarator in a condition statement specified an array, a malformed condition
declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
if (int array[1] = {1}) /* Error: an array type is not allowed
here */
{
array[0]++; /* suppresses warning */
}

234

How to Fix
In a condition statement the declarator must not specify an array. Replace the
offending declarator with a declarator that does not specify an array or a function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4)

cc0702
Compiler Error: expected an "="
Description
A name introduced by a declaration in a condition was not initialized.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
if (int i) {} /* Error: expected an "=" */
}

How to Fix
The syntax for the condition explicitly requires the "= expr" syntax for initialization.
Provide initialization for the offending condition declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4)

cc0703
Compiler Error: expected a declarator in condition declaration
Description
The declarator in a condition statement is missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
if (int) {}
}

How to Fix
Provide a declarator for the offending condition declaration and initialize it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4)

235

cc0704
Compiler Error: "xxxx", declared in condition, may not be redeclared in this
scope
Description
The name of the variable declared in a condition was redeclared in the outermost
block of a substatement controlled by the condition.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main(){
if (int i = 0) {
int i; /* Error: "i", declared in condition, may not be redeclared
in this scope*/
i = 0; i++; /* suppress warnings */
}
}

How to Fix
A name declared by a declaration in a condition is in scope from its point of
declaration until the end of the substatements controlled by the condition. Therefore,
it cannot be redeclared in the outermost block of a substatement controlled by the
condition. Remove the offending declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4)

cc0705
Compiler Error: default template arguments are not allowed for function
templates
Description
A default template argument was specified in a function template declaration or in a
function template definition.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T=int> void func(T) {} /* Error: default template
arguments are not allowed
for function templates */
void main() {}

How to Fix
Remove the offending default templated argument(s) from the function template
declaration or function template definition.
Related Information

236

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0706
Compiler Error: expected a "," or ">"
Description
A template parameter list was terminated unexpectedly. The ">" sign needed to
terminate the parameter list was missing.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T, int size = 10;
void main(){}

How to Fix
Terminate the template parameter list correctly either by inserting a comma followed
by another parameter and then terminating the parameter list with a ">" sign or by
terminating the parameter list with a ">" sign.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0708
Compiler Warning: incremented bool value is deprecated
Description
A "++" was encountered on a bool variable. This operator is allowed but the bool
value is deprecated.
Severity
Warning
Recovery
The compiler issues the warning, the value of the variable is set to true, compilation
continues.
Example
bool b = false;
void main()
{
b++;
}

How to Fix
Do not use the increment operation on bool variables, as it is not guaranteed to be
part of future editions of the standard.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

237

ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.6)

cc0709
Compiler Error: bool type is not allowed
Description
A "--" was encountered on a bool variable. This operator is not allowed.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
bool b = false;
void main()
{
b--;
}

How to Fix
The operand of decrement cannot be of type bool. Remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.6)

cc0711
Compiler Error: expression must have bool type (or be convertible to bool)
Description
A Boolean controlling expression was not of bool type or of type convertible to bool.
This error is applicable when "bool" is enabled.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
int j = 5 ;
(void(j++)) ? j++ : j-- ; /* Error: a void expression was used as
the first operand of the ?: operator.
expression must have bool type (or be
convertible to bool) */
j++; /* suppresses warning */
}

How to Fix
Replace the offending expression with an expression of bool type or with an
expression that is convertible to bool.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

238

ISO/IEC 14882:1998 "Programming Languages - C++" (5.16)

cc0713
Compiler Error: entity-kind "entity" is not a variable name
Description
This error is applicable only when Microsoft mode is enabled. The name referred to is
not a variable name.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error be reproduced only when Microsoft mode is enabled.
How to Fix
Ensure that the name referred to is a variable.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0714
Compiler Error: __based modifier is not allowed here
Description
The Microsoft __based modifier is not allowed in the indicated position. This error is
applicable only when Microsoft mode is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error can be reproduced only when Microsoft mode is enabled.
How to Fix
Remove the offending statement containing the __based modifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0716
Compiler Error: variable in __based modifier must have pointer type

239

Description
The variable in a __based modifier is not of pointer type. This error is applicable only
when Microsoft mode is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This diagnostic can be reproduced only when Microsoft mode is enabled.
How to Fix
Ensure that the variable in a __based modifier is of pointer type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0717
Compiler Error: the type in a const_cast must be a pointer, reference, or
pointer to member to an object type
Description
The type 'cast to' using a const_cast is not a pointer, reference, or pointer member
to an object type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int s;
S() : s(1) {}
};
volatile S vos;
S os;
void main()
{
vos = const_cast<volatile S>(os);
}

How to Fix
Ensure that the type 'cast to' is a pointer, reference, or pointer to member to an
object type. As an alternative, you can remove the offending const_cast statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.11)

cc0718
240

Compiler Error: a const_cast can only adjust type qualifiers; it cannot


change the underlying type
Description
A const_cast is attempting to change the underlying type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S{} os;
S* ps;
S func() { return S(); }
S (*pfunc)() = &func;
void main()
{
ps = const_cast<S*>(pfunc);
}

How to Fix
Ensure that the const_cast adjusts only the type qualifiers. It must not attempt to
change the underlying type. As an alternative, you can remove the offending
const_cast statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.11)

cc0719
Compiler Error: mutable is not allowed
Description
The "mutable" storage specifier was used on something other than a nonstatic data
member declaration. The error is also issued when "mutable" and top-level "const"
are used together. This error is C++ specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
float mutable var = 1;
void main() {}

How to Fix
Remove the offending "mutable" specifier from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0724
241

Compiler Error: namespace definition is not allowed


Description
A namespace definition can occur only in the global or a namespace scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
namespace N; /* Error: namespace definition is not allowed */
}

How to Fix
Move the offending declaration to the global or a namespace scope, or remove the
declaration from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.1)

cc0725
Compiler Error: name must be a namespace name
Description
In a namespace alias definition, the name to the right of the "=" is not a namespace
name, or nothing is to the right of the "=".
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main ()
{
namespace alias = N; /* Error: name "N" must be a namespace name */
}

How to Fix
Ensure that the name to the right of the "=" is a namespace name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.6)

cc0727
Compiler Error: namespace-qualified name is required
Description
An unqualified name was used in a "using" declaration. A "using" declaration requires
a namespace-qualified name.

242

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace N {
struct M{};
}
namespace M {
using N::M;
using M; /* Error: namespace-qualified name is required, M is not
a namespace qualified name. */
}
void main() {}

How to Fix
Replace the offending unqualified name with a namespace-qualified name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.6)

cc0728
Compiler Error: a namespace name is not allowed
Description
A namespace name was used in circumstances where the use of namespaces is
forbidden.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example:
namespace N {
namespace M { int i; }
}
namespace Z {
using N::M; /* Error: The using declaration must introduce a name,
it cannot introduce a declarative region. */
}
void main() {}

How to Fix
Replace the offending namespace name with a name that is not a namespace, or
remove the offending declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0731
Compiler Error: array with incomplete element type is non-standard

243

Description
This message reports an array of incomplete class type or an array of incomplete
enum type. This array is legal in C++ and is allowed as an extension in C, with an
error being issued only in strict (compiling with the -strict compile line option)
mode. If the class or enum type is completed later, the array becomes complete.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct A;
struct A array[2];
struct A {
int i;
};
void main(){
}

How to Fix
An array of incomplete class or enum type is allowed as an extension in C. If you
intend to compile in strict mode, ensure that arrays of incomplete class type or enum
type are not present in the source files.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0732
Compiler Error: allocation operator may not be declared in namespace
Description
An operator declaration "new" or "new[]" either appears inside a namespace, or has
the effect of injecting a declaration into a namespace.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
#include <iostream.h>
namespace N {
void *operator new[](size_t size);
}
void main() {}

How to Fix
Ensure that the operators new and new[] do not appear inside a namespace.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3.1)

244

cc0733
Compiler Error: deallocation operator may not be declared in namespace
Description
An operator declaration "delete" or "delete[]" either appears inside a namespace, or
has the effect of injecting a declaration into a namespace.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace N {
void operator delete(void *);
}
void main(){}

How to Fix
Ensure that the operators delete and delete[] do not appear inside a namespace.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3.2)

cc0734
Compiler Error: entity-kind "entity" conflicts with using declaration of
entity-kind "entity"
Description
A local function declaration has the same name and type as a function introduced by
a "using" declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace N{
typedef int CHAR;
void func(CHAR) {}
}
using N::func;
void func(int) ; /* Error: function "func(dm int)" conflicts with
using-declaration of function "N::func(dm N::CHAR)"
*/
void main() {}

How to Fix
A local function declaration cannot have the same name and type as a function
introduced by a "using" declaration. Change or remove one of the conflicting function
declarations.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

245

ISO/IEC 14882:1998 "Programming Languages - C++" (13.1)

cc0735
Compiler Error: using-declaration of entity-kind "entity" conflicts with
entity-kind "entity" (declared at line xxxx)
Description
A function declaration in block scope or namespace scope has the same name and
the same parameter types as a function introduced by a using-declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
friend void func(){}
};
namespace N {
void func() {}
}
using N::func; /* Error: using-declaration of function "N::func()"
conflicts with function "func()" (declared at line 2)
*/
void main(){}

How to Fix
A function declaration in namespace scope or block scope cannot have the same
name and the same parameter type(s) as a function introduced by a usingdeclaration. Change or remove one of the conflicting function declarations.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.3)

cc0738
Compiler Error: a class-qualified name is required
Description
The compiler expected to find a class-qualified name at the current location.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example:
class A
{
void func();
};
class B : public A
{
using A; /* Error: a class-qualified name is required */

246

};
void main() {}

How to Fix
Ensure that the current identifier is a qualified name and that the qualifier is a base
class of the current class.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.3)

cc0742
Compiler Error: entity-kind "entity" has no actual member "xxxx"
Description
No such member is directly declared in the specified scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace N {
namespace M {
void test();
}
using namespace M;
}
void N::test() {} /* namespace "N" has no actual member "test" */
void main () {}

How to Fix
Ensure that such member exists in the specified scope.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.3.5, 7.3.4)

cc0744
Compiler Error: incompatible memory attributes specified
Description
Near and far specifications are incompatible. This diagnostic is only applicable when
support for near and far extensions are enabled (for example, in Microsoft 16-bit
mode).
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

247

This error cannot be reproduced with support for near and far extensions disabled.
How to Fix
Ensure that all near and far specifications are compatible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0745
Compiler Warning: memory attributes ignored
Description
Qualifiers (because of MSVC++ 2.0 compatibility, near/far is present, or both) still
exist. Either they are returned to the caller, if appropriate, or a warning is issued to
report that they are being ignored.
This diagnostic is applicable only when Microsoft mode is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Warning
Recovery
The compiler ignores the remaining qualifiers and compilation continues.
Example
This error cannot be reproduced with support for Microsoft mode disabled.
How to Fix
Remove the remaining qualifiers from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0746
Compiler Error: memory attribute may not be followed by a nested
declarator
Description
This diagnostic indicates constructs such as int far (*p). It is applicable only when
Microsoft mode is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced with support for Microsoft mode disabled.
How to Fix

248

Remove the offending construct.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0747
Compiler Warning: memory attribute specified more than once
Description
The repetition of near or far reported by this diagnostic is applicable only when
support for near and far extensions are enabled (for example, in Microsoft 16-bit
mode).
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
This error cannot be reproduced with support for near and far extensions disabled.
How to Fix
Remove the repetitive near or far specifications.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0748
Compiler Warning: calling convention specified more than once
Description
The new and old calling conventions are the same. This diagnostic is applicable only
when Microsoft mode is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
This error cannot be reproduced with support for Microsoft mode disabled.
How to Fix
Remove the duplicate calling convention from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

249

cc0749
Compiler Error: a type qualifier is not allowed
Description
This error applies to top level declarations like "int x[restrict 5]" or "int
y[restrict]" where another type qualifier was used instead of restrict.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
int a[const 5]; /* Error: a type qualifier is not allowed */
void main() {}

How to Fix
Replace the offending type qualifier with "restrict" or remove it from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0751
Compiler Error: static and nonstatic member functions with same parameter
types cannot be overloaded
Description
You overloaded a static and nonstatic member function whose parameter types are
the same.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
A() {}
int func() const { return 1; }
static int func() { return 0; }
};
void main() {}

How to Fix
Ensure that member function declarations are not overloaded when they have the
same name and the same parameter types and one of them is a static member
function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.1)

cc0752
250

Compiler Error: no prior declaration of entity-type "entity"


Description
This diagnostic reports an out of scope definition of a namespace template function.
No prior declaration exists.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace N {
template <class T> void f(T);
void f(int);
}
void N::f(int) {} /* OK */
void N::f(double) {} /* Error: no prior declaration of function
"N::f(T) [with T=dm double]" */
void main(){}

How to Fix
Ensure that a prior declaration of the function exists.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.8.1)

cc0753
Compiler Error: a template-id is not allowed
Description
A template-id of the form "template-name<template-args>" appears in a using
declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
template <class T> void func(T);
template <class T> struct S { };
};
class B : public A {
public:
using A::func<double>; /* Error: a template-id is not allowed */
using A::S<int>; /* Error: a template-id is not allowed */
};
void main(){}

How to Fix
Ensure that the offending using declaration does not name a template id.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

251

ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.3)

cc0754
Compiler Error: a class-qualified name is not allowed
Description
A class qualified name appears in a using declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
private:
int Num;
};
int main(){
using A::Num; /* Error: a class-qualified name is not allowed */
}

How to Fix
Ensure that a using declaration for a class member is a member declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.3)

cc0755
Compiler Error: entity-kind "entity" may not be redeclared in the current
scope
Description
A member template is being defined in a scope that does not enclose the scope in
which the parent class was defined.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T> class Vector
{
template<class T> class Vector <T*>{}; /* Error: class "Vector<T *>"
may not be redeclared in
the current scope */
};
void main(){}

How to Fix
Try to fix the declaration by referring to a C++ reference manual.

252

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0756
Compiler Error: qualified name is not allowed in namespace member
declaration
Description
If a namespace-qualified name that refers to the current namespace was found in a
definition, this error is fatal. If the declarator name is qualified by the current
namespace, this error is discretionary.
Severity
Fatal error
Discretionary error
Recovery
The compiler cannot recover from this error.
Example
namespace N {
template <class T> void N::f(T); /* Fatal error */
}
void main() {}
namespace A
{
int A::A = 5; /* Discretionary error */
}
void main() {}

How to Fix
Ensure that no namespace-qualified names that refer to the current namespace are
used in definitions.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.4.3.2)

cc0757
Compiler Error: entity-kind "entity" is not a type name
Description
The symbol used is not a type name. A specialization of a template is instantiated for
a set of template arguments, in such a way that the qualified name prefixed by
typename does not denote a type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {};
template <class T> class B {

253

public:
int I;
void func()
{
typename B<T>::I* a; /* Error: member "B<T>::I [with T=int]" is
not a type name */
if (&a) { } /* suppresses warning */
}
};
void main()
{
B<int> b;
b.func();
}

How to Fix
Replace the offending symbol with one that denotes a typename.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.6)

cc0758
Compiler Error: explicit instantiation is not allowed in the current scope
Description
This error is generated under any of the following conditions:
An explicit instantiation of a class or function template specialization was not
placed within the same namespace as the template definition.
An explicit instantiation for a member of a class template was not placed in
the namespace where the enclosing class template is defined.
An explicit instantiation for a member template was not placed in the
namespace where the enclosing class or class template is defined.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> struct S {};
void main()
{
template struct S<int>;
}

How to Fix
Place an explicit instantiation of a class or function template specialization in the
namespace in which the template is defined.
Place an explicit instantiation for a member of a class template in the namespace
where the enclosing class template is defined.
Place an explicit instantiation for a member template in the same namespace where
the enclosing class or class template is defined.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

254

ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.2)

cc0759
Compiler Error: entity-kind "entity" cannot be explicitly instantiated in the
current scope
Description
A definition of a class template or a class member template is not in scope at the
point of the explicit instantiation of the class template or class member template.
Severity
Error, discretionary
Recovery
The compiler issues the error and notes that instantiation is not yet complete. Then
compilation continues.
Example
template <class T> struct S{};
namespace N
{
template struct S<int>; /* Error: class "X<int>" cannot be
explicitly instantiated in the current
scope */
}
void main() {}

How to Fix
Ensure that the explicit instantiation is done in a namespace that is or contains the
namespace where the template was declared.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.2)

cc0760
Compiler Errors: entity-kind "entity" explicitly instantiated more than once
Description
A template was instantiated more than once through explicit instantiation.
Severity
Discretionary error
Recovery
The compiler issues the diagnostic and compilation continues.
Example
template<class T> class A { void func(); };
template class A<int>;
template class A<int>; /* function "A<T>::func [with T=int]"
explicitly instantiated more than once */
void main(){}

How to Fix

255

A template cannot be explicitly instantiated more than once. Remove the extra
instantiation statements from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7)

cc0761
Compiler Error: typename may only be used within a template
Description
The typename keyword was used outside of a template.
Severity
Error, discretionary
Recovery
The compiler issues the error and compilation continues.
Example
class A
{
public:
int I;
};
typename A::I;
void main() {}

How to Fix
Ensure that the typename keyword is used only in template definitions and
declarations.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.6)

cc0769
Compiler Error: "entity", implicitly called from entity-kind "entity", is
ambiguous
Description
An ambiguous call to operator delete() function occurred. This diagnostic is issued
only if the destructor is virtual.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct B {
virtual ~B() {}
void operator delete(void* pv) { }
};
struct A {

256

virtual ~A() {}
void operator delete(void* pv) { }
};
struct D : A, B{
virtual ~D() {}
};
void main()
{
B *b = new D;
delete b; /* Error: "D::operator delete", implicitly called from
function "D::~D() dm", is ambiguous */
}

How to Fix
Resolve the ambiguity by ensuring that only one operator delete() function is
applicable in the current case.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.5)

cc0771
Compiler Error: "explicit" is not allowed
Description
Illegal usage of the explicit specifier.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
explicit int i;
A(int j) : i(j) {}
};
void main() {}

How to Fix
Use only the explicit specifier in declarations of constructors within a class
declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.2, 12.3.1)

cc0772
Compiler Error: declaration conflicts with "xxxx" (reserved class name)
Description
The declaration conflicts with the reserved class name "type_info".
Severity
Fatal error

257

Recovery
The compiler cannot recover from this error.
Example
namespace std {
class type_info; /* declaration conflicts with "std::type_info"
(reserved class name) */
}
void main(){}

How to Fix
Rename the variable in the declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0774
Compiler Error: "virtual" is not allowed in a function template declaration
Description
A member function template was declared virtual.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T> struct A
{
template <class C> virtual void g(C);
};
void main(){}

How to Fix
A member function template cannot be declared virtual. Either remove the offending
member function declaration or make it non-virtual.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.2)

cc0775
Compiler Error: invalid anonymous union -- class member template is not
allowed
Description
Declaration of the template class is not allowed in an anonymous union.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

258

Example
union{
template <class T> class X{
T obj;
};
int a;
};

How to Fix
Declare the template outside the anonymous union.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0777
Compiler Error: this declaration cannot have multiple "template<...>"
clauses
Description
A class template declaration is not a friend, but it has multiple template parameter
lists.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T>
template <class U>
struct A {}; /* Error: this declaration cannot have multiple
"template <...>" clauses */
void main(){}

How to Fix
A declaration with more than one template parameter clause is valid only in a
namespace scope definition of a member template or in a friend declaration. Remove
the extra template parameter list(s).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0779
Compiler Error: "xxxx", declared in for-loop initialization, may not be
redeclared in this scope
Description
The name of the variable declared in a for-init statement, or in the condition of if,
while, for, and switch statements was redeclared in a subsequent condition of that
statement or in the outermost block of the controlled statement.
Severity

259

Fatal error
Recovery
The compiler cannot recover from this error.
Example:
int j = 5;
void main()
{
for(int i = 0; i < 5; i++)
{
int i = j; /* Error : i cannot be redeclared here */
if ( &i ) ;
}
}

How to Fix
Remove the offending redeclaration from the source file. Names declared in the forinit statement, and in the condition of if, while, for, and switch statements are local
to the if, while, for, or switch statement. They cannot be redeclared in a subsequent
condition of that statement nor in the outermost block (or, for the if statement, any
of the outermost blocks) of the controlled statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.3.2)

cc0782
Compiler Error: definition of virtual entity-kind "entity" is required here
Description
An undefined virtual member function in an unnamed class, or in a named class that
is nested in an unnamed class, was not defined at the point of declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct{
virtual void func(); /* Error: definition of virtual function
"<unnamed>::func" is required here */
} a;
void main(){}

How to Fix
The function cannot be defined later, as it is impossible to name it. Define the
function at the point of declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0784
Compiler Error: a storage class is not allowed in a friend declaration

260

Description
A storage class was specified in a friend declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
A() {}
typedef friend int func();
};
void main() {}

How to Fix
A storage class specifier cannot be used in a friend declaration. Remove the
offending storage class specifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (11.4)

cc0787
Compiler Error: not a valid member class or function template declaration
Description
The function declarator on a member template declaration is missing, or the
declaration of a member template is invalid.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T> class A
{
public:
template<class T2> int (const T2&);
};
void main(){}

How to Fix
Supply the missing function declarator at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0788
Compiler Error: a template declaration containing a template parameter list

261

may not be followed by an explicit specialization declaration


Description
A template declaration containing a template parameter list was followed by an
explicit specialization declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T1>
class A {
public:
template<class T2>
class B {
public:
void func() {}
};
};
template<class Y> template<> /* Error: a template declaration
containing a template parameter list
may not be followed by an explicit
specialization declaration */
void func() {}
void main() {}

How to Fix
Ensure that an explicit specialization declaration does not follow a template
declaration containing a template parameter list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.3)

cc0790
Compiler Error: explicit specialization is not allowed in the current scope
Description
A template explicit specialization was declared outside of namespace scope.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T>
void func(T) {}
struct S
{
template<> void func(int); /* Error: */
};
void main() {}

How to Fix

262

A specialization declaration is permitted only in a namespace scope. Remove the


offending specialization from its current position in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.3)

cc0791
Compiler Error: partial specialization of entity-kind "entity" is not allowed
Description
Partial specialization cannot be applied to this particular entity.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example:
template<class T1>
class A
{
public:
template<class T2>
class B
{
public:
void mf1() {}
};
};
template<class Y> template<>
void A<Y>::B<double>::mf1() {} /* Error: partial specialization of
nontype "A<T1>::B<T2>::mf1
[with T2=double]" is not allowed */
void main() {}

How to Fix
Remove the offending partial specialization from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.4)

cc0792
Compiler Error: entity-kind "entity" is not an entity that can be explicitly
specialized
Description
The compiler encountered explicit specialization on an entity that cannot be explicitly
specialized.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

263

Example
template <> class B; /* Error: class "B" is not an entity that can be
explicitly specialized */
void main(){}

How to Fix
Ensure that explicit specialization of the entity is possible, or remove the offending
specialization from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0793
Compiler Error: explicit specialization of entity-kind "entity" must precede
its first use
Description
An explicit specialization was not declared before its first use.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T>
class A {};
A<int> ox;
template<>
class A<int> {}; /* Error: explicit specialization of class "A<int>"
must precede its first use */
void main() {}

How to Fix
Ensure that the offending explicit specialization is declared before its first use.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.3)

cc0794
Compiler Error: template parameter xxxx may not be used in an elaborated
type specifier
Description
An elaborated type specifier contains a template type parameter as the identifier.
Severity
Warning
Fatal error in strict mode (compiling with the -strict command line option)
Recovery
If a warning is indicated, the compiler issues the warning and compilation continues.
If a fatal error is indicated, the compiler cannot recover.
264

Example
class A {};
template <class T> class B { class T x; }; /* Error: template
parameter T may not be
used in an elaborated
type specifier */
B<A> b;
void main(){}

How to Fix
Ensure that template type parameters are not used as the identifiers in elaborated
type specifiers.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C".
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.5.3)

cc0800
Compiler Error: this declaration may not have extern "C" linkage
Description
A template, a template explicit specialization, or a class template partial
specialization has "C" linkage.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
extern "C" {
template<class T> /* Error: this declaration may not have extern "C"
linkage */
class A {};
}
void main() {}

How to Fix
Ensure that templates, template explicit specializations, or class template partial
specializations do not have "C" linkage.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14)

cc0801
Compiler Error: "xxxx" is not a class or function template name in the
current scope
Description
An explicit specialization was declared outside of the namespace of which the
template is a member, or for member templates outside the namespace of which the
enclosing class or the enclosing class template is a member. The error also applies
when an explicit specialization of a member function, member class, or static data
member of a class template is declared outside the namespace of which the class

265

template is a member.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
namespace N
{
template <class T>
void func(T*);
}
template<>
void func(int*); /* Error: "func" is not a class or function template
name in the current scope */
void main() {}

How to Fix
Ensure that the offending explicit specialization is declared inside the correct
namespace.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.7.3)

cc0802
Compiler Error: specifying a default argument when redeclaring an
unreferenced function template is nonstandard
Description
A default argument was specified when a function template to which there was no
reference was redeclared.
Severity
Warning
Fatal error, in strict mode (compiling with the -strict command-line option)
Recovery
If a warning is indicated, the compiler issues the warning and compilation continues.
If a fatal error is indicated, the compiler cannot recover.
Example
template <class T>
void func (T*, T);
template <class T>
void func (T*, T = 1) {} /* Error: specifying a default argument when
redeclaring an unreferenced function
template is nonstandard */
void main() {}

How to Fix
Remove the offending default argument from the function template redeclaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

266

cc0803
Compiler Error: specifying a default argument when redeclaring an already
referenced function template is not allowed
Description
A default argument was specified when a function template that was already referred
to was redeclared.
Severity
Fatal error
Recovery
The compiler cannot recover from the error.
Example
template <class
void func1 (T*,
void func2()
{
int i = 1;
func1 (&i, i);
}
template <class
void func1 (T*,
void main() {}

T>
T);

T>
T = 1) {} /* Error: */

How to Fix
Remove the offending default argument from the function template redeclaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.1)

cc0804
Compiler Error: cannot convert pointer to member of base class "type" to
pointer to member of derived class "type" -- base class virtual
Description
You are trying to convert a pointer-to-member of a base class to a pointer-tomember of a derived class when the base class is virtual.
Severity
Fatal error
Recovery
The compiler cannot recover from the error.
Example
class A
{
public:
int num;
};
class B : virtual public A {};
int B::*pmb = &A :: num;
void main() {}

How to Fix

267

Converting a pointer to member of a base class to a pointer to member of a derived


class is possible only when the base class is not inaccessible, ambiguous, or virtual.
Remove the offending illegal statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (4.11)

cc0810
Compiler Error: uninitialized base class "type" has a const member
Description
An uninitialized base class has a const member.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
const int i;
};
class B : public A
{
B(int x)
{
}
};
void main(){}

How to Fix
Initialize the offending base class or ensure that it does not contain any const
members.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0811
Compiler Error: const entity-type "entity" requires an initializer -- class
"type" has no explicitly declared default constructor
Description
A const class variable with no explicitly declared default constructor was not
initialized.
Severity
Fatal error

268

Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
A& operator = (A&);
};
void main(){
A a;
const A a1; /* Error: const variable "a1" requires an initializer -class "A" has no explicitly declared default
constructor */
}

How to Fix
Ensure that the offending const class variable is initialized.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.15.1)

cc0812
Compiler Error: const object requires an initializer -- class "type" has no
explicitly declared default constructor
Description
The initializer was omitted on a "new" of a const class object when the default
constructor of the class was not explicitly declared.
Severity
Error, discretionary in strict mode
Warning, if an empty class
Recovery
The compiler issues the diagnostic and compilation continues.
Example
struct S {
int i;
};
void main()
{
const S *s = new const S;
s++; /* suppresses warnings */
}

How to Fix
If the initializer is omitted on a "new" of a const class object, ensure that the default
constructor is explicitly declared (it cannot be implicit).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.4, p. 15)

cc0815
269

Compiler Error: type qualifier on return type is meaningless


Description
Inside a template instantiation the type qualifier is sometimes useless, though
generally not, for some instantiations. In such cases a remark is issued when you
compile with the -Wremarks command line option. This diagnostic is also issued as a
warning in circumstances when the type qualifier on a particular return type is
meaningless.
Severity
Remark, when you compile with the -Wremarks command line option
Warning, when the type qualifier on a particular return type is meaningless
Recovery
The compiler issues the diagnostic, ignores the meaningless type qualifier and
compilation continues.
Example
template <class T> struct S {
const T func();
};
struct T {};
S<int> s; /* Remark - S<int>::func returns const int (useless) */
void main(){}
As a warning:
class A
{
public:
int i;
A():i(10){}
const int X(int j); /* Warning: type qualifier on return type is
meaningless.
};
void main() {}

How to Fix
Remove the offending type qualifier from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0816
Compiler Error: in a function definition a type qualifier on a "void" return
type is not allowed
Description
A void return type on a function definition has a qualifier. This C-specific error is
issued only when you compile in strict mode (with the -strict compile line option).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void const func() {}

270

void main() {}

How to Fix
Remove the offending type qualifier from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0817
Compiler Error: static data member declaration is not allowed in this class
Description
A static data member was present in a local class, a union, an unnamed class, or a
class contained within an unnamed class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
union U
{
static int i;
};
void main() {}

How to Fix
Make the offending data member non-static or remove it from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.4.2, 9.5, 9.8)

cc0818
Compiler Error: template instantiation resulted in an invalid function
declaration
Description
A local type was used within a function declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void func()
{
struct S {};
void func(S); /* Error: use of a local type to declare a function */
}
void main(){}

How to Fix

271

Remove the local type from the function declaration.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0819
Compiler Error: "..." is not allowed
Description
Ellipsis was used in an old style parameter list. This error is C specific.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void f(i, ...) {}
int main(){ return 0; }

How to Fix
Ellipsis in an old style parameter list are not allowed. Remove the ellipsis.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0821
Compiler Error: extern inline entity-kind "entity" was referenced but not
defined
Description
An extern-inline function that was referenced was not defined.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T>
inline T func( T num ); /* Error: extern inline function
"func(T) [with T=int]" was referenced but
not defined */
void main(){
func(1);
}

How to Fix
Provide a definition for the offending function at the appropriate place in the source
file.
Related Information

272

ISO/IEC 9899:1990 "Programming Languages - C" ()


ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0822
Compiler Error: invalid destructor name for type "type"
Description
In a scenario where the notation "class-name :: ~ class-name" is used to name the
class destructor, the two class names do not refer to the same class.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
class B {
public:
int j;
B(int i) : j(i) {}
~B() {}
};
};
void main(){
A a;
a.A::~B(); /* Error: invalid destructor name for type "A" */
}

How to Fix
When you use the notation "class-name :: ~ class-name" to name a class destructor,
ensure that the two class names refer to the same class.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.1 p7)

cc0824
Compiler Error: "destructor reference is ambiguous -- both entity-kind
"entity" and entity-kind "entity" could be used"
Description
The destructor reference is ambiguous.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix

273

Edit the offending statement to remove ambiguity.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0825
Compiler Error: virtual inline entity-kind "entity" was never defined
Description
A non-local inline virtual function is not defined and referred to. This error occurs in
strict mode because being declared virtual counts as a use, and inline functions that
are used must be defined.
Severity
Discretionary error
Recovery
The compiler issues the diagnostic and compilation continues.
Example
class A
{
public:
virtual inline void clrdata(); /* virtual inline function
"A::clrdata" was never defined
*/
};
void main() {}

How to Fix
Provide a definition for the offending function at the appropriate place in the source
file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0827
Compiler Error: only one member of a union may be specified in a
constructor initializer list
Description
More than one member of a union was specified in a union constructor initializer list.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
union U
{
int i;

274

double d;
U() : i(1), d(6.78) {}
};
void main() {}

How to Fix
Remove the extra members of the union constructor initializer list and leave only one
member.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (12.6.2)

cc0828
Compiler Error: support for "new[]" and "delete[]" is disabled
Description
Overloading of operators "new[]" and "delete[]" is disallowed - compiling with the no-newvec command line option.
Severity
Fatal error
Recovery
The compiler issues the error if support for array new/delete is not enabled, but
continues parsing as though it were.
Example
#include <iostream.h>
class A
{
public:
void* operator new[]( size_t );
void operator delete[]( void* );
};
void main() {}

How to Fix
Enable the overloading of operators "new[]" and "delete[]" by compiling with the newvec command line option. In SHARC version 6.1.0, -newvec is enabled by default.
Related Information
Documentation for the -no-newvec and -newvec options
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0832
Compiler Error: no appropriate operator delete is visible
Description
No default operator delete is available for this class.

275

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S {
int s;
void operator delete (void* , int ) {}
};
void main()
{
S* ps = new S;
delete ps; /* Error: no appropriate operator delete is visible */
}

How to Fix
Provide an appropriate operator delete at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0833
Compiler Error: pointer or reference to incomplete type is not allowed
Description
The compiler encountered a pointer or reference to an incomplete type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending pointer or reference declaration from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0834
Compiler Error: invalid partial specialization -- entity-kind "entity" is
already fully specialized
Description
A partial specialization is invalid because a full specialization has already occurred.
Severity
Fatal error
Recovery

276

The compiler cannot recover from this error.


Example
template<class T>
class Y {};
template<class V>
class Y<int>{}; /* Error: invalid partial specialization -class "Y<int>" is already fully specialized */
void main(){}

How to Fix
Remove the offending partial specialization statement from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0835
Compiler Error: incompatible exception specifications
Description
A conversion failed because of a difference in exception specifications. SHARC
version 6.1.0 does not support exceptions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that concerned exception specifications are compatible.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (15.4)

cc0840
Compiler Error: a template argument list is not allowed in a declaration of a
primary template
Description
A template argument list was used in a declaration of a primary template.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T1, class T2, int I>
class A<T1, T2, I>; /* Error: a template argument list is not allowed
in a declaration of a primary template */

277

void main() {}

How to Fix
A template argument list cannot be specified in the declaration of a primary
template. Remove the offending argument list from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5)

cc0841
Compiler Error: partial specializations may not have default template
arguments
Description
The template parameter list of a partial specialization contains default template
argument values.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T1, class T2>
class S {};
template <class T = int>
class S<T, T*> {};
void main() {}

How to Fix
Remove the default template argument values from the template list of the
specialization.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.4)

cc0842
Compiler Error: entity-kind "entity" is not used in template argument list of
entity-kind "entity"
Description
A partially specialized non-type argument expression involves a template parameter
of the partial specialization, and the argument expression is not a simple identifier.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

278

template <int I, int J>


struct A {};
template <int I>
struct A<I+1, I*2> {}; /* Error: constant "I" is not used in template
argument list of class template
"A<<template-expr>, <template-expr>>" */
void main(){}

How to Fix
Ensure that partially specialized non-type argument expressions do not involve
template parameters of the partial specialization except when the argument
expression is a simple identifier.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.4)

cc0843
Compiler Error: the type of partial specialization template parameter entitykind "entity" depends on another template parameter
Description
The type of a partial specialization template parameter depends on another template
parameter.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Change the source code to ensure that the type of the offending partial specialization
template parameter does not depend on another template parameter.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0844
Compiler Errors: the template argument list of the partial specialization
includes a nontype argument whose type depends on a template parameter
Description
The type of a template argument of a partial specialization depends on a template
parameter. This error can occur when a value is used as a template argument of the
primary template whose type depends on another template parameter.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

279

Example
template <class T, T t>
struct A {};
template <class T>
struct A <T, 1>;
void main(){}

How to Fix
Ensure that the template argument list of the partial specialization does not contain
an argument whose value depends on a template parameter.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.4)

cc0845
Compiler Error: this partial specialization would have been used to
instantiate entity-kind "entity"
Description
Partial specialization would have occurred after an instantiation.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending partial specialization statement from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0846
Compiler Error: this partial specialization would have made the instantiation
of entity-kind "entity" ambiguous
Description
Partial specialization coming after an instantiation is ambiguous.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending partial specialization statement from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()

280

ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0847
Compiler Error: expression must have integral or enum type
Description
An expression is not of integral or enum type in circumstances when it must be that
type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
void main()
{
char *c="hello"+"world";
c++; /* suppresses warning */
}

How to Fix
Replace the offending expression with an expression of integral or enum type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0848
Compiler Error: expression must have arithmetic or enum type
Description
An expression is not of arithmetic or enum type in circumstances when it must be
that type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
struct S
{
int s;
S() : s(2) {}
};
void main()
{
int i = 3;
int &r = i;

281

S s;
S& rs = s;
(i>1) ? r : rs; /* Error: expression must have arithmetic or
enum type */
/*
suppress warnings
*/
i++;
r++;
rs.s++;
}

How to Fix
Replace the offending expression with an expression of arithmetic or enum type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0849
Compiler Error: expression must have arithmetic, enum, or pointer type
Description
An expression is not of arithmetic, enum, or pointer type in circumstances when it
must be that type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
public:
int i;
};
int A::*p = &A::i;
void main()
{
p++; /* Error: expression must have arithmetic, enum, or
pointer type*/
}

How to Fix
Replace the offending expression with an expression of arithmetic, enum, or pointer
type.
Related Information

282

ISO/IEC 9899:1990 "Programming Languages - C" ()


ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0850
Compiler Error: type of cast must be integral or enum
Description
Casting was to a non-integral type in an integral constant expression. A cast that is
the immediate operand of another cast integer pointer is allowed as an extension,
though not in strict (compiling with the -strict compile line option) mode.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending casting expression from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0851
Compiler Error: type of cast must be arithmetic enum or pointer
Description
Casting was to a non-scalar type in an initializer expression.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending casting expression from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.1)

cc0852
Compiler Error: expression must be a pointer to a complete object type
Description
An expression contains a pointer to an incomplete object type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example

283

class A;
A* aptr;
void func()
{
aptr += 1; /* Error: expression must be a pointer to a complete
object type */
}
class A {}; /* Class A completed here */
void main() {}

How to Fix
Ensure that the object type is complete before using a pointer to that object.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.6, 5.7)

cc0854
Compiler Error: a partial specialization nontype argument must be the name
of a nontype parameter or a constant
Description
A partially specialized nontype argument expression involves a template parameter
of the partial specialization when the argument expression is not a simple identifier.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T,int I,int J>
class A {};
template <int I>
class A<int,I,I*2> {};
void main() {}

How to Fix
Ensure that partial specialization nontype arguments are names of nontype
parameters or constants.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.2)

cc0855
284

Compiler Error: return type is not identical to return type "type" of


overridden virtual function entity-kind "entity"
Description
This error is issued only when "ABI changes" for the covariant virtual function return
is not enabled. "ABI changes" is enable by default.
The return type of a function that overrides a virtual function is not identical or
covariant with the return type of the overridden function.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {};
class B : private A{};
class C {
virtual A* foo();
};
class D : public C {
B* foo(); /* Error: A (base class of B) is inaccessible */
};
int main(){}

How to Fix
Ensure that the return type of the overriding function is identical or covariant to that
of the overridden function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (10.3)

cc0857
Compiler Error: a partial specialization of a class template must be declared
in the namespace of which it is a member
Description
A partial specialization of a class template was not declared in the namespace of
which it is a member.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <int I,int J> struct B {};
namespace N
{
template <int I> struct B<I, I> {};

285

}
void main(){}

How to Fix
Ensure that the offending partial specialization is declared in the class of which it is a
member. An exception is made for partial specializations of a template that is itself a
specialization of a member class template.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.4)

cc0858
Compiler Error: entity-kind "entity" is a pure virtual function
Description
This error is not a stand-alone error or diagnostic. It is used only in conjunction with
other errors or diagnostics. The example below is an attempt to create an object of
an abstract class type. This attempt causes error cc0322 (abstract class object not
allowed) when the present diagnostic is used to identify and display any pure virtual
functions causing the class to be abstract.
Severity
Not Applicable
Recovery
Not Applicable
Example
class A{
virtual void foo() = 0; /* pure virtual function */
};
int main(){
A a; /* error# 322: object of abstract class type "A" is not allowed:
function "A::foo" is a pure virtual function
A a; */
}

How to Fix
Not Applicable
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0859
Compiler Error: pure virtual entity-kind "entity" has no overrider
Description
This error is not a stand-alone error or diagnostic. It is used only in with other errors
or diagnostics. The example below is an attempt to create an object of a class type
that is derived from an abstract class type. A pure virtual function in the abstract

286

base class has not been overridden in the derived class. This attempt, therefore,
causes error cc0322 (abstract class object not allowed) when the present diagnostic
is used to identify and display any pure virtual functions that do not have an
overrider.
Severity
Not Applicable
Recovery
Not Applicable
Example
class B
{
public:
virtual void foo() = 0;
};
class A : public B {
public:
};
int main(){
A a; /* error 322: object of abstract class type "A" is not allowed:
pure virtual function "B::foo" has no overrider
A a; */
}

How to Fix
Not Applicable
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0861
Compiler Error: invalid character in input line
Description
A logical source line contains invalid character(s). If the line contains more than one
character, only the position of the first character is identified.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending invalid characters from the logical source line.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

287

cc0862
Compiler Error: function returns incomplete type "type"
Description
A function returns an incomplete type because the name of the function is not
available. Presumably, it is called through a pointer to function variable.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A;
A error (int s){}
A (*efct) (int);
void
{
efct
efct
efct
}

main()
= &error;
(3); /* Error: function returns incomplete type "A"
(3); */

How to Fix
Ensure that the type that the offending function returns is a complete type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0863
Compiler Error: effect of this "#pragma pack" directive is local to entitykind "entity"
Description
A #pragma pack appears within an instantiation or inline-defined member function
definition.
Severity
Remark
Recovery
The compiler issues the diagnostic and compilation continues.
Example:
class A
{
public:
inline void func(){
#pragma pack(2)
}
};

288

void main(){}

How to Fix
Declare the offending #pragma pack at file scope.
Related Information
Compiler documentation for pragmas

cc0864
Compiler Error: xxxx is not a template
Description
The compiler encountered an entity that masquerades as a template.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T>
void func1<T>::func2 () {} /* Error: func1 is not a template */
void main() {}

How to Fix
Ensure that the offending entity is declared as a template earlier in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0865
Compiler Error: a friend declaration may not declare a partial specialization
Description
A partial specialization was present within a friend declaration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T> class A {};
class B
{
template<class T> friend class A<T*>;
};
void main(){}

How to Fix
A partial specialization is not permitted in a friend declaration. Remove the offending
289

partial specialization declaration.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.4)

cc0866
Compiler Error: exception specification ignored
Description
This diagnostic is issued when the compiler mode is set to ignore exception
specifications (for example, in Microsoft-compatibility mode). SHARC version 6.1.0
does not support exceptions.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Remark
Recovery
Exception specification is parsed and discarded. The compiler issues the remark and
compilation continues.
How to Fix
Ensure that the compiler version supports exception handling.
Related Information
Compiler documentation

cc0868
Compiler Error: space required between adjacent ">" delimiters of nested
template argument lists (">>" is the right shift operator)
Description
A ">>" appears to have been intended to close two template argument lists.
Severity
Fatal error
Recovery
The compiler issues a special diagnostic for this case and inserts a ">" into the token
stream that will close the outer template argument list. The compiler cannot recover
from this error.
Example
template <class T>
class A {};
void main()
{
A<A<int>> nest;
}

How to Fix
Insert a space between the two adjacent ">" delimiters.

290

Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.2)

cc0869
Compiler Error: could not set locale "xxxx" to allow processing of multibyte
characters
Description
This diagnostic is issued only if the locale is set for processing multibyte characters in
the source file and multibyte characters still cannot be processed.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for processing
multibyte characters.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending multibyte characters from the source file.
Related Information
See also:
Refer to compiler documentation.

cc0871
Compiler Error: template instantiation resulted in unexpected function type
of "type" (the meaning of a name may have changed since the template
declaration -- the type of the template is "type")
Description
The routine type created by this instance does not match the template.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the binding of names used in the declarations has not changed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0872
Compiler Error: ambiguous guiding declaration -- more than one function
template "entity" matches type "type"
Description
A declaration is a guiding declaration for more than one template function.

291

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the offending declaration is not a guiding declaration for more than one
template function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0873
Compiler Error: non-integral operation not allowed in nontype template
argument
Description
A non-integral operation was found in a nontype template argument.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced at the present time.
How to Fix
Ensure that non-integral operations are not used in nontype template arguments.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0884
Compiler Error: pointer-to-member representation "xxxx" has already been
set for entity-kind "entity"
Description
Inheritance kind has already been set for this class.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

292

cc0885
Compiler Error: "type" cannot be used to designate constructor for "type"
Description
The constructor name following a class qualifier did not match the original class
name.
Severity
Fatal error
Recovery:
The compiler cannot recover from this error.
Example
This error cannot be reproduced at the present time.
How to Fix
When a constructor name follows a class qualifier, ensure that the constructor name
matches the original class name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0886
Compiler Error: invalid suffix on integral constant
Description
The Microsoft compiler allows a suffix like "i32" indicating a 32-bit integer. Suffix
"ui32" indicates an unsigned 32-bit integer. This error is issued when the size of the
suffix is invalid.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced with Microsoft mode not enabled.
How to Fix
Change the size of the suffix to a valid one (for example, i8, i16, i32, i64).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0887
Compiler Error: operand of __uuidof must have a class type for which
__declspec(uuid("...")) has been specified
Description
This error concerns the usage of __uuidof when Microsoft extensions are enabled.
293

The operand of __uuidof must have a class type for which __declspec(uuid("..."))
has been specified.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
This error cannot be reproduced with Microsoft mode not enabled.
How to Fix
Ensure that the operand of __uuidof has a class type for which
__declspec(uuid("...")) has been specified.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0888
Compiler Error: invalid GUID string in __declspec(uuid("..."))
Description
This error concerns the use of __declspec when Microsoft extensions are enabled. An
invalid GUID string in __declspec(uuid("...")).
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the syntax uuid ( string-literal ) is used where the string-literal
optionally begins and ends with braces and is of the form:
hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh

The letter "h" is any hex digit and the hyphens are required.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0890
Compiler Error: variable length array with unspecified bound is not allowed
Description
In this array the variable bound is unspecified in one of its dimensions.
Severity
Fatal error

294

Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the variable bound of the array is specified in all of its dimensions.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0891
Compiler Error: an explicit template argument list is not allowed on this
declaration
Description
An explicit template argument list was used on a declaration that is not an explicit
specialization, explicit instantiation, or a friend declaration.
An explicit template argument list is permitted only on explicit specializations,
explicit instantiations, and friend declarations.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template<class T>
void func() {}
template<class T>
void func<int>(){}
void main() {}

How to Fix
Remove the offending explicit template argument list from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0892
Compiler Error: an entity with linkage cannot have a variably modified type
Description
An entity with linkage has a variably modified type.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix

295

Ensure that entities with linkage do not have variably modified type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0893
Compiler Error: a variable length array cannot have static storage duration.
Description
A variable length array was declared with static storage duration.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
An object with static storage duration cannot be a variable length array.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0894
Compiler Error: entity-kind "entity" is not a template
Description
A nontype symbol is followed by a template argument list in a non-expression
context.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the template argument list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0896
Compiler Error: expected a template argument
Description
The compiler expected to find a template argument at the indicated error position.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.

296

How to Fix
Supply a template argument at the error position.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0898
Compiler Error: nonmember operator requires a parameter with class or
enum type
Description
An operator function is not a nonstatic member and does not have operands of class
or enum type (or reference to class or enum type).
Operators new and delete are not affected.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A
{
private:
int i;
public:
A(int j = 0) : i(j) {}
friend A operator+(int);
};
void main() {}

How to Fix
Ensure that the offending operator function has operands of class or enum type (or
reference to class or enum type).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5)

cc0901
Compiler Error: qualifier of destructor name "type" does not match type
"type"
Description
The destructor name was specified with a qualified name, but the class specified by
the qualifier does not name the field selection class or a base class thereof.
Severity
Fatal error
Recovery

297

The compiler cannot recover from this error.


Example
class A {
public:
class B {
public:
int i;
B() : i(1) {}
~B() {}
};
};
A a;
int main()
{
int B;
a.B::~B(); /* Error: qualifier of destructor name "A::B" does not
match type "A" */
return 0;
}

How to Fix
If the destructor name was specified with a qualified name, ensure that the class
specified by the qualifier names the field selection class or a base class thereof.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.1)

cc0905
Compiler Error: incorrect property specification; correct from is
__declspec(property(get=name1,put=name2))
Description
This error is issued only when Microsoft mode is enabled.
When scanning the Microsoft C++ mode extension
__declspec(property(get=gname,put=pname)), the compiler found that the
parenthesized list was missing, "get" or "put" was missing, or a name following
"get=" or "put=" was missing.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix

298

Insert the missing syntax at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0906
Compiler Error: property has already been specified
Description
This error is issued only when Microsoft mode is enabled.
When scanning the Microsoft C++ mode extension
__declspec(property(get=gname,put=pname)), the compiler found that a "get" or "put"
was specified more than once.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the extra "get" or "put" from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0907
Compiler Error: declspec(property) is not allowed on this declaration
Description
This diagnostic is issued only when Microsoft mode is enabled.
A declaration includes __declspec(property(...)). This use is valid only on nonstatic
data members that are not bit fields.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error, when used on a class declaration
Discretionary error, in all other cases
Recovery
If a fatal error is indicated, the compiler cannot recover.
If a discretionary error is indicated, the compiler issues the diagnostic and
compilation continues. If a linkage specification appeared among the decl-specifiers,
the compiler restores the default name linkage.
How to Fix
Remove __declspec(property(...)) from the declaration.
Related Information

299

ISO/IEC 9899:1990 "Programming Languages - C" ()


ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0908
Compiler Error: member is declared with __declspec(property), but no "get"
function was specified
Description
This error is issued only when Microsoft mode is enabled.
A member was declared with __declspec(property(...)), but a "get" function was
not specified.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Specify a "get" function at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0909
Compiler Error: the __declspec(property) "get" function "xxxx" is missing
Description
This error is issued only when Microsoft mode is enabled.
A __declspec(property) "get" function was not found.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Define the missing __declspec(property) "get" function at the appropriate place in
the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0910
Compiler Error: member is declared with __declspec(property), but no "put"
function was specified

300

Description
This error is issued only when Microsoft mode is enabled.
A member was declared with __declspec(property(...)), but a "put" function was
not specified.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Specify a "put" function at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0911
Compiler Error: the __declspec(property) "put" function "xxxx" is missing
Description
This error is issued only when Microsoft mode is enabled.
A __declspec(property) "put" function was not found.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Define the missing __declspec(property) "put" function at the appropriate place in
the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0913
Compiler Error: missing or invalid segment name in
__declspec(allocate("..."))
Description
This error is issued only when Microsoft mode is enabled.
A Microsoft __declspec(allocate("...")) specifier had a missing or invalid segment
name.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.

301

Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the segment name is present and valid.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0914
Compiler Error: declspec(allocate) is not allowed in this declaration
Description
This error is issued only when Microsoft mode is enabled.
A __declspec(allocate) is not allowed in this declaration. It is allowed only for
variables with static storage duration.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the offending __declspec(allocate) from the declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0915
Compiler Error: a segment name has already been specified
Description
This error is issued only when Microsoft mode is enabled.
A segment name has been specified more than once.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the duplicate segment name specification from the source file.
Related Information

302

ISO/IEC 9899:1990 "Programming Languages - C" ()


ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0916
Compiler Error: cannot convert pointer to member of derived class "type" to
pointer to member of base class "type" -- base class is virtual
Description
The conversion of a "pointer to member of a derived class" to a "pointer to member
of a base class" was attempted when the base class is virtual.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
class A {
public:
int i;
A(int j=2) : i(j) {}
};
class B : public virtual A {
public:
int i;
B(int j=0) : i(j) {}
};
int B::*dptr = &B::i;
int A::*bptr = &A::i;
void main()
{
bptr = (int A::*) dptr; /* Error: cannot convert pointer to member
of derived class "B" to pointer to member
of base class "A" -- base class is
virtual. */
}

How to Fix
Ensure that the base class is non-virtual or remove the offending conversion
statement from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.4)

cc0919
Compiler Error: invalid output file: "xxxx"

303

Description
The file name supplied for an output file, such as the template information file, is
invalid.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Supply a valid file name to replace the offending invalid file name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0920
Compiler Error: cannot open output file: "xxxx"
Description
The compiler cannot open this output file (it could be a template information file).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the file resides in the specified directory and that all the file permissions
have been set correctly.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0925
Compiler Error: a type qualifier cannot be applied to a function type
Description
A type qualifier was applied to a function type.
Severity
Discretionary error
Recovery
The compiler issues the diagnostic and compilation continues.
Example
typedef void func();
class A
{
const func f;
};

304

void main() {}

How to Fix
Remove the offending type qualifier from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (8.3.5)

cc0926
Compiler Error: cannot open list file: "xxxx"
Description
The compiler cannot open this definition list file.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Ensure that the definition list file is situated in the specified directory and that all the
file permissions have been set correctly.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0928
Compiler Error: incorrect use of va_start
Description
The va_start macro was used incorrectly (for example, the va_start macro used in a
constant expression).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the incorrect code from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0929
Compiler Error: incorrect use of va_arg
Description
The

va_arg

macro was used incorrectly (for example, the

va_arg

macro used in a

305

constant expression).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the incorrect code from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0930
Compiler Error: incorrect use of va_end
Description
The va_end macro was used incorrectly (for example, the va_end macro used in a
constant expression).
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
How to Fix
Remove the incorrect code from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0942
Compiler Warning: enum bit-fields are always unsigned, but enum "type"
includes negative enumerator
Description
An enum bit-field has a negative enumerator.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
How to Fix
Ensure that the offending bit-field does not include a negative enumerator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0979
306

Compiler Error: Variable length array cannot be pm qualified.


Description
You are declaring the variable length array with pm qualification.
Severity
Error
Recovery
The compiler issues the error and compilation continues.
Example
void func(int n)
{
pm int var[n]; // declaration causes error.

How to Fix
Remove the pm qualifier.
Related Information
For SHARC DSPs, see page 1-82 in the VisualDSP++ C/C++ Compiler and Library
Manual for 32-Bit Processors.
For 16-bit processors, see the VisualDSP++ C/C++ Compiler and Library Manual for
16-Bit Processors.
For ADSP-218x DSPs, see page 1-69
For ADSP-219X DSPs, see page 1-77

cc1086
Compiler Error: Invalid function name specified for #pragma linkage_name.
Description
The string specified by #pragma linkage_name must be a valid identifier name.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
#pragma linkage_name "cra+"
void fred();

How to Fix
Put a valid identifier name in the pragma specification.
Related Information
See also the section about linking pragma behavior in the "Compiler" chapter of the
VisualDSP++ Compiler and Library Manual for your processor.

cc1097
Compiler Error: Function declaration expected after #pragma linkage_name
specified.
Description
The #pragma linkage name should immediately precede a function declaration.

307

Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
#pragma linkage_name "crash"
int z;

How to Fix
Declare a function immediately after the #pragma linkage_name directive.
Related Information
See also the section about linking pragma behavior in the "Compiler" chapter of the
VisualDSP++ Compiler and Library Manual for your processor.

cc1100
Compiler Error: invalid register class specification.
Description
The __regclass specifier has to specify a valid register class for a given platform.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
void g(int);
void f()
{
__regclass("bad_regs") int x;
g(x);
}

How to Fix
Change the string to specify a valid register class.
Related Information
For TigerSHARC processors, see also the section about the __regclass construct in
the "Compiler" chapter of the VisualDSP++ C/C++ Compiler and Library Manual for
TigerSHARC Processors.

cc1101
Compiler Error: invalid constraint in asm statement.
Description
Asm statements have a valid set of letters representing constraints. An error is issued

if an invalid letter is used.


Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
308

Example
void f()
{
int result, x=2;
__asm("%0=%1;" : "=d" (result) : "z" (x));
}

How to Fix
Change the letter-representing constraint to a valid one.
Related Information
See also the information about constraint register types in the "Compiler" chapter of
the VisualDSP++ Compiler and Library Manual for your processor.

cc1102
Compiler Error: constraint for asm output operand must use "=".
Description
The output operand should specify an "=" before its constraint letter.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
void f()
{
int result, x=2;
__asm("%0=%1;" : "d" (result) : "d" (x));
}

How to Fix
Insert "=" before the constraint letter in the output operand.
Related Information
See also the information about constraint register types in the "Compiler" chapter of
the VisualDSP++ Compiler and Library Manual for your processor.

cc1103
Compiler Error: unknown register name.
Description
The clobber string in an asm statement contains an unrecognized register for the
platform being targeted.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example

309

void f()
{
int result, x=2;
__asm("%0=%1;" : "=d" (result) : "d" (x) : "breg");
}

How to Fix
Change the register marked as invalid to a valid register.
Related Information
See also the information about constraint register types in the "Compiler" chapter of
the VisualDSP++ Compiler and Library Manual for your processor.

cc1110
Compiler Error: pragma section requires associated function or variable
declaration to follow
Description
This error is issued if pragma section does not precede a function or variable
declaration.
Severity
Error
Recovery
The compiler cannot recover from this error.
Example
The pragma does not precede a function or variable declaration, resulting in the
error.
#pragma section("mysec")
struct t {
int a;
};

How to Fix
Use the pragma only where it precedes a function or variable declaration. For
example:
#pragma section("mysec")
struct {
int a;
} x;

cc1112
Compiler Error: global or local variable or field member declaration required
for pragma align.
Description
The #pragma align directive must be followed by a variable or member declaration.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.

310

Example
#pragma align 4
void func();

How to Fix
Remove the pragma or follow it with a valid declaration.
Related Information
See also the section about data alignment pragmas in the "Compiler" chapter of the
VisualDSP++ Compiler and Library Manual for your processor.

cc1113
Compiler Error: numerical decimal digits required for pragma align.
Description
The #pragma align directive must specify a decimal value.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
#pragma align
int x;

How to Fix
Add a valid alignment value to the pragma directive.
Related Information
See also the section about data alignment pragmas in the "Compiler" chapter of the
VisualDSP++ Compiler and Library Manual for your processor.

cc1115
Compiler Error: invalid pad alignment value.
Description
The alignment value for #pragma pad must be a valid number (for example, 1, 2, 4, 8,
16, and so on).
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
#pragma pad(3)
int x;

How to Fix
Correct the alignment value.
Related Information
For SHARC and Blackfin DSPs, see also the section about PAD (ALIGNOPT) pragmas
in the "Compiler" chapter of the VisualDSP++ Compiler and Library Manual for your
processor.

311

cc1117
Compiler Error: invalid value for alignment specified by pragma align.
Description
The alignment value for #pragma align must be a valid number (for example, 1, 2, 4,
8, 16, and so on).
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics
Example
#pragma align 5
int x;

How to Fix
Correct the alignment value.
Related Information
See also the section about data alignment pragmas in the "Compiler" chapter of the
VisualDSP++ Compiler and Library Manual for your processor.

cc1151
Compiler Error: number of new memory banks exceeded
Description
This error is raised if more than seven memory banks (in addition to "__code",
"__data", and "__stack") are used in one source file.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma data_bank(one)
void func1();
#pragma data_bank(two)
void func2();
#pragma data_bank(three)
void func3();
#pragma data_bank(four)
void func4();
#pragma data_bank(five)
void func5();
#pragma data_bank(six)
void func6();
#pragma stack_bank(seven)
void func7();

312

#pragma code_bank(eight)
void func8();

How to Fix
Reduce the number of memory banks that are used.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1197
Compiler Warning: operator new and operator delete cannot be given
internal linkage.
Description
Operators new and delete must be specified as externally visible functions.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
#include <stdlib.h>
static void * operator new(size_t x);

How to Fix
Remove the static storage class.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (3.7.3)

cc1200
Compiler Error: abstract class type "X" is not allowed as catch type: function
"X::f" is a pure virtual function.
Description
A catch type cannot be an abstract class type.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
class X{
virtual void f()=0;
};
class Y:public X{
void f();
};
void func()
{
Y obj;

313

try{
throw obj;
}
catch (X v)
{
}
}

How to Fix
At the catch statement, catch a non-abstract class type.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (15.3)

cc1208
Compiler Error: expected "class".
Description
In a template template argument, the class keyword is expected.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
template<template<class U> X>class C{
X<int> y;
};

How to Fix
Add class keyword to the template template argument.
Modified line: template<template<class U> class X>class C{

Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3.3)

cc1209
Compiler Error: the "class" keyword must be used when declaring a
template template parameter.
Description
In a template template argument, the class keyword is expected.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
template<template<class U> struct X>class C{
X<int> y;
};

314

How to Fix
Add the class keyword to the template template argument, as shown below.
Modified line: template<template<class U> class X>class C{
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3.3)

cc1211
Compiler Error: a qualified name is not allowed for a friend declaration that
is a function definition.
Description
A function definition in a friend declaration involving a namespace-qualified name in
the declarator is not allowed.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
namespace NS{
void func(int);
};
class X{
public:
friend void NS::func(int a)
{
return;
}
};

How to Fix
Declare the function outside the class.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (11.4)

cc1213
Compiler Error: a storage class may not be specified here.
Description
A storage class should be specified only for an object or function definition.
Severity
Warning in C mode
Discretionary error in C++ mode.
Recovery
If a warning is issued, compilation continues. If an error is reported, the compiler
continues to check syntax and semantics
Example
static struct X{

315

int a;
};

How to Fix
Remove the storage class from the declaration.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc1219
Compiler Error: a template template parameter cannot have the same name
as one of its template parameters.
Description
In a template template argument the argument name should not be the same as the
template parameter.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
template<template<class U> class U>class C{
X<int> y;
};

How to Fix
Change the name of template template argument.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (14.3.3)

cc1230
Compiler Error: loop in sequence of "operator->" functions starting at class
"X".
Description
Overload operator "->" results in recursion during overload resolution.
Severity
Error
Recovery
The compiler reports the error and continues to check syntax and semantics.
Example
class Y;
class X{
public:
Y operator ->();
};

316

class Y{
public:
X operator ->();
};
X obj;
void func()
{
obj->m = 2;
}

How to Fix
Make sure the result of overloaded operator "->" does not result in a class that itself
has an overloaded operator "->" that can indirectly result in the original class type.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (13.5.6)

cc1319
Compiler Error: the "transparent_union" attribute only applies to unions,
and "struct tag" is not a union.
Description
The attribute transparent union can be applied only to a union type declaration.
Severity
Error
Recovery
The compiler issues the error and compilation continues.
Example
struct X{
int a;
int *b;
} __attribute__((transparent_union));

How to Fix
Remove the attribute or change the type declaration to a union.
Related Information
See also the section about attributes in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1327
Compiler Error: the second constant in a case range must be larger than the
first.
Description
Case ranges must range from low to high.
Severity
Error
Recovery
317

The compiler issues the error and compilation continues.


Example
switch (i)
{
case 0 ... 9:
fprintf(stderr,"below 10\n");
break;
case 19 ... 13:
fprintf(stderr,"in teens\n");
break;
default:
fprintf(stderr,"The default\n");
}

How to Fix
Change the upper value to be greater than lower value.
Related Information
See also the section about GNU extensions in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1343
Compiler Error: register "x" has a fixed purpose and may not be clobbered
in an asm statement
Description
The compiler will emit this error if a register that may not be clobbered is specified in
the clobber set of an asm statement. This error applies only to Blackfin processors.
Specifying the registers 'SP' or 'FP' in a clobber set of an asm statement will cause
this error.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
The following file is compiled for Blackfin.
void func(){
asm(: : :SP);
}

fails with error:


"t.c", line 2: cc1343: error: register "SP" has a fixed purpose and may not be
clobbered in an asm statement

How to Fix
Remove the problem register from the clobber set of the asm statement.

cc1427
Compiler Error: expected identifier name for declspec(vcseifce.
Description
318

For VCSE the compiler allows a new declspec to specify an interface name.
Severity
Error
Recovery
The compiler issues the error and compilation continues.
Example
struct __declspec(vcseifce(::)) fred{
int x;
}

How to Fix
Specify the identifier inside the vcseifce parentheses.
Related Information
See also the section about VCSE in the VisualDSP++ Compiler and Library Manual for
your processor.

cc1428
Compiler Error: expected number after "," for declspec(vcsetable.
Description
For VCSE the compiler allows a new declspec to specify a vcse table name and the
number of entries in the table.
Severity
Error
Recovery
The compiler issues the error and compilation continues.
Example
struct __declspec(vcsetable((newtab,n))) fred{

How to Fix
Specify the number of entries as a constant literal.
Related Information
See also the section about VCSE in the VisualDSP++ Compiler and Library Manual for
your processor.

cc1468
Compiler error: invalid action for #pragma diag
Description
The action specified for #pragma diag() must be one of pop, push, error, errors,
remark, remarks, restore, warning, warnings, or suppress.
Severity
Error
Recovery
The compiler ignores the rest of the directive.
Example
The code fragment

319

#pragma diag(unknown)

gives the error message:


cc1468: error: invalid action for #pragma diag

How to Fix
Change the action to one that is recognized by the pragma.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1469
Compiler error: the #pragma diag(push) for this directive is missing
Description
More #pragma diag(pop) directives have been encountered than corresponding
#pragma diag(push) directives.
Severity
Error
Recovery
The compiler ignores the entire directive.
Example
The code fragment
#pragma diag(push)
#pragma diag(pop)
#pragma diag(pop)

gives the error message


cc1469: error: the #pragma diag(push) for this directive is missing

How to Fix
Remove the offending #pragma diag(pop) directive or add the corresponding #pragma
diag(push) directive at the required location.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1471
Compiler error: missing error number/tag for #pragma diag
Description
A #pragma diag directive has a missing error number in its error number list. The
error, remark, restore, warning, and suppress actions require a comma-separated
list of error numbers as arguments.
Severity
Error
Recovery
The compiler skips to the next comma or closing parenthesis.
Example
The code fragment
#pragma diag(warning)

gives the error message

320

cc1471: error: missing error number/tag for #pragma diag

How to Fix
Add an error number after the action or remove the entire directive.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1475
Compiler error: #pragma regs_clobbered can only be used with a function
prototype or a function declaration
Description
A #pragma regs_clobbered directive was declared for an illegal target. The pragma
can only be used for function prototypes and definitions. Use with pointer to
functions is not supported.
Severity
Error
Recovery
The compiler skips to the next statement.
Example
The code fragment
#pragma regs_clobbered "R3 R4 R5"
void (*aFuncPtr) ();

gives the error message


cc1475: #pragma regs_clobbered can only be used with a function prototype or a
function declaration

How to Fix
Remove the regs_clobbered statement from the declaration.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1476
Compiler error: Cannot take address of function declared with user defined
clobber set
Description
The program attempted to take the address of a function that is declared with
#pragma regs_clobbered. This is unsupported, as the function pointer does not retain
the custom clobber set information.
Severity
Error
Recovery
The compiler skips to the next statement.
Example
The code fragment
#pragma regs_clobbered "R3 R4 R5"
void aFunc();
void (*aFuncPtr) ();

321

void someFunc() {
aFuncPtr = aFunc;
}

gives the error message


cc1476: Error: Cannot take address of function declared with user defined
clobber set

How to Fix
Remove the regs_clobbered statement from the function prototype or definition to
take its address.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1477
Compiler fatal error: system register must be a literal constant
Description
The compiler has identified a system register access (using a compiler intrinsic)
where the system register to be used in the access is not a compile-time literal
constant. In this case, the compiler does not know which register to use in the
transfer, and must halt compilation.
Severity
Fatal
Recovery
None possible.
Example
int foo (int r) {
return __builtin_sysreg_read (r);
}

causes an error similar to the following:


"sysreg.c", line 2 (col. 3): cc1477: fatal error: system register must be a
literal constant
1 catastrophic error detected in the compilation of "sysreg.c".
Compilation terminated.

How to Fix
Modify the use of the intrinsic so that the compiler knows at compile-time which
system register is being accessed.

cc1478
Compiler fatal error: bad system register or system register not known
Description
An unknown or incorrect system register has been used in a compiler sysreg
intrinsic. The compilation cannot be recovered safely.
Severity
Fatal
Recovery
None possible.
Example

322

int foo (void) {


return __builtin_sysreg_read (12345678);
}

causes an error similar to the following:


"sysreg.c", line 2 (col. 3): cc1478: fatal error: bad system register or system
register not known
1 catastrophic error detected in the compilation of "sysreg.c".
Compilation terminated.

How to Fix
Ensure that the sysreg intrinsic uses a system register that the compiler knows
about. System registers are defined in the sysreg.h header file.

cc1479
Compiler fatal error: bad size for system register access
Description
The compiler has encountered use of a sysreg intrinsic where the size implied by the
intrinsic used does not match the size of the system register being accessed.
Severity
Fatal
Recovery
None possible.
Example
#include <sysreg.h>
int foo (void) {
return __builtin_sysreg_read2 (reg_R0);
}

causes an error similar to the following:


"sysreg.c", line 2 (col. 3): cc1479: fatal error: bad size for system register
access
1 catastrophic error detected in the compilation of "sysreg.c".
Compilation terminated.

How to Fix
Use the intrinsic that corresponds to the size of the register being accessed.

cc1480
Compiler fatal error: interrupt routines can not return a result
Description
The compiler has detected that #pragma interrupt has been used with a routine that
returns a result.
Severity
Fatal
Recovery
None possible.
Example
#pragma interrupt
int foo (void) {
return 123;
}

323

causes an error similar to the following:


"sysreg.c", line 2 (col. 3): cc1480: fatal error: interrupt routines can not
return a result
1 catastrophic error detected in the compilation of "sysreg.c".
Compilation terminated.

How to Fix
Modify the interrupt service routine so that it does not return a value.

cc1481
Compiler fatal error: stack frame for this interrupt routine is too large
Description
The interrupt service routine being compiled requires a stack frame that is too large.
For Blackfin processors, the stack frame is limited to 131 Kbytes. If this limit is
reached, the compiler will generate this error.
Severity
Fatal
Recovery
None possible.
Example
None
How to Fix
Modify the interrupt service routine so that less stack space is used.

cc1483
Compiler error: identifier expected as argument to #pragma
separate_mem_segments
Description
Pragma separate_mem_segments takes two arguments, which are C or C++ identifiers.
If it is passed an invalid argument, this error is issued.
Severity
Error
Recovery
Pass in valid C or C++ identifiers as arguments.
Example
Int buff1[10];
Int buff2[10];
#pragma separate_mem_segments(buff1,5)

How to Fix
Replace argument with a valid identifier. In the above example, replace 5 with buff2.

cc1484
Compiler error: identifier "name" should be externally visible
Description
The names of identifiers referred to by #pragma separate_mem_segments should be

324

external variables in C and C++.


Severity
Error
Recovery
Pass in valid C or C++ identifiers as arguments.
Example
int buff1[10];
void f()
{
int buff2[10];
#pragma separate_mem_segments(buff1,buff2)
}

How to Fix
Array buff2 is declared local to a function. Change the second argument to be an
externally visible variable.

cc1485
Compiler error: missing section qualifier.
Description
The section and default_section pragmas issue this error when a comma appears
directly after the section name and no qualifiers are specified.
Severity
Error
Recovery
The compiler will skip forward to the next comma or closing parenthesis.
Example
#pragma section(_dummy_,)

How to Fix
Remove the trailing comma or add an appropriate section qualifier keyword.

cc1486
Compiler error: invalid section qualifier.
Description
The section and default_section pragmas issue this error if an invalid section
qualifier keyword is specified.
Severity
Error
Recovery
The compiler will skip forward to the next comma or closing parenthesis.
Example
#pragma section(_dummy_, NOT_A_QUALIFIER)

How to Fix
Correct the section qualifier.

325

cc1487
Compiler error: invalid section kind.
Description
The default_section pragma issues this error if an invalid section kind keyword is
specified.
Severity
Error
Recovery
The compiler will ignore the effect of the default_section pragma but will still parse
for further errors.
Example
#pragma default_section(NOT_A_KIND, _dummy_)

How to Fix
Correct the section kind.

cc1488
Compiler error: section was previously declared with x qualifier.
Description
The section and default_section pragmas issue this error if two conflicting qualifiers
appear in the section qualifier list of a single pragma.
Severity
Error
Recovery
The compiler will ignore the second conflicting qualifier.
Example
#pragma section(_dummy_, ZERO_INIT, RUNTIME_INIT)

How to Fix
Choose one of the conflicting section qualifiers, but not both.

cc1489
Compiler error: section was previously declared with different qualifiers.
Description
The section and default_section pragmas issue this error if a section was declared
with different qualifiers in two different pragmas.
Severity
Error
Recovery
The compiler will ignore the qualifiers specified in the second pragma.
Example
#pragma section(_dummy_, ZERO_INIT, RUNTIME_INIT)
#pragma section(_dummy_, PM)

How to Fix
Ensure that the section qualifiers are consistent throughout the program.

326

cc1490
Compiler error: x was previously declared to be in section y.
Description
The section pragma issues this error if a function or variable was previously declared
to be in a different section from that specified in the current pragma.
Severity
Error
Recovery
The compiler will ignore the section specified in the second pragma.
Example
#pragma section(_dummy_)
int a;
#pragma section(_crummy_)
int a;

How to Fix
Ensure that the section qualifiers are consistent for declarations.

cc1491
Compiler Error: invalid memory bank pragma
Description
This error is raised if a memory bank pragma is applied to a statement other than a
function declaration.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma data_bank(mydatabank)
int x;

How to Fix
To prevent the warning being issued, only insert the pragma before a function
declaration. To specify a non-local variable's data bank, use the bank qualifier. For
example:
int bank(blue) x;
#pragma data_bank(green)
void func() {
/* Some code */
}

Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1492
Compiler Error: invalid bank name for memory bank
Description

327

This error is raised for a memory bank pragma which does not have a valid bank
name.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma data_bank()
void func();

How to Fix
Specify a valid bank name as follows:
#pragma data_bank(mydatabank)
void func();

Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1493
Compiler Error: invalid attribute for memory bank
Description
This error is raised when an invalid attribute is given in a memory bank pragma
which allows an attribute to be specified.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
In this example, an invalid number of read cycles has been specified for data bank
"blue".
#pragma bank_read_cycles(blue, 0)

How to Fix
Specify a valid attribute, as described in the VisualDSP++ C/C++ Compiler and
Library Manual for the target processor. For example:
#pragma bank_read_cycles(blue, 10)

Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1494
Compiler Error: memory bank attribute missing
Description
This error is raised when no attribute is present in a memory bank pragma which
allows a memory bank attribute to be specified.
Severity

328

Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma bank_read_cycles(blue, )

How to Fix
Specify a valid attribute, as described in the VisualDSP++ C/C++ Compiler and
Library Manual for the target processor. For example:
#pragma bank_read_cycles(blue, 10)

Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1495
Compiler Error: incompatible redefinition of memory bank attribute
Description
This error is issued if a memory bank attribute is subsequently re-defined with a
different attribute value.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma bank_read_cycles(blue, 10)
/* Some code */
#pragma bank_read_cycles(blue, 20)

How to Fix
Remove incompatible re-definitions of the memory bank attribute.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1496
Compiler Error: incompatible redefinition of memory bank
Description
This error is issued if a function declaration is preceded by a memory bank pragma,
and a subsequent declaration of the same function has an incompatible memory
bank pragma.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example

329

#pragma data_bank(blue)
void func(int x);
#pragma data_bank(green)
void func(int x) {
/* Some code */
}

How to Fix
Remove incompatible re-definitions of the memory bank attribute.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1634
Compiler fatal error: stack frame for this routine is too large
Description
The routine being compiled requires a stack frame that is too large.
Severity
Fatal
Recovery
None possible.
Example
None
How to Fix
Modify the routine so that less stack space is used.

cc1643
Compiler Error: Inlining pragmas are only valid on function definitions
Description
This error is raised if an inlining pragma is applied to a declaration other than a
function definition.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma always_inline
int x;
inline void func_a() {
x++;
}

How to Fix
Apply the pragma to function definitions only. For example:
int x;
#pragma always_inline

330

inline void func_a() {


x++;
}

Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1647
Compiler Error: #pragma always_inline invalid on interrupt functions
Description
This warning is issued if #pragma always_inline is applied to an interrupt handler
function declaration. Due to the nature of an interrupt service function, it cannot be
inlined.
Severity
Fatal error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma always_inline
#pragma interrupt
inline int myisr(int a, int b, int c);

How to Fix
Remove the use of #pragma always_inline from the interrupt function declaration.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1648
Compiler Error: conflicting inline pragmas
Description
This error is issued if both #pragma always_inline and #pragma never_inline are
applied to a function declaration, since the two pragmas have conflicting meanings.
Severity
Fatal error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma always_inline
#pragma never_inline
inline int func();

How to Fix
Remove one of the conflicting pragmas.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

331

cc1649
Compiler Error: #pragma always_inline only valid on 'inline' functions
Description
This error is raised if #pragma always_inline has been applied to a function which is
not declared with the 'inline' keyword.
Severity
Fatal error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma always_inline
int func();

How to Fix
Remove the #pragma always_inline, or add the 'inline' keyword. For example:
#pragma always_inline
inline int func();

Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1652
Compiler Error: function f has variable number of params - #pragma
always_inline invalid
Description
The compiler cannot inline a function which accepts a variable number of
parameters, so use of #pragma always_inline on such a function is invalid.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
#pragma always_inline
inline func_va(int a, ...) {
/* Some code */
}
void func(){
func_va(1,2,3,4);
}

How to Fix
Remove the #pragma always_inline.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1668
332

Compiler Error: input operand matched to input-output operand in gnu asm


Description
This error is raised if an input operand's constraint is the position number of an
input-output operand.
Severity
Fatal error
Recovery
None possible
Examples
Blackfin Processors
int func(int a, int b, int c, int d, int e, int f,
int g, int h, int i) {
int z;
asm("NOP; /* do something */" :
"=d"(z) :
"d"(a),"d"(b),"d"(c),"d"(d),"d"(e),"d"(f),
"d"(g),"d"(h),"d"(i) : );
return z;
}

SHARC Processors
int func(int a, int b, int c, int d, int e) {
int z;
asm("NOP; /* do something */" :
"=d"(z) :
"k"(a),"k"(b),"k"(c),"k"(d),"k"(e) : );
return z;
}

TigerSHARC Processors
int func(int a, int b, int c, int d, int e) {
int z;
asm("NOP; /* do something */" :
"=k"(z) :
"k"(a),"k"(b),"k"(c),"k"(d),"k"(e) :
"k0-k29" );
return z;
}

How to fix
Re-arrange the asm construct so that it does not require more than the available
number of registers in a given class.

cc1732
Compiler Error: core pragma contains unexpected character
Description
The core pragma must specify a core name that consists only of alphanumeric
characters. This error indicates that a non-alphanumeric character has been used in
specifying the name of the core.
Severity
Error
Recovery
The compiler will continue to parse the translation unit and show any subsequent

333

errors but will then exit without producing an output file.


Example
Compiling the following file:
#pragma core("core-A")
int foo(void) {
return 0;
}

fails with this error:


"foo.c", line 1: cc1732: error: core pragma contains unexpected character

How to Fix
Use core names that include only alphanumeric characters.
Related Information
Refer to your processor's VisualDSP++ C/C++ Compiler and Library Manual

cc1733
Compiler Error: symbol "zzz" is expected to have pragma core specified on
all definitions and declarations that are not part of a library.
Description
A symbol has been defined more than once in a multicore project, and at least one
definition (or declaration) of that symbol has been specified (outside a library)
without using #pragma core.
Severity
Fatal
Recovery
None
Example
Not using #pragma core on one of the definitions of main in a multicore project will
result in the following message from the IPA framework:
cc1733: symbol _main is expected to have pragma core specified on all
definitions and declarations

How to Fix
Ensure that the correct #pragma core is specified before each definition or declaration
of the named symbol.
Related Information
Refer to your processor's VisualDSP++ C/C++ Compiler and Library Manual

cc1742
Compiler Error: A list of parameter names separated with spaces must be
specified for #pragma param_never_null
Description
#pragma param_never_null must specify one or more parameter names separated by

spaces. Using any other separator will result in this error.


Severity
Error
Recovery

334

Compiler reports error and continues looking for other errors. Executable not
created.
Example
#pragma param_never_null aa,bb // Error - replace comma with space
void func(C *aa, C *bb)
{
}

How to Fix
Replace other separators with space characters.

cc1743
Compiler Error: Illegal parameter name ID specified for #pragma
param_never_null
Description
The identifiers specified in the pragma must match the identifiers in the following
function definition.
Severity
Error
Recovery
Compiler reports error and continues looking for other errors. Executable not
created.
Example
#pragma param_never_null a bb // Error - identifier a should be aa
void func(C *aa, C *bb)
{
}

How to Fix
Correct the spelling of the identifier.

cc1744
Compiler Error: #pragma suppress_null_check should be placed before a
pointer assignment or variable declaration
Description
The pragma must be placed before a declaration or declaration list to indicate that
those variables are never null pointers, or before an assignment of two class pointers
where the pointers will never be null. If used before an assignment of a null pointer,
the behavior is undefined.
Severity
Error
Recovery
Compiler reports error and continues with the compilation to find more errors.
Example
#pragma param_never_null a bb
void func(int *aa, int *bb)
{
#pragma suppress_null_check // incorrect usage.
if (aa == NULL);

335

How to Fix
Remove pragma or place it before an assignment or declaration list.

cc1747
Compiler Error: check-init-order option can be used only when compiling
C++
Description
The command line switch -check-init-order is only valid when the -c++ switch is
specified.
Severity
Error
Recovery
Compilation abandoned
Example
ccblkfn -check-init-order -BF533 a.c

How to Fix
Remove the switch if the file to be compiled is not a C++ source program; otherwise
specify the -c++ switch.

cc1748
Compiler Error: implicit-pointers option can not be used when compiling
C++
Description
The -implicit-pointers command-line switch is not valid when compiling in C++
mode (i.e., when -c++ is also supplied on the command line.
Severity
Fatal
Recovery
None
Examples
Blackfin Processors
ccblkfn -O -c++ -implicit-pointers foo.c

SHARC Processors
cc21k -O -c++ -implicit-pointers foo.c

TigerSHARC Processors
ccts -O -c++ -implicit-pointers foo.c

Produces:
cc1748: Command-line error: implicit-pointers option can not be used when
compiling C++
1 catastrophic error detected in this compilation.
Compilation terminated.
cc3089: fatal error: Compilation failed

How to Fix
Remove the -implicit-pointers command-line switch from the command line.

336

Related Information
Refer to your processor's VisualDSP++ C/C++ Compiler and Library Manual.

cc3089
User Interface Driver Error: fatal error: build stage failed
Description
This error is raised by the user interface driver (ccblkfn.exe for Blackfin processors,
cc21k.exe for SHARC processors, or ccts.exe for TigerSHARC processors) when the
tool invoked to perform a particular stage (build stage) of the build process failed
with an error. More detailed information as to the cause of the error will be provided
in the error message produced by the tool which reported the error.
Severity
Fatal error
Recovery
None possible
Examples
Compiling a file containing a syntax error results in the compiler raising an error
(cc0065 in the example below). The user interface driver itself raises error cc3089 as
an indication the overall build has failed.
Blackfin Processors
ccblkfn x.c

SHARC Processors
cc21k x.c

TigerSHARC Processors
ccts x.c

Produces
"x.c", line 6: cc0065: error: expected a ";"
}
^
1 error detected in the compilation of "x.c".
cc3089: fatal error: Compilation failed

How to fix
Examine the details of the error reported by the tool which caused the build to fail,
and resolve that error.

cc3150
Driver Error: Option x conflicts with option y
Description
Attempt to invoke the driver with two options that are incompatible.
Severity
Error
Recovery
The driver issues the error. It then continues to check the flags passed to it,
displaying any other errors or warnings it comes across. The driver then exits
without invoking any compilation.
Example
337

cc21k -21020 -c++ test.cpp

fails with error:


cc3150: {D} error: Option -c++ conflicts with option -21020

How to Fix
Remove one of the conflicting options.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

Compiler Remarks
cc1123
Compiler Remark: comparison of unsigned type with signed type
Description
Comparing signed and unsigned types may lead to an unintended result.
Severity
Remark, only when the -Wremarks command line option is used
Recovery
The compiler issues the remark and compilation continues.
Example
signed x;
unsigned y;
void func2()
{
if (x>y)
x=-1;
}

How to fix
Use a cast, or if the code is intentional, ignore the remark.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (15)

cc1472
Compiler remark: beginning compilation of function x
Description
The compiler is informing the user that it has begun compilation of the named
function. By default, this remark is not produced. To produce this remark when
compiling, use the options:
-Wremarks -Wremark 1472

Severity
Remark
Recovery
None necessary.

338

Example
As an example, the compiler will issue a remark similar to the following when
beginning to compile the function main:
"test4.c", line 3 (col. 5): cc1472: {D} remark: beginning compilation of
function main

How to Fix
No fix is required. The remark is purely to inform the user of the compilation
progress.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1473
Compiler remark: beginning generic optimization pass x of y
Description
The compiler is informing the user that it has begun the non-machine-specific
optimization pass specified. By default, this remark is not produced.
To produce this remark when compiling, use the options:
-Wremarks -Wremark 1473

When doing so, it is advisable to enable the remarks for machine-specific


optimization passes as well (see cc1474). This remark produce output only when
optimization has been enabled.
Severity
Remark
Recovery
None necessary.
Example
As an example, the compiler will issue a remark similar to the following when
starting each new generic optimization pass:
"test4.c", line 3 (col. 5): cc1473: {D} remark: beginning generic optimization
pass 4 of 74

How to Fix
No fix is required. The remark is purely to inform the user of the compilation
progress.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1474
Compiler remark: beginning machine optimization pass x of y
Description
The compiler is informing the user that it has begun the machine-specific
optimization pass specified. By default, this remark is not produced. To produce this
remark when compiling, use the options:
-Wremarks -Wremark 1474

When doing so, it is advisable to enable the remarks for generic optimization passes
as well (see cc1473). This remark produces output only when optimization has been

339

enabled.
Severity
Remark
Recovery
None necessary.
Example
As an example, the compiler will issue a remark similar to the following when
starting each new machine-specific optimization pass:
"test4.c", line 3 (col. 5): cc1474: {D} remark: beginning machine optimization
pass 48 of 54

How to Fix
No fix is required. The remark is purely to inform the user of the compilation
progress.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1736
Compiler Remark: an inline asm statement with a memory clobber is being
used: try to avoid this as it will degrade optimization potential
Description
The compiler is commenting that an inline asm statement is being used, which has
memory specified in the clobber list. This can be counterproductive to optimization.
Replacing the asm statement with one that does not clobber memory by using the
normal inline asm outputs is preferable because the side-effects are less restrictive.
This is particularly important with inter-procedural analysis (IPA). If IPA were to
assume that an inline asm statement with a memory-clobber writes to all globals, then
including one such statement in a program would mean the value of any global could
not be determined (IPA is not flow-sensitive) and this would negate much of the
potential benefit that IPA provides. For this reason, the compiler does not make this
assumption. If the compiler encounters an inline asm statement with a memoryclobber when IPA is enabled, it will generate a warning instead of this remark
because the results may be unexpected. See cc1737.
Severity
Remark
Recovery
The compiler issues the remark when the -Wremarks switch is specified. It then
continues the compilation of the translation unit.
Examples
The file foo.c contains the following function with an inline asm statement:
Blackfin Processors
int glob;
void foo(void) {
asm volatile("p0.h = 0x9009; p0.l = 0x8008;
"p5.l = _glob; p5.h = _glob;
"[p5] = p0;

\n"
\n"
\n"

340

: /*O*/
: /*I*/
: /*C*/ "p0", "p5", "memory"
);
}
int main(void) {
foo();
}

Invoking the compiler:


ccblkfn -O foo.c -Wremarks

SHARC Processors
int glob;
void foo(void) {
asm volatile("r1 = 0x90098008;
"I1 = _glob;
"DM(0,I1) =r1;
: /*O*/
: /*I*/
: /*C*/ "r1", "I1", "memory"
);
}

\n"
\n"
\n"

int main(void) {
foo();
}

Invoking the compiler:


cc21k -O foo.c -Wremarks

TigerSHARC Processors
int glob;
void foo(void) {
asm volatile("k30 = 0x90098008;;
"[j31 + _glob] = k30;;
: /*O*/
: /*I*/
: /*C*/ "k30", "memory"
);
}

\n"
\n"

int main(void) {
foo();
}

Invoking the compiler:


ccts -O foo.c -Wremarks

Produces:
"foo.c", line 43 (col. 4): cc1736: {D} remark: an inline asm statement
with a memory clobber is being used: try to avoid this as it will
degrade optimization potential

It is better practice to produce the value in the asm statement as an output, and
write the global variable in a C statement. This means that the write to the global
variable is not hidden from the compiler. For example:
Blackfin Processors
int glob;
void foo(void) {

341

asm volatile("%0.h =
:
:
:
);

0x9009; %0.l = 0x8008;


"=d" (glob) /*o*/
/*I*/
/*C*/

\n"

}
int main(void) {
foo();
}

SHARC Processors
int glob;
void foo(void) {
asm volatile("%0 = 0x90098008;
: "=r" (glob) /*O*/
: /*I*/
: /*C*/
);
}

\n"

int main(void) {
foo();
}

TigerSHARC Processors
int glob;
void foo(void) {
asm volatile("%0 = 0x90098008;;
": "=k" (glob) /*O*/
: /*I*/
: /*C*/
);
}

\n"

int main(void) {
foo();
}

This is just an illustrative example. In this particular case, it would be preferable to


write the constant directly to the global entirely in C. However, the principle is the
same for examples where the value to be stored in the global has to be calculated by
the inline asm statement.
How to Fix
Replace the inline asm with one which does not require a memory clobber.
Related Information
Refer to "Inline Assembly Language Support Keyword (asm)" in your processor's
VisualDSP++ C/C++ Compiler and Library Manual.

Compiler Warnings
cc0009
Compiler Warning: nested comment is not allowed
Description
A comment appears inside another comment. This error applies only to C-style

342

comments and not to C++-style comments (which apply until the end of a line).
Severity
Warning
Recovery
The compiler automatically closes the previous comment and opens a new comment.
Example
/* start of outer comment
/* inner comment */
end of outer comment */

How to Fix
Close the outer comment before the inner comment begins, and restart the outer
comment when the inner comment ends.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (6.1.9)
ISO/IEC 14882:1998 "Programming Languages - C++" (2.7)

cc0011
Compiler Warning: unrecognized preprocessing directive
Description
An unrecognized preprocessing directive has been encountered.
Severity
Warning
Recovery
The compiler issues a warning and then ignores the offending directive.
Example
#I_am_not_valid

How to Fix
Ensure that the name used is a valid preprocessing directive. Check your
documentation.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (6.1.9)
ISO/IEC 14882:1998 "Programming Languages - C++" (13)

cc0012
Compiler Warning: parsing restarts here after previous syntax error
Description
Syntax errors can cause the parser to skip tokens after the error point. This
diagnostic tells you the recovery position.
Severity
Warning
Recovery
The compiler continues parsing after issuing the diagnostic.
Example

343

If the code below is compiled in a C program, the end_of_flush diagnostic is issued


at the end of the class declaration because C does not recognize classes.
class Point
{
public:
private:
}; /* diagnostic issued after semi-colon */
void main(){}

How to Fix
Correct the syntax error by referring to a C manual.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (6.1.6)
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0021
Compiler Warning: type qualifiers are meaningless in this declaration
Description
Type qualifiers on void types do not have any use. On function types they are
undefined.
Severity
Warning
Recovery
The compiler ignores the meaningless type qualifiers and continues.
Example
typedef int F();
const F g;

How to Fix
You can remove the useless qualifiers with this statement:
*type_ptr = make_unqualified_type(*type_ptr);

These qualifiers are kept in case the back end assigns any meaning to them.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.3)

cc0039
Compiler Warning: division by zero
Description
A division by zero has occurred.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
int i 5/0;

How to Fix

344

Do not use division by zero.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5)

cc0047
Compiler Warning: incompatible redefinition of macro "entity" (declared at
line xxxx)
Description
The current redefinition of this macro is incompatible with one occurring earlier in the
source file.
Severity
Warning
Recovery
The compiler keeps the new definition of the macro, and compilation continues.
Example
#define MyMacro A
#define MyMacro B
int main()
{}

How to Fix
If the previous definition of the macro is not needed, take it out or make the
definitions compatible. Also, you can use a new macro name.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.3.5)

cc0061
Compiler Warning: integer operation result is out of range
Description
The value does not fit in the destination integer type. This error is suppressed for
non-arithmetic constants in K&R mode.
Severity
Warning
Recovery
Compilation continues and the compiler returns the result after the overflow
Example
#include <math.h>
#define Imax 0X7FFFFFFF
main()
{
long int i;
i = Imax+1;
}

How to Fix
Use exception handling to handle the error.

345

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.9.1, 5.7, 19.1.8)

cc0062
Compiler Warning: shift count is negative
Description
The shift count is negative.
Severity
Warning
Recovery
The compiler ignores the statement and compilation continues.
Example
int main()
{
short Num = 0X7FFFFFFF;
Num = Num << -0X7;
}

How to Fix
Do not use negative shift count.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.8, 5.9)

cc0063
Compiler Warning: shift count is too large
Description
The shift count is too large.
Severity
Warning
Recovery
The value of the variable becomes zero, and compilation continues.
Example
int main()
{
int Num = 4;
Num = Num >> 32;
}

How to Fix
The largest shift count possible for the SHARC compiler is 31, which is one less than
the size of long (32 bits).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.8, 5.9)

346

cc0064
Compiler Warning: declaration does not declare anything
Description
A declaration with no declarator defines a type but doesn't declare a name.
Omissions of declarators with enum and class specifiers are allowed only when they
actually declare something.
Severity
Warning
Recovery
The compiler ignores the declaration statement and continues.
Example
struct { int i; };

How to Fix
Ensure that every declaration contains a declarator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7, 8)

cc0068
Compiler Warning: integer conversion resulted in a change of sign
Description
The value assigned to an integer is larger that the largest value allowed for int.
Severity
Warning
Recovery
The compiler changes the sign of the variable and continues.
Example
int main(void)
{
long l = 2147483648;
}

How to Fix
Ensure that the value of the offending variable is kept within the limits for int (2147483648 to 2147483647).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0076
Compiler Warning: argument to the macro is empty
Description
The compiler generates a warning because of an empty macro argument, which is
"undefined" behavior according to the standard. The compiler does not generate a
diagnostic if the argument was ended because the source ended or because of a

347

preprocessing directive. In strict ANSI mode, this undefined behavior is legal.


Severity
Warning, in strict ANSI mode
Recovery
The compiler treats the empty argument as equal to zero.
Example
#define sum(i) i + 1
int main()
{
int k = sum(); /* k is given the value of 1 */
}

How to Fix
Using the correct number of arguments prevents ambiguity.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.3)

cc0082
Compiler Warning: storagec class is not first
Description
The storage class is not the first specifier, (except for inline or friend) in a
declaration.
Severity
Warning, in strict ANSI mode only
Recovery:
The compiler accepts the declaration of the storage class, and the compilation
continues.
Example
int auto i;

How to Fix
Make the storage class the first specifier in the offending declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.1)

cc0099
Compiler Warning: a declaration here must declare a parameter
Description
A freestanding declaration exists within an old-style parameter list. An old style
parameter declaration introduces a named struct or enum type, but has no
declarator for the parameter. This condition is allowed in ppc mode.
Severity
Warning
Recovery

348

The compiler ignores the statement(s) and compilation continues.


Example
void f(a)
struct s {int b;};
struct s a;
{}

How to Fix
Restructure your program to be ANSI compliant.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7)

cc0108
Compiler Warning: signed bit field of length 1
Description
A signed bit field has only one bit.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
struct {
signed int i : 1; /* a signed bit field with a size of one */
/* compiler issues a warning */
int j : 2;
} MyStr;

How to Fix
Although ANSI C allows signed one-bit fields, the preference is for one-bit fields that
are not signed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (9.6)

cc0111
Compiler Warning: statement is unreachable
Description
The block in which a dynamic initialization is executed is unreachable, or the current
location in the code is unreachable.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
#include<stdio.h>
int main()
{

349

printf("Hello ");
return 0;
printf("World\n"); /* This statement is unreachable. */
}

How to Fix
Change the source code at the appropriate place to ensure that the offending
statement is executed. If the statement is not needed, remove it to clean up the
program.
The code above should assume the following:
#include<stdio.h>
int main()
{
printf("Hello ");
printf("World\n"); /* Now the statement is reached. */
return 0;
}

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6)

cc0128
Compiler Warning: loop is not reachable from preceding code
Description
The current location in the code (the top of a loop) is unreachable. This message is
different from the normal "statement is unreachable" message, because the bodies
of loops can be reached via a branch from the bottom.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
int main()
{
int i = 0;
return 0; /* program exits here */
while ( i <= 10 ){ /* This while loop is unreachable */
i++;
}
}

How to Fix:
Restructure your program to ensure that the unreachable code is processed, or
remove the code if it is not needed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.5)

cc0138
Compiler Warning: taking the address of a register variable is not allowed
Description

350

The program is trying to take the address of a register variable in C. This action is
allowed in C++, and is allowed with a warning in C except in strict error mode.
Severity
Warning
Recovery
The compiler ignores the statement and compilation continues.
Example
int main()
{
register int i = 2;
int *ip;
ip = &i; /* attempting to take the address of the register */
/* variable i.
}

How to Fix
Take the offending statement out or change the definition of the variable to make it
a non-register.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0161
Compiler Warning: unrecognized pragma
Description
A pragma is not being recognized.
Severity
Warning
Recovery
The compiler ignores the statement and compilation continues.
Example
# Pragma AnyOldPragma
/* as it is unlikely that "AnyOldPragma" would be defined,
a warning is likely */

How to Fix
Use only pragma directives supported by this compiler.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (16.6)
See your documentation to find out what pragmas are supported by this compiler.

cc0173
Compiler Warning: floating-point value does not fit in required integral type
Description
The floating point value is too big to fit in the integer.
Severity

351

Warning
Recovery
The compiler truncates the value, and compilation continues.
Example
This warning cannot be reproduced because in the SHARC compiler all integral types
have the same length, 32 bits. If the char had 8 bits, the statement below would
reproduce this warning:
char a = 1233445.o;

How to Fix
Ensure that the value being converted fits into the integer type. This correction does
not apply to the SHARC compiler, as all integral types have 32 bits.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0175
Compiler Warning: subscript out of range
Description
When subscripting an array with an integral constant, ensure that the subscript is
within the array bounds.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
int main(){
char Phrase[] = "text";
char *p5 = &Phrase[10];
}

How to Fix
Ensure that the subscript used does not exceed its maximum possible length.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.1, 8.3.4)

cc0177
Compiler Error: entity-kind "entity" was declared but never referred to
Description
A variable is not referred to or used or a parameter is not used.
Severity
Warning
Recovery
The compiler ignores the error, and compilation continues.
Example

352

int main()
{
int i;
int j = 10;
}

How to Fix
Ensure that the variable is used or remove it.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2)

cc0178
Compiler Warning: "&" applied to an array has no effect
Description
In pcc mode "&array" is the same as "array" implicitly converted to a pointer. Type
"pointer-to-array-element" is applied rather than "pointer to array" as in ANSI.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
An example is any situation described above.
How to Fix
Remove the "&" at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0179
Compiler Warning: right operand of "%" is zero
Description
A division or module by zero has taken place.
Severity
Warning
Recovery
After the warning, compilation continues. The result of the operation is zero.
Example
int main()
{
int i = 5;
int j = 5/0;
}

How to Fix
Ensure that if the second operand of a division or module operation is zero, an
exception can deal with the situation.

353

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5)

cc0185
Compiler Warning: dynamic initialization in unreachable code
Description
The block in which the dynamic initialization is executed is unreachable.
Severity
Warning
Recovery
If this warning appears when you are compiling a C file, the error "declaration may
not appear after executable statement" will also appear. Therefore, this case is
applicable only when you compile C++ source files.
If you are compiling a C++ source file, the compiler ignores the statement and
compilation continues.
Example
int main(){
return 0;
int i = 5; /* code is unreachable */
}

How to Fix
Ensure that the offending code is reachable, or take the offending code out.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (3.6.2)

cc0186
Compiler Warning: pointless comparison of unsigned integer with zero
Description
Comparison of an unsigned value with zero has been encountered. Some cases make
sense.
Severity
Warning
Recovery
The compiler warns about the pointless comparison and ignores it.
Example
int main(){
unsigned int Num = 10;
if( Num < 0 ){
;
}
}

How to Fix
Four pointless cases are possible:

354

u >= 0 (always true)


u < 0 (always false)
0 > u (always false)
0 <= u (always true)

A comparison that identifies with one of the above is pointless and should be
removed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.1)

cc0187
Compiler Warning: use of "=" where "==" may have been intended
Description
The compiler has encountered a "x = constant" statement, which was probably
intended to be a "x == constant" statement.
Severity
Warning
Recovery
The expression probably has a bool (false or true) type or can be converted to bool.
The compiler evaluates the expression to true, and compilation continues.
Example
int main(){
int Num = 1;
if ( Num = 1 ){ /* Warning appears here */
; /* statements */
}
}

How to Fix
Replace the offending "=" sign with "==" at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (6.4, 6.5, 6.6)

cc0188
Compiler Warning: enumerated type mixed with another type
Description
Assigning or passing a parameter of an enumeration of one type with a different
enumeration type results in a warning.
Severity
Warning, in C mode
Recovery
Compilation continues after the warning.
Example
enum FIRST{ a,b};

355

enum SECOND{ d,e};


enum FIRST fvar;
void func2(enum SECOND);
void func()
{
fvar = d;
func2(fvar);
}

How to fix
Use consistent enumeration types.
Related Information
See also ISO/IEC 9899:1990 "Programming Languages - C" ()

cc0191
Compiler Warning: type qualifier is meaningless on cast type
Description
The compiler has encountered casting to a qualified type. The statement is valid, but
pointless.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
int main()
{
int Num = 1;
int Num_c = (const)Num;
}

How to Fix
The statement is pointless. Therefore, change the source to ensure that removing
the statement will have no ill effect on the program.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.2.7, 5.2.9, 5.2.10)

cc0192
Compiler Warning: unrecognized character escape sequence
Description
An unrecognized escape character has been encountered.
Severity
Warning
Recovery
The unrecognized escape generates a warning but translates to the escape
character, and compilation continues.
Example

356

printf("Test\q?\"");

How to Fix
Replace the unrecognized escape character with a valid one at the appropriate place
in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (2.13.2)

cc0221
Compiler Warning: floating-point value does not fit in the required floatingpoint type
Description
A floating-point type value is too big to fit in the required floating-point type.
Severity
Warning
Recovery
The compiler truncates the value and continues compilation.
Example
int main()
{
/* The value below is too large to fit in a floating-point type */
float d = 99999999999999999999999999999999999999999999.0;
}

How to Fix
Ensure that the value you are trying to fit into a
floating-point type actually fits.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (4.8)

cc0222
Compiler Warning: floating-point operation result is out of range
Description
During compilation the compiler detected an overflow when it attempted an
operation between two floating point types.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
double d1 = 1e300*1e300;

How to Fix
Provide an exception to deal with an overflow, or ensure that the result of such an
operation will fit into the required type.
Related Information

357

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (4.8)

cc0228
Compiler Warning: trailing comma is nonstandard
Description
The compiler has encountered a trailing extra comma at the end of an enumeration
declaration list. A trailing extra comma is allowed only as an extension with a strict
ANSI diagnostic.
Severity
Warning
Recovery
The compiler removes the extra comma, and compilation continues.
Example
enum e { e1, e2, };

How to Fix
Remove the offending extra comma.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.2)

cc0230
Compiler Error: nonstandard type for a bit field
Description
This diagnostic applies only to C and not C++. The compiler has encountered a nonstandard integral or enum base type ( anything other than int, unsigned int, and
signed int).
Severity
Warning, in strict ANSI mode only
Recovery
After the warning, compilation continues.
Example
struct{
char a : 1;
} MyStr;
int main(){}

How to Fix
Change the offending base type to int, unsigned int, and signed int at the
appropriate place in the source.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0231
358

Compiler Warning: declaration is not visible outside of function


Description
The compiler has encountered a type declaration that is not visible outside the
function declaration.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
int foo( struct s a );
struct s { int b; };
int main(){}
/* The first "struct s" is a different type than the second, which is
probably not what was wanted. */

How to Fix
Follow the rule that in C-mode a type declared in a parameter declaration is local to
the function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0232
Compiler Warning: old-fashioned typedef of "void" ignored
Description
This error applies only for ppc mode, and appears only in old pre-void-keyword mode
as something like: typedef <something> void;
Severity
Warning
Recovery
In ppc mode the compiler ignores this error.
Example
typedef int void;

How to Fix
In the appropriate place(s) in the source code, replace "void" with something that is
not an ANSI keyword.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0233
Compiler Warning: left operand is not a struct or union containing this field
Description
This diagnostic only applies to ppc mode. The compiler has encountered a situation
where the left operand of a "." operator is not a structure or a union type.

359

Severity
Warning
Recovery
In ppc mode the compiler ignores the statement.
Example
struct{
int i;
}MyStr;
int main(){
int Str;
Str.i;
}

How to Fix
Ensure that the offending left operand is a structure or union.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0234
Compiler Warning: pointer does not point to a struct or union containing
this field
Description
This diagnostic applies only to ppc mode. The compiler has encountered a situation
where the left operand of a "->" operator is not a structure or a union type.
Severity
Warning
Recovery
In ppc mode the compiler ignores the statement.
Example
struct{
int i;
}MyStr;
int main(){
int pStr;
pStr->i;
}

How to Fix
Ensure the offending left operand is a structure or union.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0260
Compiler Warning: explicit type is missing ("int" assumed)
Description
No type was explicitly specified for the current declaration. This is C-specific. A
different error exists for C++ mode.

360

Severity
Warning
Recovery
The type defaults to int and compilation continues.
Example
int main(){
register Num = 0; /* missing type specifier,
will default to int */
}

How to Fix
Add the missing type specifier at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0267
Compiler Warning: old-style parameter list (anachronism)
Description
The old-style parameter list is an anachronism in C++. C++ specific.
Severity
Warning
Recovery
After the warning compilation continues.
Example
void
int
int
{}
void

f(i, j)
i;
j;
main(){}

How to Fix
Use new a new style parameter list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (8.4)

cc0301
Compiler Warning: typedef name has already been declared(with same
type)
Description
This typedef statement redefines a name to the same type, int the current scope.
This warning is C specific.
Severity
Warning
Recovery
The compiler ignores the statement and compilation continues.

361

Example
typedef int num;
typedef int num;
int main(){}

How to Fix
Remove the redundant re-declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.3)

cc0362
Compiler Warning: "overload" keyword used (anachronism)
Description
The overload keyword was used as an identifier in the source file. C++ specific.
Severity
Warning
Recovery
The compiler ignores the statement containing the "overload" keyword, and
compilation continues.
Example
void main(){
overload f;
}

How to Fix
Replace the "overload" keyword with another token that is not a C++ keyword.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0368
Compiler Warning: entity-kind entity defines no constructor to initialize the
following
Description
A constructor definition needed for the initialization of non-static data members of
const-qualified type and/or reference members is not present.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
class A{
const int i;
};
int main(){}

362

How to Fix
Declare a default constructor at the appropriate place in the source code.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.6.2)

cc0370
Compiler Warning: entity-kind "entity" has an uninitialized const field
Description
An entity (struct or union) has a non-static data member of const-qualified type or a
reference member that was not initialized. This error is C specific.
Severity
Warning
Recovery
The compiler issues the diagnostic, and compilation continues.
Example
void main(){
struct {
const int num;
}a;
}

How to Fix
Initialize the offending const member at the appropriate place in the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0375
Compiler Warning: declaration requires a typedef name
Description
A typedef declaration with no declarator defines a type, but does not declare a
name.
Severity
Warning
Recovery
The compiler ignores the declaration, and compilation continues.
Example
typedef class {}; /* typedef declarator missing */
int main(){}

How to Fix
Add a declarator for the offending typedef declaration at the appropriate place in the
source code.
Related Information

363

ISO/IEC 9899:1990 "Programming Languages - C"


ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.3)

cc0379
Compiler Warning: cast of bound function to normal function pointer
(anachronism)
Description
A bound function was cast to a normal function pointer as an anachronism. This
warning is C++ specific.
Severity
Warning
Recovery
After the warning, compilation continues as normal.
Example
struct A {int f();};
A *p = new A;
int (*pf)() = (int (*)())p->f;
int main(){}

How to Fix
Remove the offending casting statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0387
Compiler Warning: delete array size expression used (anachronism)
Description
Anachronism. There is an expression between the brackets, presumably indicating
the number of elements in the array.
Severity
Warning
Recovery
The compiler ignores the expression, and compilation continues.
Example
int myArray[2];
void main(){
delete[2] myArray;
}

How to Fix
Remove the expression between the square brackets.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.5)

364

cc0414
Compiler Warning: delete of pointer to incomplete class
Description
Deletion of a pointer to an incomplete class.
Severity
Warning
Recovery
The compiler selects the appropriate destructor routine.
Example
template <class T>
struct B;
void main(){
B<int> *p;
delete p;
}

How to Fix
Complete the class pointed to by the deleted pointer.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.5)

cc0426
Compiler Warning: temporary used for initial value of reference to nonconst (anachronism)
Description
A reference to non-const or to const volatile is initialized in a way that requires a
temporary. This error is allowed as an anachronism.
In cfront mode, this use is allowed also for a reference to non-const if an argument
is being passed, or if a temporary was constructed in 2.1 mode, or if a non-global
was initialized 3.0 mode.
Severity
Warning
Recovery
After the warning compilation continues.
Example
int func1()
{
static int x;
return x;
}
void func2(int& x) {}
void main(){
func2(func1()); /* Warning: temporary used for initial
value of to non-const */
}

365

How to Fix
Ensure that a temporary is not used for initial value of reference to non-const.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0428
Compiler Warning: enumerated type mixed with another type
(anachronism)
Description
An enumerated type was mixed with another type. This use is an anachronism.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
enum colour {g,r,b};
colour farbe = g;
void main(){
farbe++;
}

How to Fix
Change the source code to ensure that the offending enumerated type is not mixed
with any other type.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0461
Compiler Warning: initial value of reference to non-const must be an lvalue
Description
The initial value of a reference to non-const was an rvalue.
Severity
Warning
Recovery
The compiler issues a warning and compilation continues.
Example
struct S {
int s;
S() : s(1) {}
};
struct T {
operator S() { return S(); }
};

366

T t;
void main(){
S &rs = static_cast<S>(t); /* static_cast<X>(oy)
is not an lvalue */
rs.s++; // suppress warning
}

How to Fix
Ensure that the initial value of a reference to non-const is always an lvalue.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (13.3.3.1.4)

cc0482
Compiler Warning: entity-kind "entity" is an inaccessible type (allowed for
cfront compatibility)
Description
A particular type is not accessible. This warning is issued only in cfront mode (when
you compile with ++cfront_2.1 and ++cfront_3.0 command line options). Note that
cfront does not check access to types.
Severity
Warning
Recovery
The compiler issues a warning and compilation continues.
Example
template<class T>
class A {
static T t;
};
class B {
private:
struct S {};
};
A<B::S> y; /* Warning: class "B::S" is an inaccessible type */
void main(){}

How to Fix
In cfront mode, access errors on types are only warnings and these warning are
always issued. The only way to eliminate the warning is to compile in ANSI mode
(without the ++cfront_2.1 or ++cfront_3.0 command line options ).
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0494
367

Compiler Warning: declaring a void parameter list with a typedef is


nonstandard
Description
A type name is bound to void type. This construct is treated as a nonstandard way of
signifying an empty parameter list.
This diagnostic is issued only in strict ANSI mode when using the -strict or pedantic command-line options.
Severity
Warning
Recovery
The compiler treats the parameter list as empty, and compilation continues.
Example
typedef void zero;
void main(zero){}

How to Fix
Remove the offending type name from the parameter list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0497
Compiler Warning: declaration of "xxxx" hides template parameter
Description
A template parameter name has been reused in an inner scope of a template class or
function.
Severity
Warning
Recovery
The compiler warning states that the entity using the parameter name will be
hidden, and compilation continues.
Example
template <class T>
class A {
void func(int T){} /* Warning: declaration of "T"
hides template parameter
void func(int T){} */
};
void main(){}

How to Fix
A template parameter's scope extends from its point of declaration until the end of its
template. Use a different name for the offending entity.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14.6.1)

368

cc0514
Compiler Warning: Pointless comparison of unsigned integer with a negative
constant
Description
The compiler found a pointless comparison of an unsigned integer with a negative
constant:
u == -n (always false)
u != -n (always true)

Severity
Warning
Recovery
The compiler warns about the pointless comparison and ignores it.
How to Fix
A comparison that identifies with one of the above cases is pointless and should be
removed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0549
Compiler Warning: entity-kind "entity" is used before its value is set
Description
A variable that is not a block-extern variable or a namespace-scope variable with
internal linkage is being used before its value is set. In C++ a warning is not issued
if the variable is of class type (or array of class type ) and the class has no fields.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
void main(){
int i;
i++; /* Warning: variable "i" is used before its value is set */
}

How to Fix
Ensure that the variable value is set before using the variable.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0552
Compiler Warning: exception specification is not allowed
Description

369

An exception specification is not allowed on a declaration.


Severity
Warning
Recovery
The compiler ignores the statement and compilation continues.
Example
struct S {};
typedef void (*PF) () throw(S,int); /* Warning: exception specification is not
allowed*/
void main() {}

How to Fix
Remove the exception specification statement causing the warning.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (15.4)

cc0553
Compiler Warning: external/internal linkage conflict for entity-kind "entity"
(declared at line xxxx)
Description
An existing template function has been redeclared as inline. This message is issued
only for linkage inconsistency pertaining to non-member function templates.
Severity
Warning
Recovery
The compiler ignores the explicitly specified storage class and compilation continues.
Example
template<class T> bool less (T a, T b);
bool (*pf)(int, int);
void func()
{
pf = &less;
pf(5, 6);
}
void main (){}
template<class T> inline bool less (T a, T b)
{
return a < b;
}

How to Fix
If you are redeclaring a template function, ensure that no linkage inconsistency
occurs.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (14)

370

cc0554
Compiler Warning: entity-kind "entity" will not be called for implicit or
explicit conversions
Description
This warning indicates a conversion to the same type, a reference to the same type
or base class, or a reference to a base class in implicit or explicit conversions.
Severity
Warning
Recovery
The compiler issues the warning, ignores the statement, and continues compilation.
Example
struct S {
S(){}
operator S&() volatile;
} x;
void main() {}

How to Fix
Remove the offending statement.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (12.3.2)

cc0608
Compiler Warning: this pragma must immediately precede a declaration or
statement
Description
The particular pragma used does not precede a declaration or a statement as
required.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
void main(){}
#pragma _printf_args

How to Fix
Ensure that this particular pragma precedes a declaration or a statement, or remove
the pragma from the source file.
Related Information
See also compiler documentation for pragmas.

cc0610
Compiler Warning: entity-kind "entity" does not match "entity" - virtual
function override intended?

371

Description
A declaration in the derived class might have been intended to override a base class
virtual function, but did not. This occurrence is legal, but it might have been a
mistake.
Severity
Warning
Recovery
The compiler issues the warning in case the construct was a mistake, and
compilation continues.
Example
class B {
public:
virtual void func() = 0;
};
class A : public B {
public:
void func(int); /* Warning: "void A::vf2(dm int) dm" does not match
"B::vf2" -- virtual function override intended?
*/
};
void main(){}

How to Fix
The only way to eliminate this warning is to remove the statement causing it.
Removal, however, is not necessary because the construct is perfectly legal. To
suppress warnings, the -w command line option.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++" (27.7.1.3)

cc0617
Compiler Warning: pointer-to-member-function cast to pointer to function
Description
A pointer-to-member constant was cast to a pointer-to-function, in cfront mode
(compiling with the command line options ++cfront_2.1 and ++cfront_3.0. ).
Severity
Warning, cfront mode only
Recovery
The compiler issues a warning about the cfront extension and compilation continues.
Example
struct A {int f();};
void main () {
int (*p)() = (int (*)())A::f;
}

How to Fix
In cfront mode, a pointer-to-member constant can be cast to a pointer-to-function.
This warning is always issued when you use such a constant in cfront mode. The only
way to suppress the warning is to compile with the -w (suppress warning) compile
line option.

372

Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0618
Compiler Warning: struct or union declares no named members
Description
A structure or union declared unnamed member(s). This error is C specific, and is
issued only when in strict (compiling with the -strict command line option) mode.
Severity
Warning, strict mode only
Recovery
The compiler issues the warning and compilation continues.
Example
struct S { int:1; };
void main(){}

How to Fix
Provide names for the offending unnamed members at the appropriate place in the
source file, or remove them.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"
This warning is not applicable to Analog compilers.

cc0657
Compiler Warning: inline specification is incompatible with previous "entity"
(declared at line xxxx)
Description
The specific declaration is inline but the template is not.
Severity
Warning
Recovery
The compiler ignores the inline specifier and compilation continues.
How to Fix
Remove the inline specifier from declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C".
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0676
Compiler Warning: using out-of-scope declaration of entity-kind "entity"
(declared at line xxxx)
Description

373

This SVR4 compatibility feature is now a default ANSI C mode feature. An external
symbol declared in another scope was used in the current scope. This warning is C
specific.
Severity
Warning
Recovery
A new symbol that refers to the external entity is entered in the current scope. A
warning is issued and a pointer to that new symbol is returned.
Example
void f1(void)
{
extern void f();
extern int i;
}
void f2()
{
int j = i; /* Warning: using out-of-scope declaration of variable
"i" (declared at line 4) */
j++; /* suppresses warning */
f(); /* Warning: using out-of-scope declaration of function
"f" (declared at line 3) */
}
int main(){ return 0; }

How to Fix
The only way to eliminate the warning is not to use any external symbols declared in
another scope, excluding the global scope, in the current scope. Remove the
offending external symbol and, if possible, replace it with one declared locally or with
a global symbol.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0715
Compiler Warning: __based does not precede a pointer operator, __based
ignored
Description
A __based modifier was present that was not followed by a pointer operator. This
error is applicable only when Microsoft mode is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Warning
Recovery
The compiler ignores the modifier and compilation continues.
Example
This diagnostic can be reproduced only when Microsoft mode is enabled.
How to Fix
Remove the offending __based modifier, or ensure that it is followed by a pointer

374

operator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0722
Compiler Warning: use of alternative token "<:" appears to be unintended
Description
If you use a construct where "<:" is immediately followed by a ":" and digraphs are
enabled, the compiler treats "<:" as a "[" and issues this warning.
Severity
Warning
Recovery
The compiler treats "<:" as "[" and issues the warning. Then compilation continues.
Example
int Array<::> = { 0 };
void main(){}

How to Fix
This warning appears only when digraphs are enabled (compiling with the -alttok
compile line option). If the use of "<:" was not intended as a digraph, compile with
digraphs disabled (no -alttok compile line option). The only way to eliminate the
warning when digraphs are enabled is to replace the digraph in the source file with
the token that it represents.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0723
Compiler Warning: use of alternative token "%:" appears to be unintended
Description
If you use a construct where "%:" is immediately followed by a ":" and digraphs are
enabled, the compiler treats "%:" as a "#" and issues this warning.
Severity
Warning
Recovery
The compiler treats "%:" as "#" and issues the warning. Then compilation continues.
Example
%::>
void main(){}

How to Fix
This warning only appears when digraphs are enabled (compiling with the -alttok
compile line option). If the usage of "%:" was not intended as a digraph, compile with
digraphs disabled (no -alttok compile line option). The only way to eliminate the
warning when digraphs are enabled is to replace the digraph in the source file with

375

the token that it represents.


Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0729
Compiler Warning: invalid combination of DLL attributes
Description
The dllimport and dllexport attributes are mutually exclusive. This diagnostic is only
applicable when Microsoft mode is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
This error cannot be reproduces without the support for Microsoft extensions.
How to Fix
Ensure that the dllimport and dllexport attributes are not mutually exclusive.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0737
Compiler Warning: using-declaration ignored -- it refers to the current
namespace
Description
You are trying to use either a using-declaration with a namespace qualifier that is
the same as the current namespace or a using-declaration at file scope with "name"
already declared in the file scope.
Severity
Warning
Recovery
The compiler ignores the using-declaration and compilation continues.
Example
namespace N { int i; using N::i; }
int i; using ::i;
void main(){}

How to Fix
Remove the offending using-declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"

376

ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.3)

cc0783
Compiler Warning: empty comment interpreted as token-passing operator
"##"
Description
In SVR4 C mode, an empty comment is treated as a token pasting operator.
The C/C++ Compiler : SHARC version 6.1.0 does not support SVR4 C mode.
Severity
Warning
Recovery
The compiler treats the empty comment as a token pasting operator and compilation
continues.
Example
This error cannot be reproduced with the C/C++ Compiler : SHARC version 6.1.0, as
SVR4 C mode is not supported.
How to Fix
Remove the empty comment from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C"
ISO/IEC 14882:1998 "Programming Languages - C++"

cc0830
Compiler Warning: entity-kind "entity" has no corresponding operator
deletexxxx (to be called if an exception is thrown during initialization of an
allocated object)
Description
No "delete" operator corresponds to this "new" operator. This diagnostic is issued
only if exceptions are enabled. SHARC version 6.1.0 does not support exceptions.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
How to Fix
Ensure that every "new" operator has a corresponding "delete" operator.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.4)

cc0831
Compiler Error: support for placement delete is disabled
Description
A class member operator "delete" or "delete[]" has a second parameter type other

377

than size_t.
Severity
Remark, if exceptions disabled
Warning, if exceptions enabled
Recovery
The compiler issues the diagnostic and compilation continues.
Example
#include <iostream.h>
class A
{
public:
void* operator new( size_t );
void operator delete( void* );
void operator delete( void*, int );
};
void main() {}

How to Fix
This construct is legal according to the ANSI standard. The diagnostic is issued
because up to 1995, class member "delete" could have only two arguments and the
second one had to be size_t. This restriction is no longer imposed.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0836
Compiler Warning: returning reference to local variable
Description
The operand is the address being bound to a reference in a return statement. A
warning is issued if this is a local entity.
Severity
Warning
Recovery
The compiler issues the diagnostic and compilation continues.
Example
int& func()
{
int i;
return i;
}
void main() {}

How to Fix
Ensure that functions do not return references to local variables.

378

Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (8.5.3)

cc0837
Compiler Error: omission of explicit type is nonstandard ("int" assumed)
Description
A type was not explicitly specified for the current declaration. This diagnostic applies
to function declarations, function definitions, and non-function declarations where at
least one declaration specifier is present. This error is C++ specific. A different
diagnostic is used in C.
Severity
Warning
Fatal error, in strict mode (compiling with the -strict command line option)
Recovery
If a warning is indicated, the compiler assumes an "int" and compilation continues.
If a fatal error is indicated, the compiler cannot recover.
Example
func(); /* Error: omission of explicit type is nonstandard
("int" assumed) */
void main()
{
const i; /* Error: omission of explicit type is nonstandard
("int" assumed) */
}

How to Fix
Specify an explicit type for the offending declaration or definition.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (7.1.5)

cc0838
Compiler Error: more than one partial specialization matches the template
argument list of entity-kind "entity"
Description
More than one matching specialization was found, and none of the specializations is
more specialized than any of the other matching specializations.
Severity
Fatal error
Recovery
The compiler cannot recover from this error.
Example
template <class T1, class T2, int I >

379

class A {};
template <class T1, class T2, int I>
class A<T1*, T2, I> {};
template <class T1, class T2, int I>
class A<T1, T2*, I> {};
void main()
{
A<int*, int*, 2> a1; /* Error: more than one partial specialization
matches the template argument list of class
"A<dm int *, dm int *, 2>"
"A<T1 *, T2, I>"
"A<T1, T2 *, I>" */
if (&a1) {} /* suppresses warning */
}

How to Fix
Remove the ambiguity to ensure that only one partial specialization matches the
template argument list.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (14.5.4.1)

cc0860
Compiler Warning: __declspec attributes ignored
Description
The __declspec attributes appearing during declarator processing or decl-modifiers that
precede the linkage specifier were ignored.
This diagnostic appears only when support for Microsoft extensions is enabled.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.
Severity
Warning
Recovery
The __declspec declarations are ignored and compilation continues.
How to Fix
Remove the offending __declspec attributes from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0867
Compiler Warning: declaration of "size_t" does not match the expected type

380

"type"
Description
This diagnostic is issued when the declaration of size_t is inconsistent with the
target configuration (that is, at file scope or in namespace "std").
Severity
Warning
Recovery
The compiler issues the diagnostic and compilation continues.
Example
This error cannot be reproduced at the present time.
How to Fix
Remove the offending size_declaration.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" ()

cc0870
Compiler Warning: invalid multibyte character sequence
Description
The multibyte character sequence was invalid.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for processing
multibyte characters.
Severity
Warning
Recovery
Compiler issues the warning and compilation continues.
Example
This error cannot be reproduced with the locale set to disallow the processing of
multibyte characters in the source.
How to Fix
Remove the offending multibyte character sequence from the source file.
Related Information
Compiler documentation

cc0902
Compiler Warning: type qualifier ignored
Description
This diagnostic is issued only when Microsoft mode is enabled, near/far mode is
enabled, or both are enabled.
In Microsoft mode, qualifiers like const/volatile are dropped because they are ignored
by the compiler. In near/far mode, all qualifiers other than near/far are ignored.
The C/C++ Compiler : SHARC version 6.1.0 does not include support for Microsoft
extensions.

381

Severity
Warning
Recovery
The compiler ignores the qualifiers and compilation continues.
How to Fix
This error cannot be fixed. You can, however, suppress the warning by using the -W
compile line option.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (N/A)

cc0940
Compiler Error: missing return statement at end of non-void entity-kind
"entity"
Description
A non-void function does not have a return statement.
Severity
Warning
Discretionary error, if you are compiling in C++ and in strict mode (with the -strict
compile line option)
Recovery
The compiler issues the diagnostic and compilation continues.
Example
int func() {}
void main() {}

How to Fix
Provide a return statement for the offending function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (6.6.3)

cc0941
Compiler Error: duplicate using-declaration of "entity" ignored
Description
The compiler has found a duplicate class member using declaration.
Severity
Warning
Discretionary error, if you are compiling in C++ and in strict mode (with the -strict
compile line option)
Recovery
The compiler issues the diagnostic and ignores the duplicate using declaration.
Compilation continues.

382

Example
class A
{
public:
void f();
};
class B : public A
{
public:
using A::f;
using A::f;
};
void main() {}

How to Fix
Remove the offending duplicate class using declaration from the source file.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" ()
ISO/IEC 14882:1998 "Programming Languages - C++" (7.3.3)

cc1039
Compiler Warning: a member with reference type is not allowed in a union.
Description
A member of a union is declared as a reference type. This error is C++ specific.
Severity
Warning (compiling with the -pedantic command line option)
Recovery
If a warning is indicated, the compiler allows the declaration and compilation
continues.
Example
union utype{
int x;
int &r; // member is a reference type
};

How to Fix
Change the member type to non-reference.
Related Information
See also: ISO/IEC 14882:1998 "Programming Languages - C++" (9.5)

cc1041
Compiler Warning: redeclaration of type alters its access.
Description
You are specifying a nested class with one access specification and redeclaring it with
another. This warning is C++ specific.

383

Severity
Warning (discretionary)
Recovery
The compiler issues the warning and compilation continues.
Example
class outer{
class inner;
inner *blob;
public:
class inner{ // alter access properties
int mem;
}x;
};

How to Fix
Declare the class with the same access specifier used in its previous declaration.
Related Information
See also: ISO/IEC 14882:1998 "Programming Languages - C++" (11.8)

cc1043
Compiler Warning: return type "int" omitted in declaration of function
"main".
Description
You are declaring the function main with no explicit return type.
Severity
Warning (compiling with the -pedantic command line option)
Recovery
The compiler issues the warning and compilation continues.
Example
main()
{
}

How to Fix
Specify a return type for function main.
Related Information
See also: ISO/IEC 14882:1998 "Programming Languages - C++" (11.8)

cc1045
Compiler Warning: missing return statement at end of non-void function "f"
Description
A function that expects to return a value and does not explicitly does so on
termination.
Severity
Warning
Recovery

384

The compiler issues the warning and compilation continues.


Example
int f()
{
}

How to Fix
Add a return statement explicitly at the end of the function.
Related Information
ISO/IEC 9899:1990 "Programming Languages - C" (3.6.6.4)
ISO/IEC 14882:1998 "Programming Languages - C++" (6.6.3)

cc1073
Compiler Warning: __IDENT__ seen before #ident. Expanding to file and
date
Description
You are using the predefined macro __IDENT__ before setting #ident.
Severity
Warning
Recovery
Macro __IDENT__ is given the default value filename and date.
Example
#include <stdio.h>
main()
{
printf("%s\n",__IDENT__);
}

How to Fix
Set up the value of __IDENT__ by using #ident.
Related Information

cc1074
Compiler Warning: #ident declared without parameters. Expanding to
__FILE__ and date
Description
Macro directive #ident has been declared with no parameter.
Severity
Warning
Recovery
The directive #ident is given the default value filename and date.
Example
#include <stdio.h>
#ident // string parameter expected.
main()
{

385

printf("%s\n",__IDENT__);
}

How to Fix
Initialize #ident with a string.
Related Information

cc1080
Compiler Warning: Function does not have a full prototype.
Description
You are calling a function that is declared with no prototype information.
Severity
Warning, C mode and option -warn-protos
Recovery
The compiler issues the warning and compilation continues.
Example
void func();
void func2()
{
func(5,6);
}

How to Fix
Specify a prototype for the function.
Related Information
See also: ISO/IEC 9899:1990 "Programming Languages - C" (6.5.4.3)

cc1114
Compiler Warning: alignment less than specified type requirement given by
pragma align.
Description
The alignment value specified by #pragma align is less than the default of the
variable being declared.
Severity
Warning
Recovery
The compiler issues the warning and compilation continues.
Example
#pragma align 2
int x;

How to Fix
Correct the alignment value.
Related Information
See also the section about data alignment pragmas in the "Compiler" chapter of the
VisualDSP++ Compiler and Library Manual for your processor.

386

cc1127
Compiler Warning: f cannot be inlined because it takes a variable number of
arguments
Description
The compiler cannot inline a function which accepts a variable number of arguments,
and a warning is raised if such a function is declared with the "inline" keyword.
Severity
Warning
Recovery
The compiler will continue to parse the translation unit and show any subsequent
errors but will then exit and not produce an output file.
Example
inline func_va(int a, ...) {
/* Some code */
}
void func(){
func_va(1,2,3,4);
}

How to Fix
Remove the 'inline' keyword.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1164
Compiler Warning: return type of function "main" must be "int"
Description
The function "main" should return an "int" type. If it does not, the compiler issues a
warning.
Severity
Warning
Recovery
The compiler issues a warning and compilation continues.
Example
void main()
{
}

How to Fix
Either suppress the warning using -w or change the return type of the function to
"int".
Related Information

cc1268
Compiler Warning: types cannot be declared in anonymous unions.
Description

387

Declaring a type as a member of anonymous union is illegal.


Severity
Discretionary warning, C++ only
Recovery
The compiler issues the warning and compilation continues.
Example
static union {
int x;
typedef int y; // invalid type declaration
};

How to Fix
Move the type declaration outside the anonymous union.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (9.5)

cc1269
Compiler Warning: returning pointer to local variable.
Description
You are taking the address of a local variable and returning it from the function in
which it is declared.
Severity
Discretionary warning
Recovery
The compiler issues the warning and compilation continues.
Example
int *func()
{
int r = 21;
return &r;
}

How to Fix
Use malloc to allocate some memory or use the file scope declaration to ensure the
space is not corrupted.
Related Information
ISO/IEC 14882:1998 "Programming Languages - C++" (5.3.1)
ISO/IEC 9899:1990 "Programming Languages - C" (6.3.3.2)

cc1305
Compiler Warning: invalid attribute for variable "name".
Description
You are specifying an attribute name for the wrong kind of declaration.
Severity
Discretionary warning

388

Recovery
The compiler issues the warning and compilation continues.
Example
int var __attribute__((pure));

How to Fix
Spell the attribute name correctly.
Related Information
See also the section about attributes in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1310
Compiler Warning: attribute "name" ignored.
Description
You are specifying an unrecognized or badly spelled attribute name.
Severity
Discretionary warning
Recovery
The compiler issues the warning and compilation continues.
Example
int x __attribute__((week));

How to Fix
Spell the attribute name correctly.
Related Information
See also the section about attributes in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1355
Compiler Warning: arithmetic on pointer to void or function type.
Description
You are using a pointer to a void or to a function in an arithmetic expression.
Severity
Discretionary warning
Recovery
The compiler issues the warning and compilation continues.
Example
void *p;
void *q;
void func()
{
q = p + 1;
}

How to Fix
You can fix the analog extension, which may show up as an unintended problem, by
changing the pointer to a valid type.
389

Related Information
See also the section about GNU extensions in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1367
Compiler Warning: variable-length array field type will be treated as zerolength array field type.
Description
If you declare a variable-length array in a local class, the specified size will be
ignored.
Severity
Discretionary warning
Recovery
The compiler issues the warning and compilation continues.
Example
void glob(int);
int sz;
void func(){
struct S{
int obj;
int arr[sz]; // ignore sz and zero used
}d;
glob(d.obj);
}

How to Fix
You can fix the analog extension, which may show up as an unintended problem, by
changing the pointer to a valid type.
Related Information
See also the section about GNU extensions in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1368
Compiler Warning: nonstandard cast on lvalue ignored.
Description
In C mode as an extension the compiler allows a cast as an lvalue.
Severity
Discretionary warning
Recovery
The compiler issues the warning and compilation continues.
Example
int x;
main()
{
(float)x = 2.5; // cast is allowed as an extension.
}

390

How to Fix
Use memcpy to move the pattern into the assigned value.
Related Information
See also the section about GNU extensions in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1371
Compiler Warning: the auto specifier is ignored here (invalid in standard
C/C++).
Description
As an extension the compiler allows an auto declaration of global scope, but ignores
the auto keyword.
Severity
Discretionary warning
Recovery
The compiler issues the warning and compilation continues.
Example
auto int x; // ignore keyword auto
main()
{
x = 2;
}

How to Fix
Remove the auto keyword from the global declaration.
Related Information
See also the section about GNU extensions in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1374
Compiler Warning: excess initializers are ignored.
Description
As an extension the compiler allows extra initializers to be specified.
Severity
Discretionary warning
Recovery
The compiler issues the warning and compilation continues.
Example
int x[2] = {1,2,3};
main()
{
}

How to Fix
Remove the excess initializers.
Related Information

391

See also the section about GNU extensions in the VisualDSP++ Compiler and Library
Manual for your processor.

cc1440
Compiler Warning: pragma regs_clobbered register or register set name "r"
not recognized. Ignoring pragma; using default volatile set instead.
Description
The warning is issued if a user-defined clobber set, indicated using #pragma
regs_clobbered, contains an unrecognized register or register set name. The
compiler ignores the pragma regs_clobbered use that spawned the warning.
Severity
Discretionary warning
Recovery
The compilation continues after the warning is issued assuming the default volatile
set.
Example
#pragma regs_clobbered "myreg" /* myreg wil be unrecognized */
void func() {
/* some code */
}

How to Fix
Remove or correct the use of the unrecognized register or register set name in
pragma regs_clobbered use on indicated source line.

cc1441
Compiler Warning: pragma regs_clobbered register range beginning "r-"
must consist of one start and one end register. Ignoring pragma; using
default volatile set instead.
Description
The warning is issued if a user-defined clobber set contains a register range with
more than one start and end register. The compiler ignores the pragma
regs_clobbered use that spawned the warning.
Severity
Discretionary warning
Recovery
The compilation continues after the warning is issued assuming the default volatile
set.
Examples
Blackfin Processors
#pragma regs_clobbered "r0-r1-r2" /* invalid register range */
void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "r0-r1-r2" /* invalid register range */
void func() {
/* some code */

392

TigerSHARC Processors
#pragma regs_clobbered "xr0-xr1-xr2" /* invalid register range */
void func() {
/* some code */
}

How to fix
Specify a range of registers containing a start and end register. For example:
Blackfin Processors
#pragma regs_clobbered "r0-r1"
void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "r0-r1"
void func() {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "xr0-xr1"
void func() {
/* some code */
}

cc1442
Compiler Warning: pragma regs_clobbered register set contains register r
which may not be clobbered. Ignoring that register.
Description
The warning is issued if a user-defined clobber set contains a register which cannot
be clobbered as it is required to be preserved over a function call.
Severity
Discretionary warning
Recovery
The use of the register in question is ignored, and the compilation continues after the
warning is issued.
Examples
Blackfin Processors
#pragma regs_clobbered "fp Dscratch" /* fp must be preserved */
void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "i6 DAGscratch Dscratch"
/* i6 must be preserved */
void func() {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "J26 DABset" /* J26 must be preserved */
void func() {
/* some code */

393

How to fix
Remove the uses of the register in question from the instance of #pragma
regs_clobbered that spawns the warning.

cc1443
Compiler Warning: pragma regs_clobbered may not preserve register r
across a function call. Clobbering that register.
Description
The warning is issued if a user-defined clobber set does not include certain necessary
clobbered registers. An example would be those registers which are required to
implement the call and return mechanism and are always clobbered in the process of
calling a function.
Severity
Discretionary warning
Recovery
The compilation continues after the warning is issued. The compiler automatically
includes the register in question in the #pragma regs_clobbered register set.
Examples
Blackfin Processors
This warning does not apply to Blackfin processors.
SHARC Processors
#pragma regs_clobbered "Dscratch" /* i12 requires to be clobbered */
void func() {
/* some code */
}

TigerSHARC Processors
This warning does not apply to TigerSHARC processors.
How to fix
Include a use of the register in question in the instance of #pragma regs_clobbered
that spawns the warning.

cc1444
Compiler Warning: pragma regs_clobbered may not use register set rs as
start or end of a register range. Ignoring pragma; using default volatile set
instead.
Description
The warning is issued if a user-defined clobber set specifies a register set as either
the start or end of a range of registers.
Severity
Discretionary warning
Recovery
The pragma is ignored and the compilation continues after the warning is issued.
Examples
Blackfin Processors

394

#pragma regs_clobbered "Dscratch-r7"


void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "r0-Dscratch"
void func() {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "XR0-XYscratch"
void func() {
/* some code */
}

How to fix
Specify a range of registers containing a start and end register. For example:
Blackfin Processors
#pragma regs_clobbered "r0-r1"
void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "r0-r1"
void func() {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "xr0-xr1"
void func() {
/* some code */
}

cc1445
Compiler Warning: pragma regs_clobbered start and end registers of
register range beginning r must reside within the same register class.
Ignoring pragma; using default volatile set instead.
Description
The warning is issued if a user-defined clobber set specifies a range of registers
where the start and end registers are of a different register class.
Severity
Discretionary warning
Recovery
The pragma is ignored and the compilation continues after the warning is issued.
Examples
Blackfin Processors
#pragma regs_clobbered "p0-r7"
void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "i0-r7"

395

void func() {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "XR0-XMR4"
void func() {
/* some code */
}

How to fix
Specify a range of registers containing a start and end register of the same class. For
example:
Blackfin Processors
#pragma regs_clobbered "r0-r1"
void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "r0-r1"
void func() {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "xr0-xr1"
void func() {
/* some code */
}

cc1446
Compiler Warning: pragma regs_clobbered contains reserved registers r;
register will not be clobbered.
Description
The warning is issued if a user-defined clobber set specifies a register which has
been reserved (see reserve switch).
Severity
Discretionary warning
Recovery
The compilation continues after the warning is issued.
Examples
Blackfin Processors
ccblkfn -reserve m3 t.c
File t.c:
#pragma regs_clobbered Dscratch m3
void func() {
/* some code */
}

SHARC Processors
cc21k reserve i9 t.c
#pragma regs_clobbered Dscratch i9
void func() {
/* some code */

396

TigerSHARC Processors
Warning cc1446 does not apply to TigerSHARC processors.
How to fix
Remove register r from the string of clobbered register.

cc1447
Compiler Warning: pragma regs_clobbered may not be used with pragma
interrupt; regs_clobbered pragma will be ignored.
Description
The warning is issued if an attempt is made to use a regs_clobbered pragma in
conjunction with a function declared with #pragma interrupt (or the
EX_INTERRUPT_HANDLER macro). Due to the nature of an interrupt service routine,
the information in the pragma is of no benefit.
Severity
Discretionary warning
Recovery
The pragma is ignored, and the compilation continues after the warning is issued.
Examples
Blackfin Processors
#pragma regs_clobbered "Dscratch"
EX_INTERRUPT_HANDLER(myisr) {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "Dscratch"
#pragma interrupt
void (myisr) {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "Dscratch"
#pragma interrupt
void (myisr) {
/* some code */
}

How to fix
Remove the regs_clobbered pragma.

cc1448
Compiler Warning: pragma regs_clobbered uses different clobbered string
to previous declaration.
Description
The warning is issued if the regs_clobbered string applied to a previous declaration of
the function that does not match the declaration at the indicated line. The clobber
set on the previous declaration is ignored.
Severity

397

Discretionary warning
Recovery
The compilation continues after the warning is issued.
Examples
Blackfin Processors
#pragma regs_clobbered "r0-r7"
void func();
#pragma regs_clobbered "r0-r5"
void func() {
/* some code */
}

SHARC Processors
#pragma regs_clobbered "r0-r7"
void func();
#pragma regs_clobbered "r0-r5"
void func() {
/* some code */
}

TigerSHARC Processors
#pragma regs_clobbered "xr0-xr4"
void func();
#pragma regs_clobbered "xr0-xr3"
void func() {
/* some code */
}

How to fix
Ensure that the string of clobbered registers match on both declarations.

cc1467
Compiler warning: minimum and maximum parameters to pragma
loop_count are inconsistent
Description
Attempt to specify #pragma loop_count(min, max, modulo) where the min parameter
exceeds the max parameter.
Severity
Warning
Recovery
The compiler ignores both the minimum and maximum parameters of the pragma.
Example
The code fragment
#pragma loop_count(10,6,2)
for (i=0; i<n; i++)
statement;

gives the error message


cc1467: {D} warning: loop count pragma specifies smaller maximum than minimum
trip count; minimum and maximum arguments ignored

How to Fix

398

Set the minimum and maximum parameters in a consistent fashion, by either


changing their values so that the maximum trip count exceeds the minimum, or
omitting one or both parameters if they are unknown.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1470
Compiler warning: missing #pragma diag(pop)
Description
More #pragma diag(push) directives have been encountered than corresponding
#pragma diag(pop) directives at the end of compilation.
Severity
Warning
Recovery
The compiler ignores the entire directive.
Example
The code fragment
#pragma diag(push)
#pragma diag(push)
#pragma diag(pop)

gives the error message


cc1470: warning: missing #pragma diag(pop)

How to Fix
Remove one of the #pragma diag(push) directives or add the corresponding #pragma
diag(pop) directive at the end of the translation unit.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1482
Compiler warning: taking the address of a misaligned field is not
recommended
Description
An attempt has been made to take the address of a data member within a packed
class, structure, or union. The compiler can handle direct reads and writes from such
misaligned fields but cannot keep track of such operations if their addresses are
passed around via pointers.
Severity
Warning
Recovery
The compiler will take the address of the field. Be aware that all reads and writes to
that address are the responsibility of the user code and not of the compiler.
Example
#pragma pack(1)
struct A {char a; int b; } s;
int *p = &s.b;

399

How to Fix
If this is not intentional, allow the compiler to read and write to the field directly
without taking its address or consider using the provided misaligned intrinsic
functions when reading or writing to that address.
If this is intentional, you can temporarily suppress this message in the code by using
the diag() pragma.

cc1633
Compiler warning: unable to vectorize loop - circular buffer is not a suitable
length
Description
A _SIMD_for_ or _vector_for_ pragma was used to instruct the compiler to vectorize a
loop, but the circular buffer that is accessed in the loop is not a suitable length for
vectorization.
Severity
Warning
Recovery
The compiler will ignore the pragma.
Example
The following code fragment
#pragma vector_for(2)
for (i = 0; i < 100; i++)
total += a[i%7] * b[i%7]; // Circular buffer length is not multiple of 2

will give the warning


cc1633: {D} warning: unable to vectorize loop - circular buffer is not a
suitable length

How to Fix
Remove the pragma.
Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1635
Compiler warning: function declared with "noreturn" appears to return
Description
A noreturn pragma or GNU attribute was used to instruct the compiler that a function
never returns to its caller. However, the compiler found a control flow path that
appeared to lead to a return from the function.
Severity
Warning
Recovery
The compiler will honor the pragma, and therefore, despite appearances assume that
the function will never return.
Example
The following code fragments
void g(void);

400

#pragma noreturn
void f1(void) {
g();
}
volatile int a;
__attribute__((noreturn)) void f2(void) {
while (a != 0)
;
}

will give the warning


cc1635: {D} warning: function declared with "noreturn" appears to return

How to Fix
Remove the pragma if it is not valid. If it is valid, it may be possible to avoid the
warning by adding extra hints (e.g., /* NOTREACHED */) or noreturn pragmas to the
code.
The above examples may be changed to:
#pragma noreturn
void g(void);
#pragma noreturn
void f1(void) {
g();
}
volatile int a;
__attribute__((noreturn)) void f2(void) {
while (a != 0)
;
/* NOTREACHED */
}

Related Information
VisualDSP++ C/C++ Compiler and Library Manual

cc1638
Compiler warning: fract value cannot be represented exactly therefore the
maximum fract value will be used
Description
Fract values in the range 0.99999997r 1.0r are given the value 0x7fffffff.
Severity
Warning
Recovery
The compiler will generate the maximum fract value (in hex 0x7fffffff) for the
variable.
Example
The code fragment
fract fr1 = 0.99999999999r;
fract fr2 = 1.0r;

will produce the warnings:


"test.cpp", line 5: cc1638: {D} warning: fract value cannot be represented
exactly therefore the maximum fract value will be used
fract fr1 = 0.99999999999r;
^
"test.cpp", line 6: cc1638: {D} warning: fract value cannot be represented

401

exactly therefore the maximum fract value will be used


fract fr2 = 1.0r

cc1639
Compiler warning: undefined behavior in standard C: lvalue expression
assigned and then used before sequence point
Description
Standard C specifies expressions which cannot be relied on such as a[i] = i++;. This
warning highlights such cases.
Severity
Warning
Recovery
The compiler chooses the most efficient way to use these expressions.
Example
The code fragment
a[i] = i++;

How to Fix
Rewrite as:
a[i] = i;
i++;

cc1640
Compiler warning: undefined behavior in standard C: lvalue expression
assigned more than once before sequence point
Description
Standard C specifies expressions which cannot be relied on such as p->a = (p->a
=2);. This warning highlights such cases.
Severity
Warning
Recovery
The compiler chooses the most efficient way to use these expressions.
Example
The code fragment
p->a = (p->a = 2) + x;

How to Fix
Rewrite as:
p->a = 2;
p->a = p->a +x;

cc1644
Compiler Warning: function f makes caller overly large inlining anyway
Description
This warning is issued if it has been requested that a function should always be
inlined (with use of #pragma always_inline or the always-inline switch) and the

402

compiler has determined that either the resulting code size or stack size of the
calling function exceeds a sensible size limit.
Severity
Discretionary Warning
Recovery
The compilation continues after the warning is issued.
Example
#pragma always_inline
inline big_func() {
int big_array[100000];
/* Some code */
}
void caller() {
/* Some code */
big_func();
}

How to Fix
To prevent the warning, do not explicitly direct the compiler to inline functions with
particularly large amount of code or local data.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1645
Compiler Warning: function f makes caller exceed speed/space ratio
inlining anyway
Description
This warning is raised if it has been explicitly requested that a function should be
inlined (with use of #pragma always_inline or the always-inline switch) and the
compiler has determined that performing the inlining operation at this call site
causes the code size of the calling function to increase such that the requested
speed/size optimization ratio is not satisfied.
Severity
Discretionary Warning
Recovery
Below, the inlining of function func into caller will not normally be performed where
the resulting size of caller is too large to satisfy the requested ratio. The pragma
directs the compiler to do so regardless, so the warning will be issued.
Example
#pragma always_inline
inline func() {
/* Some code */
}
void caller() {
/* Some code */
func();
}

How to Fix
To prevent the warning, do not explicitly direct the compiler to inline the function, or

403

adjust the optimization bias towards speed optimization (with use of the Ov switch).
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1646
Compiler Warning: function f exceeds speed/space ratio inlining anyway
Description
This warning is issued if it has been requested that a function should always be
inlined (with use of #pragma always_inline or the always-inline switch) and the
compiler has determined that the size of the function to be inlined is too large given
the requested speed/size optimization ratio.
Severity
Discretionary Warning
Recovery
The compilation continues after the warning is issued.
Example
Below, the inlining of function big_func into caller will not normally be performed
where the size of big_func is too large to satisfy the requested optimization ratio.
The pragma directs the compiler to do so regardless, so the warning will be issued.
#pragma always_inline
inline big_func() {
/* Much code */
}
void caller() {
/* Some code */
big_func();
}

How to Fix
To prevent the warning, do not explicitly direct the compiler to inline the function, or
adjust the optimization bias towards speed optimization (with use of the Ov switch).
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1651
Compiler Warning: #pragma never_inline not valid on 'inline' functions
Description
This warning is issued if #pragma never_inline has been applied to a function
declared with the 'inline' keyword. The pragma's intended application is to prevent
functions declared non-'inline' from being inlined when automatic inlining is enabled
(with the Oa switch).
Severity
Discretionary Warning
Recovery
The compilation continues after the warning is issued.
Example

404

#pragma never_inline
inline int func()

How to Fix
Remove the 'inline' keyword or remove #pragma never_inline.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1654
Compiler Warning: f: #pragma always_inline overridden by command-line
switch
Description
This warning is issued when the command-line option never-inline is specified,
overriding the #pragma always_inline preceding the declaration of function f. The
function will not be inlined.
Severity
Warning
Recovery
The compilation continues after the warning is issued.
Example
#pragma always_inline
inline func(int a) {
/* Some code */
}
void func2() {
func(1);
}

How to Fix
To prevent the warning being issued, remove the #pragma always_inline, or do not
specify option never-inline.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1658
Compiler Warning: address taken of function declared with user-defined
clobber set
Description
The warning is issued if the address of a function (which has a user-defined clobber
set) has been taken. This is because the compiler is unable to honor the defined
clobber set if a call is subsequently made to the function via a pointer. The
regs_clobbered_call pragma should be used in these circumstances.
Severity
Discretionary warning
Recovery
The compilation continues after the warning is issued.
Example

405

#pragma regs_clobbered "r0 r1 p1 p2"


int func() { /* some code */ }
void caller() {
int (*f)(void);
f = func; /* assigns the address of func and results in cc1658 */
}

How to Fix
Do not apply the regs_clobbered pragma to the declaration of a function if the
function's address is taken.

cc1661
Compiler Warning: enumeration value is greater than int type
Description
An enumeration containing a type that cannot be represented by an int will make
the compiler choose a different integer representation, for example long long.
Severity
Warning
Recovery
You can choose to ignore this if this is the behavior you desire. If you wish to restrict
the enum values to type int, then the -enum-is-int switch can be specified.
Example
enum fred{
value = 0x80001000 // Value larger than int
};

How to Fix
Use the -enum-is-int switch.

cc1665
Compiler Warning: variable "iden" is possibly used before its value is set in
loop
Description
An uninitialized variable is used in a loop. Control flow is such that it is possible that
it is assigned later in the loop, hence the use of "possibly".
Severity
Discretionary warning
Recovery
If the warning genuinely shows the use of the variable before it has been assigned a
value, then the variable should be correctly initialized to avoid serious run-time
issues.
Example
void func()
{
int i;
int j = 0;

406

while (j
i += j; // i used before it has been set
}
}

How to Fix
Initialize the variable to an initial value.

cc1667
Compiler Warning: Section directive can only be used with a class member
definition, not its declaration.
Description
This warning is issued if the section directive is used on a class member definition,
not its declaration.
Severity
Warning
Recovery
After the warning, compilation continues.
Example
section("mysec")
class myclass {
int i;
int foo();
};

How to Fix
Place directive on class member definitions only. For example:
section("mysec")
int myclass::foo() {
return i;
};

cc1734
Compiler Warning: pragma regs_clobbered without "p1" can be inefficient.
Description
This warning is raised if a function has a user-defined clobber set which does not
contain register P1. The warning highlights a potential inefficiency due to the
possibility that register P1 is used by the linker for expanding CALL instructions
where the destination of the call is out of the range of the PC-relative call instruction.
Since it is not known at compile time whether this will be the case, a calling function
which uses P1 must save and restore the register (potentially unnecessarily) around
a call to a function which does not contain it in its clobber set.
Severity
Warning
Recovery
The compilation continues after the warning is issued.
Example
#pragma regs_clobbered "r0-r7 p0 p2-p5 astat"
int func(void)
{

407

/* Some code */
}

How to Fix
The warning can be resolved by adding P1 to the user-defined clobber set in
question. This would be beneficial if, having studied the generated executable, it was
found that the linker had not expanded the call to the function and therefore not
clobbered P1.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc1737
Compiler Warning: an inline asm statement with a memory clobber is being
used with IPA: where possible try to avoid this. If this is not feasible, mark
any variables that may be written to as volatile; otherwise, unexpected
results may be obtained
Description
The compiler is commenting that an inline asm statement is being used which has
memory specified in the clobber list. This is particularly important with IPA enabled. If
IPA were to assume that an inline asm statement with a memory-clobber writes to all
globals, then including one such statement in a program would mean the value of
any global could not be determined (IPA is not flow-sensitive) and this would negate
much of the potential benefit that IPA provides.
For this reason, the compiler does not make this assumption. If the compiler
encounters an inline asm statement with a memory-clobber when IPA is enabled, it will
generate this warning.
Severity
Warning
Recovery
The compiler issues the warning and continues the compilation of the translation
unit. However, the results of the program execution may not be as expected.
Examples
The file foo.c contains the following function with an inline asm statement:
Blackfin Processors
int glob;
void foo(void) {
asm volatile("p0.h = 0x9009; p0.l = 0x8008;
"p5.l = _glob; p5.h = _glob;
"[p5] = p0;
: /*O*/
: /*I*/
: /*C*/ "p0", "p5", "memory"
);
}

\n"
\n"
\n"

int main(void) {
foo();
}

Invoking the compiler:

408

ccblkfn -O foo.c -ipa

SHARC Processors
int glob;
void foo(void) {
asm volatile("r1 = 0x90098008;
"I1 = _glob;
"DM(0,I1) =r1;
: /*O*/
: /*I*/
: /*C*/ "r1", "I1", "memory"
);
}

\n"
\n"
\n"

int main(void) {
foo();
}

Invoking the compiler:


cc21k -O foo.c -ipa

TigerSHARC Processors
int glob;
void foo(void) {
asm volatile("k30 = 0x90098008;;
"[j31 + _glob] = k30;;
: /*O*/
: /*I*/
: /*C*/ "k30", "memory"
);
}

\n"
\n"

int main(void) {
foo();
}

Invoking the compiler:


ccts -O foo.c -ipa

Produces:
"foo.c", line 43 (col. 4): cc1737: {D} warning: an inline asm statement
with a memory clobber is being used with IPA: where possible try to
avoid.
If this is not feasible, mark any variables
that may be written to as volatile.
Otherwise, unexpected results may be obtained.

It is better practice to produce the value in the asm statement as an output, and
write the global variable in a C statement. This means that the write to the global
variable is not hidden from the compiler. For example:
Blackfin Processors
int glob;
void foo(void) {
asm volatile("%0.h =
:
:
:
);
}

0x9009; %0.l = 0x8008;


"=d" (glob) /*o*/
/*I*/
/*C*/

\n"

409

int main(void) {
foo();
}

SHARC Processors
int glob;
void foo(void) {
asm volatile("%0 = 0x90098008;
: "=r" (glob) /*O*/
: /*I*/
: /*C*/
);
}

\n"

int main(void) {
foo();
}

TigerSHARC Processors
int glob;
void foo(void) {
asm volatile("%0 = 0x90098008;;
": "=k" (glob) /*O*/
: /*I*/
: /*C*/
);
}

\n"

int main(void) {
foo();
}

This is just an illustrative example. In this particular case, it would be preferable to


write the constant directly to the global entirely in C. However, the principle is the
same for examples where the value to be stored in the global has to be calculated by
the inline asm statement.
How to Fix
Replace the inline asm with one which does not require a memory clobber. If this is
not possible, ensure that any variables that can in fact be written to by the inline asm
are marked as volatile.
Related Information
Refer to "Inline Assembly Language Support Keyword (asm)" in your processor's
VisualDSP++ C/C++ Compiler and Library Manual.

cc1745
Compiler Warning: Externally defined variable ID, possibly used in
initialization before it has been constructed.
Description
An externally defined class object that requires a constructor is used in the
initialization of a static or external object.
Severity
Warning
Recovery
The compilation continues as normal after the warning is issued.
410

Example
class X{
public:
X();
int x;
};
class Y{
public:
Y(X*);
X x_memb;
};
extern X obj;
Y z(&obj); // obj possibly used before it is constructed.

How to Fix
One solution is to define obj in the same compilation unit and before the declaration
of z.

cc1746
Compiler Warning: Externally defined variable ID, possibly used in
constructor before it has been constructed.
Description
An externally defined class object requiring a constructor is used in the constructor
of another class, which potentially means a use before it has been constructed
results in this warning.
Severity
Warning
Recovery
The compilation continues as normal after the warning is issued.
Example
class X{
public:
X();
int x;
};
class Y{
public:
Y(X*);
X x_memb;
};
extern X obj;
Y::Y()
{
x_memb = obj; // obj may or not be constructed before
// construction of z
}
Y z;

411

How to Fix
One solution is to define obj in the same compilation unit and before the declaration
of z.

cc1749
Compiler Warning: alignment for local variable greater than stack alignment
Description
When #pragma align <num> is applied to local variables, then the alignment value
<num> must not be greater than the stack alignment. This warning indicates that
the specified alignment value is greater than the stack alignment, and that the
variable will have the default alignment for the data type size.
Severity
Warning
Recovery
The compilation continues after the warning is issued.
Examples
Examples are supplied for each processor family.
Blackfin Example
#pragma align 4
int x;
#pragma align 16
int y;
#pragma align 4
int global_array1[5] = {1,2,3,4,5};
#pragma align 8
int global_array2[5] = {1,2,3,4,5};
int func()
{
#pragma align 4
int a = 2;
#pragma align 16 //
int b = 1;
#pragma align 4
int local_array1[5]
#pragma align 8 //
int local_array2[5]
}

alignment value greater than stack alignment

= {1,2,3,4,5};
alignment value greater than stack alignment
= {1,2,3,4,5};

SHARC Example
#pragma align 2
int x;
#pragma align 16
int y;
#pragma align 2
int global_array1[5] = {1,2,3,4,5};
#pragma align 8
int global_array2[5] = {1,2,3,4,5};

412

int func()
{
#pragma align 2
int a = 2;
#pragma align 16 // alignment value greater than stack alignment
int b = 1;
#pragma align 2
int local_array1[5] = {1,2,3,4,5};
#pragma align 8 // alignment value greater than stack alignment
int local_array2[5] = {1,2,3,4,5};
}

TigerSHARC Example
#pragma align 4
int x;
#pragma align 16
int y;
#pragma align 4
int global_array1[5] = {1,2,3,4,5};
#pragma align 8
int global_array2[5] = {1,2,3,4,5};
int func()
{
#pragma align 4
int a = 2;
#pragma align 16 // alignment value greater than stack alignment
int b = 1;
#pragma align 4
int local_array1[5] = {1,2,3,4,5};
#pragma align 8 // alignment value greater than stack alignment
int local_array2[5] = {1,2,3,4,5};
}

How to Fix
Ensure that, when #pragma align is used for local variables, the alignment value
used is not greater than the stack alignment.
For Blackfin processors, this is 4 bytes.
For SHARC processors, this is 2 words.
For TigerSHARC processors, this is 4 words.
Related Information
Refer to the VisualDSP++ C/C++ Compiler and Library Manual for your processor.

cc3146
Driver Error: Unrecognized silicon revision specified, supported revisions
are 1.0, 1.1, any, none. Reverting to 1.1.
Description
Attempt to invoke the driver with a silicon revision that is not supported.
Severity
Discretionary warning.
Recovery
The driver issues the warnin