Index: uspace/lib/c/generic/rtld/symbol.c
===================================================================
--- uspace/lib/c/generic/rtld/symbol.c	(revision c4c90c84f0ad339d3b617140f356c47f85e21dff)
+++ uspace/lib/c/generic/rtld/symbol.c	(revision f1e75992330284e5247e85aa03c247e27f4fe09d)
@@ -135,8 +135,19 @@
 	modules_untag(start->rtld);
 
-	/* Insert root (the program) into the queue and tag it */
+	/*
+	 * Insert root (the program) into the queue and tag it.
+	 *
+	 * We disable the dangling-pointer warning because the compiler incorrectly
+	 * assumes that we leak local address (queue) to a parent scope (to start
+	 * argument). However, we always empty the list so the pointer cannot
+	 * actually escape. Probably the compiler can never statically analyze that
+	 * correctly.
+	 */
 	list_initialize(&queue);
 	start->bfs_tag = true;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdangling-pointer"
 	list_append(&start->queue_link, &queue);
+#pragma GCC diagnostic pop
 
 	/* If the symbol is found, it will be stored in 'sym' */
