В приведенном ниже коде я создаю несколько массивов длиной 4 элемента.Это работает нормально, однако, когда я делаю их больше (5 или 6) элементов, я получаю ошибку ниже.
ИК-код
declare [4 x double] @malloc(double)
declare double @printd(double)
define double @__anon_expr0() {
entry:
%foo = alloca [4 x double]
%calltmp = call [4 x double] @malloc(double 2.560000e+02)
%0 = insertvalue [4 x double] %calltmp, double 1.000000e+00, 0
%1 = insertvalue [4 x double] %0, double 1.000000e+00, 1
%2 = insertvalue [4 x double] %1, double 1.000000e+00, 2
store [4 x double] %2, [4 x double]* %foo
%3 = getelementptr [4 x double], [4 x double]* %foo, i32 0, i32 0
%__ = load double, double* %3
%calltmp1 = call double @printd(double %__)
%4 = getelementptr [4 x double], [4 x double]* %foo, i32 0, i32 0
%__2 = load double, double* %4
%calltmp3 = call double @printd(double %__2)
ret double %calltmp3
}
define i32 @main() {
call double @__anon_expr0 ()
ret i32 0
}
Ошибка
built(16968,0x7fff8f39c380) malloc: *** mach_vm_map(size=140732867354624) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Что является причиной ошибки?Я думаю, что malloc может обрабатывать больше, чем 4 элемента массива.Что я тут не так делаю?