Index: src/AST/Expr.cpp
===================================================================
--- src/AST/Expr.cpp	(revision f1cb1937a0ab02686fc201e2066ee4fc8a157ce6)
+++ src/AST/Expr.cpp	(revision a0548c298812fe171176559746d6d55e06664ac4)
@@ -264,10 +264,4 @@
 }
 
-ConstantExpr * ConstantExpr::from_ulonglong( const CodeLocation & loc, unsigned long long i ) {
-	return new ConstantExpr{
-		loc, new BasicType{ BasicKind::LongLongUnsignedInt }, std::to_string( i ) + "ULL",
-		(unsigned long long)i };
-}
-
 ConstantExpr * ConstantExpr::from_string( const CodeLocation & loc, const std::string & str ) {
 	const Type * charType = new BasicType( BasicKind::Char, ast::CV::Const );
Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision f1cb1937a0ab02686fc201e2066ee4fc8a157ce6)
+++ src/AST/Expr.hpp	(revision a0548c298812fe171176559746d6d55e06664ac4)
@@ -464,6 +464,4 @@
 	/// Generates an integer constant of the given unsigned long int.
 	static ConstantExpr * from_ulong( const CodeLocation & loc, unsigned long i );
-	/// Generates an integer constant of the given unsigned long long int.
-	static ConstantExpr * from_ulonglong( const CodeLocation & loc, unsigned long long i );
 	/// Generates a string constant from the given string (char type, unquoted string).
 	static ConstantExpr * from_string( const CodeLocation & loc, const std::string & string );
Index: src/Concurrency/MutexFuncHash.hpp
===================================================================
--- src/Concurrency/MutexFuncHash.hpp	(revision f1cb1937a0ab02686fc201e2066ee4fc8a157ce6)
+++ src/Concurrency/MutexFuncHash.hpp	(revision a0548c298812fe171176559746d6d55e06664ac4)
@@ -18,4 +18,5 @@
 #include "AST/Decl.hpp"
 #include "AST/Expr.hpp"
+#include "AST/Type.hpp"
 #include "SymTab/Mangler.hpp"
 
@@ -26,5 +27,5 @@
 // since function pointers may differ for static inline functions.
 static inline uint64_t hashMangle( const ast::DeclWithType * decl ) {
-	std::string name = Mangle::mangleType( decl );
+	std::string name = Mangle::mangle( decl );
 	uint64_t hash = 14695981039346656037ULL; // FNV offset basis
 	for ( char c : name ) {
@@ -35,8 +36,14 @@
 }
 
-// Create a ConstantExpr with the hash of the mangled name.
-static inline ast::ConstantExpr * hashMangleExpr( 
-	const CodeLocation & location, const ast::DeclWithType * decl ) {
-	return ast::ConstantExpr::from_ulonglong( location, hashMangle( decl ) );
+// Create a ConstantExpr for the hash with proper ULL suffix to avoid
+// C compiler warnings about large unsigned constants.
+static inline ast::ConstantExpr * hashMangleExpr(
+		const CodeLocation & location, const ast::DeclWithType * decl ) {
+	uint64_t hash = hashMangle( decl );
+	return new ast::ConstantExpr{
+		location,
+		new ast::BasicType{ ast::BasicKind::LongLongUnsignedInt },
+		std::to_string( hash ) + "ull",
+		(unsigned long long)hash };
 }
 
