Chandler Carruth 66a34a6a45 Adjust some analyzer tests to place widely shared inputs inside of an
'Inputs' subdirectory.

The general desire has been to have essentially all of the non-test
input files live in such directories, with some exceptions for obvious
and common patterns like 'foo.c' using 'foo.h'.

This came up because our distributed test runner couldn't find some of
the headers, for example with stl.cpp.

No functionality changed, just shuffling around here.

llvm-svn: 163674
2012-09-12 01:11:10 +00:00

38 lines
1.0 KiB
Objective-C

// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc -analyzer-store=region -verify -Wno-objc-root-class -fblocks %s
#include "Inputs/system-header-simulator-objc.h"
@class NSString;
typedef __typeof(sizeof(int)) size_t;
void *malloc(size_t);
void free(void *);
// RDar10579586 - Test use of malloc() with Objective-C string literal as a
// test condition. Not really a malloc() issue, but this also exercises
// the check that malloc() returns uninitialized memory.
@interface RDar10579586
struct rdar0579586_str {
char str_c;
};
@end
void rdar10579586(char x);
@implementation RDar10579586
+ (NSString *)foobar
{
struct rdar0579586_str *buffer = ((void*)0);
NSString *error = ((void*)0);
if ((buffer = malloc(sizeof(struct rdar0579586_str))) == ((void*)0))
error = @"buffer allocation failure";
if (error != ((void*)0))
return error;
rdar10579586(buffer->str_c); // expected-warning {{Function call argument is an uninitialized value}}
free(buffer);
return ((void*)0);
}
@end