- }
- else if ((reg.prot & PROT_WRITE)){
- xbt_assert(!result->start_rw,
- "Multiple read-write segments for %s, not supported",
- maps->regions[i].pathname);
- result->start_rw = reg.start_addr;
- result->end_rw = reg.end_addr;
- // .bss is usually after the .data:
- s_map_region_t* next = &(maps->regions[i+1]);
- if(next->pathname == NULL && (next->prot & PROT_WRITE) && next->start_addr == reg.end_addr) {
- result->end_rw = maps->regions[i+1].end_addr;
- }
- } else if ((reg.prot & PROT_READ) && (reg.prot & PROT_EXEC)){
- xbt_assert(!result->start_exec,
- "Multiple executable segments for %s, not supported",
- maps->regions[i].pathname);
- result->start_exec = reg.start_addr;
- result->end_exec = reg.end_addr;
- }
- else if((reg.prot & PROT_READ) && !(reg.prot & PROT_EXEC)) {
- xbt_assert(!result->start_ro,
- "Multiple read only segments for %s, not supported",
- maps->regions[i].pathname);
- result->start_ro = reg.start_addr;
- result->end_ro = reg.end_addr;
+ } else if ((reg.prot & PROT_WRITE)) {
+ xbt_assert(!result->start_rw,
+ "Multiple read-write segments for %s, not supported",
+ maps->regions[i].pathname);
+ result->start_rw = reg.start_addr;
+ result->end_rw = reg.end_addr;
+ // .bss is usually after the .data:
+ s_map_region_t *next = &(maps->regions[i + 1]);
+ if (next->pathname == NULL && (next->prot & PROT_WRITE)
+ && next->start_addr == reg.end_addr) {
+ result->end_rw = maps->regions[i + 1].end_addr;
+ }
+ } else if ((reg.prot & PROT_READ) && (reg.prot & PROT_EXEC)) {
+ xbt_assert(!result->start_exec,
+ "Multiple executable segments for %s, not supported",
+ maps->regions[i].pathname);
+ result->start_exec = reg.start_addr;
+ result->end_exec = reg.end_addr;
+ } else if ((reg.prot & PROT_READ) && !(reg.prot & PROT_EXEC)) {
+ xbt_assert(!result->start_ro,
+ "Multiple read only segments for %s, not supported",
+ maps->regions[i].pathname);
+ result->start_ro = reg.start_addr;
+ result->end_ro = reg.end_addr;