| Submitter | Steve Ellcey |
|---|---|
| Date | June 8, 2011, 8:03 p.m. |
| Message ID | <201106082003.p58K3re25438@lucas.cup.hp.com> |
| Download | mbox | patch |
| Permalink | /patch/99549/ |
| State | New |
| Headers | show |
Comments
On Wed, Jun 08, 2011 at 01:03:53PM -0700, Steve Ellcey wrote: > 2011-06-08 Steve Ellcey <sje@cup.hp.com> > > PR middle-end/49191 > * lib/target-supports.exp (check_effective_target_strict_align): New. > * gcc.dg/memcpy-3.c: Add dg-require-effective-target strict_align. Isn't the test backwards, i.e. doesn't { dg-require-effective-target strict_align } actually mean !STRICT_ALIGNMENT? > Index: lib/target-supports.exp > =================================================================== > --- lib/target-supports.exp (revision 174336) > +++ lib/target-supports.exp (working copy) > @@ -3901,3 +3901,11 @@ > return 1 > } > > +proc check_effective_target_strict_align {} { > + return [check_no_compiler_messages strict_align assembly { > + char *y; > + typedef char __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) c; > + c *z; > + void foo(void) { z = (c *) y; } > + } "-Wcast-align"] > +} > Index: gcc.dg/memcpy-3.c > =================================================================== > --- gcc.dg/memcpy-3.c (revision 174336) > +++ gcc.dg/memcpy-3.c (working copy) > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O -fdump-tree-optimized" } */ > +/* { dg-require-effective-target strict_align } */ > > int get_int(const void *p) > { Jakub
On Wed, 2011-06-08 at 22:08 +0200, Jakub Jelinek wrote: > On Wed, Jun 08, 2011 at 01:03:53PM -0700, Steve Ellcey wrote: > > 2011-06-08 Steve Ellcey <sje@cup.hp.com> > > > > PR middle-end/49191 > > * lib/target-supports.exp (check_effective_target_strict_align): New. > > * gcc.dg/memcpy-3.c: Add dg-require-effective-target strict_align. > > Isn't the test backwards, i.e. doesn't > { dg-require-effective-target strict_align } > actually mean !STRICT_ALIGNMENT? You are right. What do you think I should do, reverse the test or just rename it? I would be inclined to just rename it, maybe: dg-require-effective-target non_strict_align Steve Ellcey sje@cup.hp.com
On Wed, Jun 08, 2011 at 01:16:26PM -0700, Steve Ellcey wrote: > On Wed, 2011-06-08 at 22:08 +0200, Jakub Jelinek wrote: > > On Wed, Jun 08, 2011 at 01:03:53PM -0700, Steve Ellcey wrote: > > > 2011-06-08 Steve Ellcey <sje@cup.hp.com> > > > > > > PR middle-end/49191 > > > * lib/target-supports.exp (check_effective_target_strict_align): New. > > > * gcc.dg/memcpy-3.c: Add dg-require-effective-target strict_align. > > > > Isn't the test backwards, i.e. doesn't > > { dg-require-effective-target strict_align } > > actually mean !STRICT_ALIGNMENT? > > You are right. What do you think I should do, reverse the test or just > rename it? I would be inclined to just rename it, maybe: > > dg-require-effective-target non_strict_align Yeah, either that, or reverse the test and then { dg-do run { target { !strict_align } } } */ (if that is the right syntax). Jakub
On Wed, 2011-06-08 at 22:19 +0200, Jakub Jelinek wrote: > On Wed, Jun 08, 2011 at 01:16:26PM -0700, Steve Ellcey wrote: > > On Wed, 2011-06-08 at 22:08 +0200, Jakub Jelinek wrote: > > > On Wed, Jun 08, 2011 at 01:03:53PM -0700, Steve Ellcey wrote: > > > > 2011-06-08 Steve Ellcey <sje@cup.hp.com> > > > > > > > > PR middle-end/49191 > > > > * lib/target-supports.exp (check_effective_target_strict_align): New. > > > > * gcc.dg/memcpy-3.c: Add dg-require-effective-target strict_align. > > > > > > Isn't the test backwards, i.e. doesn't > > > { dg-require-effective-target strict_align } > > > actually mean !STRICT_ALIGNMENT? > > > > You are right. What do you think I should do, reverse the test or just > > rename it? I would be inclined to just rename it, maybe: > > > > dg-require-effective-target non_strict_align > > Yeah, either that, or reverse the test and then > { dg-do run { target { !strict_align } } } */ > (if that is the right syntax). > > Jakub Renaming it seems simpler. If we reverse the test, I can't just return the result of check_no_compiler_messages, I need to save the result and reverse the return value. Then in the actual tests we can't use dg-require-effective-target but need to modify the dg-do line to do the check and it will probably always include the '!' to (re-)negate the check. It can be done but renaming the test seems a lot simpler. Steve Ellcey sje@cup.hp.com
Patch
Index: lib/target-supports.exp =================================================================== --- lib/target-supports.exp (revision 174336) +++ lib/target-supports.exp (working copy) @@ -3901,3 +3901,11 @@ return 1 } +proc check_effective_target_strict_align {} { + return [check_no_compiler_messages strict_align assembly { + char *y; + typedef char __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) c; + c *z; + void foo(void) { z = (c *) y; } + } "-Wcast-align"] +} Index: gcc.dg/memcpy-3.c =================================================================== --- gcc.dg/memcpy-3.c (revision 174336) +++ gcc.dg/memcpy-3.c (working copy) @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O -fdump-tree-optimized" } */ +/* { dg-require-effective-target strict_align } */ int get_int(const void *p) {