Skip to content

Commit cf13026

Browse files
xingxue-ibmtstellar
authored andcommitted
[OpenMP][test]Flip bit-fields in 'struct flags' for big-endian in test cases (#79895)
This patch flips bit-fields in `struct flags` for big-endian in test cases to be consistent with the definition of the structure in libomp `kmp.h`. (cherry picked from commit 7a9b0e4)
1 parent 28be6f6 commit cf13026

File tree

4 files changed

+47
-16
lines changed

4 files changed

+47
-16
lines changed

openmp/runtime/src/kmp.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2494,7 +2494,8 @@ typedef struct kmp_dephash_entry kmp_dephash_entry_t;
24942494
#define KMP_DEP_MTX 0x4
24952495
#define KMP_DEP_SET 0x8
24962496
#define KMP_DEP_ALL 0x80
2497-
// Compiler sends us this info:
2497+
// Compiler sends us this info. Note: some test cases contain an explicit copy
2498+
// of this struct and should be in sync with any changes here.
24982499
typedef struct kmp_depend_info {
24992500
kmp_intptr_t base_addr;
25002501
size_t len;

openmp/runtime/test/tasking/bug_nested_proxy_task.c

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,21 @@ typedef struct kmp_depend_info {
5050
union {
5151
kmp_uint8 flag; // flag as an unsigned char
5252
struct { // flag as a set of 8 bits
53-
unsigned in : 1;
54-
unsigned out : 1;
55-
unsigned mtx : 1;
56-
unsigned set : 1;
57-
unsigned unused : 3;
58-
unsigned all : 1;
53+
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
54+
unsigned all : 1;
55+
unsigned unused : 3;
56+
unsigned set : 1;
57+
unsigned mtx : 1;
58+
unsigned out : 1;
59+
unsigned in : 1;
60+
#else
61+
unsigned in : 1;
62+
unsigned out : 1;
63+
unsigned mtx : 1;
64+
unsigned set : 1;
65+
unsigned unused : 3;
66+
unsigned all : 1;
67+
#endif
5968
} flags;
6069
};
6170
} kmp_depend_info_t;

openmp/runtime/test/tasking/bug_proxy_task_dep_waiting.c

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,21 @@ typedef struct kmp_depend_info {
4747
union {
4848
kmp_uint8 flag; // flag as an unsigned char
4949
struct { // flag as a set of 8 bits
50-
unsigned in : 1;
51-
unsigned out : 1;
52-
unsigned mtx : 1;
53-
unsigned set : 1;
54-
unsigned unused : 3;
55-
unsigned all : 1;
50+
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
51+
unsigned all : 1;
52+
unsigned unused : 3;
53+
unsigned set : 1;
54+
unsigned mtx : 1;
55+
unsigned out : 1;
56+
unsigned in : 1;
57+
#else
58+
unsigned in : 1;
59+
unsigned out : 1;
60+
unsigned mtx : 1;
61+
unsigned set : 1;
62+
unsigned unused : 3;
63+
unsigned all : 1;
64+
#endif
5665
} flags;
5766
};
5867
} kmp_depend_info_t;

openmp/runtime/test/tasking/hidden_helper_task/common.h

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,21 @@ typedef struct kmp_depend_info {
1717
union {
1818
unsigned char flag;
1919
struct {
20-
bool in : 1;
21-
bool out : 1;
22-
bool mtx : 1;
20+
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
21+
unsigned all : 1;
22+
unsigned unused : 3;
23+
unsigned set : 1;
24+
unsigned mtx : 1;
25+
unsigned out : 1;
26+
unsigned in : 1;
27+
#else
28+
unsigned in : 1;
29+
unsigned out : 1;
30+
unsigned mtx : 1;
31+
unsigned set : 1;
32+
unsigned unused : 3;
33+
unsigned all : 1;
34+
#endif
2335
} flags;
2436
};
2537
} kmp_depend_info_t;

0 commit comments

Comments
 (0)