Branch: refs/heads/thaines/symtab_function_cleanup
Home: https://github.com/dyninst/dyninst
Commit: 7b17a1c699d75595013fdeddce218ce36498aa56
https://github.com/dyninst/dyninst/commit/7b17a1c699d75595013fdeddce218ce36498aa56
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Remove undefined FunctionBase constructors
They were added by 5ed068167 in 2013, but never defined.
Commit: 5e55b35a6bc1e34dda3fba6db673ca12b2eef718
https://github.com/dyninst/dyninst/commit/5e55b35a6bc1e34dda3fba6db673ca12b2eef718
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Make ~FunctionBase public
FunctionBase is intended to be derived from and thus derived types can
be deleted through pointers to base. This would cause UB in the current
state.
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-dtor-virtual
A base class destructor should be either public and virtual, or
protected and non-virtual
Commit: 207319bcbf24d5106c16cffe51dc9895840916c5
https://github.com/dyninst/dyninst/commit/207319bcbf24d5106c16cffe51dc9895840916c5
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Make Function(Symbol *) public
It's awkward having it be protected and then friended so it can be used.
Just make it part of the API.
Commit: a7f69b40b6c0cf534c755fad79af7bf3cb7c9b8d
https://github.com/dyninst/dyninst/commit/a7f69b40b6c0cf534c755fad79af7bf3cb7c9b8d
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Function should not export its interface.
These functions should override those in FunctionBase, but should not
define a new interface.
Commit: aa2a200c33577522633130279962d8033fb66853
https://github.com/dyninst/dyninst/commit/aa2a200c33577522633130279962d8033fb66853
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Explicitly mark overridden members in Function
Commit: 4a660b200f2a3b3f4b890601d589460a5b967537
https://github.com/dyninst/dyninst/commit/4a660b200f2a3b3f4b890601d589460a5b967537
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Make InlinedFunction(FunctionBase *) public
It's awkward having it be protected and then friended so it can be used.
Just make it part of the API.
Commit: 57f7e8cf5715ace7ecaea2e19d9b937e226f24fb
https://github.com/dyninst/dyninst/commit/57f7e8cf5715ace7ecaea2e19d9b937e226f24fb
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Make ~InlinedFunction public
InlinedFunction is intended to be derived from and thus derived types
can be deleted through pointers to base. This would cause UB in the
current state.
http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-dtor-virtual
A base class destructor should be either public and virtual, or
protected and non-virtual
Commit: 091658ad80729e4b23a080d6c024503dc8f7b9f7
https://github.com/dyninst/dyninst/commit/091658ad80729e4b23a080d6c024503dc8f7b9f7
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Make InlinedFunction::getModule public
It's a pure virtual member in FunctionBase, so making it protected here
means that calls through a pointer to InlinedFunction could generate a
runtime error. gcc and clang seem to "do what I mean" even though it's
ill-formed. It also removes the astonishment that `getModule` isn't
accessible through the public interface even though it is required to be
there.
>From C++11 standard (n3242):
11 Member access control [class.access]
5. It should be noted that it is access to members and base classes that
is controlled, not their visibility. Names of members are still visible,
and implicit conversions to base classes are still considered, when
those members and base classes are inaccessible. The interpretation of a
given construct is established without regard to access control. If the
interpretation established makes use of inaccessible member names or
base classes, the construct is ill-formed.
Commit: cad68ce5955b7f832bf68a437fb386a1dc962b4c
https://github.com/dyninst/dyninst/commit/cad68ce5955b7f832bf68a437fb386a1dc962b4c
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
InlinedFunction should not export its interface.
These functions should override those in FunctionBase, but should not
define a new interface.
Commit: 0e3a415c041fad43481aeda68dbe8aba036d8236
https://github.com/dyninst/dyninst/commit/0e3a415c041fad43481aeda68dbe8aba036d8236
Author: Tim Haines <thaines.astro@xxxxxxxxx>
Date: 2023-08-08 (Tue, 08 Aug 2023)
Changed paths:
M symtabAPI/h/Function.h
Log Message:
-----------
Explicitly mark overridden members in InlinedFunction
Compare: https://github.com/dyninst/dyninst/compare/7b17a1c699d7%5E...0e3a415c041f
|