diff options
| author | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2010-02-16 03:37:11 +0000 |
|---|---|---|
| committer | Sanjiv Gupta <sanjiv.gupta@microchip.com> | 2010-02-16 03:37:11 +0000 |
| commit | ecd2600c522a592fbf03e86e8a6ca1b18dae4344 (patch) | |
| tree | 41de6ea4c36065e5fba6797e2766fe24d4e9c5a6 | |
| parent | 588fc83c74edfdc97458e7b692dfe5ac6ca4ae23 (diff) | |
| download | bcm5719-llvm-ecd2600c522a592fbf03e86e8a6ca1b18dae4344.tar.gz bcm5719-llvm-ecd2600c522a592fbf03e86e8a6ca1b18dae4344.zip | |
Re-applying 96173. Looks like finally I got the test case right.
llvm-svn: 96321
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 12 | ||||
| -rw-r--r-- | clang/test/Preprocessor/init.c | 11 |
2 files changed, 14 insertions, 9 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index b96e17d8924..c1cd96e361e 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -1619,23 +1619,25 @@ namespace { virtual void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { Builder.defineMacro("__pic16"); + Builder.defineMacro("__PIC16"); Builder.defineMacro("rom", "__attribute__((address_space(1)))"); Builder.defineMacro("ram", "__attribute__((address_space(0)))"); - Builder.defineMacro("_section(SectName)", + Builder.defineMacro("__section(SectName)", "__attribute__((section(SectName)))"); Builder.defineMacro("near", "__attribute__((section(\"Address=NEAR\")))"); - Builder.defineMacro("_address(Addr)", + Builder.defineMacro("__address(Addr)", "__attribute__((section(\"Address=\"#Addr)))"); - Builder.defineMacro("_CONFIG(conf)", "asm(\"CONFIG \"#conf)"); - Builder.defineMacro("_interrupt", + Builder.defineMacro("__config(conf)", "asm(\"CONFIG \"#conf)"); + Builder.defineMacro("__idlocs(value)", "asm(\"__IDLOCS \"#value)"); + Builder.defineMacro("interrupt", "__attribute__((section(\"interrupt=0x4\"))) \ __attribute__((used))"); } virtual void getTargetBuiltins(const Builtin::Info *&Records, unsigned &NumRecords) const {} virtual const char *getVAListDeclaration() const { - return ""; + return "typedef char* __builtin_va_list;"; } virtual const char *getClobbers() const { return ""; diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index a1485b65013..cccee762e26 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -443,7 +443,6 @@ // // RUN: %clang_cc1 -E -dM -ffreestanding -triple=pic16-none-none < /dev/null | FileCheck -check-prefix PIC16 %s // -// PIC16:#define _CONFIG(conf) asm("CONFIG "#conf) // PIC16:#define __CHAR_BIT__ 8 // PIC16:#define __DBL_DENORM_MIN__ 1.40129846e-45F // PIC16:#define __DBL_DIG__ 6 @@ -500,6 +499,7 @@ // PIC16:#define __LONG_LONG_MAX__ 2147483647LL // PIC16:#define __LONG_MAX__ 2147483647L // PIC16:#define __NO_INLINE__ 1 +// PIC16:#define __PIC16 1 // PIC16:#define __POINTER_WIDTH__ 16 // PIC16:#define __PTRDIFF_TYPE__ int // PIC16:#define __PTRDIFF_WIDTH__ 16 @@ -515,12 +515,15 @@ // PIC16:#define __WCHAR_WIDTH__ 16 // PIC16:#define __WINT_TYPE__ int // PIC16:#define __WINT_WIDTH__ 16 +// PIC16:#define __address(Addr) __attribute__((section("Address="#Addr))) // PIC16:#define __clang__ 1 +// PIC16:#define __config(conf) asm("CONFIG "#conf) +// PIC16:#define __idlocs(value) asm("__IDLOCS "#value) // PIC16:#define __llvm__ 1 // PIC16:#define __pic16 1 -// PIC16:#define _address(Addr) __attribute__((section("Address="#Addr))) -// PIC16:#define _interrupt __attribute__((section("interrupt=0x4"))) __attribute__((used)) -// PIC16:#define _section(SectName) __attribute__((section(SectName))) +// PIC16:#define __section(SectName) __attribute__((section(SectName))) +// PIC16:#define interrupt __attribute__((section("interrupt=0x4"))) __attribute__((used)) +// PIC16:#define near __attribute__((section("Address=NEAR"))) // PIC16:#define ram __attribute__((address_space(0))) // PIC16:#define rom __attribute__((address_space(1))) // |

