From 5bdebb51a649d04569324f4f1124d5e64a3cbff7 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Sun, 20 Jan 2019 12:55:38 +0000 Subject: [D] Fix identity comparison for structs with complex float fields. gcc/d/ChangeLog: 2019-01-20 Iain Buclaw * d-codegen.cc (identity_compare_p): Return false if seen built-in type with padding. (build_float_identity): Moved here from expr.cc. (lower_struct_comparison): Handle real and complex types. * d-tree.h (build_float_identity): New. * expr.cc (build_float_identity): Move to d-codegen.cc. gcc/testsuite/ChangeLog: 2019-01-20 Iain Buclaw * gdc.dg/runnable.d: Add more tests for comparing complex types. From-SVN: r268104 --- gcc/d/d-tree.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/d/d-tree.h') diff --git a/gcc/d/d-tree.h b/gcc/d/d-tree.h index 6ffb0f3..0b3c5ed 100644 --- a/gcc/d/d-tree.h +++ b/gcc/d/d-tree.h @@ -522,6 +522,7 @@ extern tree d_mark_addressable (tree); extern tree d_mark_used (tree); extern tree d_mark_read (tree); extern bool identity_compare_p (StructDeclaration *); +extern tree build_float_identity (tree_code, tree, tree); extern tree build_struct_comparison (tree_code, StructDeclaration *, tree, tree); extern tree build_array_struct_comparison (tree_code, StructDeclaration *, -- cgit v1.1