File tree Expand file tree Collapse file tree 3 files changed +29
-1
lines changed Expand file tree Collapse file tree 3 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -1326,10 +1326,23 @@ void CompilerInvocation::setDefaultPredefinitions() {
1326
1326
Fortran::common::setOpenMPMacro (getLangOpts ().OpenMPVersion ,
1327
1327
fortranOptions.predefinitions );
1328
1328
}
1329
+
1329
1330
llvm::Triple targetTriple{llvm::Triple (this ->targetOpts .triple )};
1330
- if (targetTriple.getArch () == llvm::Triple::ArchType::x86_64) {
1331
+ switch (targetTriple.getArch ()) {
1332
+ default :
1333
+ break ;
1334
+ case llvm::Triple::ArchType::x86_64:
1331
1335
fortranOptions.predefinitions .emplace_back (" __x86_64__" , " 1" );
1332
1336
fortranOptions.predefinitions .emplace_back (" __x86_64" , " 1" );
1337
+ break ;
1338
+ case llvm::Triple::ArchType::ppc:
1339
+ case llvm::Triple::ArchType::ppcle:
1340
+ case llvm::Triple::ArchType::ppc64:
1341
+ case llvm::Triple::ArchType::ppc64le:
1342
+ // '__powerpc__' is a generic macro for any PowerPC cases. e.g. Max integer
1343
+ // size.
1344
+ fortranOptions.predefinitions .emplace_back (" __powerpc__" , " 1" );
1345
+ break ;
1333
1346
}
1334
1347
}
1335
1348
Original file line number Diff line number Diff line change @@ -47,7 +47,11 @@ module iso_c_binding
47
47
c_long_long = c_int64_t, &
48
48
c_signed_char = c_int8_t, &
49
49
c_size_t = kind (c_sizeof(1 )), &
50
+ #if __powerpc__
51
+ c_intmax_t = c_int64_t, &
52
+ #else
50
53
c_intmax_t = c_int128_t, &
54
+ #endif
51
55
c_intptr_t = c_size_t, &
52
56
c_ptrdiff_t = c_size_t
53
57
integer , parameter , public :: &
Original file line number Diff line number Diff line change
1
+ ! Test predefined macro for PowerPC architecture
2
+
3
+ ! RUN: %flang_fc1 -cpp -E %s | FileCheck %s
4
+ ! REQUIRES: target=powerpc{{.*}}
5
+
6
+ ! CHECK: integer :: var1 = 1
7
+
8
+ #if __powerpc__
9
+ integer :: var1 = __powerpc__
10
+ #endif
11
+ end program
You can’t perform that action at this time.
0 commit comments