From 3c5c992fb35721740819b519e532b3f3e244e323 Mon Sep 17 00:00:00 2001 From: mmitchel Date: Wed, 4 Aug 2004 19:37:19 +0000 Subject: * defaults.h (TARGET_DECLSPEC): New macro. * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC. * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support. * config/arm/symbian. (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove __declspec support. (TARGET_DECLSPEC): Define. * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove __declspec support. * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove __declspec support. (TARGET_DECLSPEC): Define. * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove __declspec support. * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec support. * doc/tm.texi (TARGET_DECLSPEC): Document. * doc/extend.texi: Fix typo in comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85571 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/c-cppbuiltin.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gcc/c-cppbuiltin.c') diff --git a/gcc/c-cppbuiltin.c b/gcc/c-cppbuiltin.c index 3f0f688861d..441a38e3b8c 100644 --- a/gcc/c-cppbuiltin.c +++ b/gcc/c-cppbuiltin.c @@ -426,6 +426,15 @@ c_cpp_builtins (cpp_reader *pfile) TARGET_CPU_CPP_BUILTINS (); TARGET_OS_CPP_BUILTINS (); TARGET_OBJFMT_CPP_BUILTINS (); + + /* Support the __declspec keyword by turning them into attributes. + Note that the current way we do this may result in a collision + with predefined attributes later on. This can be solved by using + one attribute, say __declspec__, and passing args to it. The + problem with that approach is that args are not accumulated: each + new appearance would clobber any existing args. */ + if (TARGET_DECLSPEC) + builtin_define ("__declspec(x)=__attribute__((x))"); } /* Pass an object-like macro. If it doesn't lie in the user's -- cgit v1.2.1