mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 06:07:59 +00:00
base: replace ELF flags bitfield with booleans
Instead of using a bitfield for storing rwx and skip boolean value, take a boolean instead. This fixes a note giv]en by GCC 9.1 about changes semantics of bitfields given as parameter by value on ARM. Ref #4344
This commit is contained in:
parent
b11731d6b2
commit
2c569953d0
@ -42,10 +42,10 @@ class Genode::Elf_binary
|
||||
/* special types */
|
||||
|
||||
struct Flags {
|
||||
unsigned r:1;
|
||||
unsigned w:1;
|
||||
unsigned x:1;
|
||||
unsigned skip:1;
|
||||
bool r { false };
|
||||
bool w { false };
|
||||
bool x { false };
|
||||
bool skip { false };
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -78,7 +78,7 @@ Elf_segment Elf_binary::get_segment(unsigned num)
|
||||
{
|
||||
void *start;
|
||||
size_t offset, filesz, memsz;
|
||||
Elf_binary::Flags flags = { 0, 0, 0, 0 };
|
||||
Elf_binary::Flags flags;
|
||||
|
||||
if (!valid()) return Elf_segment();
|
||||
|
||||
@ -91,16 +91,16 @@ Elf_segment Elf_binary::get_segment(unsigned num)
|
||||
filesz = phdr->p_filesz;
|
||||
memsz = phdr->p_memsz;
|
||||
|
||||
flags.r = (phdr->p_flags & PF_R) ? 1 : 0;
|
||||
flags.w = (phdr->p_flags & PF_W) ? 1 : 0;
|
||||
flags.x = (phdr->p_flags & PF_X) ? 1 : 0;
|
||||
flags.r = (phdr->p_flags & PF_R) ? true : false;
|
||||
flags.w = (phdr->p_flags & PF_W) ? true : false;
|
||||
flags.x = (phdr->p_flags & PF_X) ? true : false;
|
||||
|
||||
/*
|
||||
* Skip loading of ELF segments that are not PT_LOAD or have no memory
|
||||
* size.
|
||||
*/
|
||||
if (phdr->p_type != PT_LOAD || !memsz)
|
||||
flags.skip = 1;
|
||||
flags.skip = true;
|
||||
|
||||
return Elf_segment(this, start, offset, filesz, memsz, flags);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user