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