mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-10 11:31:37 -07:00
107 lines
1.9 KiB
C
107 lines
1.9 KiB
C
// Copyright (c) 2024 Epic Games Tools
|
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
|
|
|
/*
|
|
* Program to run in debugger organized to provide tests for
|
|
* single threaded stepping, breakpoints, evaluation.
|
|
*/
|
|
|
|
////////////////////////////////
|
|
// NOTE(allen): Complex Types
|
|
|
|
#include <complex.h>
|
|
|
|
void
|
|
c_type_coverage_eval_tests(void){
|
|
#if _WIN32
|
|
_Fcomplex x = _FCbuild(0.f, 1.f);
|
|
_Dcomplex y = _Cbuild(0.f, -1.f);
|
|
|
|
#else
|
|
float complex x = 0.f + 1.f*I;
|
|
double complex y = 0.0 - 1.0*I;
|
|
|
|
#endif
|
|
}
|
|
|
|
////////////////////////////////
|
|
// NOTE(allen): Reuse Type Names From Another Module
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef struct Basics{
|
|
double a;
|
|
float b;
|
|
unsigned long long c;
|
|
long long d;
|
|
unsigned int e;
|
|
int f;
|
|
unsigned short g;
|
|
short h;
|
|
unsigned char i;
|
|
char j;
|
|
|
|
int z;
|
|
} Basics;
|
|
|
|
typedef struct Basics_Stdint{
|
|
double x1;
|
|
float x2;
|
|
uint64_t x3;
|
|
int64_t x4;
|
|
uint32_t x5;
|
|
int32_t x6;
|
|
uint16_t x7;
|
|
int16_t x8;
|
|
uint8_t x9;
|
|
int8_t x0;
|
|
} Basics_Stdint;
|
|
|
|
typedef struct Pair{
|
|
int i;
|
|
float f;
|
|
} Pair;
|
|
|
|
void
|
|
c_versions_of_same_types(void){
|
|
Basics basics = { 1.5f, 1.50000000000001, -1, 1, -2, 2, -4, 4, -8, 8, };
|
|
Basics_Stdint basics_stdint = { 1.5f, 1.50000000000001, -1, 1, -2, 2, -4, 4, -8, 8, };
|
|
Pair memory_[] = {
|
|
{100, 1.f},
|
|
{101, 2.f},
|
|
{102, 4.f},
|
|
{103, 8.f},
|
|
{104, 16.f},
|
|
{105, 32.f},
|
|
};
|
|
|
|
int x = memory_[3].i + basics.f;
|
|
}
|
|
|
|
////////////////////////////////
|
|
//~ NOTE(rjf): Bitfields
|
|
|
|
typedef struct TypeWithBitfield TypeWithBitfield;
|
|
struct TypeWithBitfield
|
|
{
|
|
int v : 14;
|
|
int w : 4;
|
|
int x : 32;
|
|
int y : 4;
|
|
int z : 10;
|
|
};
|
|
|
|
void
|
|
c_type_with_bitfield_usage(void)
|
|
{
|
|
TypeWithBitfield b = {0};
|
|
b.v = 100;
|
|
b.w = 6;
|
|
b.x = 434512;
|
|
b.y = 7;
|
|
b.z = 12;
|
|
int x = (b.v + b.x);
|
|
int y = (b.y - b.z);
|
|
int z = (b.w) + 5;
|
|
}
|