Index: src/GenPoly/Lvalue.cpp
===================================================================
--- src/GenPoly/Lvalue.cpp	(revision f9b42bd810f37648afda1ddefda76c5fb8f9589e)
+++ src/GenPoly/Lvalue.cpp	(revision dee680c98091266dcc1eceff94ac7d17a79db851)
@@ -10,6 +10,6 @@
 // Created On       : Thu Sep 15 14:08:00 2022
 // Last Modified By : Andrew Beach
-// Last Modified On : Wed Oct  6  9:59:00 2022
-// Update Count     : 0
+// Last Modified On : Mon Aug 12 18:07:00 2024
+// Update Count     : 1
 //
 
@@ -119,4 +119,6 @@
 /// Replace all reference types with pointer types.
 struct ReferenceTypeElimination final {
+	ast::SizeofExpr const * previsit( ast::SizeofExpr const * expr );
+	ast::AlignofExpr const * previsit( ast::AlignofExpr const * expr );
 	ast::Type const * postvisit( ast::ReferenceType const * type );
 };
@@ -603,4 +605,18 @@
 }
 
+ast::SizeofExpr const * ReferenceTypeElimination::previsit(
+		ast::SizeofExpr const * expr ) {
+	if ( expr->expr ) return expr;
+	return ast::mutate_field( expr, &ast::SizeofExpr::type,
+		expr->type->stripReferences() );
+}
+
+ast::AlignofExpr const * ReferenceTypeElimination::previsit(
+		ast::AlignofExpr const * expr ) {
+	if ( expr->expr ) return expr;
+	return ast::mutate_field( expr, &ast::AlignofExpr::type,
+		expr->type->stripReferences() );
+}
+
 ast::Type const * ReferenceTypeElimination::postvisit(
 		ast::ReferenceType const * type ) {
Index: tests/.expect/sizeof.txt
===================================================================
--- tests/.expect/sizeof.txt	(revision dee680c98091266dcc1eceff94ac7d17a79db851)
+++ tests/.expect/sizeof.txt	(revision dee680c98091266dcc1eceff94ac7d17a79db851)
@@ -0,0 +1,2 @@
+char  : 1 1
+char &: 1 1
Index: tests/sizeof.cfa
===================================================================
--- tests/sizeof.cfa	(revision dee680c98091266dcc1eceff94ac7d17a79db851)
+++ tests/sizeof.cfa	(revision dee680c98091266dcc1eceff94ac7d17a79db851)
@@ -0,0 +1,11 @@
+// Testing non-polymorphic sizeof (and alignof) expressions:
+
+#include <fstream.hfa>
+
+int main(int argc, char * argv[]) {
+	char val = 'c';
+	char & ref = val;
+	// It could check against "char *", but it should always be different.
+	sout | "char  : " | sizeof(val) | alignof(val);
+	sout | "char &: " | sizeof(ref) | alignof(ref);
+}
