From: Tristan Gingold Date: Mon, 11 Oct 2010 09:49:37 +0000 (+0000) Subject: utils2.c (maybe_wrap_malloc): Fix crash when allocating very large object on VMS. X-Git-Tag: releases/gcc-4.6.0~3655 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9c8e862b2ed66d94be79af62b3a323f902f1032b;p=thirdparty%2Fgcc.git utils2.c (maybe_wrap_malloc): Fix crash when allocating very large object on VMS. 2010-10-11 Tristan Gingold * gcc-interface/utils2.c (maybe_wrap_malloc): Fix crash when allocating very large object on VMS. From-SVN: r165288 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index cb8db41b688d..2915c1ae6ea2 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2010-10-11 Tristan Gingold + + * gcc-interface/utils2.c (maybe_wrap_malloc): Fix crash when allocating + very large object on VMS. + 2010-10-11 Javier Miranda * sem_ch10.adb (Analyze_With_Clause): Add missing test to ensure diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c index 8419170cdbb1..62380deab982 100644 --- a/gcc/ada/gcc-interface/utils2.c +++ b/gcc/ada/gcc-interface/utils2.c @@ -1820,9 +1820,10 @@ maybe_wrap_malloc (tree data_size, tree data_type, Node_Id gnat_node) /* On VMS, if pointers are 64-bit and the allocator size is 32-bit or Convention C, allocate 32-bit memory. */ if (TARGET_ABI_OPEN_VMS - && (POINTER_SIZE == 64 - && (UI_To_Int (Esize (Etype (gnat_node))) == 32 - || Convention (Etype (gnat_node)) == Convention_C))) + && POINTER_SIZE == 64 + && Nkind (gnat_node) == N_Allocator + && (UI_To_Int (Esize (Etype (gnat_node))) == 32 + || Convention (Etype (gnat_node)) == Convention_C)) malloc_ptr = build_call_1_expr (malloc32_decl, size_to_malloc); else malloc_ptr = build_call_1_expr (malloc_decl, size_to_malloc);