From c6eecbd88076b786eca93fb300b46f25599c605a Mon Sep 17 00:00:00 2001 From: Pascal Obry Date: Tue, 4 Jan 2011 11:33:39 +0000 Subject: [PATCH] decl.c: Disable Stdcall convention handling for 64-bit. * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. Co-Authored-By: Eric Botcazou From-SVN: r168460 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/gcc-interface/decl.c | 17 +++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 68446aca747..fbb70e42b08 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2011-01-04 Pascal Obry + Eric Botcazou + + * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit. + 2011-01-04 Eric Botcazou * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index ad742aa288e..a10fc2d74e9 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 1992-2010, Free Software Foundation, Inc. * + * Copyright (C) 1992-2011, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -50,14 +50,19 @@ #include "ada-tree.h" #include "gigi.h" -/* Convention_Stdcall should be processed in a specific way on Windows targets - only. The macro below is a helper to avoid having to check for a Windows - specific attribute throughout this unit. */ +/* Convention_Stdcall should be processed in a specific way on 32 bits + Windows targets only. The macro below is a helper to avoid having to + check for a Windows specific attribute throughout this unit. */ #if TARGET_DLLIMPORT_DECL_ATTRIBUTES -#define Has_Stdcall_Convention(E) (Convention (E) == Convention_Stdcall) +#ifdef TARGET_64BIT +#define Has_Stdcall_Convention(E) \ + (!TARGET_64BIT && Convention (E) == Convention_Stdcall) #else -#define Has_Stdcall_Convention(E) (0) +#define Has_Stdcall_Convention(E) (Convention (E) == Convention_Stdcall) +#endif +#else +#define Has_Stdcall_Convention(E) 0 #endif /* Stack realignment is necessary for functions with foreign conventions when