mpers.awk: avoid redefinition of mpers_ptr_t
Older versions of gcc like those found in RHEL6 fail with the following diagnostics: In file included from block.c:32: ./mpers-m32/struct_blk_user_trace_setup.h:2: error: redefinition of typedef ‘mpers_ptr_t’ mpers_type.h:44: note: previous declaration of ‘mpers_ptr_t’ was here * mpers.awk (END): Add #ifndef guard to mpers_ptr_t typedef. * mpers_test.sh: Update expected output.
This commit is contained in:
@ -234,8 +234,12 @@ END {
|
|||||||
PROCINFO["sorted_in"] = "compare_indices"
|
PROCINFO["sorted_in"] = "compare_indices"
|
||||||
for (item in array) {
|
for (item in array) {
|
||||||
if (array[item]["special"] == "pointer_type") {
|
if (array[item]["special"] == "pointer_type") {
|
||||||
print "typedef uint" \
|
mpers_ptr_t = \
|
||||||
8 * array_get(item, "byte_size") "_t mpers_ptr_t;"
|
"uint" 8 * array_get(item, "byte_size") "_t"
|
||||||
|
print "#ifndef mpers_ptr_t_is_" mpers_ptr_t
|
||||||
|
print "typedef " mpers_ptr_t " mpers_ptr_t;"
|
||||||
|
print "#define mpers_ptr_t_is_" mpers_ptr_t
|
||||||
|
print "#endif"
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,9 +81,13 @@ typedef struct {
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
expected="$mpers_dir/sample.expected"
|
expected="$mpers_dir/sample.expected"
|
||||||
|
mpers_ptr_t="uint${size}_t"
|
||||||
cat > "$expected" <<EOF
|
cat > "$expected" <<EOF
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
typedef uint${size}_t mpers_ptr_t;
|
#ifndef mpers_ptr_t_is_${mpers_ptr_t}
|
||||||
|
typedef ${mpers_ptr_t} mpers_ptr_t;
|
||||||
|
#define mpers_ptr_t_is_${mpers_ptr_t}
|
||||||
|
#endif
|
||||||
typedef
|
typedef
|
||||||
struct {
|
struct {
|
||||||
struct {
|
struct {
|
||||||
|
Reference in New Issue
Block a user