[clang] 16f9451 - [clang] Redefine some AVR specific macros

Ben Shi via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 13 01:22:46 PST 2023


Author: Ben Shi
Date: 2023-01-13T17:22:15+08:00
New Revision: 16f9451b07619cd84e0b88ff17ca2b27a2c1f9cc

URL: https://github.com/llvm/llvm-project/commit/16f9451b07619cd84e0b88ff17ca2b27a2c1f9cc
DIFF: https://github.com/llvm/llvm-project/commit/16f9451b07619cd84e0b88ff17ca2b27a2c1f9cc.diff

LOG: [clang] Redefine some AVR specific macros

Fixes https://github.com/llvm/llvm-project/issues/58855

Reviewed By: aykevl, Miss_Grape

Differential Revision: https://reviews.llvm.org/D141598

Added: 
    

Modified: 
    clang/lib/Basic/Targets/AVR.cpp
    clang/test/Preprocessor/predefined-arch-macros.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/Targets/AVR.cpp b/clang/lib/Basic/Targets/AVR.cpp
index f2e5d970f3210..3d662cc3ba74f 100644
--- a/clang/lib/Basic/Targets/AVR.cpp
+++ b/clang/lib/Basic/Targets/AVR.cpp
@@ -468,15 +468,15 @@ void AVRTargetInfo::getTargetDefines(const LangOptions &Opts,
   }
 
   if (NumFlashBanks >= 1)
-    Builder.defineMacro("__flash", "__attribute__((address_space(1)))");
+    Builder.defineMacro("__flash", "__attribute__((__address_space__(1)))");
   if (NumFlashBanks >= 2)
-    Builder.defineMacro("__flash1", "__attribute__((address_space(2)))");
+    Builder.defineMacro("__flash1", "__attribute__((__address_space__(2)))");
   if (NumFlashBanks >= 3)
-    Builder.defineMacro("__flash2", "__attribute__((address_space(3)))");
+    Builder.defineMacro("__flash2", "__attribute__((__address_space__(3)))");
   if (NumFlashBanks >= 4)
-    Builder.defineMacro("__flash3", "__attribute__((address_space(4)))");
+    Builder.defineMacro("__flash3", "__attribute__((__address_space__(4)))");
   if (NumFlashBanks >= 5)
-    Builder.defineMacro("__flash4", "__attribute__((address_space(5)))");
+    Builder.defineMacro("__flash4", "__attribute__((__address_space__(5)))");
   if (NumFlashBanks >= 6)
-    Builder.defineMacro("__flash5", "__attribute__((address_space(6)))");
+    Builder.defineMacro("__flash5", "__attribute__((__address_space__(6)))");
 }

diff  --git a/clang/test/Preprocessor/predefined-arch-macros.c b/clang/test/Preprocessor/predefined-arch-macros.c
index 68fa6e2c6feab..a78bac132db15 100644
--- a/clang/test/Preprocessor/predefined-arch-macros.c
+++ b/clang/test/Preprocessor/predefined-arch-macros.c
@@ -4319,6 +4319,22 @@
 // CHECK_R600_FP64-DAG: #define __R600__ 1
 // CHECK_R600_FP64-DAG: #define __HAS_FMAF__ 1
 
+// Begin avr tests ----------------
+
+// RUN: %clang --target=avr -mmcu=atmega328 -E -dM %s -o - 2>&1 \
+// RUN:   | FileCheck -match-full-lines %s -check-prefix=CHECK-AVR0
+// CHECK-AVR0: #define __AVR_ARCH__ 5
+// CHECK-AVR0: #define __AVR_ATmega328__ 1
+// CHECK-AVR0: #define __flash __attribute__((__address_space__(1)))
+// RUN: %clang --target=avr -mmcu=atmega2560 -E -dM %s -o - 2>&1 \
+// RUN:   | FileCheck -match-full-lines %s -check-prefix=CHECK-AVR1
+// CHECK-AVR1: #define __AVR_ARCH__ 6
+// CHECK-AVR1: #define __AVR_ATmega2560__ 1
+// CHECK-AVR1: #define __flash  __attribute__((__address_space__(1)))
+// CHECK-AVR1: #define __flash1 __attribute__((__address_space__(2)))
+// CHECK-AVR1: #define __flash2 __attribute__((__address_space__(3)))
+// CHECK-AVR1: #define __flash3 __attribute__((__address_space__(4)))
+
 // Begin M68k tests ----------------
 
 // RUN: %clang -mcpu=68000 -E -dM %s -o - 2>&1 \


        


More information about the cfe-commits mailing list