<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Mon, Mar 20, 2017 at 2:46 PM Adrian Prantl via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: adrian<br class="gmail_msg">
Date: Mon Mar 20 16:34:19 2017<br class="gmail_msg">
New Revision: 298308<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=298308&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=298308&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
Make implementation details in DwarfExpression protected. (NFC)<br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfExpression.h<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfExpression.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfExpression.h?rev=298308&r1=298307&r2=298308&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfExpression.h?rev=298308&r1=298307&r2=298308&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfExpression.h (original)<br class="gmail_msg">
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfExpression.h Mon Mar 20 16:34:19 2017<br class="gmail_msg">
@@ -102,13 +102,6 @@ protected:<br class="gmail_msg">
/// Add masking operations to stencil out a subregister.<br class="gmail_msg">
void maskSubRegister();<br class="gmail_msg">
<br class="gmail_msg">
-public:<br class="gmail_msg">
- DwarfExpression(unsigned DwarfVersion) : DwarfVersion(DwarfVersion) {}<br class="gmail_msg">
- virtual ~DwarfExpression() {};<br class="gmail_msg">
-<br class="gmail_msg">
- /// This needs to be called last to commit any pending changes.<br class="gmail_msg">
- void finalize();<br class="gmail_msg">
-<br class="gmail_msg">
/// Output a dwarf operand and an optional assembler comment.<br class="gmail_msg">
virtual void emitOp(uint8_t Op, const char *Comment = nullptr) = 0;<br class="gmail_msg">
/// Emit a raw signed value.<br class="gmail_msg">
@@ -147,6 +140,13 @@ public:<br class="gmail_msg">
/// expression. See PR21176 for more details.<br class="gmail_msg">
void addStackValue();<br class="gmail_msg">
<br class="gmail_msg">
+public:<br class="gmail_msg">
+ DwarfExpression(unsigned DwarfVersion) : DwarfVersion(DwarfVersion) {}<br class="gmail_msg">
+ virtual ~DwarfExpression() {};<br class="gmail_msg"></blockquote><div><br>Does this need to be virtual? Is a DwarfExpression ever owned/destroyed polymorphically (a quick glance shows at least one that's owned by the specific derived class (unique_ptr<DIEDwarfExpression in DwarfCompileUnit)) - so maybe it could be protected non-virtual in the base class (& derived classes marked final/implicitly public non-virtual dtors)<br><br>Also an extraneous ';' on the end of that definition (& prefer = default over {} when both are valid, I think (better chance of some operations remaining trivial that way)).<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br class="gmail_msg">
+ /// This needs to be called last to commit any pending changes.<br class="gmail_msg">
+ void finalize();<br class="gmail_msg">
+<br class="gmail_msg">
/// Emit an indirect dwarf register operation for the given machine register.<br class="gmail_msg">
/// \return false if no DWARF register exists for MachineReg.<br class="gmail_msg">
bool addMachineRegIndirect(const TargetRegisterInfo &TRI, unsigned MachineReg,<br class="gmail_msg">
@@ -206,15 +206,14 @@ public:<br class="gmail_msg">
class DebugLocDwarfExpression : public DwarfExpression {<br class="gmail_msg">
ByteStreamer &BS;<br class="gmail_msg">
<br class="gmail_msg">
-public:<br class="gmail_msg">
- DebugLocDwarfExpression(unsigned DwarfVersion, ByteStreamer &BS)<br class="gmail_msg">
- : DwarfExpression(DwarfVersion), BS(BS) {}<br class="gmail_msg">
-<br class="gmail_msg">
void emitOp(uint8_t Op, const char *Comment = nullptr) override;<br class="gmail_msg">
void emitSigned(int64_t Value) override;<br class="gmail_msg">
void emitUnsigned(uint64_t Value) override;<br class="gmail_msg">
bool isFrameRegister(const TargetRegisterInfo &TRI,<br class="gmail_msg">
unsigned MachineReg) override;<br class="gmail_msg">
+public:<br class="gmail_msg">
+ DebugLocDwarfExpression(unsigned DwarfVersion, ByteStreamer &BS)<br class="gmail_msg">
+ : DwarfExpression(DwarfVersion), BS(BS) {}<br class="gmail_msg">
};<br class="gmail_msg">
<br class="gmail_msg">
/// DwarfExpression implementation for singular DW_AT_location.<br class="gmail_msg">
@@ -223,13 +222,13 @@ const AsmPrinter &AP;<br class="gmail_msg">
DwarfUnit &DU;<br class="gmail_msg">
DIELoc &DIE;<br class="gmail_msg">
<br class="gmail_msg">
-public:<br class="gmail_msg">
- DIEDwarfExpression(const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE);<br class="gmail_msg">
void emitOp(uint8_t Op, const char *Comment = nullptr) override;<br class="gmail_msg">
void emitSigned(int64_t Value) override;<br class="gmail_msg">
void emitUnsigned(uint64_t Value) override;<br class="gmail_msg">
bool isFrameRegister(const TargetRegisterInfo &TRI,<br class="gmail_msg">
unsigned MachineReg) override;<br class="gmail_msg">
+public:<br class="gmail_msg">
+ DIEDwarfExpression(const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE);<br class="gmail_msg">
DIELoc *finalize() {<br class="gmail_msg">
DwarfExpression::finalize();<br class="gmail_msg">
return &DIE;<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div></div>