mirror of git://gcc.gnu.org/git/gcc.git
re PR middle-end/46844 (regrename.c:312:22: error: unused parameter 'reg')
2010-12-09 Richard Guenther <rguenther@suse.de> PR middle-end/46844 * gimple-fold.c (canonicalize_constructor_val): Canonicalize addresses. * gcc.c-torture/compile/pr46866.c: New testcase. From-SVN: r167649
This commit is contained in:
parent
9c0c4ec7cd
commit
73aef89eb7
|
@ -1,3 +1,9 @@
|
||||||
|
2010-12-09 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR middle-end/46844
|
||||||
|
* gimple-fold.c (canonicalize_constructor_val): Canonicalize
|
||||||
|
addresses.
|
||||||
|
|
||||||
2010-12-09 Joseph Myers <joseph@codesourcery.com>
|
2010-12-09 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* config/i386/netware.h (TARGET_POSIX_IO): Define.
|
* config/i386/netware.h (TARGET_POSIX_IO): Define.
|
||||||
|
|
|
@ -132,6 +132,10 @@ canonicalize_constructor_val (tree cval)
|
||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
if (base && TREE_CODE (base) == VAR_DECL)
|
if (base && TREE_CODE (base) == VAR_DECL)
|
||||||
add_referenced_var (base);
|
add_referenced_var (base);
|
||||||
|
/* We never have the chance to fixup types in global initializers
|
||||||
|
during gimplification. Do so here. */
|
||||||
|
if (TREE_TYPE (TREE_TYPE (cval)) != TREE_TYPE (TREE_OPERAND (cval, 0)))
|
||||||
|
cval = build_fold_addr_expr (TREE_OPERAND (cval, 0));
|
||||||
}
|
}
|
||||||
return cval;
|
return cval;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2010-12-09 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR middle-end/46844
|
||||||
|
* gcc.c-torture/compile/pr46866.c: New testcase.
|
||||||
|
|
||||||
2010-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
2010-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||||
|
|
||||||
PR testsuite/45068
|
PR testsuite/45068
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
extern void *malloc(__SIZE_TYPE__);
|
||||||
|
typedef struct T T;
|
||||||
|
struct T {
|
||||||
|
void (*destroy)(void *);
|
||||||
|
};
|
||||||
|
void destroy(union { void *this; } __attribute__((transparent_union)));
|
||||||
|
static const typeof(destroy) *_destroy = (const typeof(destroy)*)destroy;
|
||||||
|
void destroy(void *this);
|
||||||
|
static T *create_empty(void)
|
||||||
|
{
|
||||||
|
T *this = malloc(sizeof(*this));
|
||||||
|
*this = (typeof(*this)){ _destroy };
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
void openssl_crl_load(void)
|
||||||
|
{
|
||||||
|
T *this = create_empty();
|
||||||
|
destroy(this);
|
||||||
|
}
|
Loading…
Reference in New Issue