--- /dev/null
+
+extern void loadme();
+
+void good()
+{
+}
+
+void bad()
+{
+}
+
+// foo is first found be dead stripping here
+// then the use of loadme causes libfoo.a(foo.o)
+// to be loaded which overrides foo
+__attribute__((weak)) void foo()
+{
+ bad();
+}
+
+int main()
+{
+ foo();
+ loadme();
+ return 0;
+}
+
+