Coverity Fix for unchecked dynamic cast in setup_clocks
diff --git a/vpr/src/base/setup_clocks.cpp b/vpr/src/base/setup_clocks.cpp
index c8d8d80..80bbca3 100644
--- a/vpr/src/base/setup_clocks.cpp
+++ b/vpr/src/base/setup_clocks.cpp
@@ -129,50 +129,50 @@
     for (auto clock_connection_arch : clock_connections_arch) {
         if (clock_connection_arch.from == "ROUTING") {
             clock_connections_device.emplace_back(new RoutingToClockConnection);
-            RoutingToClockConnection* routing_to_clock = dynamic_cast<RoutingToClockConnection*>(clock_connections_device.back().get());
+            if (RoutingToClockConnection* routing_to_clock = dynamic_cast<RoutingToClockConnection*>(clock_connections_device.back().get())) {
+                //TODO: Add error check to check that clock name and tap name exist and that only
+                //      two names are returned by the below function
+                auto names = vtr::split(clock_connection_arch.to, ".");
+                VTR_ASSERT_MSG(names.size() == 2, "Invalid clock name.\n");
+                routing_to_clock->set_clock_name_to_connect_to(names[0]);
+                routing_to_clock->set_clock_switch_point_name(names[1]);
 
-            //TODO: Add error check to check that clock name and tap name exist and that only
-            //      two names are returned by the below function
-            auto names = vtr::split(clock_connection_arch.to, ".");
-            VTR_ASSERT_MSG(names.size() == 2, "Invalid clock name.\n");
-            routing_to_clock->set_clock_name_to_connect_to(names[0]);
-            routing_to_clock->set_clock_switch_point_name(names[1]);
-
-            routing_to_clock->set_switch_location(
-                parse_formula(clock_connection_arch.locationx, vars),
-                parse_formula(clock_connection_arch.locationy, vars));
-            routing_to_clock->set_switch(clock_connection_arch.arch_switch_idx);
-            routing_to_clock->set_fc_val(clock_connection_arch.fc);
+                routing_to_clock->set_switch_location(
+                    parse_formula(clock_connection_arch.locationx, vars),
+                    parse_formula(clock_connection_arch.locationy, vars));
+                routing_to_clock->set_switch(clock_connection_arch.arch_switch_idx);
+                routing_to_clock->set_fc_val(clock_connection_arch.fc);
+            }
 
         } else if (clock_connection_arch.to == "CLOCK") {
             clock_connections_device.emplace_back(new ClockToPinsConnection);
-            ClockToPinsConnection* clock_to_pins = dynamic_cast<ClockToPinsConnection*>(clock_connections_device.back().get());
+            if (ClockToPinsConnection* clock_to_pins = dynamic_cast<ClockToPinsConnection*>(clock_connections_device.back().get())) {
+                //TODO: Add error check to check that clock name and tap name exist and that only
+                //      two names are returned by the below function
+                auto names = vtr::split(clock_connection_arch.from, ".");
+                VTR_ASSERT_MSG(names.size() == 2, "Invalid clock name.\n");
+                clock_to_pins->set_clock_name_to_connect_from(names[0]);
+                clock_to_pins->set_clock_switch_point_name(names[1]);
 
-            //TODO: Add error check to check that clock name and tap name exist and that only
-            //      two names are returned by the below function
-            auto names = vtr::split(clock_connection_arch.from, ".");
-            VTR_ASSERT_MSG(names.size() == 2, "Invalid clock name.\n");
-            clock_to_pins->set_clock_name_to_connect_from(names[0]);
-            clock_to_pins->set_clock_switch_point_name(names[1]);
-
-            clock_to_pins->set_switch(clock_connection_arch.arch_switch_idx);
-            clock_to_pins->set_fc_val(clock_connection_arch.fc);
+                clock_to_pins->set_switch(clock_connection_arch.arch_switch_idx);
+                clock_to_pins->set_fc_val(clock_connection_arch.fc);
+            }
         } else {
             clock_connections_device.emplace_back(new ClockToClockConneciton);
-            ClockToClockConneciton* clock_to_clock = dynamic_cast<ClockToClockConneciton*>(clock_connections_device.back().get());
+            if (ClockToClockConneciton* clock_to_clock = dynamic_cast<ClockToClockConneciton*>(clock_connections_device.back().get())) {
+                //TODO: Add error check to check that clock name and tap name exist and that only
+                //      two names are returned by the below function
+                auto to_names = vtr::split(clock_connection_arch.to, ".");
+                auto from_names = vtr::split(clock_connection_arch.from, ".");
+                VTR_ASSERT_MSG(to_names.size() == 2, "Invalid clock name.\n");
+                clock_to_clock->set_to_clock_name(to_names[0]);
+                clock_to_clock->set_to_clock_switch_point_name(to_names[1]);
+                clock_to_clock->set_from_clock_name(from_names[0]);
+                clock_to_clock->set_from_clock_switch_point_name(from_names[1]);
 
-            //TODO: Add error check to check that clock name and tap name exist and that only
-            //      two names are returned by the below function
-            auto to_names = vtr::split(clock_connection_arch.to, ".");
-            auto from_names = vtr::split(clock_connection_arch.from, ".");
-            VTR_ASSERT_MSG(to_names.size() == 2, "Invalid clock name.\n");
-            clock_to_clock->set_to_clock_name(to_names[0]);
-            clock_to_clock->set_to_clock_switch_point_name(to_names[1]);
-            clock_to_clock->set_from_clock_name(from_names[0]);
-            clock_to_clock->set_from_clock_switch_point_name(from_names[1]);
-
-            clock_to_clock->set_switch(clock_connection_arch.arch_switch_idx);
-            clock_to_clock->set_fc_val(clock_connection_arch.fc);
+                clock_to_clock->set_switch(clock_connection_arch.arch_switch_idx);
+                clock_to_clock->set_fc_val(clock_connection_arch.fc);
+            }
         }
     }
 }