[PATCH] D50540: Further g++ 8 warning fixes

David CARLIER via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 9 16:11:55 PDT 2018


devnexen created this revision.
devnexen added reviewers: Eugene.Zelenko, craig.topper.
devnexen created this object with visibility "All Users".
Herald added subscribers: llvm-commits, javed.absar, MatzeB.

- Loosen up function pointers specifics then typing to the generic type.
- Fixing non copyable object warning


Repository:
  rL LLVM

https://reviews.llvm.org/D50540

Files:
  include/llvm/CodeGen/MachinePassRegistry.h
  include/llvm/CodeGen/MachineScheduler.h
  include/llvm/CodeGen/SchedulerRegistry.h
  lib/CodeGen/RegisterPressure.cpp


Index: lib/CodeGen/RegisterPressure.cpp
===================================================================
--- lib/CodeGen/RegisterPressure.cpp
+++ lib/CodeGen/RegisterPressure.cpp
@@ -631,7 +631,7 @@
 void PressureDiffs::init(unsigned N) {
   Size = N;
   if (N <= Max) {
-    memset(PDiffArray, 0, N * sizeof(PressureDiff));
+    memset(reinterpret_cast<void *>(PDiffArray), 0, N * sizeof(PressureDiff));
     return;
   }
   Max = Size;
Index: include/llvm/CodeGen/SchedulerRegistry.h
===================================================================
--- include/llvm/CodeGen/SchedulerRegistry.h
+++ include/llvm/CodeGen/SchedulerRegistry.h
@@ -37,7 +37,7 @@
   static MachinePassRegistry Registry;
 
   RegisterScheduler(const char *N, const char *D, FunctionPassCtor C)
-  : MachinePassRegistryNode(N, D, (MachinePassCtor)C)
+  : MachinePassRegistryNode(N, D, reinterpret_cast<MachinePassCtor>(reinterpret_cast<void *>(C)))
   { Registry.Add(this); }
   ~RegisterScheduler() { Registry.Remove(this); }
 
Index: include/llvm/CodeGen/MachineScheduler.h
===================================================================
--- include/llvm/CodeGen/MachineScheduler.h
+++ include/llvm/CodeGen/MachineScheduler.h
@@ -142,7 +142,8 @@
   static MachinePassRegistry Registry;
 
   MachineSchedRegistry(const char *N, const char *D, ScheduleDAGCtor C)
-    : MachinePassRegistryNode(N, D, (MachinePassCtor)C) {
+      : MachinePassRegistryNode(N, D, reinterpret_cast<MachinePassCtor>(
+                                          reinterpret_cast<void *>(C))) {
     Registry.Add(this);
   }
 
Index: include/llvm/CodeGen/MachinePassRegistry.h
===================================================================
--- include/llvm/CodeGen/MachinePassRegistry.h
+++ include/llvm/CodeGen/MachinePassRegistry.h
@@ -119,18 +119,20 @@
     // Add existing passes to option.
     for (RegistryClass *Node = RegistryClass::getList();
          Node; Node = Node->getNext()) {
-      this->addLiteralOption(Node->getName(),
-                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
-                             Node->getDescription());
+      this->addLiteralOption(
+          Node->getName(),
+          reinterpret_cast<typename RegistryClass::FunctionPassCtor>(
+              reinterpret_cast<void *>(Node->getCtor())),
+          Node->getDescription());
     }
 
     // Make sure we listen for list changes.
     RegistryClass::setListener(this);
   }
 
   // Implement the MachinePassRegistryListener callbacks.
   void NotifyAdd(StringRef N, MachinePassCtor C, StringRef D) override {
-    this->addLiteralOption(N, (typename RegistryClass::FunctionPassCtor)C, D);
+    this->addLiteralOption(N, reinterpret_cast<typename RegistryClass::FunctionPassCtor>(reinterpret_cast<void *>(C)), D);
   }
   void NotifyRemove(StringRef N) override {
     this->removeLiteralOption(N);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50540.160033.patch
Type: text/x-patch
Size: 2895 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180809/704c06ef/attachment.bin>


More information about the llvm-commits mailing list