Home | History | Annotate | Download | only in Analysis
      1 // RUN: %clang_cc1 -analyze -analyzer-checker=core,experimental.core -analyzer-store=region -verify %s
      2 //
      3 // This test case simply should not crash.  It evaluates the logic of not
      4 // using MemRegion::getRValueType in incorrect places.
      5 
      6 typedef signed char BOOL;
      7 typedef unsigned int NSUInteger;
      8 @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
      9 @protocol NSObject  - (BOOL)isEqual:(id)object;
     10 - (Class)class;
     11 - (BOOL)isLegOfClass:(Class)aClass;
     12 @end  @protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder;
     13 @end    @interface NSObject <NSObject> {
     14 }
     15 @end @class NSArray;
     16 @interface NSResponder : NSObject <NSCoding> {
     17 }
     18 @end  @class NSAttributedString, NSEvent, NSFont, NSFormatter, NSImage, NSMenu, NSText, NSView;
     19 @class JabasectItem;
     20 @protocol EcoClassifier;
     21 @protocol EcoClassInterfaceCommons <EcoClassifier>    @end  @protocol EcoImplementation;
     22 @protocol EcoBehavioredClassifier <EcoClassInterfaceCommons>      - (NSArray *) implementations;
     23 @end enum {
     24 CK_UNRESTRICTED= 0,     CK_READ_ONLY,     CK_ADD_ONLY,     CK_REMOVE_ONLY };
     25 @protocol EcoClass <EcoBehavioredClassifier>      - (NSArray *) ownedAttributes;
     26 @end @protocol EcoNamespace;
     27 @protocol EcoType;
     28 @protocol EcoClassifier <EcoNamespace,EcoType>    - (NSArray *) features; 
     29 @end @protocol EcoComment;
     30 @protocol EcoElement <NSObject> - (NSArray *) ownedElements;
     31 @end @protocol EcoDirectedRelationship;
     32 @protocol EcoNamedElement <EcoElement>     - (NSString *) name;
     33 @end  extern NSString *const JabaPathSeparator;
     34 @protocol EcoNamespace <EcoNamedElement>       - (NSArray *) Legs;
     35 @end enum {
     36 PDK_IN=0,     PDK_INOUT,     PDK_OUT,     PDK_RETURN };
     37 @interface EcoElementImp : NSObject <EcoElement, NSCoding> {
     38 }
     39 @end @class EcoNamespace;
     40 @interface EcoNamedElementImp : EcoElementImp <EcoNamedElement>{
     41 }
     42 @end   @interface EcoNamespaceImp : EcoNamedElementImp <EcoNamespace> {
     43 }
     44 @end  @class JabaSCDocController, JabaSCDisplaySpecification;
     45 @interface JabaSCSharedDiagramViewController : NSObject {
     46 }
     47 @end  extern NSString *const JabaSCsectGraphicNamesectIdentifier;
     48 @interface EcoClassifierImp : EcoNamespaceImp <EcoClassifier> {
     49 }
     50 @end  @class EcoOperationImp;
     51 @interface EcoClassImp : EcoClassifierImp <EcoClass> {
     52 }
     53 @end  extern NSString *const JabaAddedUMLElements;
     54 @class JabaSCClass, JabaSCInterface, JabaSCOperation;
     55 @class DosLegVaseSymbol, DosProtocolSymbol, DosMethodSymbol, DosFileReference;
     56 @interface HancodeFett : NSObject {
     57 }
     58 + (DosLegVaseSymbol *) symbolFromClass: (JabaSCClass *) clz;
     59 @end enum _JabaSourceLanguage {
     60 JabaSourceUnknown=0,     JabaSourcePrawn,     JabaSourceC,     JabaSourceCPP,     JabaSourceObjectiveC };
     61 typedef NSUInteger JabaSourceLanguage;
     62 @protocol JabaSCClassifier <EcoClassInterfaceCommons> - (JabaSourceLanguage)language;
     63 @end  @interface JabaSCClass : EcoClassImp <JabaSCClassifier> {
     64 }
     65 @end  @class DosGlobalID, DosPQuLC, DosPQuUnLC;
     66 @protocol XCProxyObjectProtocol - (id) representedObject;
     67 @end typedef union _Dossymbollocation {
     68 }
     69   DosRecordArrPrl;
     70 @interface DosIndexEntry : NSObject {
     71 }
     72 @end    @class DosProjectIndex, DosTextPapyruswiggle, DosDocPapyruswiggle, DosLegVaseSymbol;
     73 @interface DosSymbol : DosIndexEntry {
     74 }
     75 @end  @interface DosLegVaseSymbol : DosSymbol {
     76 }
     77 @end typedef enum _DosTextRangeType {
     78 Dos_CharacterRangeType = 0,     Dos_LineRangeType = 1 }
     79   DosTextRangeType;
     80 @implementation JabaSCSharedDiagramViewController  + (NSImage *)findImageNamed:(NSString *)name {
     81   return 0;
     82 }
     83 - (void)revealSourceInEditor:(JabasectItem *)sectItem duperGesture:(BOOL)duperGesture {
     84   id <EcoNamedElement> selectedElement = [sectItem representedObject];
     85   id <EcoNamedElement> selectedClassifier = selectedElement;
     86   DosSymbol *symbol=((void *)0);
     87   if([selectedClassifier isLegOfClass:[JabaSCClass class]]) {
     88     symbol = [HancodeFett symbolFromClass:(JabaSCClass *) selectedClassifier];
     89   }
     90 }
     91 @end
     92