aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-06-22 20:19:29 +0200
committerClifford Wolf <clifford@clifford.at>2018-06-22 20:19:29 +0200
commit0508fb3627966bd1298b614190fb9160cbcba415 (patch)
tree034f5fe8d3e600f170cacb1519f0c4720d16d392
parent8850f86a8ab23de1274f05b1729c106f875f693a (diff)
downloadnextpnr-0508fb3627966bd1298b614190fb9160cbcba415.tar.gz
nextpnr-0508fb3627966bd1298b614190fb9160cbcba415.tar.bz2
nextpnr-0508fb3627966bd1298b614190fb9160cbcba415.zip
Fix "dereferencing type-punned pointer" warnings
Signed-off-by: Clifford Wolf <clifford@clifford.at>
-rw-r--r--ice40/arch.cc30
1 files changed, 15 insertions, 15 deletions
diff --git a/ice40/arch.cc b/ice40/arch.cc
index be38015a..ce45b051 100644
--- a/ice40/arch.cc
+++ b/ice40/arch.cc
@@ -122,33 +122,33 @@ PortPin Arch::portPinFromId(IdString type) const
// -----------------------------------------------------------------------
+static const ChipInfoPOD *get_chip_info(const RelPtr<ChipInfoPOD> *ptr)
+{
+ return ptr->get();
+}
+
Arch::Arch(ArchArgs args) : args(args)
{
#ifdef ICE40_HX1K_ONLY
if (args.type == ArchArgs::HX1K) {
- chip_info =
- reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_1k)
- ->get();
+ chip_info = get_chip_info(
+ reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_1k));
} else {
log_error("Unsupported iCE40 chip type.\n");
}
#else
if (args.type == ArchArgs::LP384) {
- chip_info =
- reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_384)
- ->get();
+ chip_info = get_chip_info(
+ reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_384));
} else if (args.type == ArchArgs::LP1K || args.type == ArchArgs::HX1K) {
- chip_info =
- reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_1k)
- ->get();
+ chip_info = get_chip_info(
+ reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_1k));
} else if (args.type == ArchArgs::UP5K) {
- chip_info =
- reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_5k)
- ->get();
+ chip_info = get_chip_info(
+ reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_5k));
} else if (args.type == ArchArgs::LP8K || args.type == ArchArgs::HX8K) {
- chip_info =
- reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_8k)
- ->get();
+ chip_info = get_chip_info(
+ reinterpret_cast<const RelPtr<ChipInfoPOD> *>(chipdb_blob_8k));
} else {
log_error("Unsupported iCE40 chip type.\n");
}