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-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9c8e862b2ed66d94be79af62b3a323f902f1032b;p=gcc.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 cb8db41b688..2915c1ae6ea 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 8419170cdbb..62380deab98 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);