[Bug default/26672] detection of changes to an abstract base class

jiyong at google dot com sourceware-bugzilla@sourceware.org
Tue Sep 29 11:13:05 GMT 2020


https://sourceware.org/bugzilla/show_bug.cgi?id=26672

--- Comment #4 from jiyong at google dot com ---
Thanks a lot! That worked.

I have one complaint though (sorry!). In your modified example, it looks like
the existence of `void foo(MyClass&){}` is the critical part. When I had that
in the source files, `-femit-class-debug-always` wasn't actually needed. When I
omit the function definition, the flag was useless.

It looks like I need at least one function or a variable that ...

1) is defined outside of the class def and
2) has MyClass in its signature

A few experiments:

-------- DIDN'T WORK---------------
class MyClass {
   ...
    void foo(){} // doesn't have MyClass in the signature
}; 

-------- DIDN'T WORK---------------
class MyClass {
    ...
     void foo(MyClass*){} // inline definition
};

-------- WORKED ---------------
class MyClass {
     ...
     void foo(MyClass*);
};
void MyClass::foo(MyClass*){} // has MyClass as signature, and defined outside
of the class


-------- DIDN'T WORK---------------
class MyClass {
     ...
     void foo();
};
void MyClass::foo() {} // defined outside of the class, but doesn't have
MyClass as signature

-------- WORKED ---------------
class MyClass {
     ...
};
void foo(MyClass*){} // your example

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Libabigail mailing list