﻿# V3546\. AUTOSAR\. Conversions between pointers to objects and integer types should not be performed\.

This diagnostic rule is based on the software development guidelines developed by [AUTOSAR](https://www.autosar.org/) \(AUTomotive Open System ARchitecture\)\.

Conversions between pointers to objects and integer types can lead to undefined, unspecified, or implementation\-specific behavior\. For that reason, it's not recommended to use such conversions\.

Example of non\-compliant code 1:

```cpp
struct S { int16_t i; int16_t j; } *ps = ....;
int i64 = reinterpret_cast<int>(ps);
```

Example of non\-compliant code 2:

```cpp
void foo(int i) {}

void wrong_param_type()
{
  char *pc = ....;
  foo((int) pc); 
}
```

Example of non\-compliant code 3:

```cpp
int wrong_return_type()
{
  double *pd = ....;
  return (int) pd;
}
```