(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
attr-alloc_align-3.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-optimized" } */
       3  
       4  char *my_alloc1 (int len, int align) __attribute__((__alloc_align__ (2)));
       5  char *my_alloc2 (int align, int len) __attribute__((alloc_align (1)));
       6  
       7  int
       8  test1 (int len)
       9  {
      10    int i;
      11    char *p = my_alloc1 (len, 32);
      12    return ((__INTPTR_TYPE__) p) & 31;
      13  }
      14  
      15  int
      16  test2 (int len)
      17  {
      18    int i;
      19    char *p = my_alloc2 (32, len);
      20    return ((__INTPTR_TYPE__) p) & 31;
      21  }
      22  
      23  int
      24  test3 (int len)
      25  {
      26    int i;
      27    char *p = my_alloc1 (len, 16);
      28    return ((__INTPTR_TYPE__) p) & 15;
      29  }
      30  
      31  int
      32  test4 (int len)
      33  {
      34    int i;
      35    char *p = my_alloc2 (16, len);
      36    return ((__INTPTR_TYPE__) p) & 15;
      37  }
      38  
      39  int
      40  test5 (int len, int align)
      41  {
      42    int i;
      43    char *p = my_alloc1 (len, align);
      44    return ((__INTPTR_TYPE__) p) & 15;
      45  }
      46  
      47  int
      48  test6 (int len, int align)
      49  {
      50    int i;
      51    char *p = my_alloc2 (align, len);
      52    return ((__INTPTR_TYPE__) p) & 15;
      53  }
      54  
      55  /* { dg-final { scan-tree-dump-times "return 0" 4 "optimized" } } */