aboutsummaryrefslogtreecommitdiff
path: root/clang/test/AST/ast-print-builtin-counted-by-ref.c
blob: c0ff7515fc8208846683578197f7b2fdaaa94e5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// RUN: %clang_cc1 -triple x86_64-unknown-linux -ast-print %s -o - | FileCheck %s

typedef unsigned long int size_t;

int global_array[42];
int global_int;

struct fam_struct {
  int x;
  char count;
  int array[] __attribute__((counted_by(count)));
};

// CHECK-LABEL: void test1(struct fam_struct *ptr, int size) {
// CHECK-NEXT:      size_t __ignored_assignment;
// CHECK-NEXT:      *_Generic(__builtin_counted_by_ref(ptr->array), void *: &__ignored_assignment, default: __builtin_counted_by_ref(ptr->array)) = 42;
void test1(struct fam_struct *ptr, int size) {
  size_t __ignored_assignment;

  *_Generic(__builtin_counted_by_ref(ptr->array),
           void *: &__ignored_assignment,
           default: __builtin_counted_by_ref(ptr->array)) = 42; // ok
}