Changes in uspace/lib/c/generic/rtld/symbol.c [d1582b50:da54714] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/rtld/symbol.c
rd1582b50 rda54714 65 65 static elf_symbol_t *def_find_in_module(const char *name, module_t *m) 66 66 { 67 if (m->dyn.hash == NULL) { 68 /* No hash table */ 69 return NULL; 70 } 71 67 72 elf_symbol_t *sym_table; 68 73 elf_symbol_t *s, *sym; … … 135 140 modules_untag(start->rtld); 136 141 137 /* Insert root (the program) into the queue and tag it */ 142 /* 143 * Insert root (the program) into the queue and tag it. 144 * 145 * We disable the dangling-pointer warning because the compiler incorrectly 146 * assumes that we leak local address (queue) to a parent scope (to start 147 * argument). However, we always empty the list so the pointer cannot 148 * actually escape. Probably the compiler can never statically analyze that 149 * correctly. 150 */ 138 151 list_initialize(&queue); 139 152 start->bfs_tag = true; 153 #pragma GCC diagnostic push 154 #if defined(__GNUC__) && (__GNUC__ >= 12) 155 #pragma GCC diagnostic ignored "-Wdangling-pointer" 156 #endif 140 157 list_append(&start->queue_link, &queue); 158 #pragma GCC diagnostic pop 141 159 142 160 /* If the symbol is found, it will be stored in 'sym' */
Note:
See TracChangeset
for help on using the changeset viewer.