Administrative functions > Error messages > C Compiler errors
 
C Compiler errors
Code segment too large
This message is the result of a problem in one of the files editQ.c or axesQ.c that the Quantum compiler creates from the edit and axes sections of your run:
editQ.c contains everything that was in your edit section, translated into the C programming language.
axesQ.c contains only the c= conditions from n statements and their equivalents on col, val, fld and bit statements.
The error message means that the amount of code that needs to be processed is too large. The only solution to this problem is to reduce the size of the code.
If the problem is in editQ.c, look for lines of the form:
if (c(123,124)=$99$) .....
If you find a lot of these lines, see if you can replace them with loops or fetch files.
If the problem is in axesQ.c, look for statements of the form:
n01Element text;c=c(132,134)=$123$
As in the edit section, this type of coding is inefficient and would be better defined using an integer variable defined in the edit section:
int myvar
ed
myvar=c(132,134)
end
....
n01Element text;c=myvar.eq.123
Also look for places where the number of conditions on elements can be reduced by filtering at a higher level. For example, look for places where you can use c= on an n00 statement or on the l statement. An even better solution would be to move some of the filtering from the axis section into the tabs section.
If you are having difficulty locating the source of the problem, try commenting out sets of tab statements and rerunning the job until you find the offending axis.
See also
Error messages