mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-17 21:03:55 +08:00
This fixes ! to work as documented in a memory region attribute list.
From Thomas Zenker <thz@lennartz-electronic.de>: * ldgram.y (attributes_opt): Use attributes_list instead of NAME. (attributes_list, attributes_string): New nonterminals. * ldlang.c (lang_set_flags): Add invert parameter. Don't handle '!'. * ldlang.c (lang_set_flags): Update declaration.
This commit is contained in:
11
ld/ldlang.c
11
ld/ldlang.c
@ -3255,21 +3255,18 @@ lang_place_orphans ()
|
||||
|
||||
|
||||
void
|
||||
lang_set_flags (ptr, flags)
|
||||
lang_set_flags (ptr, flags, invert)
|
||||
lang_memory_region_type *ptr;
|
||||
CONST char *flags;
|
||||
int invert;
|
||||
{
|
||||
flagword *ptr_flags = &ptr->flags;
|
||||
flagword *ptr_flags;
|
||||
|
||||
ptr->flags = ptr->not_flags = 0;
|
||||
ptr_flags = invert ? &ptr->not_flags : &ptr->flags;
|
||||
while (*flags)
|
||||
{
|
||||
switch (*flags)
|
||||
{
|
||||
case '!':
|
||||
ptr_flags = (ptr_flags == &ptr->flags) ? &ptr->not_flags : &ptr->flags;
|
||||
break;
|
||||
|
||||
case 'A': case 'a':
|
||||
*ptr_flags |= SEC_ALLOC;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user