re PR c++/31078 (warning: same canonical type node for different types with const strings)
2007-04-12 Douglas Gregor <doug.gregor@gmail.com> PR c++/31078 PR c++/31103 * c-common.c (c_build_qualified_type): Set canonical type appropriately. 2007-04-12 Douglas Gregor <doug.gregor@gmail.com> PR c++/31078 * g++.dg/other/pr31078.C: New. From-SVN: r123740
This commit is contained in:
parent
a670437d92
commit
9576481824
|
@ -1,3 +1,10 @@
|
||||||
|
2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
|
||||||
|
|
||||||
|
PR c++/31078
|
||||||
|
PR c++/31103
|
||||||
|
* c-common.c (c_build_qualified_type): Set canonical type
|
||||||
|
appropriately.
|
||||||
|
|
||||||
2007-04-12 Richard Guenther <rguenther@suse.de>
|
2007-04-12 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
* tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
|
* tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
|
||||||
|
|
|
@ -2894,8 +2894,26 @@ c_build_qualified_type (tree type, int type_quals)
|
||||||
}
|
}
|
||||||
if (!t)
|
if (!t)
|
||||||
{
|
{
|
||||||
|
tree domain = TYPE_DOMAIN (type);
|
||||||
|
|
||||||
t = build_variant_type_copy (type);
|
t = build_variant_type_copy (type);
|
||||||
TREE_TYPE (t) = element_type;
|
TREE_TYPE (t) = element_type;
|
||||||
|
|
||||||
|
if (TYPE_STRUCTURAL_EQUALITY_P (element_type)
|
||||||
|
|| (domain && TYPE_STRUCTURAL_EQUALITY_P (domain)))
|
||||||
|
SET_TYPE_STRUCTURAL_EQUALITY (t);
|
||||||
|
else if (TYPE_CANONICAL (element_type) != element_type
|
||||||
|
|| (domain && TYPE_CANONICAL (domain) != domain))
|
||||||
|
{
|
||||||
|
tree unqualified_canon
|
||||||
|
= build_array_type (TYPE_CANONICAL (element_type),
|
||||||
|
domain? TYPE_CANONICAL (domain)
|
||||||
|
: NULL_TREE);
|
||||||
|
TYPE_CANONICAL (t)
|
||||||
|
= c_build_qualified_type (unqualified_canon, type_quals);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
TYPE_CANONICAL (t) = t;
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
|
||||||
|
|
||||||
|
PR c++/31078
|
||||||
|
* g++.dg/other/pr31078.C: New.
|
||||||
|
|
||||||
2007-04-12 Richard Guenther <rguenther@suse.de>
|
2007-04-12 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/31169
|
PR tree-optimization/31169
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
typedef int SLONG;
|
||||||
|
typedef char SCHAR;
|
||||||
|
typedef short SSHORT;
|
||||||
|
typedef char TEXT;
|
||||||
|
typedef long ISC_STATUS;
|
||||||
|
const SLONG gds_arg_string = 2;
|
||||||
|
const SLONG gds_sys_request = 335544373L;
|
||||||
|
enum jrd_blk_t
|
||||||
|
{
|
||||||
|
type_str, type_dcc, type_sbm, type_smb, type_blb, type_irb, type_jrn
|
||||||
|
};
|
||||||
|
struct blk
|
||||||
|
{
|
||||||
|
};
|
||||||
|
template < class RPT, SSHORT BLOCK_TYPE = 0 > class pool_alloc_rpt:public blk
|
||||||
|
{
|
||||||
|
};
|
||||||
|
class jrn:public pool_alloc_rpt < SCHAR, type_jrn >
|
||||||
|
{
|
||||||
|
public:ISC_STATUS * jrn_status_vector;
|
||||||
|
TEXT jrn_server[1];
|
||||||
|
};
|
||||||
|
typedef jrn *JRN;
|
||||||
|
extern void IBERR_build_status (ISC_STATUS *, ISC_STATUS, ...);
|
||||||
|
static void
|
||||||
|
error (ISC_STATUS * status_vector, JRN journal, int status, TEXT * string)
|
||||||
|
{
|
||||||
|
IBERR_build_status (status_vector, gds_sys_request, gds_arg_string, string,
|
||||||
|
gds_arg_string, (journal) ? journal->jrn_server : "",
|
||||||
|
0);
|
||||||
|
}
|
Loading…
Reference in New Issue