Fixed baking the right integer types into values from #ctce, added the rest of the integer type literals (10ul, etc), fixed/added struct padding/alignment in interpreter
This commit is contained in:
@@ -3,6 +3,53 @@ import os: *
|
||||
import string: *
|
||||
import ast_nodes: *
|
||||
|
||||
obj first {
|
||||
var p1: *char
|
||||
var p2: char
|
||||
var p3: int
|
||||
}
|
||||
obj second {
|
||||
var p1: *char
|
||||
var p2: char
|
||||
var p3: short
|
||||
}
|
||||
obj third {
|
||||
var p1: *char
|
||||
var p2: long
|
||||
var p3: char
|
||||
}
|
||||
obj fourth {
|
||||
var p1: char
|
||||
var p2: *char
|
||||
var p3: long
|
||||
}
|
||||
obj fifth {
|
||||
var p1: *char
|
||||
var p2: char
|
||||
}
|
||||
obj sixth {
|
||||
var p1: *char
|
||||
var p2: char
|
||||
var p3: long
|
||||
}
|
||||
obj seventh {
|
||||
var p1: char
|
||||
var p2: *char
|
||||
var p3: long
|
||||
}
|
||||
obj eigth {
|
||||
var p1: short
|
||||
var p2: char
|
||||
}
|
||||
obj ninth {
|
||||
var p1: *char
|
||||
var p2: short
|
||||
}
|
||||
obj tenth {
|
||||
var p1: char
|
||||
var p2: ninth
|
||||
}
|
||||
|
||||
fun compare_sizes<T>() {
|
||||
var a = #sizeof<T>
|
||||
var b = #ctce(#sizeof<T>)
|
||||
@@ -22,7 +69,42 @@ fun main(): int {
|
||||
return it.toCharArray()
|
||||
}()))
|
||||
}
|
||||
compare_sizes<first>()
|
||||
compare_sizes<second>()
|
||||
compare_sizes<third>()
|
||||
compare_sizes<fourth>()
|
||||
compare_sizes<fifth>()
|
||||
compare_sizes<sixth>()
|
||||
compare_sizes<seventh>()
|
||||
compare_sizes<eigth>()
|
||||
compare_sizes<ninth>()
|
||||
compare_sizes<tenth>()
|
||||
|
||||
compare_sizes<string>()
|
||||
compare_sizes<ast_node>()
|
||||
compare_sizes<translation_unit>()
|
||||
compare_sizes<import>()
|
||||
compare_sizes<identifier>()
|
||||
compare_sizes<type_def>()
|
||||
compare_sizes<adt_def>()
|
||||
compare_sizes<function>()
|
||||
compare_sizes<template>()
|
||||
compare_sizes<code_block>()
|
||||
compare_sizes<if_statement>()
|
||||
compare_sizes<match_statement>()
|
||||
compare_sizes<case_statement>()
|
||||
compare_sizes<while_loop>()
|
||||
compare_sizes<for_loop>()
|
||||
compare_sizes<return_statement>()
|
||||
compare_sizes<branching_statement>()
|
||||
compare_sizes<defer_statement>()
|
||||
compare_sizes<assignment_statement>()
|
||||
compare_sizes<declaration_statement>()
|
||||
compare_sizes<if_comp>()
|
||||
compare_sizes<simple_passthrough>()
|
||||
compare_sizes<function_call>()
|
||||
compare_sizes<compiler_intrinsic>()
|
||||
compare_sizes<cast>()
|
||||
compare_sizes<value>()
|
||||
return 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user