/* Generate 128 bit GUID */
 void guid_128_generate(guid_128_t guid_r);
 /* Returns TRUE if GUID is empty (not set / unknown). */
-bool guid_128_is_empty(const guid_128_t guid);
+bool guid_128_is_empty(const guid_128_t guid) ATTR_PURE;
 /* Returns TRUE if two GUIDs are equal. */
-bool guid_128_equals(const guid_128_t guid1, const guid_128_t guid2);
+bool guid_128_equals(const guid_128_t guid1, const guid_128_t guid2) ATTR_PURE;
 /* Copy GUID */
 static inline void guid_128_copy(guid_128_t dest, const guid_128_t src)
 {
 int guid_128_from_string(const char *str, guid_128_t guid_r);
 
 /* guid_128 hash/cmp functions for hash.h */
-unsigned int guid_128_hash(const guid_128_t guid);
-int guid_128_cmp(const guid_128_t guid1, const guid_128_t guid2);
+unsigned int guid_128_hash(const guid_128_t guid) ATTR_PURE;
+int guid_128_cmp(const guid_128_t guid1, const guid_128_t guid2) ATTR_PURE;
 
 /* Return the hash of host used by guid_128_generate(). */
 void guid_128_host_hash_get(const char *host,