Using reflection to get guid property returning wrong type

I tried using reflection to loop through the properties, and found out it returns the wrong type for members of FGuid. The correct type should be uint32 but calling GetCPPType() returns int32.

To reproduce, create a Actor

UCLASS()
class DEBUGFPS_API AMyActor : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AMyActor();


	UPROPERTY(EditAnywhere, Category = Test)
		FGuid TestGuid;
protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;
};

In the constructor, use this code

AMyActor::AMyActor()
{
	for (TFieldIterator<UProperty> it{ GetClass()}; it; ++it)
	{
		auto prop = *it;
		auto name = prop->GetName();
		auto type = prop->GetCPPType();
		UE_LOG(LogTemp, Warning, TEXT("Class Prop: %s\t type: %s"), *name, *type);
		if (auto structProp = CastField<FStructProperty>(prop))
		{
			for (TFieldIterator<UProperty> structPropIt{ structProp->Struct }; structPropIt; ++structPropIt)
			{
				UE_LOG(LogTemp, Warning, TEXT("Name: %s, Type: %s"), *structPropIt->GetName(), *structPropIt->GetCPPType());
			}
		}
	}
}

Output

[2022.10.09-08.12.58:537][  0]LogTemp: Warning: Class Prop: TestGuid	 type: FGuid
[2022.10.09-08.13.31:754][  0]LogTemp: Warning: Name: A, Type: int32
[2022.10.09-08.13.34:709][  0]LogTemp: Warning: Name: B, Type: int32
[2022.10.09-08.14.34:309][  0]LogTemp: Warning: Name: C, Type: int32
[2022.10.09-08.14.38:587][  0]LogTemp: Warning: Name: D, Type: int32

Guid’s definition in Engine\Source\Runtime\Core\Public\Misc\Guid.h

    ....
public:

	/** Holds the first component. */
	uint32 A;

	/** Holds the second component. */
	uint32 B;

	/** Holds the third component. */
	uint32 C;

	/** Holds the fourth component. */
	uint32 D;
};