diff options
Diffstat (limited to 'test/Sema')
-rw-r--r-- | test/Sema/builtin-object-size.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/Sema/builtin-object-size.c b/test/Sema/builtin-object-size.c index 14674c66f3a6..300c739bbd14 100644 --- a/test/Sema/builtin-object-size.c +++ b/test/Sema/builtin-object-size.c @@ -76,3 +76,18 @@ int pr28314(void) { a += __builtin_object_size(p3->b, 0); return a; } + +int pr31843() { + int n = 0; + + struct { int f; } a; + int b; + n += __builtin_object_size(({&(b ? &a : &a)->f; pr31843;}), 0); // expected-warning{{expression result unused}} + + struct statfs { char f_mntonname[1024];}; + struct statfs *outStatFSBuf; + n += __builtin_object_size(outStatFSBuf->f_mntonname ? "" : "", 1); // expected-warning{{address of array}} + n += __builtin_object_size(outStatFSBuf->f_mntonname ?: "", 1); + + return n; +} |